# HG changeset patch # User Claus Gittinger # Date 1157642142 -7200 # Node ID cb4532367cc05e5c70309f4ab93f668bcfabadcb # Parent 7bd90dbd70182da03012f120167671559659848b *** empty log message *** diff -r 7bd90dbd7018 -r cb4532367cc0 Tools__ProjectDefinitionEditor.st --- a/Tools__ProjectDefinitionEditor.st Thu Sep 07 12:24:07 2006 +0200 +++ b/Tools__ProjectDefinitionEditor.st Thu Sep 07 17:15:42 2006 +0200 @@ -801,8 +801,8 @@ the MenuEditor may not be able to read the specification." " - MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#classListMenu - (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor classListMenu)) startUp + MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classListMenu + (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor classListMenu)) startUp " @@ -811,6 +811,7 @@ #(Menu ( (MenuItem + enabled: hasDefinitionClassHolder label: 'Generate' itemValue: menuGenerateClassList translateLabel: true @@ -819,11 +820,13 @@ label: '-' ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Add...' itemValue: menuAddClass translateLabel: true ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Remove...' itemValue: menuRemoveClass translateLabel: true @@ -842,8 +845,8 @@ the MenuEditor may not be able to read the specification." " - MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsListMenu - (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor extensionsListMenu)) startUp + MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsListMenu + (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor extensionsListMenu)) startUp " @@ -852,6 +855,7 @@ #(Menu ( (MenuItem + enabled: hasDefinitionClassHolder label: 'Generate' itemValue: menuGenerateExtensionsList translateLabel: true @@ -860,11 +864,13 @@ label: '-' ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Add...' itemValue: menuAddExtension translateLabel: true ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Remove...' itemValue: menuRemoveExtension translateLabel: true @@ -883,8 +889,8 @@ the MenuEditor may not be able to read the specification." " - MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#mainMenu - (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor mainMenu)) startUp + MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#mainMenu + (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor mainMenu)) startUp " @@ -915,11 +921,13 @@ label: '-' ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Save' itemValue: menuSave translateLabel: true ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Save As...' itemValue: menuSaveAs translateLabel: true @@ -938,6 +946,23 @@ ) ) (MenuItem + label: 'Definition' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + enabled: hasDefinitionClassHolder + label: 'Generate Definitions' + itemValue: menuGenerateProjectDefinitions + translateLabel: true + ) + ) + nil + nil + ) + ) + (MenuItem label: 'Classes' translateLabel: true isVisible: classesMenuVisibleHolder @@ -997,8 +1022,8 @@ the MenuEditor may not be able to read the specification." " - MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsListMenu - (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor extensionsListMenu)) startUp + MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#prerequisitesListMenu + (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor prerequisitesListMenu)) startUp " @@ -1007,6 +1032,7 @@ #(Menu ( (MenuItem + enabled: hasDefinitionClassHolder label: 'Generate' itemValue: menuGeneratePrerequisitesList translateLabel: true @@ -1015,11 +1041,13 @@ label: '-' ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Add...' itemValue: menuAddPrerequisite translateLabel: true ) (MenuItem + enabled: hasDefinitionClassHolder label: 'Remove...' itemValue: menuRemovePrerequisite translateLabel: true @@ -1028,8 +1056,6 @@ nil nil ) - - "Modified: / 05-09-2006 / 13:24:58 / cg" ! ! !ProjectDefinitionEditor class methodsFor:'tableColumns specs'! @@ -1146,11 +1172,10 @@ definitionClass:aClass definitionClass := aClass. - self isApplicationDefinitionHolder value:( definitionClass isApplicationDefinition ). - self fetchValues. + self refetchDefinitionValues. "Created: / 04-09-2006 / 16:30:18 / cg" - "Modified: / 06-09-2006 / 19:25:15 / cg" + "Modified: / 07-09-2006 / 12:26:57 / cg" ! specClass:aClass @@ -1510,6 +1535,18 @@ "Created: / 05-09-2006 / 13:03:16 / cg" ! +hasDefinitionClass + ^ definitionClass notNil + + "Created: / 07-09-2006 / 12:29:10 / cg" +! + +hasDefinitionClassHolder + ^ [ self hasDefinitionClass ] + + "Created: / 07-09-2006 / 12:29:22 / cg" +! + prerequisitesMenuVisibleHolder ^ builder booleanValueAspectFor:#'prerequisitesMenuVisibleHolder' @@ -1577,18 +1614,18 @@ |entry| entry := PrerequisitesListEntry new. - entry packageName:packageName. + entry package:packageName. entries add:entry. ]. ^ entries. "Created: / 06-09-2006 / 18:45:15 / cg" - "Modified: / 07-09-2006 / 12:22:36 / cg" + "Modified: / 07-09-2006 / 12:36:21 / cg" ! fetchValues - |definitionClass isApplicationDefinition className| + |definitionClass isApplicationDefinition startupClassName startupSelector| definitionClass := self definitionClass. definitionClass isNil ifTrue:[^ self ]. @@ -1597,13 +1634,14 @@ self isApplicationDefinitionHolder value:isApplicationDefinition. isApplicationDefinition ifTrue:[ - Error handle:[:ex | - className := definitionClass name - ] do:[ - className := definitionClass startupClassName - ]. - self startupClassNameHolder value:className. - self startupSelectorHolder value:(definitionClass startupSelector). + startupClassName := definitionClass name. + startupSelector := #start. + + Error handle:[:ex | ] do:[ startupClassName := definitionClass startupClassName]. + Error handle:[:ex | ] do:[ startupSelector := definitionClass startupSelector]. + self startupClassNameHolder value:startupClassName. + self startupSelectorHolder value:startupSelector. + self iconFileNameHolder value:(definitionClass iconFileName). self tabList value:(self class tabListForApplication). ] ifFalse:[ @@ -1636,7 +1674,14 @@ , ' Definition: ',definitionClass name. "Created: / 04-09-2006 / 16:34:39 / cg" - "Modified: / 07-09-2006 / 12:19:36 / cg" + "Modified: / 07-09-2006 / 12:36:10 / cg" +! + +refetchDefinitionValues + self isApplicationDefinitionHolder value:( definitionClass isApplicationDefinition ). + self fetchValues. + + "Created: / 07-09-2006 / 12:26:54 / cg" ! update:something with:parameter from:changedObject @@ -1694,13 +1739,33 @@ !ProjectDefinitionEditor methodsFor:'menu actions'! -menuGenerateClassList - masterApplication - generateProjectDefinitionsIn:(Array with:self definitionClass). +menuGenerateProjectDefinitions + |action| - self classListHolder value:(self fetchClassListEntries). + action := [:generator :defClass | + defClass theNonMetaclass + forEachMethodsCodeToCompileDo: + [:code :category | + generator + compile:code + forClass:defClass theMetaclass + inCategory:category. + ] + ignoreOldDefinition:true + ]. - "Modified: / 07-09-2006 / 11:35:39 / cg" + masterApplication notNil ifTrue:[ + masterApplication + generateUndoableChange:'Generate Project Definitions' + overClasses:(Array with:self definitionClass) + via:action. + ] ifFalse:[ + action value:Compiler value:self definitionClass + ]. + + self refetchDefinitionValues + + "Created: / 07-09-2006 / 12:26:22 / cg" ! menuNew