diff -r 96f1dbce3d00 -r 3ea780aba713 Tools__ProjectBuilderAssistantApplication.st --- 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 type 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 ProjectDefinition 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 ApplicationModel 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 StandaloneStartup 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 "Scan" 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 + + + ^ 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 ProjectDefinition 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 ApplicationModel 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 StandaloneStartup 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 "Scan" 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'!