--- 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