--- a/Tools__ProjectBuilderAssistantApplication.st Thu Oct 22 22:17:50 2009 +0200
+++ b/Tools__ProjectBuilderAssistantApplication.st Thu Oct 22 22:48:52 2009 +0200
@@ -7,6 +7,7 @@
selectedProjectIndexHolder selectedProjectDefinition
listOfMatchingProjects selectedProjectsComment
hasProjectSelectedHolder newProjectsName hideSTXProjects
+ hideOtherApplicationClasses hideOtherStartupClasses
startMakeButtonEnabled stopMakeButtonVisible makeOutputHolder
newApplicationsName listOfApplicationsInProject
selectedApplicationIndexHolder selectedApplication
@@ -345,7 +346,7 @@
label: 'Application Selection'
name: 'Application Selection'
min: (Point 0 0)
- bounds: (Rectangle 0 0 521 408)
+ bounds: (Rectangle 0 0 519 406)
)
component:
(SpecCollection
@@ -390,7 +391,7 @@
collection: (
(VariableHorizontalPanelSpec
name: 'VariableHorizontalPanel2'
- layout: (LayoutFrame 0 0 4 0 0 1 0 1)
+ layout: (LayoutFrame 0 0 4 0 0 1 -26 1)
component:
(SpecCollection
collection: (
@@ -401,6 +402,7 @@
hasVerticalScrollBar: true
useIndex: true
sequenceList: listOfApplicationsInProject
+ ignoreReselect: false
)
(TextEditorSpec
name: 'TextEditor2'
@@ -416,6 +418,13 @@
)
handles: (Any 0.34560327198364 1.0)
)
+ (CheckBoxSpec
+ label: 'Hide other Application Classes'
+ name: 'CheckBox1'
+ layout: (LayoutFrame -1 0 -18 1 0 1 4 1)
+ model: hideOtherApplicationClasses
+ translateLabel: true
+ )
)
)
@@ -523,7 +532,7 @@
collection: (
(VariableHorizontalPanelSpec
name: 'VariableHorizontalPanel2'
- layout: (LayoutFrame 0 0 4 0 0 1 0 1)
+ layout: (LayoutFrame 0 0 4 0 0 1 -26 1)
component:
(SpecCollection
collection: (
@@ -549,6 +558,13 @@
)
handles: (Any 0.34560327198364 1.0)
)
+ (CheckBoxSpec
+ label: 'Hide other Startup Classes'
+ name: 'CheckBox1'
+ layout: (LayoutFrame -1 0 -20 1 0 1 2 1)
+ model: hideOtherStartupClasses
+ translateLabel: true
+ )
)
)
@@ -1124,10 +1140,13 @@
!
selectedApplicationChanged
- self selectedApplicationIndexHolder value isNil ifTrue:[
+ |idx|
+
+ ((idx := self selectedApplicationIndexHolder value) isNil
+ or:[idx == 0]) ifTrue:[
selectedApplication := nil.
] ifFalse:[
- selectedApplication := self listOfApplicationsInProject value at:(self selectedApplicationIndexHolder value).
+ selectedApplication := self listOfApplicationsInProject value at:idx.
].
self hasApplicationSelectedHolder value:(selectedApplication notNil).
@@ -1235,6 +1254,26 @@
^ hasStartupClassSelectedHolder.
!
+hideOtherApplicationClasses
+ <resource: #uiAspect>
+
+ hideOtherApplicationClasses isNil ifTrue:[
+ hideOtherApplicationClasses := true asValue.
+ hideOtherApplicationClasses onChangeSend:#updateListOfApplicationsInProject to:self.
+ ].
+ ^ hideOtherApplicationClasses.
+!
+
+hideOtherStartupClasses
+ <resource: #uiAspect>
+
+ hideOtherStartupClasses isNil ifTrue:[
+ hideOtherStartupClasses := true asValue.
+ hideOtherStartupClasses onChangeSend:#updateListOfStartupClassesInProject to:self.
+ ].
+ ^ hideOtherStartupClasses.
+!
+
hideSTXProjects
<resource: #uiAspect>
@@ -1562,7 +1601,7 @@
!
canEnterStartupClassSelection
- ^ self hasProjectSelected and:[ self hasApplicationSelected ]
+ ^ self hasProjectSelected "and:[ self hasApplicationSelected ]"
! !
!ProjectBuilderAssistantApplication methodsFor:'specs'!
@@ -1593,7 +1632,8 @@
enterCallbackSelector: updateListOfApplicationsInProject
infoText: 'Choose an existing application or create a new one.
These are subclasses of <I>ApplicationModel</I> and define
- the GUI and control flow inside the application.'
+ the GUI and control flow inside the application.
+ Can also be left blank if the startup class does it all (stx build).'
)
(AssistantPageSpec
@@ -1703,8 +1743,7 @@
!
updateListOfApplicationsInProject
- |oldList applicationClasses package startUpClassName startUpClass
- appClass appClassIndex|
+ |oldList applicationClasses package appClass appClassIndex|
appClassIndex := nil.
@@ -1715,8 +1754,9 @@
applicationClasses := Smalltalk allClasses
select:[:cls |
- (cls package = package
- and:[ cls isSubclassOf:ApplicationModel ])
+ ((cls isSubclassOf:ApplicationModel)
+ and:[ self hideOtherApplicationClasses value not
+ or:[ cls package = package ]])
].
applicationClasses := applicationClasses asOrderedCollection.
applicationClasses sort:[:a :b | a name < b name].
@@ -1799,8 +1839,9 @@
startupClasses := Smalltalk allClasses
select:[:cls |
- (cls package = package
- and:[ cls isSubclassOf:StandaloneStartup ])
+ ((cls includesBehavior:StandaloneStartup)
+ and:[ self hideOtherStartupClasses value not
+ or:[ cls package = package ]])
].
startupClasses := startupClasses asOrderedCollection.
startupClasses sort:[:a :b | a name < b name].