--- 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
"
<resource: #menu>
@@ -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
"
<resource: #menu>
@@ -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
"
<resource: #menu>
@@ -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
"
<resource: #menu>
@@ -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