diff -r b76931b8e953 -r 7bd90dbd7018 Tools__ProjectDefinitionEditor.st --- a/Tools__ProjectDefinitionEditor.st Wed Sep 06 21:50:31 2006 +0200 +++ b/Tools__ProjectDefinitionEditor.st Thu Sep 07 12:24:07 2006 +0200 @@ -11,7 +11,8 @@ fileMinorVersionNrHolder descriptionHolder legalCopyrightHolder isApplicationDefinitionHolder isNonGUIApplicationHolder startSinglethreadedHolder startupClassNameHolder - startupSelectorHolder' + startupSelectorHolder prerequisitesList classListHolder + extensionsListHolder prerequisitesListHolder' classVariableNames:'' poolDictionaries:'' category:'Interface-Tools' @@ -31,6 +32,13 @@ privateIn:ProjectDefinitionEditor ! +Object subclass:#PrerequisitesListEntry + instanceVariableNames:'package' + classVariableNames:'' + poolDictionaries:'' + privateIn:ProjectDefinitionEditor +! + !ProjectDefinitionEditor class methodsFor:'documentation'! documentation @@ -100,13 +108,15 @@ menu: classListMenu hasHorizontalScrollBar: true hasVerticalScrollBar: true - dataList: classList + dataList: classListHolder columnHolder: classesTableColumns ) ) ) ) + + "Modified: / 07-09-2006 / 11:35:14 / cg" ! compilationSpec @@ -474,13 +484,15 @@ model: selectedExtensionIndexHolder hasHorizontalScrollBar: true hasVerticalScrollBar: true - dataList: extensionsList + dataList: extensionsListHolder columnHolder: extensionsTableColumns ) ) ) ) + + "Modified: / 07-09-2006 / 11:35:17 / cg" ! prerequisitesSpec @@ -516,7 +528,7 @@ model: selectedPrerequisitesIndexHolder hasHorizontalScrollBar: true hasVerticalScrollBar: true - dataList: prerequisitesList + dataList: prerequisitesListHolder columnHolder: prerequisitesTableColumns ) ) @@ -525,6 +537,7 @@ ) "Created: / 05-09-2006 / 13:21:32 / cg" + "Modified: / 07-09-2006 / 11:35:20 / cg" ! startupSpec @@ -1149,13 +1162,13 @@ !ProjectDefinitionEditor methodsFor:'aspects'! -classList - classList isNil ifTrue:[ - classList := #() asValue. +classListHolder + classListHolder isNil ifTrue:[ + classListHolder := #() asValue. ]. - ^ classList. + ^ classListHolder. - "Modified: / 05-09-2006 / 10:22:35 / cg" + "Created: / 07-09-2006 / 11:34:35 / cg" ! classesTableColumns @@ -1185,13 +1198,13 @@ "Modified: / 04-09-2006 / 17:58:15 / cg" ! -extensionsList - extensionsList isNil ifTrue:[ - extensionsList := #() asValue. +extensionsListHolder + extensionsListHolder isNil ifTrue:[ + extensionsListHolder := #() asValue. ]. - ^ extensionsList. + ^ extensionsListHolder. - "Created: / 06-09-2006 / 18:47:54 / cg" + "Created: / 07-09-2006 / 11:34:50 / cg" ! fileDescriptionHolder @@ -1366,6 +1379,15 @@ ^ minorVersionNrHolder. ! +prerequisitesListHolder + prerequisitesListHolder isNil ifTrue:[ + prerequisitesListHolder := #() asValue. + ]. + ^ prerequisitesListHolder. + + "Created: / 07-09-2006 / 11:35:03 / cg" +! + productNameHolder "automatically generated by UIPainter ..." @@ -1546,8 +1568,27 @@ "Created: / 06-09-2006 / 18:45:15 / cg" ! +fetchPrerequisitesListEntries + |entries| + + entries := OrderedCollection new. + definitionClass + preRequisites do:[:packageName | + |entry| + + entry := PrerequisitesListEntry new. + entry packageName:packageName. + entries add:entry. + ]. + + ^ entries. + + "Created: / 06-09-2006 / 18:45:15 / cg" + "Modified: / 07-09-2006 / 12:22:36 / cg" +! + fetchValues - |definitionClass isApplicationDefinition| + |definitionClass isApplicationDefinition className| definitionClass := self definitionClass. definitionClass isNil ifTrue:[^ self ]. @@ -1556,7 +1597,12 @@ self isApplicationDefinitionHolder value:isApplicationDefinition. isApplicationDefinition ifTrue:[ - self startupClassNameHolder value:(definitionClass startupClassName). + Error handle:[:ex | + className := definitionClass name + ] do:[ + className := definitionClass startupClassName + ]. + self startupClassNameHolder value:className. self startupSelectorHolder value:(definitionClass startupSelector). self iconFileNameHolder value:(definitionClass iconFileName). self tabList value:(self class tabListForApplication). @@ -1579,8 +1625,9 @@ self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger). self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger). - self classList value:(self fetchClassListEntries). - self extensionsList value:(self fetchExtensionsListEntries). + self classListHolder value:(self fetchClassListEntries). + self extensionsListHolder value:(self fetchExtensionsListEntries). + self prerequisitesListHolder value:(self fetchPrerequisitesListEntries). self window label:(isApplicationDefinition @@ -1589,7 +1636,7 @@ , ' Definition: ',definitionClass name. "Created: / 04-09-2006 / 16:34:39 / cg" - "Modified: / 06-09-2006 / 18:45:45 / cg" + "Modified: / 07-09-2006 / 12:19:36 / cg" ! update:something with:parameter from:changedObject @@ -1651,9 +1698,9 @@ masterApplication generateProjectDefinitionsIn:(Array with:self definitionClass). - self classList value:(self fetchClassListEntries). + self classListHolder value:(self fetchClassListEntries). - "Modified: / 06-09-2006 / 21:36:44 / cg" + "Modified: / 07-09-2006 / 11:35:39 / cg" ! menuNew @@ -1665,19 +1712,38 @@ ! menuOpen - self warn:'no action for ''open'' defined.'. + |projectID class answer| - "Modified: / 05-09-2006 / 16:28:51 / cg" + projectID := Dialog requestProject:'Project' initialAnswer:'' suggestions:nil. + class := ProjectDefinition definitionClassForPackage:projectID. + class isNil ifTrue:[ + answer := Dialog + confirmWithCancel:(resources string:'No Projectdefinition class exists for "%1".\\Create ?' with:projectID allBold) + labels:(resources array:#('Cancel' 'Create Library' 'Create Application' )) + values:#(nil LibraryDefinition ApplicationDefinition) + default:2 + boxLabel:(resources string:'Create Projectdefinition'). + answer isNil ifTrue:[^ self]. + ]. + answer == #LibraryDefinition ifTrue:[ + class := LibraryDefinition definitionClassForPackage:projectID createIfAbsent:true + ] ifFalse:[ + class := ApplicationDefinition definitionClassForPackage:projectID createIfAbsent:true + ]. + self definitionClass:class. + + "Modified: / 07-09-2006 / 12:19:58 / cg" ! menuRemoveClass |classListHolder| - classListHolder := self classList. + classListHolder := self classListHolder. classListHolder value removeIndex:(self selectedClassIndexHolder value). classListHolder changed. "Created: / 06-09-2006 / 21:31:05 / cg" + "Modified: / 07-09-2006 / 11:35:44 / cg" ! menuSave @@ -1769,10 +1835,11 @@ selectedClass |item| - item := self classList value at:(self selectedClassIndexHolder value). + item := self classListHolder value at:(self selectedClassIndexHolder value). self halt. "Created: / 06-09-2006 / 21:32:20 / cg" + "Modified: / 07-09-2006 / 11:35:48 / cg" ! selectedTabIndex @@ -1837,6 +1904,20 @@ ^ selector ! ! +!ProjectDefinitionEditor::PrerequisitesListEntry methodsFor:'accessing'! + +package + ^ package + + "Created: / 07-09-2006 / 12:23:17 / cg" +! + +package:something + package := something. + + "Created: / 07-09-2006 / 12:23:19 / cg" +! ! + !ProjectDefinitionEditor class methodsFor:'documentation'! version