Tools__ProjectBuilderAssistantApplication.st
changeset 2703 3ea780aba713
parent 2698 64d179f1eae7
child 2705 64aa9ac2e8a1
--- a/Tools__ProjectBuilderAssistantApplication.st	Mon Nov 02 15:55:15 2009 +0100
+++ b/Tools__ProjectBuilderAssistantApplication.st	Mon Nov 02 15:57:28 2009 +0100
@@ -40,6 +40,93 @@
 "
 ! !
 
+!ProjectBuilderAssistantApplication class methodsFor:'assistant pages spec'!
+
+assistantSpec
+    ^ #(Array
+        ( AssistantPageSpec
+            pageTitle: 'Project Type Selection'
+            windowSpecSelector: page1_projectTypeSelectionSpec
+            enterCallbackSelector: updateListOfMatchingProjects
+            infoText: 'Choose the <B>type</B> of project you are about to build.'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'ProjectDefinition Selection'
+            windowSpecSelector: page2_projectSelectionSpec
+            enterCallbackSelector: updateListOfMatchingProjects
+            infoText: 'Choose an existing project definition or create a new one.
+                       These are subclasses of <I>ProjectDefinition</I> and define the
+                       type and contents of a project.'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'Startup Application Selection'
+            windowSpecSelector: page3_applicationSelectionSpec
+            isEnabledQuerySelector: #projectTypeIsGuiApplication
+            canEnterQuerySelector: #canEnterApplicationSelection
+            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.
+                       Can also be left blank if the startup class does it all (stx build).'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'Startup Class Selection'
+            windowSpecSelector: page4_startupClassSelectionSpec
+            isEnabledQuerySelector: #projectTypeIsNotLibrary
+            canEnterQuerySelector: #canEnterStartupClassSelection
+            enterCallbackSelector: updateListOfStartupClassesInProject
+            infoText: 'Choose an existing startup-class or create a new one.
+                       These are subclasses of <I>StandaloneStartup</I> and 
+                       start the application. Command line arguments can be
+                       interpreted there.'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'Specify Contents'
+            windowSpecSelector: page5_specifyIncludedClasses
+            enterCallbackSelector: enterContentsSpecification
+            canEnterQuerySelector: #canEnterContentsSelection
+            infoText: 'Define which (other) classes are to be included.
+                       Press "<I>Scan</I>" to include all classes of the package;
+                       browse to edit the contents manually.'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'Specify Build Directory'
+            windowSpecSelector: page6_specifyBuildDirectorySpec
+            infoText: 'Define where the build-process is to be performed.
+                       All generated files are created below that directory.
+                       After deployment, the build directory is no longer needed
+                       (but you can keep it for a faster compile the next time).'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'Build'
+            windowSpecSelector: page7_buildSpec
+            canEnterQuerySelector: #canEnterBuild
+            enterCallbackSelector: #restoreMakeOutputsContents
+            leaveCallbackSelector: #rememberMakeOutputsContents
+            infoText: 'Start the build-process. This will run make/bcc to compile
+                       all required classes and nsis to generate a self-installable
+                       executable. You must have the borland-cc and NullSoft NSIS
+                       packages installed for this to work.'
+        )
+
+        (AssistantPageSpec
+            pageTitle: 'Deploy'
+            windowSpecSelector: page8_deploySpec
+            canEnterQuerySelector: #canEnterDeploy
+            infoText: 'Find the installer to be deployed (or test-run the binary).
+                       You can open a WindowsExplorer there to copy the files for
+                       deployment. After that, the build directory is no longer needed
+                       (but you can keep it for a faster compile the next time).'
+        )
+    ) decodeAsLiteralArray.
+! !
+
 !ProjectBuilderAssistantApplication class methodsFor:'defaults'!
 
 defaultIcon
@@ -50,6 +137,25 @@
     ^ 'ST/X Packager: %1'
 ! !
 
+!ProjectBuilderAssistantApplication class methodsFor:'help'!
+
+flyByHelpSpec
+    <resource: #help>
+
+    ^ super flyByHelpSpec addPairsFrom:#(
+
+#newProjectsName
+'PackageID (module:directory)'
+
+#createNewProject
+'Click to create a new (empty) ProjectDefinition for the given PackageID'
+
+#'listOfNewProjectsName'
+'foo  bar baz'
+
+)
+! !
+
 !ProjectBuilderAssistantApplication class methodsFor:'interface specs'!
 
 page1_projectTypeSelectionSpec
@@ -141,7 +247,7 @@
               )
             )
            (FramedBoxSpec
-              label: 'Existing Projects'
+              label: 'Existing Projects (PackageID''s)'
               name: 'FramedBox2'
               layout: (LayoutFrame 0 0.0 123 0 4 1.0 0 1)
               labelPosition: topLeft
@@ -221,7 +327,7 @@
        (SpecCollection
           collection: (
            (FramedBoxSpec
-              label: 'New Project'
+              label: 'New PackageID'
               name: 'FramedBox3'
               layout: (LayoutFrame 0 0.0 5 0 4 1.0 72 0)
               labelPosition: topLeft
@@ -235,6 +341,7 @@
                     layout: (LayoutFrame -100 1 6 0 2 1 28 0)
                     translateLabel: true
                     model: createNewProject
+              activeHelpKey: createNewProject
                   )
                  (ExtendedComboBoxSpec
                     name: 'NewProjectsNameListExtendedComboBox'
@@ -243,13 +350,14 @@
                     readOnly: false
                     miniScrollerHorizontal: true
                     postBuildCallback: postBuildNewProjectsNameListExtendedComboBox:
+              activeHelpKey: newProjectsName
                   )
                  )
                
               )
             )
            (FramedBoxSpec
-              label: 'Existing Projects'
+              label: 'Existing PackageID''s with Project Definition'
               name: 'FramedBox4'
               layout: (LayoutFrame 0 0.0 70 0 4 1.0 -30 1)
               labelPosition: topLeft
@@ -977,6 +1085,7 @@
               miniScrollerVertical: false
               useIndex: false
               sequenceList: listOfNewProjectsName
+              activeHelpKey: listOfNewProjectsName
             )
            )
          
@@ -1819,88 +1928,7 @@
 !ProjectBuilderAssistantApplication methodsFor:'specs'!
 
 assistantSpec
-    ^ #(Array
-        ( AssistantPageSpec
-            pageTitle: 'Project Type Selection'
-            windowSpecSelector: page1_projectTypeSelectionSpec
-            enterCallbackSelector: updateListOfMatchingProjects
-            infoText: 'Choose the type of project you are about to build.'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Project Selection'
-            windowSpecSelector: page2_projectSelectionSpec
-            enterCallbackSelector: updateListOfMatchingProjects
-            infoText: 'Choose an existing project or create a new one.
-                       These are subclasses of <I>ProjectDefinition</I> and define the
-                       type and contents of a project.'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Startup Application Selection'
-            windowSpecSelector: page3_applicationSelectionSpec
-            isEnabledQuerySelector: #projectTypeIsGuiApplication
-            canEnterQuerySelector: #canEnterApplicationSelection
-            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.
-                       Can also be left blank if the startup class does it all (stx build).'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Startup Class Selection'
-            windowSpecSelector: page4_startupClassSelectionSpec
-            isEnabledQuerySelector: #projectTypeIsNotLibrary
-            canEnterQuerySelector: #canEnterStartupClassSelection
-            enterCallbackSelector: updateListOfStartupClassesInProject
-            infoText: 'Choose an existing startup-class or create a new one.
-                       These are subclasses of <I>StandaloneStartup</I> and 
-                       start the application. Command line arguments can be
-                       interpreted there.'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Specify Contents'
-            windowSpecSelector: page5_specifyIncludedClasses
-            enterCallbackSelector: enterContentsSpecification
-            canEnterQuerySelector: #canEnterContentsSelection
-            infoText: 'Define which (other) classes are to be included.
-                       Press "<I>Scan</I>" to include all classes of the package;
-                       browse to edit the contents manually.'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Specify Build Directory'
-            windowSpecSelector: page6_specifyBuildDirectorySpec
-            infoText: 'Define where the build-process is to be performed.
-                       All generated files are created below that directory.
-                       After deployment, the build directory is no longer needed
-                       (but you can keep it for a faster compile the next time).'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Build'
-            windowSpecSelector: page7_buildSpec
-            canEnterQuerySelector: #canEnterBuild
-            enterCallbackSelector: #restoreMakeOutputsContents
-            leaveCallbackSelector: #rememberMakeOutputsContents
-            infoText: 'Start the build-process. This will run make/bcc to compile
-                       all required classes and nsis to generate a self-installable
-                       executable. You must have the borland-cc and NullSoft NSIS
-                       packages installed for this to work.'
-        )
-
-        (AssistantPageSpec
-            pageTitle: 'Deploy'
-            windowSpecSelector: page8_deploySpec
-            canEnterQuerySelector: #canEnterDeploy
-            infoText: 'Find the installer to be deployed (or test-run the binary).
-                       You can open a WindowsExplorer there to copy the files for
-                       deployment. After that, the build directory is no longer needed
-                       (but you can keep it for a faster compile the next time).'
-        )
-    ) decodeAsLiteralArray.
+    ^ self class assistantSpec
 ! !
 
 !ProjectBuilderAssistantApplication methodsFor:'update'!