author | Claus Gittinger <cg@exept.de> |
Thu, 14 Mar 2013 14:21:20 +0100 | |
changeset 2978 | a952dfdb1b6a |
parent 2975 | 023690659ed7 |
child 2983 | 068c43183acf |
permissions | -rw-r--r-- |
2742 | 1 |
" |
2 |
COPYRIGHT (c) 2009 by eXept Software AG |
|
3 |
All Rights Reserved |
|
4 |
||
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
2636 | 12 |
"{ Package: 'stx:libtool2' }" |
13 |
||
14 |
"{ NameSpace: Tools }" |
|
15 |
||
16 |
AssistantApplication subclass:#ProjectBuilderAssistantApplication |
|
2687
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
17 |
instanceVariableNames:'packageToBuildHolder projectType projectTypeHolder |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
18 |
selectedProjectIndexHolder selectedProjectDefinition |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
19 |
listOfMatchingProjects listOfMatchingPackageIds |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
20 |
selectedProjectsComment hasProjectSelectedHolder newProjectsName |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
21 |
hideSTXProjects hideOtherApplicationClasses |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
22 |
hideOtherStartupClasses startMakeButtonEnabled |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
23 |
stopMakeButtonVisible makeOutputHolder newApplicationsName |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
24 |
listOfApplicationsInProject selectedApplicationIndexHolder |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
25 |
selectedApplication hasApplicationSelectedHolder |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
26 |
listOfStartupClassesInProject selectedStartupClassIndexHolder |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
27 |
selectedStartupClass hasStartupClassSelectedHolder |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
28 |
selectedApplicationsComment buildDirectoryHolder makeProcess |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
29 |
listOfClassesInProject makeOutputWindow projectBuilder |
2705 | 30 |
newStartupClassName usedCompilerHolder listOfNewProjectsName |
2724 | 31 |
newProjectsNameListExtendedComboBox productNameHolder |
32 |
companyNameHolder compilerWarnMessageHolder |
|
2910 | 33 |
compilerWarnMessageVisibleHolder listOfPrerequisitesInProject |
2919 | 34 |
nameOfUsedCompilerSuiteHolder usedCompilerIndexHolder' |
2959
ab140a3e5eb6
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2930
diff
changeset
|
35 |
classVariableNames:'LastUsedCompiler Debugging' |
2687
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
36 |
poolDictionaries:'' |
66343568f2b2
changed: #fileBrowserInstance
Claus Gittinger <cg@exept.de>
parents:
2686
diff
changeset
|
37 |
category:'System-Support-Projects' |
2636 | 38 |
! |
39 |
||
2668 | 40 |
!ProjectBuilderAssistantApplication class methodsFor:'documentation'! |
41 |
||
2742 | 42 |
copyright |
43 |
" |
|
44 |
COPYRIGHT (c) 2009 by eXept Software AG |
|
45 |
All Rights Reserved |
|
46 |
||
47 |
This software is furnished under a license and may be used |
|
48 |
only in accordance with the terms of that license and with the |
|
49 |
inclusion of the above copyright notice. This software may not |
|
50 |
be provided or otherwise made available to, or used by, any |
|
51 |
other person. No title to or ownership of the software is |
|
52 |
hereby transferred. |
|
53 |
" |
|
54 |
! |
|
55 |
||
2668 | 56 |
documentation |
57 |
" |
|
58 |
a user friendly interface to the build process. |
|
59 |
Simply wraps up existing tools like the CodeGeneratorTool, the browsers |
|
60 |
and the ProjetBuilder |
|
61 |
||
62 |
[see also:] |
|
63 |
CodeGeneratorTool |
|
64 |
ProjectBuilder |
|
65 |
ProjectDefinition |
|
66 |
||
67 |
[author:] |
|
68 |
Claus Gittinger |
|
69 |
" |
|
2721 | 70 |
! |
71 |
||
72 |
help |
|
2825 | 73 |
" |
74 |
Packager - A Standalone-Executable Builder and Packager |
|
2721 | 75 |
|
2825 | 76 |
This assistant-application allows for standalone applications to be built very easily. |
77 |
It will generate all required classes, files, start the compilation process, |
|
78 |
generate a self-installable executable with a few mouse clicks. |
|
79 |
||
80 |
A simple demo application like the famous 'Hello World' can be generated in a few minutes. |
|
81 |
||
82 |
Prerequisites |
|
83 |
||
84 |
* Windows Users: |
|
85 |
Please install either the 'Borland Free Commandline Compiler Tools (bcc32)' |
|
86 |
or the 'Microsoft Visual-C++' package (also free). |
|
87 |
In addition, the 'NullSoft NSIS-Installer Package' is required. |
|
88 |
||
89 |
Due to limitations and bugs in the Visual-C++ compiler (limit on the size of |
|
90 |
string-constants), some Smalltalk code is still not compilable |
|
91 |
(currently, this affects classes which contain image-resource methods for big images). |
|
92 |
Although microsoft is doing their best (a relative measure) to make things better |
|
93 |
(they increase the string-limit with every new release), they still seem to be unable |
|
94 |
to figure out how ti use malloc for string-data). |
|
95 |
We are patiently waiting for a real fix and still using bcc in the meanwhile. |
|
96 |
Therefore, we recommend using the borland compiler suite. |
|
97 |
Please install it at its standard location ('C:\Borland') as our makefiles might |
|
98 |
still contain hard-coded pathes (yes, we are ashamed about this). |
|
99 |
||
100 |
* Unix Users: |
|
101 |
You should already have the gcc compile suite (including all required header files) |
|
102 |
installed and ready to use. For a lack of time on our side, there is currently no |
|
103 |
self-installer support for Unix. The packager will generate a zipped tar file, |
|
104 |
which must be deployed and unpacked for use. This may change in the near future. |
|
105 |
||
106 |
Packages, Projects, PackageIDs and ProjectDefinitions |
|
107 |
||
108 |
Smalltalk basically uses two objects for packaging: |
|
109 |
||
110 |
* PackageIDs (also called ProjectID's occasionally) |
|
111 |
* ProjectDefinitions |
|
112 |
||
113 |
Older ST/X versions used instances of a Project class - this is now obsolete and |
|
114 |
removed from the system (although there are still some minor uses of it, |
|
115 |
which might remain there for backward compatibility for some time, as some customers |
|
116 |
have built their own packaging scheme around it). |
|
117 |
||
118 |
PackageIDs |
|
119 |
||
120 |
These are simple symbols and are attached to classes and methods. If a method has |
|
121 |
a packageID different from its class, it is called an extension method. |
|
122 |
PackageIDs must have a certain fixed format: they always contain exactly two parts, |
|
123 |
which are separated by a colon character: the module and the directory part. |
|
124 |
The module is used as main-selector on where and how the source code repository is |
|
125 |
accessed. The directory is a path below that repository. If checked out into the local |
|
126 |
filesystem, the module defines the top-level directory. Thus, if a packageID is |
|
127 |
'stx:libbasic', the corresponding sources will be found in the repository associated |
|
128 |
to the 'stx' module, under the directory 'libbasic'. |
|
129 |
In the local file system, it will be found under 'stx/libbasic'. |
|
130 |
As another example, if the packageID is 'exept:expecco/plugins/foo', |
|
131 |
the repository is whichever is associated with the 'exept' module, and the subdirectory |
|
132 |
is 'expecco/plugins/foo'. The local path to the sourcefiles would be |
|
133 |
'exept/expecco/plugins/foo'. |
|
134 |
||
135 |
Please notice that it does make sense to associate different repositories to different |
|
136 |
modules: for example, you could setup the sourceCodeManager to use CVS access to the |
|
137 |
exept repository for everything under the 'stx' module, |
|
138 |
and at the same time, use a local SVN repository for everything under the 'myCompany' |
|
139 |
module. |
|
140 |
||
141 |
ProjectDefinitions |
|
142 |
||
143 |
These describe the contents of a project, such as the classes to include, |
|
144 |
the set of extension methods, any additional compilation information. |
|
145 |
ProjectDefinitions come in 3 flavours: |
|
146 |
||
147 |
* GUI Application Definition |
|
148 |
* non-GUI Application Definition |
|
149 |
* ClassLibrary Definition |
|
150 |
||
151 |
ProjectDefinitions are stored and managed as class-instances, located as subclasses |
|
152 |
of one of ApplicationDefinition or LibraryDefinition. |
|
153 |
As classes, they are themself managed, compiled and packaged as part of the project |
|
154 |
(and also have the same PackageID as their components). |
|
155 |
They are also treated like any other class w.r.t. source code management. |
|
156 |
||
157 |
Packaging |
|
158 |
||
159 |
All classes and extension methods belonging to a single package are supposed to be |
|
160 |
loaded (and possibly unloaded) together. They are also usually deployed inside a single |
|
161 |
dynamic link library ('dll', for short). In the Unix world, these are called |
|
162 |
'shared object' or 'so'. |
|
163 |
Finally, they are stored in a common directory both on the local file system and in a |
|
164 |
source code repository (CVS, SVN, etc.). |
|
165 |
||
166 |
Structure of a Project |
|
167 |
||
168 |
The artefacts as manipulated by the packager are: |
|
169 |
||
170 |
* the ProjectDefinition class |
|
171 |
This defines the type of application (GUI / non-GUI), |
|
172 |
its contents (i.e. the set of classes to be included in the binary itself and |
|
173 |
the set of library-dll's to be included in the deployed package), |
|
174 |
and some other metadata, such as icon, title etc. |
|
175 |
||
176 |
* the ApplicationModel class |
|
177 |
This defines the GUI, and is typically created using the UI-Painter. |
|
178 |
||
179 |
* the Startup class |
|
180 |
This is the first class which gets control when the executable is started; |
|
181 |
it can analyze the command line arguments, read patches or updates, |
|
182 |
start background ptocesses, and will eventually open the applications GUI. |
|
183 |
||
184 |
Build Procedure |
|
185 |
||
186 |
All of the three components above can be generated by the packager to provide an |
|
187 |
initial framework for further work. |
|
188 |
||
189 |
After the definition of those classes, all required files are stored in a temporary |
|
190 |
build directory. This means that the above classes are filed out, |
|
191 |
and make- and other support files are generated. |
|
192 |
||
193 |
Finally, the actual build process is started. This requires an external C-compiler. |
|
194 |
Under windows, both Borland-C (free download available via the internet) and Microsoft's |
|
195 |
Visual-C++ (also available for free) can be used (the later with some limitations as explained above). |
|
196 |
||
197 |
A self-installing executable is built using the NullSoft NSIS package. |
|
198 |
This is also required to be installed before the packager is started. |
|
199 |
||
200 |
After the build, all required files are packaged in a single install-file. |
|
201 |
This is called 'MyApplicationSetup.exe' and found in the project-specific subdirectory |
|
202 |
of the build directory. For deployment, this single file has to be delivered to a customer |
|
203 |
and executed there. |
|
204 |
||
205 |
Summary: It has NEVER been easier to create a GUI application with Smalltalk. |
|
206 |
" |
|
2668 | 207 |
! ! |
2636 | 208 |
|
2703 | 209 |
!ProjectBuilderAssistantApplication class methodsFor:'assistant pages spec'! |
210 |
||
211 |
assistantSpec |
|
212 |
^ #(Array |
|
213 |
( AssistantPageSpec |
|
214 |
pageTitle: 'Project Type Selection' |
|
215 |
windowSpecSelector: page1_projectTypeSelectionSpec |
|
216 |
enterCallbackSelector: updateListOfMatchingProjects |
|
217 |
infoText: 'Choose the <B>type</B> of project you are about to build.' |
|
218 |
) |
|
219 |
||
220 |
(AssistantPageSpec |
|
221 |
pageTitle: 'ProjectDefinition Selection' |
|
222 |
windowSpecSelector: page2_projectSelectionSpec |
|
2907
c842e3e6f526
added: #updateListOfMatchingProjectsAndProjectIDs
Claus Gittinger <cg@exept.de>
parents:
2906
diff
changeset
|
223 |
enterCallbackSelector: updateListOfMatchingProjectsAndProjectIDs |
2913 | 224 |
leaveCallbackSelector: fetchAttributesFromProjectDefinition |
2907
c842e3e6f526
added: #updateListOfMatchingProjectsAndProjectIDs
Claus Gittinger <cg@exept.de>
parents:
2906
diff
changeset
|
225 |
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. Notice that the ID directly reflects the project''s location within the source code repository (module:directory/subdirectory...). If in doubt, use "<yourname>:demos/xxx_n".' |
2703 | 226 |
) |
227 |
||
228 |
(AssistantPageSpec |
|
229 |
pageTitle: 'Startup Application Selection' |
|
230 |
windowSpecSelector: page3_applicationSelectionSpec |
|
231 |
isEnabledQuerySelector: #projectTypeIsGuiApplication |
|
232 |
canEnterQuerySelector: #canEnterApplicationSelection |
|
233 |
enterCallbackSelector: updateListOfApplicationsInProject |
|
2825 | 234 |
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).' |
2703 | 235 |
) |
236 |
||
237 |
(AssistantPageSpec |
|
238 |
pageTitle: 'Startup Class Selection' |
|
239 |
windowSpecSelector: page4_startupClassSelectionSpec |
|
240 |
isEnabledQuerySelector: #projectTypeIsNotLibrary |
|
241 |
canEnterQuerySelector: #canEnterStartupClassSelection |
|
242 |
enterCallbackSelector: updateListOfStartupClassesInProject |
|
2825 | 243 |
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.' |
2703 | 244 |
) |
245 |
||
246 |
(AssistantPageSpec |
|
247 |
pageTitle: 'Specify Contents' |
|
248 |
windowSpecSelector: page5_specifyIncludedClasses |
|
249 |
enterCallbackSelector: enterContentsSpecification |
|
250 |
canEnterQuerySelector: #canEnterContentsSelection |
|
2968 | 251 |
infoText: 'Define which (other) classes are to be included. Do not include classes from other packages here. Press "<I>Scan</I>" to include all classes of the package; "<I>Browse</I>" to edit the contents manually.' |
2703 | 252 |
) |
253 |
||
254 |
(AssistantPageSpec |
|
2872 | 255 |
pageTitle: 'Specify Prerequisites' |
256 |
windowSpecSelector: page5b_specifyPrerequisitePackages |
|
257 |
enterCallbackSelector: enterPrerequisitesSpecification |
|
258 |
canEnterQuerySelector: #canEnterPrerequisitesSelection |
|
2968 | 259 |
infoText: 'Define which packages are needed as prerequisites. Press "<I>Scan</I>" to search for prerequisites; "<I>Browse</I>" to edit the list manually.' |
2872 | 260 |
) |
261 |
||
262 |
(AssistantPageSpec |
|
2724 | 263 |
pageTitle: 'Specify Project Attributes' |
264 |
windowSpecSelector: page6a_specifyProjectAttributes |
|
2968 | 265 |
infoText: 'Define additional attributes. These will be shown during the installation of the deployed pacakge.' |
2724 | 266 |
enterCallbackSelector: updateProjectAttributes |
267 |
leaveCallbackSelector: #rememberProjectAttributes |
|
268 |
) |
|
269 |
||
270 |
(AssistantPageSpec |
|
2703 | 271 |
pageTitle: 'Specify Build Directory' |
2724 | 272 |
windowSpecSelector: page6b_specifyBuildDirectorySpec |
2913 | 273 |
infoText: 'Define where the build-process is to be performed and which compiler to use. 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).' |
2724 | 274 |
enterCallbackSelector: #checkCompilerAvailability |
2913 | 275 |
leaveCallbackSelector: #rememberUsedCompiler |
2703 | 276 |
) |
277 |
||
278 |
(AssistantPageSpec |
|
279 |
pageTitle: 'Build' |
|
280 |
windowSpecSelector: page7_buildSpec |
|
281 |
canEnterQuerySelector: #canEnterBuild |
|
282 |
enterCallbackSelector: #restoreMakeOutputsContents |
|
283 |
leaveCallbackSelector: #rememberMakeOutputsContents |
|
2970
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
284 |
infoText: 'Start the build-process. This will run "make"+"bcc/vc/gcc" to compile all required classes and "nsis" to generate a self-installable executable (on windows). |
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
285 |
You must have the compiler (borland-bcc or visual-c) and NullSoft NSIS packages installed for this to work. |
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
286 |
Without NSIS, zip the folder where the exe is generated and unzip on a target machine. |
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
287 |
<P> |
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
288 |
To try the application, open an explorer/finder on the directory and double click on the executable. |
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
289 |
Alternatively, open a command window and type the name of the executable there. Sorry, but double-click in the ST/X file browser does not work.' |
2703 | 290 |
) |
291 |
||
292 |
(AssistantPageSpec |
|
293 |
pageTitle: 'Deploy' |
|
294 |
windowSpecSelector: page8_deploySpec |
|
295 |
canEnterQuerySelector: #canEnterDeploy |
|
2970
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
296 |
infoText: 'Find the installer-file to be deployed (or test-run the executable). |
6d37e90dab00
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2968
diff
changeset
|
297 |
You can open a Windows-explorer/finder there to copy the files for deployment. After that, the build directory is no longer needed. However, you can keep it for a faster compile the next time.' |
2703 | 298 |
) |
299 |
) decodeAsLiteralArray. |
|
2825 | 300 |
|
2913 | 301 |
"Modified: / 04-09-2012 / 09:49:50 / cg" |
2703 | 302 |
! ! |
303 |
||
2670 | 304 |
!ProjectBuilderAssistantApplication class methodsFor:'defaults'! |
305 |
||
306 |
defaultIcon |
|
2838 | 307 |
<resource: #programImage> |
308 |
||
2670 | 309 |
^ ToolbarIconLibrary projectBuilderIcon |
310 |
! |
|
311 |
||
312 |
windowLabelTemplate |
|
313 |
^ 'ST/X Packager: %1' |
|
314 |
! ! |
|
315 |
||
2703 | 316 |
!ProjectBuilderAssistantApplication class methodsFor:'help'! |
317 |
||
318 |
flyByHelpSpec |
|
319 |
<resource: #help> |
|
320 |
||
321 |
^ super flyByHelpSpec addPairsFrom:#( |
|
322 |
||
2706 | 323 |
#'projectType' |
324 |
'Choose the type of Project you are about to deploy.' |
|
325 |
||
326 |
#existingProjects |
|
327 |
'Projects with an existing ProjectDefinition of the chosen type (above).' |
|
2703 | 328 |
|
2968 | 329 |
#nameOfApplicationClass |
330 |
'For GUI applications: the name of your application class (subclass of ApplicationModel). |
|
331 |
This will be opened by the startup sequence and defines the UI.' |
|
332 |
||
333 |
#createNewApplication |
|
334 |
'Create a new simple dummy application (HelloWorld-like). |
|
335 |
Press this button to get some template code to play with - but enter a name first.' |
|
336 |
||
337 |
#nameOfStartupClass |
|
338 |
'This class contains the main method, in which the show starts when the executable runs. |
|
339 |
Its main task is to parse command line arguments (if any) and fire up the real application. |
|
340 |
It should inherit from StandaloneStartup.' |
|
341 |
||
342 |
#createNewStartupClass |
|
343 |
'Create a new simple startup class which fires up the defined application. |
|
344 |
Press this button to get a standard startup class which does not care for command line args. |
|
345 |
But enter a name first.' |
|
346 |
||
2706 | 347 |
#browseSelectedProject |
348 |
'Open a SystemBrowser on the selected Project.' |
|
349 |
||
350 |
#hideSTXBasePackages |
|
351 |
'Only show packages which are not already included in the basic ST/X delivery.' |
|
2703 | 352 |
|
353 |
#'listOfNewProjectsName' |
|
2706 | 354 |
'PackageID (module:directory). |
355 |
The pull-down list contains packageIDs for which no ProjectDefinition exists (yet).' |
|
356 |
||
357 |
#'createNewProject' |
|
358 |
'PackageID (module:directory). |
|
359 |
Click to create a new (empty) ProjectDefinition for the given PackageID.' |
|
2703 | 360 |
|
2922 | 361 |
#clearBuildDirectory |
362 |
'Clear the build directory.' |
|
363 |
||
364 |
#makeAll |
|
365 |
'Build a self-installing deployable package.' |
|
366 |
||
367 |
#makeExe |
|
368 |
'Build the executable only (for test-running).' |
|
369 |
||
2973 | 370 |
#makeExeQuick |
371 |
'Quick build the executable only (for test-running). |
|
372 |
Does not regenerate the header files. Only the target package files are recreated.' |
|
373 |
||
2922 | 374 |
#makeOutput |
375 |
'Displays the output of the build process (make command).' |
|
376 |
||
377 |
#openExplorer |
|
378 |
'Open a Windows Explorer on the build directory. You can double-click on the built executable there.' |
|
379 |
||
380 |
#openFileBrowser |
|
381 |
'Open a Filebrowser on the build directory.' |
|
382 |
||
383 |
#stopMake |
|
384 |
'Abort the ongoing build process. Please clear the build directory afterwards to remove any leftover garbage.' |
|
385 |
||
2703 | 386 |
) |
2922 | 387 |
|
388 |
"Modified: / 06-09-2012 / 16:09:10 / cg" |
|
2703 | 389 |
! ! |
390 |
||
2636 | 391 |
!ProjectBuilderAssistantApplication class methodsFor:'interface specs'! |
392 |
||
2645 | 393 |
page1_projectTypeSelectionSpec |
2636 | 394 |
"This resource specification was automatically generated |
395 |
by the UIPainter of ST/X." |
|
396 |
||
397 |
"Do not manually edit this!! If it is corrupted, |
|
398 |
the UIPainter may not be able to read the specification." |
|
399 |
||
400 |
" |
|
2648 | 401 |
UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page1_projectTypeSelectionSpec |
402 |
Tools::ProjectBuilderAssistantApplication new openInterface:#page1_projectTypeSelectionSpec |
|
2636 | 403 |
" |
404 |
||
405 |
<resource: #canvas> |
|
406 |
||
407 |
^ |
|
408 |
#(FullSpec |
|
2645 | 409 |
name: #'page1_projectTypeSelectionSpec' |
2636 | 410 |
window: |
411 |
(WindowSpec |
|
412 |
label: 'Project Selection' |
|
413 |
name: 'Project Selection' |
|
414 |
min: (Point 0 0) |
|
415 |
bounds: (Rectangle 0 0 626 394) |
|
416 |
) |
|
417 |
component: |
|
418 |
(SpecCollection |
|
419 |
collection: ( |
|
420 |
(FramedBoxSpec |
|
2706 | 421 |
label: 'Project Type' |
2636 | 422 |
name: 'FramedBox1' |
2698
64d179f1eae7
changed: #page1_projectTypeSelectionSpec
Claus Gittinger <cg@exept.de>
parents:
2697
diff
changeset
|
423 |
layout: (LayoutFrame 0 0.0 0 0 4 1.0 120 0) |
2706 | 424 |
activeHelpKey: projectType |
2636 | 425 |
labelPosition: topLeft |
426 |
translateLabel: true |
|
427 |
component: |
|
428 |
(SpecCollection |
|
429 |
collection: ( |
|
430 |
(VerticalPanelViewSpec |
|
431 |
name: 'VerticalPanel1' |
|
432 |
layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) |
|
433 |
horizontalLayout: leftSpace |
|
434 |
verticalLayout: topSpace |
|
435 |
horizontalSpace: 3 |
|
436 |
verticalSpace: 3 |
|
437 |
component: |
|
438 |
(SpecCollection |
|
439 |
collection: ( |
|
440 |
(ViewSpec |
|
441 |
name: 'Box1' |
|
442 |
extent: (Point 10 10) |
|
443 |
) |
|
444 |
(RadioButtonSpec |
|
445 |
label: 'GUI Application' |
|
446 |
name: 'RadioButton1' |
|
447 |
translateLabel: true |
|
2659 | 448 |
model: projectTypeHolder |
2636 | 449 |
isTriggerOnDown: true |
450 |
onCallBackSelector: projectTypeChanged |
|
2897 | 451 |
select: #'GUI-Application' |
2636 | 452 |
extent: (Point 136 22) |
453 |
) |
|
454 |
(RadioButtonSpec |
|
455 |
label: 'Non-GUI Application' |
|
456 |
name: 'RadioButton2' |
|
457 |
translateLabel: true |
|
2659 | 458 |
model: projectTypeHolder |
2636 | 459 |
isTriggerOnDown: true |
460 |
onCallBackSelector: projectTypeChanged |
|
2897 | 461 |
select: #'NonGUI-Application' |
2636 | 462 |
extent: (Point 136 22) |
463 |
) |
|
464 |
(RadioButtonSpec |
|
465 |
label: 'Class Library' |
|
466 |
name: 'RadioButton3' |
|
467 |
translateLabel: true |
|
2659 | 468 |
model: projectTypeHolder |
2636 | 469 |
isTriggerOnDown: true |
470 |
onCallBackSelector: projectTypeChanged |
|
2897 | 471 |
select: #Library |
2636 | 472 |
extent: (Point 136 22) |
473 |
) |
|
474 |
) |
|
475 |
||
476 |
) |
|
477 |
) |
|
478 |
) |
|
479 |
||
480 |
) |
|
481 |
) |
|
482 |
(FramedBoxSpec |
|
2726
7263301b5216
changed: #page1_projectTypeSelectionSpec
Claus Gittinger <cg@exept.de>
parents:
2725
diff
changeset
|
483 |
label: 'Existing Projects of this Type (PackageIDs)' |
2636 | 484 |
name: 'FramedBox2' |
2698
64d179f1eae7
changed: #page1_projectTypeSelectionSpec
Claus Gittinger <cg@exept.de>
parents:
2697
diff
changeset
|
485 |
layout: (LayoutFrame 0 0.0 123 0 4 1.0 0 1) |
2706 | 486 |
activeHelpKey: existingProjects |
2636 | 487 |
labelPosition: topLeft |
488 |
translateLabel: true |
|
489 |
component: |
|
490 |
(SpecCollection |
|
491 |
collection: ( |
|
492 |
(VariableHorizontalPanelSpec |
|
493 |
name: 'VariableHorizontalPanel1' |
|
494 |
layout: (LayoutFrame 0 0 4 0 0 1 -26 1) |
|
495 |
component: |
|
496 |
(SpecCollection |
|
497 |
collection: ( |
|
498 |
(SequenceViewSpec |
|
499 |
name: 'List1' |
|
500 |
model: selectedProjectIndexHolder |
|
501 |
hasHorizontalScrollBar: true |
|
502 |
hasVerticalScrollBar: true |
|
503 |
useIndex: true |
|
2686
5a19c21dada0
ensure starup and application are in the classList of the projectDef
Claus Gittinger <cg@exept.de>
parents:
2685
diff
changeset
|
504 |
sequenceList: listOfMatchingPackageIds |
2636 | 505 |
) |
506 |
(TextEditorSpec |
|
507 |
name: 'TextEditor1' |
|
508 |
model: selectedProjectsComment |
|
509 |
hasHorizontalScrollBar: true |
|
510 |
hasVerticalScrollBar: true |
|
511 |
isReadOnly: true |
|
512 |
hasKeyboardFocusInitially: false |
|
513 |
) |
|
514 |
) |
|
515 |
||
516 |
) |
|
517 |
handles: (Any 0.34560327198364 1.0) |
|
518 |
) |
|
519 |
(CheckBoxSpec |
|
520 |
label: 'Hide ST/X Base Packages' |
|
521 |
name: 'CheckBox1' |
|
2659 | 522 |
layout: (LayoutFrame -1 0 -18 1 0 1 4 1) |
2706 | 523 |
activeHelpKey: hideSTXBasePackages |
2636 | 524 |
model: hideSTXProjects |
525 |
translateLabel: true |
|
526 |
) |
|
527 |
) |
|
528 |
||
529 |
) |
|
530 |
) |
|
531 |
) |
|
532 |
||
533 |
) |
|
534 |
) |
|
2897 | 535 |
|
536 |
"Modified: / 20-07-2012 / 13:27:45 / cg" |
|
2636 | 537 |
! |
538 |
||
2645 | 539 |
page2_projectSelectionSpec |
2636 | 540 |
"This resource specification was automatically generated |
541 |
by the UIPainter of ST/X." |
|
542 |
||
543 |
"Do not manually edit this!! If it is corrupted, |
|
544 |
the UIPainter may not be able to read the specification." |
|
545 |
||
546 |
" |
|
2648 | 547 |
UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page2_projectSelectionSpec |
548 |
Tools::ProjectBuilderAssistantApplication new openInterface:#page2_projectSelectionSpec |
|
2636 | 549 |
" |
550 |
||
551 |
<resource: #canvas> |
|
552 |
||
553 |
^ |
|
554 |
#(FullSpec |
|
2645 | 555 |
name: #'page2_projectSelectionSpec' |
2636 | 556 |
window: |
557 |
(WindowSpec |
|
558 |
label: 'Project Selection' |
|
559 |
name: 'Project Selection' |
|
560 |
min: (Point 0 0) |
|
561 |
bounds: (Rectangle 0 0 521 453) |
|
562 |
) |
|
563 |
component: |
|
564 |
(SpecCollection |
|
565 |
collection: ( |
|
566 |
(FramedBoxSpec |
|
2706 | 567 |
label: 'New Project''s PackageID' |
2636 | 568 |
name: 'FramedBox3' |
569 |
layout: (LayoutFrame 0 0.0 5 0 4 1.0 72 0) |
|
570 |
labelPosition: topLeft |
|
571 |
translateLabel: true |
|
572 |
component: |
|
573 |
(SpecCollection |
|
574 |
collection: ( |
|
2706 | 575 |
(ExtendedComboBoxSpec |
576 |
name: 'NewProjectsNameListExtendedComboBox' |
|
577 |
layout: (LayoutFrame 1 0 6 0 -113 1 28 0) |
|
578 |
model: newProjectsName |
|
579 |
readOnly: false |
|
580 |
miniScrollerHorizontal: true |
|
581 |
postBuildCallback: postBuildNewProjectsNameListExtendedComboBox: |
|
582 |
activeHelpKey: listOfNewProjectsName |
|
583 |
) |
|
2636 | 584 |
(ActionButtonSpec |
585 |
label: 'Create' |
|
586 |
name: 'Button1' |
|
2659 | 587 |
layout: (LayoutFrame -100 1 6 0 2 1 28 0) |
2636 | 588 |
translateLabel: true |
589 |
model: createNewProject |
|
2703 | 590 |
activeHelpKey: createNewProject |
2706 | 591 |
|
2636 | 592 |
) |
2706 | 593 |
|
2636 | 594 |
) |
595 |
||
596 |
) |
|
597 |
) |
|
598 |
(FramedBoxSpec |
|
2706 | 599 |
label: 'Existing Projects with ProjectDefinition' |
2636 | 600 |
name: 'FramedBox4' |
2648 | 601 |
layout: (LayoutFrame 0 0.0 70 0 4 1.0 -30 1) |
2636 | 602 |
labelPosition: topLeft |
603 |
translateLabel: true |
|
604 |
component: |
|
605 |
(SpecCollection |
|
606 |
collection: ( |
|
607 |
(VariableHorizontalPanelSpec |
|
608 |
name: 'VariableHorizontalPanel2' |
|
609 |
layout: (LayoutFrame 0 0 4 0 0 1 -26 1) |
|
610 |
component: |
|
611 |
(SpecCollection |
|
612 |
collection: ( |
|
613 |
(SequenceViewSpec |
|
614 |
name: 'List2' |
|
615 |
model: selectedProjectIndexHolder |
|
616 |
hasHorizontalScrollBar: true |
|
617 |
hasVerticalScrollBar: true |
|
618 |
useIndex: true |
|
2686
5a19c21dada0
ensure starup and application are in the classList of the projectDef
Claus Gittinger <cg@exept.de>
parents:
2685
diff
changeset
|
619 |
sequenceList: listOfMatchingPackageIds |
2636 | 620 |
) |
621 |
(TextEditorSpec |
|
622 |
name: 'TextEditor2' |
|
623 |
model: selectedProjectsComment |
|
624 |
hasHorizontalScrollBar: true |
|
625 |
hasVerticalScrollBar: true |
|
626 |
isReadOnly: true |
|
627 |
hasKeyboardFocusInitially: false |
|
628 |
viewClassName: 'TextView' |
|
629 |
) |
|
630 |
) |
|
631 |
||
632 |
) |
|
633 |
handles: (Any 0.34560327198364 1.0) |
|
634 |
) |
|
635 |
(CheckBoxSpec |
|
636 |
label: 'Hide ST/X Base Packages' |
|
637 |
name: 'CheckBox1' |
|
2659 | 638 |
layout: (LayoutFrame -1 0 -17 1 0 1 5 1) |
2636 | 639 |
model: hideSTXProjects |
640 |
translateLabel: true |
|
2706 | 641 |
activeHelpKey: hideSTXBasePackages |
2636 | 642 |
) |
643 |
) |
|
644 |
||
645 |
) |
|
646 |
) |
|
2648 | 647 |
(HorizontalPanelViewSpec |
648 |
name: 'HorizontalPanel1' |
|
649 |
layout: (LayoutFrame 0 0 -30 1 0 1 0 1) |
|
650 |
horizontalLayout: leftSpace |
|
651 |
verticalLayout: center |
|
652 |
horizontalSpace: 3 |
|
653 |
verticalSpace: 3 |
|
654 |
component: |
|
655 |
(SpecCollection |
|
656 |
collection: ( |
|
657 |
(ActionButtonSpec |
|
658 |
label: 'Browse Selected Project' |
|
659 |
name: 'Button3' |
|
660 |
translateLabel: true |
|
661 |
model: doBrowseProject |
|
2659 | 662 |
enableChannel: hasProjectSelectedHolder |
2648 | 663 |
extent: (Point 180 22) |
2706 | 664 |
activeHelpKey: browseSelectedProject |
2648 | 665 |
) |
666 |
) |
|
667 |
||
668 |
) |
|
2636 | 669 |
) |
670 |
) |
|
671 |
||
672 |
) |
|
673 |
) |
|
674 |
! |
|
675 |
||
2645 | 676 |
page3_applicationSelectionSpec |
2636 | 677 |
"This resource specification was automatically generated |
678 |
by the UIPainter of ST/X." |
|
679 |
||
680 |
"Do not manually edit this!! If it is corrupted, |
|
681 |
the UIPainter may not be able to read the specification." |
|
682 |
||
683 |
" |
|
2648 | 684 |
UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page3_applicationSelectionSpec |
685 |
Tools::ProjectBuilderAssistantApplication new openInterface:#page3_applicationSelectionSpec |
|
2636 | 686 |
" |
687 |
||
688 |
<resource: #canvas> |
|
689 |
||
690 |
^ |
|
691 |
#(FullSpec |
|
2645 | 692 |
name: #'page3_applicationSelectionSpec' |
2636 | 693 |
window: |
694 |
(WindowSpec |
|
695 |
label: 'Application Selection' |
|
696 |
name: 'Application Selection' |
|
697 |
min: (Point 0 0) |
|
2671 | 698 |
bounds: (Rectangle 0 0 519 406) |
2636 | 699 |
) |
700 |
component: |
|
701 |
(SpecCollection |
|
702 |
collection: ( |
|
703 |
(FramedBoxSpec |
|
2725 | 704 |
label: 'New Application Class' |
2636 | 705 |
name: 'FramedBox3' |
2725 | 706 |
layout: (LayoutFrame 0 0.0 5 0 4 1.0 70 0) |
2636 | 707 |
labelPosition: topLeft |
708 |
translateLabel: true |
|
709 |
component: |
|
710 |
(SpecCollection |
|
711 |
collection: ( |
|
712 |
(InputFieldSpec |
|
713 |
name: 'EntryField1' |
|
2659 | 714 |
layout: (LayoutFrame 1 0 6 0 -113 1 28 0) |
2636 | 715 |
model: newApplicationsName |
716 |
acceptOnReturn: true |
|
717 |
acceptOnTab: true |
|
2693 | 718 |
acceptOnLostFocus: true |
2636 | 719 |
acceptOnPointerLeave: true |
720 |
emptyFieldReplacementText: 'MyApplication' |
|
2968 | 721 |
activeHelpKey: nameOfApplicationClass |
2636 | 722 |
) |
723 |
(ActionButtonSpec |
|
724 |
label: 'Create' |
|
725 |
name: 'Button1' |
|
2659 | 726 |
layout: (LayoutFrame -100 1 6 0 1 1 28 0) |
2636 | 727 |
translateLabel: true |
728 |
model: createNewApplication |
|
2968 | 729 |
activeHelpKey: createNewApplication |
2636 | 730 |
) |
731 |
) |
|
732 |
||
733 |
) |
|
734 |
) |
|
735 |
(FramedBoxSpec |
|
736 |
label: 'Existing Applications' |
|
737 |
name: 'FramedBox4' |
|
2725 | 738 |
layout: (LayoutFrame 0 0.0 72 0 4 1.0 -30 1) |
2636 | 739 |
labelPosition: topLeft |
740 |
translateLabel: true |
|
741 |
component: |
|
742 |
(SpecCollection |
|
743 |
collection: ( |
|
744 |
(VariableHorizontalPanelSpec |
|
745 |
name: 'VariableHorizontalPanel2' |
|
2671 | 746 |
layout: (LayoutFrame 0 0 4 0 0 1 -26 1) |
2636 | 747 |
component: |
748 |
(SpecCollection |
|
749 |
collection: ( |
|
750 |
(SequenceViewSpec |
|
751 |
name: 'List2' |
|
752 |
model: selectedApplicationIndexHolder |
|
753 |
hasHorizontalScrollBar: true |
|
754 |
hasVerticalScrollBar: true |
|
755 |
useIndex: true |
|
756 |
sequenceList: listOfApplicationsInProject |
|
2671 | 757 |
ignoreReselect: false |
2636 | 758 |
) |
759 |
(TextEditorSpec |
|
760 |
name: 'TextEditor2' |
|
761 |
model: selectedApplicationsComment |
|
762 |
hasHorizontalScrollBar: true |
|
763 |
hasVerticalScrollBar: true |
|
764 |
isReadOnly: true |
|
765 |
hasKeyboardFocusInitially: false |
|
766 |
viewClassName: 'TextView' |
|
767 |
) |
|
768 |
) |
|
769 |
||
770 |
) |
|
771 |
handles: (Any 0.34560327198364 1.0) |
|
772 |
) |
|
2671 | 773 |
(CheckBoxSpec |
774 |
label: 'Hide other Application Classes' |
|
775 |
name: 'CheckBox1' |
|
776 |
layout: (LayoutFrame -1 0 -18 1 0 1 4 1) |
|
777 |
model: hideOtherApplicationClasses |
|
778 |
translateLabel: true |
|
779 |
) |
|
2636 | 780 |
) |
781 |
||
782 |
) |
|
783 |
) |
|
2648 | 784 |
(HorizontalPanelViewSpec |
785 |
name: 'HorizontalPanel1' |
|
786 |
layout: (LayoutFrame 0 0 -30 1 0 1 0 1) |
|
787 |
horizontalLayout: leftSpace |
|
788 |
verticalLayout: center |
|
789 |
horizontalSpace: 3 |
|
790 |
verticalSpace: 3 |
|
791 |
component: |
|
792 |
(SpecCollection |
|
793 |
collection: ( |
|
794 |
(ActionButtonSpec |
|
795 |
label: 'Browse Selected Application' |
|
796 |
name: 'Button3' |
|
797 |
translateLabel: true |
|
798 |
model: doBrowseApplication |
|
2659 | 799 |
enableChannel: hasApplicationSelectedHolder |
800 |
extent: (Point 180 22) |
|
801 |
) |
|
802 |
(ActionButtonSpec |
|
803 |
label: 'Launch Selected Application' |
|
804 |
name: 'Button4' |
|
805 |
translateLabel: true |
|
806 |
model: doLaunchApplication |
|
807 |
enableChannel: hasApplicationSelectedHolder |
|
2648 | 808 |
extent: (Point 180 22) |
809 |
) |
|
810 |
) |
|
811 |
||
812 |
) |
|
2636 | 813 |
) |
814 |
) |
|
815 |
||
816 |
) |
|
817 |
) |
|
818 |
! |
|
819 |
||
2656 | 820 |
page4_startupClassSelectionSpec |
2636 | 821 |
"This resource specification was automatically generated |
822 |
by the UIPainter of ST/X." |
|
823 |
||
824 |
"Do not manually edit this!! If it is corrupted, |
|
825 |
the UIPainter may not be able to read the specification." |
|
826 |
||
827 |
" |
|
2656 | 828 |
UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page4_startupClassSelectionSpec |
829 |
Tools::ProjectBuilderAssistantApplication new openInterface:#page4_startupClassSelectionSpec |
|
2636 | 830 |
" |
831 |
||
832 |
<resource: #canvas> |
|
833 |
||
834 |
^ |
|
835 |
#(FullSpec |
|
2656 | 836 |
name: #'page4_startupClassSelectionSpec' |
837 |
window: |
|
838 |
(WindowSpec |
|
839 |
label: 'Startup Class Selection' |
|
840 |
name: 'Startup Class Selection' |
|
841 |
min: (Point 0 0) |
|
842 |
bounds: (Rectangle 0 0 521 408) |
|
843 |
) |
|
844 |
component: |
|
845 |
(SpecCollection |
|
846 |
collection: ( |
|
847 |
(FramedBoxSpec |
|
2725 | 848 |
label: 'New Startup Class' |
2656 | 849 |
name: 'FramedBox3' |
2725 | 850 |
layout: (LayoutFrame 0 0.0 5 0 4 1.0 70 0) |
2656 | 851 |
labelPosition: topLeft |
852 |
translateLabel: true |
|
853 |
component: |
|
854 |
(SpecCollection |
|
855 |
collection: ( |
|
856 |
(InputFieldSpec |
|
857 |
name: 'EntryField1' |
|
2659 | 858 |
layout: (LayoutFrame 1 0 6 0 -113 1 28 0) |
2656 | 859 |
model: newStartupClassName |
860 |
acceptOnReturn: true |
|
861 |
acceptOnTab: true |
|
2693 | 862 |
acceptOnLostFocus: true |
2656 | 863 |
acceptOnPointerLeave: true |
864 |
emptyFieldReplacementText: 'MyStandAloneStartup' |
|
2968 | 865 |
activeHelpKey: nameOfStartupClass |
2656 | 866 |
) |
867 |
(ActionButtonSpec |
|
868 |
label: 'Create' |
|
869 |
name: 'Button1' |
|
2659 | 870 |
layout: (LayoutFrame -100 1 6 0 1 1 28 0) |
2656 | 871 |
translateLabel: true |
872 |
model: createNewStartupClass |
|
2968 | 873 |
activeHelpKey: createNewStartupClass |
2656 | 874 |
) |
875 |
) |
|
876 |
||
877 |
) |
|
878 |
) |
|
879 |
(FramedBoxSpec |
|
2725 | 880 |
label: 'Existing Startup Classes' |
2656 | 881 |
name: 'FramedBox4' |
2725 | 882 |
layout: (LayoutFrame 0 0.0 72 0 4 1.0 -30 1) |
2656 | 883 |
labelPosition: topLeft |
884 |
translateLabel: true |
|
885 |
component: |
|
886 |
(SpecCollection |
|
887 |
collection: ( |
|
888 |
(VariableHorizontalPanelSpec |
|
889 |
name: 'VariableHorizontalPanel2' |
|
2671 | 890 |
layout: (LayoutFrame 0 0 4 0 0 1 -26 1) |
2656 | 891 |
component: |
892 |
(SpecCollection |
|
893 |
collection: ( |
|
894 |
(SequenceViewSpec |
|
895 |
name: 'List2' |
|
896 |
model: selectedStartupClassIndexHolder |
|
897 |
hasHorizontalScrollBar: true |
|
898 |
hasVerticalScrollBar: true |
|
899 |
useIndex: true |
|
900 |
sequenceList: listOfStartupClassesInProject |
|
901 |
) |
|
902 |
(TextEditorSpec |
|
903 |
name: 'TextEditor2' |
|
904 |
model: selectedStartupClassesComment |
|
905 |
hasHorizontalScrollBar: true |
|
906 |
hasVerticalScrollBar: true |
|
907 |
isReadOnly: true |
|
908 |
hasKeyboardFocusInitially: false |
|
909 |
viewClassName: 'TextView' |
|
910 |
) |
|
911 |
) |
|
912 |
||
913 |
) |
|
914 |
handles: (Any 0.34560327198364 1.0) |
|
915 |
) |
|
2671 | 916 |
(CheckBoxSpec |
917 |
label: 'Hide other Startup Classes' |
|
918 |
name: 'CheckBox1' |
|
919 |
layout: (LayoutFrame -1 0 -20 1 0 1 2 1) |
|
920 |
model: hideOtherStartupClasses |
|
921 |
translateLabel: true |
|
922 |
) |
|
2656 | 923 |
) |
924 |
||
925 |
) |
|
926 |
) |
|
927 |
(HorizontalPanelViewSpec |
|
928 |
name: 'HorizontalPanel1' |
|
929 |
layout: (LayoutFrame 0 0 -30 1 0 1 0 1) |
|
930 |
horizontalLayout: leftSpace |
|
931 |
verticalLayout: center |
|
932 |
horizontalSpace: 3 |
|
933 |
verticalSpace: 3 |
|
934 |
component: |
|
935 |
(SpecCollection |
|
936 |
collection: ( |
|
937 |
(ActionButtonSpec |
|
938 |
label: 'Browse Selected StartupClass' |
|
939 |
name: 'Button3' |
|
940 |
translateLabel: true |
|
941 |
model: doBrowseStartupClass |
|
2659 | 942 |
enableChannel: hasStartupClassSelectedHolder |
2656 | 943 |
extent: (Point 180 22) |
944 |
) |
|
945 |
) |
|
946 |
||
947 |
) |
|
948 |
) |
|
949 |
) |
|
950 |
||
951 |
) |
|
952 |
) |
|
953 |
! |
|
954 |
||
955 |
page5_specifyIncludedClasses |
|
956 |
"This resource specification was automatically generated |
|
957 |
by the UIPainter of ST/X." |
|
958 |
||
959 |
"Do not manually edit this!! If it is corrupted, |
|
960 |
the UIPainter may not be able to read the specification." |
|
961 |
||
962 |
" |
|
963 |
UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page5_specifyIncludedClasses |
|
964 |
Tools::ProjectBuilderAssistantApplication new openInterface:#page5_specifyIncludedClasses |
|
965 |
" |
|
966 |
||
967 |
<resource: #canvas> |
|
968 |
||
969 |
^ |
|
970 |
#(FullSpec |
|
971 |
name: #'page5_specifyIncludedClasses' |
|
2636 | 972 |
window: |
973 |
(WindowSpec |
|
974 |
label: 'Project Selection' |
|
975 |
name: 'Project Selection' |
|
976 |
min: (Point 0 0) |
|
977 |
bounds: (Rectangle 0 0 521 400) |
|
978 |
) |
|
979 |
component: |
|
980 |
(SpecCollection |
|
981 |
collection: ( |
|
982 |
(FramedBoxSpec |
|
983 |
label: 'Project Contents' |
|
984 |
name: 'FramedBox3' |
|
2648 | 985 |
layout: (LayoutFrame 0 0.0 5 0 4 1.0 -30 1) |
2636 | 986 |
labelPosition: topLeft |
987 |
translateLabel: true |
|
988 |
component: |
|
989 |
(SpecCollection |
|
990 |
collection: ( |
|
991 |
(SequenceViewSpec |
|
992 |
name: 'List1' |
|
993 |
layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
|
994 |
initiallyDisabled: true |
|
995 |
hasHorizontalScrollBar: true |
|
996 |
hasVerticalScrollBar: true |
|
997 |
useIndex: false |
|
998 |
sequenceList: listOfClassesInProject |
|
999 |
) |
|
1000 |
) |
|
1001 |
||
1002 |
) |
|
1003 |
) |
|
2648 | 1004 |
(HorizontalPanelViewSpec |
1005 |
name: 'HorizontalPanel1' |
|
1006 |
layout: (LayoutFrame 0 0 -30 1 0 1 0 1) |
|
1007 |
horizontalLayout: center |
|
1008 |
verticalLayout: center |
|
1009 |
horizontalSpace: 3 |
|
1010 |
verticalSpace: 3 |
|
1011 |
component: |
|
1012 |
(SpecCollection |
|
1013 |
collection: ( |
|
1014 |
(ActionButtonSpec |
|
1015 |
label: 'Browse Project Definition' |
|
1016 |
name: 'Button3' |
|
1017 |
translateLabel: true |
|
2659 | 1018 |
model: doBrowseProjectDefinitionClass |
2648 | 1019 |
extent: (Point 180 22) |
1020 |
) |
|
1021 |
(ActionButtonSpec |
|
1022 |
label: 'Update Contents (Scan)' |
|
1023 |
name: 'Button4' |
|
1024 |
translateLabel: true |
|
1025 |
model: doGenerateProjectContentsDefinition |
|
1026 |
extent: (Point 180 22) |
|
1027 |
) |
|
1028 |
) |
|
1029 |
||
1030 |
) |
|
2636 | 1031 |
) |
1032 |
) |
|
1033 |
||
1034 |
) |
|
1035 |
) |
|
1036 |
! |
|
1037 |
||
2872 | 1038 |
page5b_specifyPrerequisitePackages |
1039 |
"This resource specification was automatically generated |
|
1040 |
by the UIPainter of ST/X." |
|
1041 |
||
1042 |
"Do not manually edit this!! If it is corrupted, |
|
1043 |
the UIPainter may not be able to read the specification." |
|
1044 |
||
1045 |
" |
|
1046 |
UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page5b_specifyPrerequisitePackages |
|
1047 |
Tools::ProjectBuilderAssistantApplication new openInterface:#page5b_specifyPrerequisitePackages |
|
1048 |
" |
|
1049 |
||
1050 |
<resource: #canvas> |
|
1051 |
||
1052 |
^ |
|
1053 |
#(FullSpec |
|
1054 |
name: #'page5b_specifyPrerequisitePackages' |
|
1055 |
window: |
|
1056 |
(WindowSpec |
|
1057 |
label: 'Project Selection' |
|
1058 |
name: 'Project Selection' |
|
1059 |
min: (Point 0 0) |
|
1060 |
bounds: (Rectangle 0 0 521 400) |
|
1061 |
) |
|
1062 |
component: |
|
1063 |
(SpecCollection |
|
1064 |
collection: ( |
|
1065 |
(FramedBoxSpec |
|
1066 |
label: 'Prerequisite Packages' |
|
1067 |
name: 'FramedBox3' |
|
1068 |
layout: (LayoutFrame 0 0.0 5 0 4 1.0 -30 1) |
|
1069 |
labelPosition: topLeft |
|
1070 |
translateLabel: true |
|
1071 |
component: |
|
1072 |
(SpecCollection |
|
1073 |
collection: ( |
|
1074 |
(SequenceViewSpec |
|
1075 |
name: 'List1' |
|
1076 |
layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
|
1077 |
initiallyDisabled: true |
|
1078 |
hasHorizontalScrollBar: true |
|
1079 |
hasVerticalScrollBar: true |
|
1080 |
useIndex: false |
|
1081 |
sequenceList: listOfPrerequisitesInProject |
|
1082 |
) |
|
1083 |
) |
|
1084 |
||
1085 |
) |
|
1086 |
) |
|
1087 |
(HorizontalPanelViewSpec |
|
1088 |
name: 'HorizontalPanel1' |
|
1089 |
layout: (LayoutFrame 0 0 -30 1 0 1 0 1) |
|
1090 |
horizontalLayout: center |
|
1091 |
verticalLayout: center |
|
1092 |
horizontalSpace: 3 |
|
1093 |
verticalSpace: 3 |
|
1094 |
component: |
|
1095 |
(SpecCollection |
|
1096 |
collection: ( |
|
1097 |
(ActionButtonSpec |
|
1098 |
label: 'Browse Project Definition' |
|
1099 |
name: 'Button3' |
|
1100 |
translateLabel: true |
|
2959
ab140a3e5eb6
class: Tools::ProjectBuilderAssistantApplication
Claus Gittinger <cg@exept.de>
parents:
2930
diff
changeset
|
1101 |
model: doBrowseProjectDefinitionClassForPrereqs |
2872 | 1102 |
extent: (Point 180 22) |
1103 |
) |
|
1104 |
(ActionButtonSpec |
|
1105 |
label: 'Update Prerequisites (Scan)' |
|
1106 |
name: 'Button4' |
|
1107 |
translateLabel: true |
|
1108 |
model: doGenerateProjectPrerequisitesDefinition |
|
1109 |
extent: (Point 180 22) |
|
1110 |
) |
|
1111 |
) |
|
1112 |
||
1113 |
) |
|
1114 |
) |
|
1115 |
) |
|
1116 |
||
1117 |
) |
|
1118 |
) |
|
1119 |
||
1120 |
"Modified: / 19-01-2012 / 15:45:14 / cg" |
|
1121 |
! |
|
1122 |
||
2724 | 1123 |
page6a_specifyProjectAttributes |
2636 | 1124 |
"This resource specification was automatically generated |
1125 |
by the UIPainter of ST/X." |
|
1126 |
||
1127 |
"Do not manually edit this!! If it is corrupted, |
|
1128 |
the UIPainter may |