added:
authorClaus Gittinger <cg@exept.de>
Fri, 20 Jul 2012 20:17:17 +0200
changeset 2897 b6cd7ee2a43b
parent 2896 6ed90332dbda
child 2898 c7f6c498df6a
added: #openOn: #openOnPackage: changed:8 methods category of:
Tools__ProjectBuilderAssistantApplication.st
--- a/Tools__ProjectBuilderAssistantApplication.st	Fri Jul 20 20:15:40 2012 +0200
+++ b/Tools__ProjectBuilderAssistantApplication.st	Fri Jul 20 20:17:17 2012 +0200
@@ -394,7 +394,7 @@
                           model: projectTypeHolder
                           isTriggerOnDown: true
                           onCallBackSelector: projectTypeChanged
-                          select: guiApplicationType
+                          select: #'GUI-Application'
                           extent: (Point 136 22)
                         )
                        (RadioButtonSpec
@@ -404,7 +404,7 @@
                           model: projectTypeHolder
                           isTriggerOnDown: true
                           onCallBackSelector: projectTypeChanged
-                          select: nonGuiApplicationType
+                          select: #'NonGUI-Application'
                           extent: (Point 136 22)
                         )
                        (RadioButtonSpec
@@ -414,7 +414,7 @@
                           model: projectTypeHolder
                           isTriggerOnDown: true
                           onCallBackSelector: projectTypeChanged
-                          select: libraryType
+                          select: #Library
                           extent: (Point 136 22)
                         )
                        )
@@ -478,6 +478,8 @@
          
         )
       )
+
+    "Modified: / 20-07-2012 / 13:27:45 / cg"
 !
 
 page2_projectSelectionSpec
@@ -1453,6 +1455,20 @@
       )
 ! !
 
+!ProjectBuilderAssistantApplication class methodsFor:'startup'!
+
+openOn:aProjectDefinitionClass
+    ^ self new openOn:aProjectDefinitionClass
+
+    "Created: / 20-07-2012 / 12:33:25 / cg"
+!
+
+openOnPackage:aPackageId
+    ^ self new openOnPackage:aPackageId
+
+    "Created: / 20-07-2012 / 13:22:50 / cg"
+! !
+
 !ProjectBuilderAssistantApplication methodsFor:'actions'!
 
 buildDirectoryChanged
@@ -2100,36 +2116,16 @@
 !
 
 projectType
-    self projectTypeHolder value == #libraryType ifTrue:[
-        ^ ProjectDefinition libraryType
-    ].
-    self projectTypeHolder value == #guiApplicationType ifTrue:[
-        ^ ProjectDefinition guiApplicationType
-    ].
-    self projectTypeHolder value == #nonGuiApplicationType ifTrue:[
-        ^ ProjectDefinition nonGuiApplicationType
-    ].
-    self error.
+    ^ self projectTypeHolder value
+
+    "Modified: / 20-07-2012 / 13:28:46 / cg"
 !
 
 projectType:aProjectTypeSymbol
-    |pType|
-
     self assert:(ProjectDefinition projectTypes includes:aProjectTypeSymbol).
-    aProjectTypeSymbol == ProjectDefinition libraryType ifTrue:[
-        pType := #libraryType
-    ] ifFalse:[
-        aProjectTypeSymbol == ProjectDefinition guiApplicationType ifTrue:[
-            pType := #guiApplicationType
-        ] ifFalse:[
-            aProjectTypeSymbol == ProjectDefinition nonGuiApplicationType ifTrue:[
-                pType := #nonGuiApplicationType
-            ] ifFalse:[
-                self error.
-            ].
-        ]
-    ].
     self projectTypeHolder value:aProjectTypeSymbol
+
+    "Modified: / 20-07-2012 / 13:28:25 / cg"
 !
 
 projectTypeHolder
@@ -2137,9 +2133,11 @@
 
     projectTypeHolder isNil ifTrue:[
         projectTypeHolder := RadioButtonGroup new.
-        projectTypeHolder value:#guiApplicationType.
+        projectTypeHolder value:ProjectDefinition guiApplicationType.
     ].
     ^ projectTypeHolder.
+
+    "Modified: / 20-07-2012 / 13:30:16 / cg"
 !
 
 selectedApplicationIndexHolder
@@ -2256,6 +2254,50 @@
     ^ browser.
 !
 
+openOn:aProjectDefinitionClass
+    |type apps startupClass|
+
+    self allButOpen.
+    aProjectDefinitionClass isLibraryDefinition ifTrue:[
+        type := ProjectDefinition libraryType
+    ] ifFalse:[
+        aProjectDefinitionClass isGUIApplication ifTrue:[
+            type := ProjectDefinition guiApplicationType
+        ] ifFalse:[
+            type := ProjectDefinition nonGuiApplicationType
+        ]
+    ].
+    self projectTypeHolder value:type.
+    self hideSTXProjects value:false.
+    selectedProjectDefinition := aProjectDefinitionClass.
+    self selectedProjectIndexHolder value:(self listOfMatchingPackageIds value indexOf:aProjectDefinitionClass package).
+    self hasProjectSelectedHolder value:true.
+
+    self gotoPage:3.
+    type == ProjectDefinition guiApplicationType ifTrue:[
+        (startupClass := aProjectDefinitionClass startupClass) notNil ifTrue:[
+            selectedStartupClass := startupClass.
+            self gotoPage:4.
+        ]. 
+"/    apps := (aProjectDefinitionClass classes select:[:cls | cls isKindOf:ApplicationModel])
+    ].
+    self openWindow.
+
+    "Created: / 20-07-2012 / 12:34:02 / cg"
+!
+
+openOnPackage:aPackageId
+    self allButOpen.
+    self projectTypeHolder value:(ProjectDefinition guiApplicationType).
+    self hideSTXProjects value:false.
+    self selectedProjectIndexHolder value:(self listOfMatchingPackageIds indexOf:aPackageId).
+    self hasProjectSelectedHolder value:true.
+    self gotoPage:2.
+    self openWindow.
+
+    "Created: / 20-07-2012 / 13:24:38 / cg"
+!
+
 postBuildMakeOutputWindow:aView
     makeOutputWindow := aView
 !
@@ -2385,7 +2427,7 @@
 !
 
 canEnterContentsSelection
-    |prj cls impl|
+    |prj cls impl mthd|
 
     self hasProjectSelected ifFalse:[
         self infoHolder value:'no project selected'. 
@@ -2415,8 +2457,8 @@
             ^ false
         ].
     ].
-    (prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
-        (prj class compiledMethodAt:#startupClassName) package == PackageId noProjectID ifFalse:[
+    (mthd := prj class compiledMethodAt:#startupClassName) package == prj package ifFalse:[
+        mthd package == PackageId noProjectID ifFalse:[
             self infoHolder value:('startup class method (#startupClassName) of %3 must be in package "%1" (is in "%2")' 
                 bindWith:prj package
                 with:(prj class compiledMethodAt:#startupClassName) package
@@ -2424,12 +2466,12 @@
             ^ false
         ].
     ].
-    (prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
-        (prj class compiledMethodAt:#startupSelector) package == prj package ifFalse:[
-            (prj class compiledMethodAt:#startupSelector) package == PackageId noProjectID ifFalse:[
+    (mthd := prj class compiledMethodAt:#startupSelector) notNil ifTrue:[
+        mthd package == prj package ifFalse:[
+            mthd package == PackageId noProjectID ifFalse:[
                 self infoHolder value:('startup class method (#startupSelector) of %3 must be in package "%1" (is in "%2")' 
                     bindWith:prj package
-                    with:(prj class compiledMethodAt:#startupSelector) package 
+                    with:mthd package 
                     with:prj class name). 
                 ^ false
             ]
@@ -2450,7 +2492,7 @@
     ].
     ^ true.
 
-    "Modified: / 19-01-2012 / 15:30:54 / cg"
+    "Modified: / 20-07-2012 / 19:21:34 / cg"
 !
 
 canEnterDeploy
@@ -2494,11 +2536,15 @@
 !
 
 projectTypeIsGuiApplication
-    ^ self projectTypeHolder value == #guiApplicationType
+    ^ self projectTypeHolder value == ProjectDefinition guiApplicationType
+
+    "Modified: / 20-07-2012 / 13:29:59 / cg"
 !
 
 projectTypeIsLibrary
-    ^ self projectTypeHolder value == #libraryType
+    ^ self projectTypeHolder value == ProjectDefinition libraryType
+
+    "Modified: / 20-07-2012 / 13:29:24 / cg"
 !
 
 projectTypeIsNotLibrary
@@ -2733,7 +2779,8 @@
             projectType = ProjectDefinition nonGuiApplicationType ifTrue:[
                 query := #isConsoleApplication
             ] ifFalse:[
-                self error.
+                self halt:'oops'.
+                projectType := ProjectDefinition guiApplicationType.
             ].
         ].
     ].
@@ -2767,7 +2814,7 @@
         self selectedProjectIndexHolder value:idx.
     ].
 
-    "Modified: / 04-12-2011 / 19:55:37 / cg"
+    "Modified: / 20-07-2012 / 15:04:15 / cg"
 !
 
 updateListOfNewProjectsName