Tools__ProjectBuilderAssistantApplication.st
author Claus Gittinger <cg@exept.de>
Tue, 14 May 2019 09:46:21 +0200
changeset 3663 9d49ecf8661a
parent 3651 9fc108cad4bf
permissions -rw-r--r--
#UI_ENHANCEMENT by cg
class: TabListEditor class
changed:
#canvasSpec
#menu
#windowSpec
cg@3520
     1
"{ Encoding: utf8 }"
cg@3520
     2
cg@2742
     3
"
cg@2742
     4
 COPYRIGHT (c) 2009 by eXept Software AG
cg@2742
     5
              All Rights Reserved
cg@2742
     6
cg@2742
     7
 This software is furnished under a license and may be used
cg@2742
     8
 only in accordance with the terms of that license and with the
cg@2742
     9
 inclusion of the above copyright notice.   This software may not
cg@2742
    10
 be provided or otherwise made available to, or used by, any
cg@2742
    11
 other person.  No title to or ownership of the software is
cg@2742
    12
 hereby transferred.
cg@2742
    13
"
cg@2636
    14
"{ Package: 'stx:libtool2' }"
cg@2636
    15
cg@2636
    16
"{ NameSpace: Tools }"
cg@2636
    17
cg@2636
    18
AssistantApplication subclass:#ProjectBuilderAssistantApplication
cg@2687
    19
	instanceVariableNames:'packageToBuildHolder projectType projectTypeHolder
cg@2687
    20
		selectedProjectIndexHolder selectedProjectDefinition
cg@2687
    21
		listOfMatchingProjects listOfMatchingPackageIds
cg@2687
    22
		selectedProjectsComment hasProjectSelectedHolder newProjectsName
cg@2687
    23
		hideSTXProjects hideOtherApplicationClasses
cg@2687
    24
		hideOtherStartupClasses startMakeButtonEnabled
cg@2687
    25
		stopMakeButtonVisible makeOutputHolder newApplicationsName
cg@2687
    26
		listOfApplicationsInProject selectedApplicationIndexHolder
cg@2687
    27
		selectedApplication hasApplicationSelectedHolder
cg@2687
    28
		listOfStartupClassesInProject selectedStartupClassIndexHolder
cg@2687
    29
		selectedStartupClass hasStartupClassSelectedHolder
cg@2687
    30
		selectedApplicationsComment buildDirectoryHolder makeProcess
cg@2687
    31
		listOfClassesInProject makeOutputWindow projectBuilder
fm@2705
    32
		newStartupClassName usedCompilerHolder listOfNewProjectsName
cg@2724
    33
		newProjectsNameListExtendedComboBox productNameHolder
cg@2724
    34
		companyNameHolder compilerWarnMessageHolder
cg@2910
    35
		compilerWarnMessageVisibleHolder listOfPrerequisitesInProject
cg@2919
    36
		nameOfUsedCompilerSuiteHolder usedCompilerIndexHolder'
cg@2959
    37
	classVariableNames:'LastUsedCompiler Debugging'
cg@2687
    38
	poolDictionaries:''
cg@2687
    39
	category:'System-Support-Projects'
cg@2636
    40
!
cg@2636
    41
cg@2668
    42
!ProjectBuilderAssistantApplication class methodsFor:'documentation'!
cg@2668
    43
cg@2742
    44
copyright
cg@2742
    45
"
cg@2742
    46
 COPYRIGHT (c) 2009 by eXept Software AG
cg@2742
    47
              All Rights Reserved
cg@2742
    48
cg@2742
    49
 This software is furnished under a license and may be used
cg@2742
    50
 only in accordance with the terms of that license and with the
cg@2742
    51
 inclusion of the above copyright notice.   This software may not
cg@2742
    52
 be provided or otherwise made available to, or used by, any
cg@2742
    53
 other person.  No title to or ownership of the software is
cg@2742
    54
 hereby transferred.
cg@2742
    55
"
cg@2742
    56
!
cg@2742
    57
cg@2668
    58
documentation
cg@2668
    59
"
cg@2668
    60
    a user friendly interface to the build process.
cg@2668
    61
    Simply wraps up existing tools like the CodeGeneratorTool, the browsers
cg@2668
    62
    and the ProjetBuilder
cg@2668
    63
cg@2668
    64
    [see also:]
cg@2668
    65
        CodeGeneratorTool
cg@2668
    66
        ProjectBuilder
cg@2668
    67
        ProjectDefinition
cg@2668
    68
cg@2668
    69
    [author:]
cg@2668
    70
        Claus Gittinger
cg@2668
    71
"
fm@2721
    72
!
fm@2721
    73
fm@2721
    74
help
cg@2825
    75
"
cg@2825
    76
  Packager - A Standalone-Executable Builder and Packager
fm@2721
    77
mawalch@3320
    78
    This assistant-application allows for standalone applications to be built very easily.
mawalch@3320
    79
    It will generate all required classes, files, start the compilation process,
mawalch@3320
    80
    generate a self-installable executable with a few mouse clicks.
cg@2825
    81
cg@2825
    82
    A simple demo application like the famous 'Hello World' can be generated in a few minutes.
cg@2825
    83
cg@2825
    84
  Prerequisites
cg@2825
    85
cg@2825
    86
    * Windows Users:
mawalch@3320
    87
    Please install either the 'Borland Free Commandline Compiler Tools (bcc32)'
mawalch@3320
    88
    or the 'Microsoft Visual-C++' package (also free).
cg@2825
    89
     In addition, the 'NullSoft NSIS-Installer Package' is required.
cg@2825
    90
mawalch@3320
    91
    Due to limitations and bugs in the Visual-C++ compiler (limit on the size of
mawalch@3320
    92
    string-constants), some Smalltalk code is still not compilable
mawalch@3320
    93
    (currently, this affects classes which contain image-resource methods for big images).
mawalch@3320
    94
    Although microsoft is doing their best (a relative measure) to make things better
mawalch@3320
    95
    (they increase the string-limit with every new release), they still seem to be unable
mawalch@3320
    96
    to figure out how ti use malloc for string-data).
mawalch@3320
    97
    We are patiently waiting for a real fix and still using bcc in the meanwhile.
mawalch@3320
    98
    Therefore, we recommend using the borland compiler suite.
mawalch@3320
    99
    Please install it at its standard location ('C:\Borland') as our makefiles might
mawalch@3320
   100
    still contain hard-coded paths (yes, we are ashamed about this).
cg@2825
   101
cg@2825
   102
    * Unix Users:
mawalch@3320
   103
    You should already have the gcc compile suite (including all required header files)
mawalch@3320
   104
    installed and ready to use. For a lack of time on our side, there is currently no
mawalch@3320
   105
    self-installer support for Unix. The packager will generate a zipped tar file,
cg@2825
   106
    which must be deployed and unpacked for use. This may change in the near future.
cg@2825
   107
cg@2825
   108
  Packages, Projects, PackageIDs and ProjectDefinitions
cg@2825
   109
cg@2825
   110
    Smalltalk basically uses two objects for packaging:
cg@2825
   111
cg@2825
   112
        * PackageIDs (also called ProjectID's occasionally)
mawalch@3320
   113
        * ProjectDefinitions
mawalch@3320
   114
mawalch@3320
   115
    Older ST/X versions used instances of a Project class - this is now obsolete and
mawalch@3320
   116
    removed from the system (although there are still some minor uses of it,
mawalch@3320
   117
    which might remain there for backward compatibility for some time, as some customers
cg@2825
   118
    have built their own packaging scheme around it).
cg@2825
   119
cg@2825
   120
  PackageIDs
cg@2825
   121
mawalch@3320
   122
    These are simple symbols and are attached to classes and methods. If a method has
cg@2825
   123
    a packageID different from its class, it is called an extension method.
mawalch@3320
   124
    PackageIDs must have a certain fixed format: they always contain exactly two parts,
mawalch@3320
   125
    which are separated by a colon character: the module and the directory part.
mawalch@3320
   126
    The module is used as main-selector on where and how the source code repository is
mawalch@3320
   127
    accessed. The directory is a path below that repository. If checked out into the local
mawalch@3320
   128
    filesystem, the module defines the top-level directory. Thus, if a packageID is
mawalch@3320
   129
    'stx:libbasic', the corresponding sources will be found in the repository associated
mawalch@3320
   130
    to the 'stx' module, under the directory 'libbasic'.
mawalch@3320
   131
    In the local file system, it will be found under 'stx/libbasic'.
mawalch@3320
   132
    As another example, if the packageID is 'exept:expecco/plugins/foo',
mawalch@3320
   133
    the repository is whichever is associated with the 'exept' module, and the subdirectory
mawalch@3320
   134
    is 'expecco/plugins/foo'. The local path to the sourcefiles would be
cg@2825
   135
    'exept/expecco/plugins/foo'.
cg@2825
   136
mawalch@3320
   137
    Please notice that it does make sense to associate different repositories to different
mawalch@3320
   138
    modules: for example, you could setup the sourceCodeManager to use CVS access to the
mawalch@3320
   139
    exept repository for everything under the 'stx' module,
mawalch@3320
   140
    and at the same time, use a local SVN repository for everything under the 'myCompany'
cg@2825
   141
    module.
cg@2825
   142
cg@2825
   143
  ProjectDefinitions
cg@2825
   144
mawalch@3320
   145
    These describe the contents of a project, such as the classes to include,
mawalch@3320
   146
    the set of extension methods, any additional compilation information.
cg@2825
   147
    ProjectDefinitions come in 3 flavours:
cg@2825
   148
cg@2825
   149
        * GUI Application Definition
cg@2825
   150
        * non-GUI Application Definition
mawalch@3320
   151
        * ClassLibrary Definition
mawalch@3320
   152
mawalch@3320
   153
    ProjectDefinitions are stored and managed as class-instances, located as subclasses
mawalch@3320
   154
    of one of ApplicationDefinition or LibraryDefinition.
mawalch@3320
   155
    As classes, they are themself managed, compiled and packaged as part of the project
mawalch@3320
   156
    (and also have the same PackageID as their components).
cg@2825
   157
    They are also treated like any other class w.r.t. source code management.
cg@2825
   158
cg@2825
   159
  Packaging
cg@2825
   160
mawalch@3320
   161
    All classes and extension methods belonging to a single package are supposed to be
mawalch@3320
   162
    loaded (and possibly unloaded) together. They are also usually deployed inside a single
mawalch@3320
   163
    dynamic link library ('dll', for short). In the Unix world, these are called
mawalch@3320
   164
    'shared object' or 'so'.
mawalch@3320
   165
    Finally, they are stored in a common directory both on the local file system and in a
cg@2825
   166
    source code repository (CVS, SVN, etc.).
cg@2825
   167
cg@2825
   168
  Structure of a Project
cg@2825
   169
cg@2825
   170
    The artefacts as manipulated by the packager are:
cg@2825
   171
cg@2825
   172
        * the ProjectDefinition class
mawalch@3320
   173
          This defines the type of application (GUI / non-GUI),
mawalch@3320
   174
          its contents (i.e. the set of classes to be included in the binary itself and
mawalch@3320
   175
          the set of library-dll's to be included in the deployed package),
cg@2825
   176
          and some other metadata, such as icon, title etc.
cg@2825
   177
cg@2825
   178
        * the ApplicationModel class
cg@2825
   179
          This defines the GUI, and is typically created using the UI-Painter.
cg@2825
   180
cg@2825
   181
        * the Startup class
mawalch@3320
   182
          This is the first class which gets control when the executable is started;
mawalch@3320
   183
          it can analyze the command line arguments, read patches or updates,
mawalch@3320
   184
          start background ptocesses, and will eventually open the applications GUI.
cg@2825
   185
cg@2825
   186
  Build Procedure
cg@2825
   187
mawalch@3320
   188
    All of the three components above can be generated by the packager to provide an
cg@2825
   189
    initial framework for further work.
cg@2825
   190
mawalch@3320
   191
    After the definition of those classes, all required files are stored in a temporary
mawalch@3320
   192
    build directory. This means that the above classes are filed out,
cg@2825
   193
    and make- and other support files are generated.
cg@2825
   194
mawalch@3320
   195
    Finally, the actual build process is started. This requires an external C-compiler.
mawalch@3320
   196
    Under windows, both Borland-C (free download available via the internet) and Microsoft's
cg@2825
   197
    Visual-C++ (also available for free) can be used (the later with some limitations as explained above).
cg@2825
   198
mawalch@3320
   199
    A self-installing executable is built using the NullSoft NSIS package.
cg@2825
   200
    This is also required to be installed before the packager is started.
cg@2825
   201
mawalch@3320
   202
    After the build, all required files are packaged in a single install-file.
mawalch@3320
   203
    This is called 'MyApplicationSetup.exe' and found in the project-specific subdirectory
mawalch@3320
   204
    of the build directory. For deployment, this single file has to be delivered to a customer
cg@2825
   205
    and executed there.
cg@2825
   206
mawalch@3320
   207
    Summary: It has NEVER been easier to create a GUI application with Smalltalk.
cg@2825
   208
"
cg@2668
   209
! !
cg@2636
   210
cg@2670
   211
!ProjectBuilderAssistantApplication class methodsFor:'defaults'!
cg@2670
   212
cg@2670
   213
defaultIcon
sv@2838
   214
    <resource: #programImage>
sv@2838
   215
cg@2670
   216
    ^ ToolbarIconLibrary projectBuilderIcon
cg@2670
   217
!
cg@2670
   218
cg@2670
   219
windowLabelTemplate
cg@2670
   220
    ^ 'ST/X Packager: %1'
cg@2670
   221
! !
cg@2670
   222
cg@2703
   223
!ProjectBuilderAssistantApplication class methodsFor:'help'!
cg@2703
   224
cg@3520
   225
helpSpec
cg@2703
   226
    <resource: #help>
cg@2703
   227
cg@3520
   228
    ^ super helpSpec addPairsFrom:#(
cg@2703
   229
cg@2706
   230
#'projectType'
cg@3126
   231
'Choose the type of Project you are about to deploy'
cg@2703
   232
cg@2706
   233
#existingProjects
cg@3126
   234
'Projects with an existing ProjectDefinition of the chosen type (above)'
cg@2706
   235
cg@2968
   236
#nameOfApplicationClass
cg@2968
   237
'For GUI applications: the name of your application class (subclass of ApplicationModel).
cg@3004
   238
This will be opened by the startup sequence and defines the UI.
cg@3004
   239
(Usually, these are named "XXXApplication" or "XXXApp")
cg@3126
   240
Click on the "Create"-button to create a simple helloWorld app to start with'
cg@2968
   241
cg@2968
   242
#createNewApplication
cg@2968
   243
'Create a new simple dummy application (HelloWorld-like). 
cg@3126
   244
Press this button to get some template code to play with - but enter a name first'
cg@2968
   245
cg@2968
   246
#nameOfStartupClass
cg@2968
   247
'This class contains the main method, in which the show starts when the executable runs.
cg@2968
   248
Its main task is to parse command line arguments (if any) and fire up the real application.
cg@3004
   249
It should inherit from StandaloneStartup.
cg@3004
   250
(Usually, these are named "XXXStart" or "XXXStartup")
cg@3004
   251
Click on the "Create"-button to create something to start with (will launch your application)'
cg@2968
   252
cg@2968
   253
#createNewStartupClass
cg@2968
   254
'Create a new simple startup class which fires up the defined application.
cg@2968
   255
Press this button to get a standard startup class which does not care for command line args.
cg@3126
   256
But enter a name first'
cg@2968
   257
cg@2706
   258
#browseSelectedProject
cg@3126
   259
'Open a SystemBrowser on the selected Project'
cg@2706
   260
cg@2706
   261
#hideSTXBasePackages
cg@3126
   262
'Only show packages which are not already included in the basic ST/X delivery'
cg@2703
   263
cg@2703
   264
#'listOfNewProjectsName'
cg@2706
   265
'PackageID (module:directory).
cg@3126
   266
The pull-down list contains packageIDs for which no ProjectDefinition exists (yet)'
cg@2706
   267
cg@2706
   268
#'createNewProject'
cg@2706
   269
'PackageID (module:directory).
cg@3126
   270
Click to create a new (empty) ProjectDefinition for the given PackageID'
cg@2703
   271
cg@2922
   272
#clearBuildDirectory
cg@3126
   273
'Clear the build directory'
cg@2922
   274
cg@2922
   275
#makeAll
cg@3126
   276
'Build a self-installing deployable package'
cg@3126
   277
cg@3126
   278
#makeApp
cg@3126
   279
'Build the app only (for test-running)'
cg@2922
   280
cg@2922
   281
#makeExe
cg@3126
   282
'Build the executable only (for test-running)'
cg@2922
   283
cg@2973
   284
#makeExeQuick
cg@2973
   285
'Quick build the executable only (for test-running). 
cg@3126
   286
Does not regenerate the header files. Only the target package files are recreated'
cg@2973
   287
cg@2922
   288
#makeOutput
cg@3126
   289
'Displays the output of the build process (make command)'
cg@2922
   290
cg@2922
   291
#openExplorer
cg@3126
   292
'Open a Windows Explorer on the build directory. You can double-click on the built executable there'
cg@3126
   293
cg@3126
   294
#openFinder
cg@3126
   295
'Open a Finder on the build directory. You can double-click on the built executable there'
cg@2922
   296
cg@2922
   297
#openFileBrowser
cg@3126
   298
'Open a Filebrowser on the build directory'
cg@3126
   299
cg@3126
   300
#openTerminal
cg@3126
   301
'Open a terminal (console) in the build directory'
cg@2922
   302
cg@2922
   303
#stopMake
cg@3126
   304
'Abort the ongoing build process. Please clear the build directory afterwards to remove any leftover garbage'
cg@2922
   305
cg@2994
   306
#hideOtherStartupClasses
cg@2994
   307
'Hide startup classes from other packages. Uncheck to see them.\(Notice: the startup class really should be in the same package)'
cg@2994
   308
cg@2703
   309
)
cg@2922
   310
cg@2922
   311
    "Modified: / 06-09-2012 / 16:09:10 / cg"
cg@2703
   312
! !
cg@2703
   313
cg@2636
   314
!ProjectBuilderAssistantApplication class methodsFor:'interface specs'!
cg@2636
   315
cg@2645
   316
page1_projectTypeSelectionSpec
cg@2636
   317
    "This resource specification was automatically generated
cg@2636
   318
     by the UIPainter of ST/X."
cg@2636
   319
cg@2636
   320
    "Do not manually edit this!! If it is corrupted,
cg@2636
   321
     the UIPainter may not be able to read the specification."
cg@2636
   322
cg@2636
   323
    "
cg@2648
   324
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page1_projectTypeSelectionSpec
cg@2648
   325
     Tools::ProjectBuilderAssistantApplication new openInterface:#page1_projectTypeSelectionSpec
cg@2636
   326
    "
cg@2636
   327
cg@2636
   328
    <resource: #canvas>
cg@2636
   329
cg@2636
   330
    ^ 
cg@2636
   331
     #(FullSpec
cg@2645
   332
        name: #'page1_projectTypeSelectionSpec'
cg@2636
   333
        window: 
cg@2636
   334
       (WindowSpec
cg@2636
   335
          label: 'Project Selection'
cg@2636
   336
          name: 'Project Selection'
cg@2636
   337
          min: (Point 0 0)
cg@2636
   338
          bounds: (Rectangle 0 0 626 394)
cg@2636
   339
        )
cg@2636
   340
        component: 
cg@2636
   341
       (SpecCollection
cg@2636
   342
          collection: (
cg@2636
   343
           (FramedBoxSpec
cg@2706
   344
              label: 'Project Type'
cg@2636
   345
              name: 'FramedBox1'
cg@2698
   346
              layout: (LayoutFrame 0 0.0 0 0 4 1.0 120 0)
cg@2706
   347
              activeHelpKey: projectType
cg@2636
   348
              labelPosition: topLeft
cg@2636
   349
              translateLabel: true
cg@2636
   350
              component: 
cg@2636
   351
             (SpecCollection
cg@2636
   352
                collection: (
cg@2636
   353
                 (VerticalPanelViewSpec
cg@2636
   354
                    name: 'VerticalPanel1'
cg@2636
   355
                    layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
cg@2636
   356
                    horizontalLayout: leftSpace
cg@2636
   357
                    verticalLayout: topSpace
cg@2636
   358
                    horizontalSpace: 3
cg@2636
   359
                    verticalSpace: 3
cg@2636
   360
                    component: 
cg@2636
   361
                   (SpecCollection
cg@2636
   362
                      collection: (
cg@2636
   363
                       (ViewSpec
cg@2636
   364
                          name: 'Box1'
cg@2636
   365
                          extent: (Point 10 10)
cg@2636
   366
                        )
cg@2636
   367
                       (RadioButtonSpec
cg@2636
   368
                          label: 'GUI Application'
cg@2636
   369
                          name: 'RadioButton1'
cg@2636
   370
                          translateLabel: true
cg@2659
   371
                          model: projectTypeHolder
cg@2636
   372
                          isTriggerOnDown: true
cg@2636
   373
                          onCallBackSelector: projectTypeChanged
cg@2897
   374
                          select: #'GUI-Application'
cg@2990
   375
                          extent: (Point 294 22)
cg@2636
   376
                        )
cg@2636
   377
                       (RadioButtonSpec
cg@2636
   378
                          label: 'Non-GUI Application'
cg@2636
   379
                          name: 'RadioButton2'
cg@2636
   380
                          translateLabel: true
cg@2659
   381
                          model: projectTypeHolder
cg@2636
   382
                          isTriggerOnDown: true
cg@2636
   383
                          onCallBackSelector: projectTypeChanged
cg@2897
   384
                          select: #'NonGUI-Application'
cg@2990
   385
                          extent: (Point 294 22)
cg@2636
   386
                        )
cg@2636
   387
                       (RadioButtonSpec
cg@2636
   388
                          label: 'Class Library'
cg@2636
   389
                          name: 'RadioButton3'
cg@2636
   390
                          translateLabel: true
cg@2659
   391
                          model: projectTypeHolder
cg@2636
   392
                          isTriggerOnDown: true
cg@2636
   393
                          onCallBackSelector: projectTypeChanged
cg@2990
   394
                          select: Library
cg@2990
   395
                          extent: (Point 294 22)
cg@2636
   396
                        )
cg@2636
   397
                       )
cg@2636
   398
                     
cg@2636
   399
                    )
cg@2636
   400
                  )
cg@2636
   401
                 )
cg@2636
   402
               
cg@2636
   403
              )
cg@2636
   404
            )
cg@2636
   405
           (FramedBoxSpec
cg@2726
   406
              label: 'Existing Projects of this Type (PackageIDs)'
cg@2636
   407
              name: 'FramedBox2'
cg@2698
   408
              layout: (LayoutFrame 0 0.0 123 0 4 1.0 0 1)
cg@2706
   409
              activeHelpKey: existingProjects
cg@2636
   410
              labelPosition: topLeft
cg@2636
   411
              translateLabel: true
cg@2636
   412
              component: 
cg@2636
   413
             (SpecCollection
cg@2636
   414
                collection: (
cg@2636
   415
                 (VariableHorizontalPanelSpec
cg@2636
   416
                    name: 'VariableHorizontalPanel1'
cg@2636
   417
                    layout: (LayoutFrame 0 0 4 0 0 1 -26 1)
cg@2636
   418
                    component: 
cg@2636
   419
                   (SpecCollection
cg@2636
   420
                      collection: (
cg@2636
   421
                       (SequenceViewSpec
cg@2636
   422
                          name: 'List1'
cg@2636
   423
                          model: selectedProjectIndexHolder
cg@2636
   424
                          hasHorizontalScrollBar: true
cg@2636
   425
                          hasVerticalScrollBar: true
cg@2636
   426
                          useIndex: true
cg@2686
   427
                          sequenceList: listOfMatchingPackageIds
cg@2636
   428
                        )
cg@2636
   429
                       (TextEditorSpec
cg@2636
   430
                          name: 'TextEditor1'
cg@2636
   431
                          model: selectedProjectsComment
cg@2636
   432
                          hasHorizontalScrollBar: true
cg@2636
   433
                          hasVerticalScrollBar: true
cg@2636
   434
                          isReadOnly: true
cg@2636
   435
                          hasKeyboardFocusInitially: false
cg@2636
   436
                        )
cg@2636
   437
                       )
cg@2636
   438
                     
cg@2636
   439
                    )
cg@2636
   440
                    handles: (Any 0.34560327198364 1.0)
cg@2636
   441
                  )
cg@2636
   442
                 (CheckBoxSpec
cg@2636
   443
                    label: 'Hide ST/X Base Packages'
cg@2636
   444
                    name: 'CheckBox1'
cg@2659
   445
                    layout: (LayoutFrame -1 0 -18 1 0 1 4 1)
cg@2706
   446
                    activeHelpKey: hideSTXBasePackages
cg@2636
   447
                    model: hideSTXProjects
cg@2636
   448
                    translateLabel: true
cg@2636
   449
                  )
cg@2636
   450
                 )
cg@2636
   451
               
cg@2636
   452
              )
cg@2636
   453
            )
cg@2636
   454
           )
cg@2636
   455
         
cg@2636
   456
        )
cg@2636
   457
      )
cg@2636
   458
!
cg@2636
   459
cg@2645
   460
page2_projectSelectionSpec
cg@2636
   461
    "This resource specification was automatically generated
cg@2636
   462
     by the UIPainter of ST/X."
cg@2636
   463
cg@2636
   464
    "Do not manually edit this!! If it is corrupted,
cg@2636
   465
     the UIPainter may not be able to read the specification."
cg@2636
   466
cg@2636
   467
    "
cg@2648
   468
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page2_projectSelectionSpec
cg@2648
   469
     Tools::ProjectBuilderAssistantApplication new openInterface:#page2_projectSelectionSpec
cg@2636
   470
    "
cg@2636
   471
cg@2636
   472
    <resource: #canvas>
cg@2636
   473
cg@2636
   474
    ^ 
cg@3337
   475
    #(FullSpec
cg@3337
   476
       name: #'page2_projectSelectionSpec'
cg@3337
   477
       window: 
cg@3337
   478
      (WindowSpec
cg@3337
   479
         label: 'Project Selection'
cg@3337
   480
         name: 'Project Selection'
cg@3337
   481
         min: (Point 0 0)
cg@3337
   482
         bounds: (Rectangle 0 0 521 453)
cg@3337
   483
       )
cg@3337
   484
       component: 
cg@3337
   485
      (SpecCollection
cg@3337
   486
         collection: (
cg@3337
   487
          (FramedBoxSpec
cg@3337
   488
             label: 'New Project''s PackageID'
cg@3337
   489
             name: 'FramedBox3'
cg@3337
   490
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 72 0)
cg@3337
   491
             labelPosition: topLeft
cg@3337
   492
             translateLabel: true
cg@3337
   493
             component: 
cg@3337
   494
            (SpecCollection
cg@3337
   495
               collection: (
cg@3337
   496
                (ExtendedComboBoxSpec
cg@3337
   497
                   name: 'NewProjectsNameListExtendedComboBox'
cg@3337
   498
                   layout: (LayoutFrame 1 0 6 0 -113 1 34 0)
cg@3337
   499
                   activeHelpKey: listOfNewProjectsName
cg@3337
   500
                   model: newProjectsName
cg@3337
   501
                   readOnly: false
cg@3337
   502
                   miniScrollerHorizontal: true
cg@3337
   503
                   postBuildCallback: postBuildNewProjectsNameListExtendedComboBox:
cg@2636
   504
                 )
cg@3337
   505
                (ActionButtonSpec
cg@3337
   506
                   label: 'Create'
cg@3337
   507
                   name: 'Button1'
cg@3337
   508
                   layout: (LayoutFrame -100 1 6 0 2 1 34 0)
cg@3337
   509
                   activeHelpKey: createNewProject
cg@3337
   510
                   translateLabel: true
cg@3337
   511
                   model: createNewProject
cg@3337
   512
                 )
cg@3337
   513
                )
cg@3337
   514
              
cg@3337
   515
             )
cg@3337
   516
           )
cg@3337
   517
          (FramedBoxSpec
cg@3337
   518
             label: 'Existing Projects with ProjectDefinition'
cg@3337
   519
             name: 'FramedBox4'
cg@3337
   520
             layout: (LayoutFrame 0 0.0 70 0 4 1.0 -34 1)
cg@3337
   521
             labelPosition: topLeft
cg@3337
   522
             translateLabel: true
cg@3337
   523
             component: 
cg@3337
   524
            (SpecCollection
cg@3337
   525
               collection: (
cg@3337
   526
                (VariableHorizontalPanelSpec
cg@3337
   527
                   name: 'VariableHorizontalPanel2'
cg@3337
   528
                   layout: (LayoutFrame 0 0 4 0 0 1 -26 1)
cg@3337
   529
                   component: 
cg@3337
   530
                  (SpecCollection
cg@3337
   531
                     collection: (
cg@3337
   532
                      (SequenceViewSpec
cg@3337
   533
                         name: 'List2'
cg@3337
   534
                         model: selectedProjectIndexHolder
cg@3337
   535
                         hasHorizontalScrollBar: true
cg@3337
   536
                         hasVerticalScrollBar: true
cg@3337
   537
                         useIndex: true
cg@3337
   538
                         sequenceList: listOfMatchingPackageIds
cg@2636
   539
                       )
cg@3337
   540
                      (TextEditorSpec
cg@3337
   541
                         name: 'TextEditor2'
cg@3337
   542
                         model: selectedProjectsComment
cg@3337
   543
                         hasHorizontalScrollBar: true
cg@3337
   544
                         hasVerticalScrollBar: true
cg@3337
   545
                         isReadOnly: true
cg@3337
   546
                         hasKeyboardFocusInitially: false
cg@3337
   547
                         viewClassName: 'TextView'
cg@3337
   548
                       )
cg@3337
   549
                      )
cg@3337
   550
                    
cg@3337
   551
                   )
cg@3337
   552
                   handles: (Any 0.35000000000000003 1.0)
cg@2636
   553
                 )
cg@3337
   554
                (CheckBoxSpec
cg@3337
   555
                   label: 'Hide ST/X Base Packages'
cg@3337
   556
                   name: 'CheckBox1'
cg@3337
   557
                   layout: (LayoutFrame -1 0 -17 1 0 1 5 1)
cg@3337
   558
                   activeHelpKey: hideSTXBasePackages
cg@3337
   559
                   model: hideSTXProjects
cg@3337
   560
                   translateLabel: true
cg@2648
   561
                 )
cg@3337
   562
                )
cg@3337
   563
              
cg@3337
   564
             )
cg@2636
   565
           )
cg@3337
   566
          (HorizontalPanelViewSpec
cg@3337
   567
             name: 'HorizontalPanel1'
cg@3337
   568
             layout: (LayoutFrame 0 0 -34 1 0 1 0 1)
cg@3337
   569
             horizontalLayout: leftSpace
cg@3337
   570
             verticalLayout: center
cg@3337
   571
             horizontalSpace: 3
cg@3337
   572
             verticalSpace: 3
cg@3337
   573
             component: 
cg@3337
   574
            (SpecCollection
cg@3337
   575
               collection: (
cg@3337
   576
                (ActionButtonSpec
cg@3337
   577
                   label: 'Browse Selected Project'
cg@3337
   578
                   name: 'Button3'
cg@3337
   579
                   activeHelpKey: browseSelectedProject
cg@3337
   580
                   translateLabel: true
cg@3337
   581
                   model: doBrowseProject
cg@3337
   582
                   enableChannel: hasProjectSelectedHolder
cg@3337
   583
                   useDefaultExtent: true
cg@3337
   584
                 )
cg@3337
   585
                )
cg@3337
   586
              
cg@3337
   587
             )
cg@3337
   588
           )
cg@3337
   589
          )
cg@3337
   590
        
cg@3337
   591
       )
cg@3337
   592
     )
cg@2636
   593
!
cg@2636
   594
cg@2645
   595
page3_applicationSelectionSpec
cg@2636
   596
    "This resource specification was automatically generated
cg@2636
   597
     by the UIPainter of ST/X."
cg@2636
   598
cg@2636
   599
    "Do not manually edit this!! If it is corrupted,
cg@2636
   600
     the UIPainter may not be able to read the specification."
cg@2636
   601
cg@2636
   602
    "
cg@2648
   603
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page3_applicationSelectionSpec
cg@2648
   604
     Tools::ProjectBuilderAssistantApplication new openInterface:#page3_applicationSelectionSpec
cg@2636
   605
    "
cg@2636
   606
cg@2636
   607
    <resource: #canvas>
cg@2636
   608
cg@2636
   609
    ^ 
cg@3337
   610
    #(FullSpec
cg@3337
   611
       name: #'page3_applicationSelectionSpec'
cg@3337
   612
       window: 
cg@3337
   613
      (WindowSpec
cg@3337
   614
         label: 'Application Selection'
cg@3337
   615
         name: 'Application Selection'
cg@3337
   616
         min: (Point 0 0)
cg@3337
   617
         bounds: (Rectangle 0 0 519 406)
cg@3337
   618
       )
cg@3337
   619
       component: 
cg@3337
   620
      (SpecCollection
cg@3337
   621
         collection: (
cg@3337
   622
          (FramedBoxSpec
cg@3337
   623
             label: 'New Application Class'
cg@3337
   624
             name: 'FramedBox3'
cg@3337
   625
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 70 0)
cg@3337
   626
             labelPosition: topLeft
cg@3337
   627
             translateLabel: true
cg@3337
   628
             component: 
cg@3337
   629
            (SpecCollection
cg@3337
   630
               collection: (
cg@3337
   631
                (InputFieldSpec
cg@3337
   632
                   name: 'EntryField1'
cg@3337
   633
                   layout: (LayoutFrame 1 0 6 0 -113 1 34 0)
cg@3337
   634
                   activeHelpKey: nameOfApplicationClass
cg@3337
   635
                   model: newApplicationsName
cg@3337
   636
                   acceptOnReturn: true
cg@3337
   637
                   acceptOnTab: true
cg@3337
   638
                   acceptOnLostFocus: true
cg@3337
   639
                   acceptOnPointerLeave: true
cg@3337
   640
                   emptyFieldReplacementText: 'MyApplication'
cg@2636
   641
                 )
cg@3337
   642
                (ActionButtonSpec
cg@3337
   643
                   label: 'Create'
cg@3337
   644
                   name: 'Button1'
cg@3337
   645
                   layout: (LayoutFrame -100 1 6 0 1 1 34 0)
cg@3337
   646
                   activeHelpKey: createNewApplication
cg@3337
   647
                   translateLabel: true
cg@3337
   648
                   model: createNewApplication
cg@3337
   649
                 )
cg@3337
   650
                )
cg@3337
   651
              
cg@3337
   652
             )
cg@3337
   653
           )
cg@3337
   654
          (FramedBoxSpec
cg@3337
   655
             label: 'Existing Applications'
cg@3337
   656
             name: 'FramedBox4'
cg@3337
   657
             layout: (LayoutFrame 0 0.0 72 0 4 1.0 -34 1)
cg@3337
   658
             labelPosition: topLeft
cg@3337
   659
             translateLabel: true
cg@3337
   660
             component: 
cg@3337
   661
            (SpecCollection
cg@3337
   662
               collection: (
cg@3337
   663
                (VariableHorizontalPanelSpec
cg@3337
   664
                   name: 'VariableHorizontalPanel2'
cg@3337
   665
                   layout: (LayoutFrame 0 0 4 0 0 1 -26 1)
cg@3337
   666
                   component: 
cg@3337
   667
                  (SpecCollection
cg@3337
   668
                     collection: (
cg@3337
   669
                      (SequenceViewSpec
cg@3337
   670
                         name: 'List2'
cg@3337
   671
                         model: selectedApplicationIndexHolder
cg@3337
   672
                         hasHorizontalScrollBar: true
cg@3337
   673
                         hasVerticalScrollBar: true
cg@3337
   674
                         useIndex: true
cg@3337
   675
                         sequenceList: listOfApplicationsInProject
cg@3337
   676
                         ignoreReselect: false
cg@2636
   677
                       )
cg@3337
   678
                      (TextEditorSpec
cg@3337
   679
                         name: 'TextEditor2'
cg@3337
   680
                         model: selectedApplicationsComment
cg@3337
   681
                         hasHorizontalScrollBar: true
cg@3337
   682
                         hasVerticalScrollBar: true
cg@3337
   683
                         isReadOnly: true
cg@3337
   684
                         hasKeyboardFocusInitially: false
cg@3337
   685
                         viewClassName: 'TextView'
cg@3337
   686
                       )
cg@3337
   687
                      )
cg@3337
   688
                    
cg@3337
   689
                   )
cg@3337
   690
                   handles: (Any 0.35000000000000003 1.0)
cg@2636
   691
                 )
cg@3337
   692
                (CheckBoxSpec
cg@3337
   693
                   label: 'Hide other Application Classes'
cg@3337
   694
                   name: 'CheckBox1'
cg@3337
   695
                   layout: (LayoutFrame -1 0 -18 1 0 1 4 1)
cg@3337
   696
                   model: hideOtherApplicationClasses
cg@3337
   697
                   translateLabel: true
cg@2648
   698
                 )
cg@3337
   699
                )
cg@3337
   700
              
cg@3337
   701
             )
cg@2636
   702
           )
cg@3337
   703
          (HorizontalPanelViewSpec
cg@3337
   704
             name: 'HorizontalPanel1'
cg@3337
   705
             layout: (LayoutFrame 0 0 -34 1 0 1 0 1)
cg@3337
   706
             horizontalLayout: leftSpace
cg@3337
   707
             verticalLayout: center
cg@3337
   708
             horizontalSpace: 3
cg@3337
   709
             verticalSpace: 3
cg@3337
   710
             component: 
cg@3337
   711
            (SpecCollection
cg@3337
   712
               collection: (
cg@3337
   713
                (ActionButtonSpec
cg@3337
   714
                   label: 'Browse Selected App'
cg@3337
   715
                   name: 'Button3'
cg@3337
   716
                   translateLabel: true
cg@3337
   717
                   model: doBrowseApplication
cg@3337
   718
                   enableChannel: hasApplicationSelectedHolder
cg@3337
   719
                   useDefaultExtent: true
cg@3337
   720
                 )
cg@3337
   721
                (ActionButtonSpec
cg@3337
   722
                   label: 'Launch Selected App'
cg@3337
   723
                   name: 'Button4'
cg@3337
   724
                   translateLabel: true
cg@3337
   725
                   model: doLaunchApplication
cg@3337
   726
                   enableChannel: hasApplicationSelectedHolder
cg@3337
   727
                   useDefaultExtent: true
cg@3337
   728
                 )
cg@3337
   729
                )
cg@3337
   730
              
cg@3337
   731
             )
cg@3337
   732
           )
cg@3337
   733
          )
cg@3337
   734
        
cg@3337
   735
       )
cg@3337
   736
     )
cg@2636
   737
!
cg@2636
   738
cg@2656
   739
page4_startupClassSelectionSpec
cg@2636
   740
    "This resource specification was automatically generated
cg@2636
   741
     by the UIPainter of ST/X."
cg@2636
   742
cg@2636
   743
    "Do not manually edit this!! If it is corrupted,
cg@2636
   744
     the UIPainter may not be able to read the specification."
cg@2636
   745
cg@2636
   746
    "
cg@2656
   747
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page4_startupClassSelectionSpec
cg@2656
   748
     Tools::ProjectBuilderAssistantApplication new openInterface:#page4_startupClassSelectionSpec
cg@2636
   749
    "
cg@2636
   750
cg@2636
   751
    <resource: #canvas>
cg@2636
   752
cg@2636
   753
    ^ 
cg@3337
   754
    #(FullSpec
cg@3337
   755
       name: #'page4_startupClassSelectionSpec'
cg@3337
   756
       window: 
cg@3337
   757
      (WindowSpec
cg@3337
   758
         label: 'Startup Class Selection'
cg@3337
   759
         name: 'Startup Class Selection'
cg@3337
   760
         min: (Point 0 0)
cg@3337
   761
         bounds: (Rectangle 0 0 521 408)
cg@3337
   762
       )
cg@3337
   763
       component: 
cg@3337
   764
      (SpecCollection
cg@3337
   765
         collection: (
cg@3337
   766
          (FramedBoxSpec
cg@3337
   767
             label: 'New Startup Class'
cg@3337
   768
             name: 'FramedBox3'
cg@3337
   769
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 70 0)
cg@3337
   770
             labelPosition: topLeft
cg@3337
   771
             translateLabel: true
cg@3337
   772
             component: 
cg@3337
   773
            (SpecCollection
cg@3337
   774
               collection: (
cg@3337
   775
                (InputFieldSpec
cg@3337
   776
                   name: 'EntryField1'
cg@3337
   777
                   layout: (LayoutFrame 1 0 6 0 -113 1 34 0)
cg@3337
   778
                   activeHelpKey: nameOfStartupClass
cg@3337
   779
                   model: newStartupClassName
cg@3337
   780
                   acceptOnReturn: true
cg@3337
   781
                   acceptOnTab: true
cg@3337
   782
                   acceptOnLostFocus: true
cg@3337
   783
                   acceptOnPointerLeave: true
cg@3337
   784
                   emptyFieldReplacementText: 'MyStandAloneStartup'
cg@2656
   785
                 )
cg@3337
   786
                (ActionButtonSpec
cg@3337
   787
                   label: 'Create'
cg@3337
   788
                   name: 'Button1'
cg@3337
   789
                   layout: (LayoutFrame -100 1 6 0 1 1 34 0)
cg@3337
   790
                   activeHelpKey: createNewStartupClass
cg@3337
   791
                   translateLabel: true
cg@3337
   792
                   model: createNewStartupClass
cg@3337
   793
                 )
cg@3337
   794
                )
cg@3337
   795
              
cg@3337
   796
             )
cg@3337
   797
           )
cg@3337
   798
          (FramedBoxSpec
cg@3337
   799
             label: 'Existing Startup Classes'
cg@3337
   800
             name: 'FramedBox4'
cg@3337
   801
             layout: (LayoutFrame 0 0.0 72 0 4 1.0 -34 1)
cg@3337
   802
             labelPosition: topLeft
cg@3337
   803
             translateLabel: true
cg@3337
   804
             component: 
cg@3337
   805
            (SpecCollection
cg@3337
   806
               collection: (
cg@3337
   807
                (VariableHorizontalPanelSpec
cg@3337
   808
                   name: 'VariableHorizontalPanel2'
cg@3337
   809
                   layout: (LayoutFrame 0 0 4 0 0 1 -26 1)
cg@3337
   810
                   component: 
cg@3337
   811
                  (SpecCollection
cg@3337
   812
                     collection: (
cg@3337
   813
                      (SequenceViewSpec
cg@3337
   814
                         name: 'List2'
cg@3337
   815
                         model: selectedStartupClassIndexHolder
cg@3337
   816
                         hasHorizontalScrollBar: true
cg@3337
   817
                         hasVerticalScrollBar: true
cg@3337
   818
                         useIndex: true
cg@3337
   819
                         sequenceList: listOfStartupClassesInProject
cg@2656
   820
                       )
cg@3337
   821
                      (TextEditorSpec
cg@3337
   822
                         name: 'TextEditor2'
cg@3337
   823
                         model: selectedStartupClassesComment
cg@3337
   824
                         hasHorizontalScrollBar: true
cg@3337
   825
                         hasVerticalScrollBar: true
cg@3337
   826
                         isReadOnly: true
cg@3337
   827
                         hasKeyboardFocusInitially: false
cg@3337
   828
                         viewClassName: 'TextView'
cg@3337
   829
                       )
cg@3337
   830
                      )
cg@3337
   831
                    
cg@3337
   832
                   )
cg@3337
   833
                   handles: (Any 0.35000000000000003 1.0)
cg@2656
   834
                 )
cg@3337
   835
                (CheckBoxSpec
cg@3337
   836
                   label: 'Hide other Startup Classes'
cg@3337
   837
                   name: 'CheckBox1'
cg@3337
   838
                   layout: (LayoutFrame -1 0 -20 1 0 1 2 1)
cg@3337
   839
                   activeHelpKey: hideOtherStartupClasses
cg@3337
   840
                   model: hideOtherStartupClasses
cg@3337
   841
                   translateLabel: true
cg@2656
   842
                 )
cg@3337
   843
                )
cg@3337
   844
              
cg@3337
   845
             )
cg@2656
   846
           )
cg@3337
   847
          (HorizontalPanelViewSpec
cg@3337
   848
             name: 'HorizontalPanel1'
cg@3337
   849
             layout: (LayoutFrame 0 0 -34 1 0 1 0 1)
cg@3337
   850
             horizontalLayout: leftSpace
cg@3337
   851
             verticalLayout: center
cg@3337
   852
             horizontalSpace: 3
cg@3337
   853
             verticalSpace: 3
cg@3337
   854
             component: 
cg@3337
   855
            (SpecCollection
cg@3337
   856
               collection: (
cg@3337
   857
                (ActionButtonSpec
cg@3337
   858
                   label: 'Browse Selected StartupClass'
cg@3337
   859
                   name: 'Button3'
cg@3337
   860
                   translateLabel: true
cg@3337
   861
                   model: doBrowseStartupClass
cg@3337
   862
                   enableChannel: hasStartupClassSelectedHolder
cg@3337
   863
                   useDefaultExtent: true
cg@3337
   864
                 )
cg@3337
   865
                )
cg@3337
   866
              
cg@3337
   867
             )
cg@3337
   868
           )
cg@3337
   869
          )
cg@3337
   870
        
cg@3337
   871
       )
cg@3337
   872
     )
cg@2656
   873
!
cg@2656
   874
cg@2656
   875
page5_specifyIncludedClasses
cg@2656
   876
    "This resource specification was automatically generated
cg@2656
   877
     by the UIPainter of ST/X."
cg@2656
   878
cg@2656
   879
    "Do not manually edit this!! If it is corrupted,
cg@2656
   880
     the UIPainter may not be able to read the specification."
cg@2656
   881
cg@2656
   882
    "
cg@2656
   883
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page5_specifyIncludedClasses
cg@2656
   884
     Tools::ProjectBuilderAssistantApplication new openInterface:#page5_specifyIncludedClasses
cg@2656
   885
    "
cg@2656
   886
cg@2656
   887
    <resource: #canvas>
cg@2656
   888
cg@2656
   889
    ^ 
cg@3337
   890
    #(FullSpec
cg@3337
   891
       name: #'page5_specifyIncludedClasses'
cg@3337
   892
       window: 
cg@3337
   893
      (WindowSpec
cg@3337
   894
         label: 'Project Selection'
cg@3337
   895
         name: 'Project Selection'
cg@3337
   896
         min: (Point 0 0)
cg@3337
   897
         bounds: (Rectangle 0 0 521 400)
cg@3337
   898
       )
cg@3337
   899
       component: 
cg@3337
   900
      (SpecCollection
cg@3337
   901
         collection: (
cg@3337
   902
          (FramedBoxSpec
cg@3337
   903
             label: 'Project Contents'
cg@3337
   904
             name: 'FramedBox3'
cg@3337
   905
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 -34 1)
cg@3337
   906
             labelPosition: topLeft
cg@3337
   907
             translateLabel: true
cg@3337
   908
             component: 
cg@3337
   909
            (SpecCollection
cg@3337
   910
               collection: (
cg@3337
   911
                (SequenceViewSpec
cg@3337
   912
                   name: 'List1'
cg@3337
   913
                   layout: (LayoutFrame 0 0 0 0 0 1 0 1)
cg@3337
   914
                   initiallyDisabled: true
cg@3337
   915
                   hasHorizontalScrollBar: true
cg@3337
   916
                   hasVerticalScrollBar: true
cg@3337
   917
                   useIndex: false
cg@3337
   918
                   sequenceList: listOfClassesInProject
cg@2636
   919
                 )
cg@3337
   920
                )
cg@3337
   921
              
cg@3337
   922
             )
cg@3337
   923
           )
cg@3337
   924
          (HorizontalPanelViewSpec
cg@3337
   925
             name: 'HorizontalPanel1'
cg@3337
   926
             layout: (LayoutFrame 0 0 -34 1 0 1 0 1)
cg@3337
   927
             horizontalLayout: center
cg@3337
   928
             verticalLayout: center
cg@3337
   929
             horizontalSpace: 3
cg@3337
   930
             verticalSpace: 3
cg@3337
   931
             component: 
cg@3337
   932
            (SpecCollection
cg@3337
   933
               collection: (
cg@3337
   934
                (ActionButtonSpec
cg@3337
   935
                   label: 'Browse Project Definition'
cg@3337
   936
                   name: 'Button3'
cg@3337
   937
                   translateLabel: true
cg@3337
   938
                   model: doBrowseProjectDefinitionClass
cg@3337
   939
                   useDefaultExtent: true
cg@2648
   940
                 )
cg@3337
   941
                (ActionButtonSpec
cg@3337
   942
                   label: 'Update Contents (Scan)'
cg@3337
   943
                   name: 'Button4'
cg@3337
   944
                   translateLabel: true
cg@3337
   945
                   model: doGenerateProjectContentsDefinition
cg@3337
   946
                   useDefaultExtent: true
cg@3337
   947
                 )
cg@3337
   948
                )
cg@3337
   949
              
cg@3337
   950
             )
cg@2636
   951
           )
cg@3337
   952
          )
cg@3337
   953
        
cg@3337
   954
       )
cg@3337
   955
     )
cg@2636
   956
!
cg@2636
   957
cg@2872
   958
page5b_specifyPrerequisitePackages
cg@2872
   959
    "This resource specification was automatically generated
cg@2872
   960
     by the UIPainter of ST/X."
cg@2872
   961
cg@2872
   962
    "Do not manually edit this!! If it is corrupted,
cg@2872
   963
     the UIPainter may not be able to read the specification."
cg@2872
   964
cg@2872
   965
    "
cg@2872
   966
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page5b_specifyPrerequisitePackages
cg@2872
   967
     Tools::ProjectBuilderAssistantApplication new openInterface:#page5b_specifyPrerequisitePackages
cg@2872
   968
    "
cg@2872
   969
cg@2872
   970
    <resource: #canvas>
cg@2872
   971
cg@2872
   972
    ^ 
cg@3337
   973
    #(FullSpec
cg@3337
   974
       name: #'page5b_specifyPrerequisitePackages'
cg@3337
   975
       window: 
cg@3337
   976
      (WindowSpec
cg@3337
   977
         label: 'Project Selection'
cg@3337
   978
         name: 'Project Selection'
cg@3337
   979
         min: (Point 0 0)
cg@3337
   980
         bounds: (Rectangle 0 0 521 400)
cg@3337
   981
       )
cg@3337
   982
       component: 
cg@3337
   983
      (SpecCollection
cg@3337
   984
         collection: (
cg@3337
   985
          (FramedBoxSpec
cg@3337
   986
             label: 'Prerequisite Packages'
cg@3337
   987
             name: 'FramedBox3'
cg@3337
   988
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 -34 1)
cg@3337
   989
             labelPosition: topLeft
cg@3337
   990
             translateLabel: true
cg@3337
   991
             component: 
cg@3337
   992
            (SpecCollection
cg@3337
   993
               collection: (
cg@3337
   994
                (SequenceViewSpec
cg@3337
   995
                   name: 'List1'
cg@3337
   996
                   layout: (LayoutFrame 0 0 0 0 0 1 0 1)
cg@3337
   997
                   initiallyDisabled: true
cg@3337
   998
                   hasHorizontalScrollBar: true
cg@3337
   999
                   hasVerticalScrollBar: true
cg@3337
  1000
                   useIndex: false
cg@3337
  1001
                   sequenceList: listOfPrerequisitesInProject
cg@2872
  1002
                 )
cg@3337
  1003
                )
cg@3337
  1004
              
cg@3337
  1005
             )
cg@3337
  1006
           )
cg@3337
  1007
          (HorizontalPanelViewSpec
cg@3337
  1008
             name: 'HorizontalPanel1'
cg@3337
  1009
             layout: (LayoutFrame 0 0 -34 1 0 1 0 1)
cg@3337
  1010
             horizontalLayout: center
cg@3337
  1011
             verticalLayout: center
cg@3337
  1012
             horizontalSpace: 3
cg@3337
  1013
             verticalSpace: 3
cg@3337
  1014
             component: 
cg@3337
  1015
            (SpecCollection
cg@3337
  1016
               collection: (
cg@3337
  1017
                (ActionButtonSpec
cg@3337
  1018
                   label: 'Browse Project Definition'
cg@3337
  1019
                   name: 'Button3'
cg@3337
  1020
                   translateLabel: true
cg@3337
  1021
                   model: doBrowseProjectDefinitionClassForPrereqs
cg@3337
  1022
                   useDefaultExtent: true
cg@2872
  1023
                 )
cg@3337
  1024
                (ActionButtonSpec
cg@3337
  1025
                   label: 'Update Prerequisites (Scan)'
cg@3337
  1026
                   name: 'Button4'
cg@3337
  1027
                   translateLabel: true
cg@3337
  1028
                   model: doGenerateProjectPrerequisitesDefinition
cg@3337
  1029
                   useDefaultExtent: true
cg@3337
  1030
                 )
cg@3337
  1031
                )
cg@3337
  1032
              
cg@3337
  1033
             )
cg@2872
  1034
           )
cg@3337
  1035
          )
cg@3337
  1036
        
cg@3337
  1037
       )
cg@3337
  1038
     )
cg@2872
  1039
!
cg@2872
  1040
cg@2724
  1041
page6a_specifyProjectAttributes
cg@2636
  1042
    "This resource specification was automatically generated
cg@2636
  1043
     by the UIPainter of ST/X."
cg@2636
  1044
cg@2636
  1045
    "Do not manually edit this!! If it is corrupted,
cg@2636
  1046
     the UIPainter may not be able to read the specification."
cg@2636
  1047
cg@2636
  1048
    "
cg@2724
  1049
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page6a_specifyProjectAttributes
cg@2724
  1050
     Tools::ProjectBuilderAssistantApplication new openInterface:#page6a_specifyProjectAttributes
cg@2636
  1051
    "
cg@2636
  1052
cg@2636
  1053
    <resource: #canvas>
cg@2636
  1054
cg@2636
  1055
    ^ 
cg@3337
  1056
    #(FullSpec
cg@3337
  1057
       name: #'page6a_specifyProjectAttributes'
cg@3337
  1058
       window: 
cg@3337
  1059
      (WindowSpec
cg@3337
  1060
         label: 'Project Selection'
cg@3337
  1061
         name: 'Project Selection'
cg@3337
  1062
         min: (Point 0 0)
cg@3337
  1063
         bounds: (Rectangle 0 0 521 239)
cg@3337
  1064
       )
cg@3337
  1065
       component: 
cg@3337
  1066
      (SpecCollection
cg@3337
  1067
         collection: (
cg@3337
  1068
          (FramedBoxSpec
cg@3337
  1069
             label: 'Product Information'
cg@3337
  1070
             name: 'FramedBox3'
cg@3337
  1071
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 116 0)
cg@3337
  1072
             labelPosition: topLeft
cg@3337
  1073
             translateLabel: true
cg@3337
  1074
             component: 
cg@3337
  1075
            (SpecCollection
cg@3337
  1076
               collection: (
cg@3337
  1077
                (LabelSpec
cg@3337
  1078
                   label: 'Product Name:'
cg@3337
  1079
                   name: 'Label1'
cg@3337
  1080
                   layout: (LayoutFrame 0 0 10 0 148 0 40 0)
cg@3339
  1081
                   activeHelpKey: productName
cg@3337
  1082
                   translateLabel: true
cg@3339
  1083
                   adjust: left
cg@2724
  1084
                 )
cg@3337
  1085
                (InputFieldSpec
cg@3337
  1086
                   name: 'EntryField4'
cg@3337
  1087
                   layout: (LayoutFrame 150 0.0 10 0 0 1.0 40 0)
cg@3339
  1088
                   activeHelpKey: productName
cg@3337
  1089
                   model: productNameHolder
cg@3337
  1090
                   acceptOnLostFocus: true
cg@3337
  1091
                   acceptOnPointerLeave: true
cg@3337
  1092
                   viewClassName: ''
cg@3337
  1093
                 )
cg@3337
  1094
                (LabelSpec
cg@3337
  1095
                   label: 'Company Name:'
cg@3337
  1096
                   name: 'Label2'
cg@3337
  1097
                   layout: (LayoutFrame 0 0 45 0 148 0 75 0)
cg@3339
  1098
                   activeHelpKey: companyName
cg@3337
  1099
                   translateLabel: true
cg@3339
  1100
                   adjust: left
cg@3337
  1101
                 )
cg@3337
  1102
                (InputFieldSpec
cg@3337
  1103
                   name: 'EntryField3'
cg@3337
  1104
                   layout: (LayoutFrame 150 0.0 45 0 0 1.0 75 0)
cg@3339
  1105
                   activeHelpKey: companyName
cg@3337
  1106
                   model: companyNameHolder
cg@3337
  1107
                   acceptOnLostFocus: true
cg@3337
  1108
                   acceptOnPointerLeave: true
cg@3337
  1109
                   viewClassName: ''
cg@3337
  1110
                 )
cg@3337
  1111
                )
cg@3337
  1112
              
cg@3337
  1113
             )
cg@2724
  1114
           )
cg@3339
  1115
          (FramedBoxSpec
cg@3339
  1116
             label: 'Executable'
cg@3339
  1117
             name: 'FramedBox4'
cg@3339
  1118
             layout: (LayoutFrame 0 0.0 124 0 4 1.0 200 0)
cg@3340
  1119
             visibilityChannel: executableNameVisible
cg@3339
  1120
             labelPosition: topLeft
cg@3339
  1121
             translateLabel: true
cg@3339
  1122
             component: 
cg@3339
  1123
            (SpecCollection
cg@3339
  1124
               collection: (
cg@3339
  1125
                (LabelSpec
cg@3339
  1126
                   label: 'Name:'
cg@3339
  1127
                   name: 'Label3'
cg@3339
  1128
                   layout: (LayoutFrame 0 0 10 0 148 0 40 0)
cg@3339
  1129
                   activeHelpKey: programName
cg@3339
  1130
                   translateLabel: true
cg@3339
  1131
                   adjust: left
cg@3339
  1132
                 )
cg@3339
  1133
                (InputFieldSpec
cg@3339
  1134
                   name: 'EntryField5'
cg@3339
  1135
                   layout: (LayoutFrame 150 0.0 10 0 0 1.0 40 0)
cg@3339
  1136
                   activeHelpKey: programName
cg@3339
  1137
                   model: executableNameHolder
cg@3339
  1138
                   isReadOnly: true
cg@3339
  1139
                   acceptOnLostFocus: true
cg@3339
  1140
                   acceptOnPointerLeave: true
cg@3339
  1141
                   viewClassName: ''
cg@3339
  1142
                 )
cg@3339
  1143
                )
cg@3339
  1144
              
cg@3339
  1145
             )
cg@3339
  1146
           )
cg@3337
  1147
          )
cg@3337
  1148
        
cg@3337
  1149
       )
cg@3337
  1150
     )
cg@2724
  1151
!
cg@2724
  1152
cg@2724
  1153
page6b_specifyBuildDirectorySpec
cg@2724
  1154
    "This resource specification was automatically generated
cg@2724
  1155
     by the UIPainter of ST/X."
cg@2724
  1156
cg@2724
  1157
    "Do not manually edit this!! If it is corrupted,
cg@2724
  1158
     the UIPainter may not be able to read the specification."
cg@2724
  1159
cg@2724
  1160
    "
cg@2724
  1161
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page6b_specifyBuildDirectorySpec
cg@2724
  1162
     Tools::ProjectBuilderAssistantApplication new openInterface:#page6b_specifyBuildDirectorySpec
cg@2724
  1163
    "
cg@2724
  1164
cg@2724
  1165
    <resource: #canvas>
cg@2724
  1166
cg@2724
  1167
    ^ 
cg@3337
  1168
    #(FullSpec
cg@3337
  1169
       name: #'page6b_specifyBuildDirectorySpec'
cg@3337
  1170
       window: 
cg@3337
  1171
      (WindowSpec
cg@3337
  1172
         label: 'Project Selection'
cg@3337
  1173
         name: 'Project Selection'
cg@3337
  1174
         min: (Point 0 0)
cg@3337
  1175
         bounds: (Rectangle 0 0 521 361)
cg@3337
  1176
       )
cg@3337
  1177
       component: 
cg@3337
  1178
      (SpecCollection
cg@3337
  1179
         collection: (
cg@3337
  1180
          (FramedBoxSpec
cg@3337
  1181
             label: 'Build Directory'
cg@3337
  1182
             name: 'FramedBox3'
cg@3339
  1183
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 115 0)
cg@3337
  1184
             labelPosition: topLeft
cg@3337
  1185
             translateLabel: true
cg@3337
  1186
             component: 
cg@3337
  1187
            (SpecCollection
cg@3337
  1188
               collection: (
cg@3337
  1189
                (FilenameInputFieldSpec
cg@3337
  1190
                   name: 'FilenameEntryField1'
cg@3337
  1191
                   layout: (LayoutFrame 0 0.0 10 0 0 1.0 40 0)
cg@3337
  1192
                   model: buildDirectoryHolder
cg@3337
  1193
                   acceptOnPointerLeave: true
cg@3337
  1194
                   viewClassName: FilenameWidgetWithHistory
cg@2636
  1195
                 )
cg@3339
  1196
                (ActionButtonSpec
cg@3339
  1197
                   label: 'Clear'
cg@3339
  1198
                   name: 'Button1'
cg@3339
  1199
                   layout: (LayoutFrame -127 1 50 0 -2 1 72 0)
cg@3339
  1200
                   translateLabel: true
cg@3339
  1201
                   model: clearBuildDirectory
cg@3339
  1202
                 )
cg@3337
  1203
                )
cg@3337
  1204
              
cg@3337
  1205
             )
cg@3337
  1206
           )
cg@3337
  1207
          (FramedBoxSpec
cg@3337
  1208
             label: 'Compiler / Toolchain'
cg@3337
  1209
             name: 'FramedBox4'
cg@3339
  1210
             layout: (LayoutFrame 0 0.0 116 0 4 1.0 190 0)
cg@3337
  1211
             labelPosition: topLeft
cg@3337
  1212
             translateLabel: true
cg@3337
  1213
             component: 
cg@3337
  1214
            (SpecCollection
cg@3337
  1215
               collection: (
cg@3337
  1216
                (ComboListSpec
cg@3337
  1217
                   name: 'ComboList1'
cg@3337
  1218
                   layout: (LayoutFrame 0 0 10 0 137 0 40 0)
cg@3337
  1219
                   model: usedCompilerHolder
cg@3337
  1220
                   comboList: listOfPossibleCompilers
cg@3337
  1221
                   useIndex: false
cg@2681
  1222
                 )
cg@3337
  1223
                (LabelSpec
cg@3337
  1224
                   label: 'Compiler Suite'
cg@3337
  1225
                   name: 'Label2'
cg@3337
  1226
                   layout: (LayoutFrame 163 0 10 0 0 1 40 0)
cg@3337
  1227
                   translateLabel: true
cg@3337
  1228
                   labelChannel: nameOfUsedCompilerSuiteHolder
cg@3337
  1229
                   adjust: left
cg@3337
  1230
                 )
cg@3337
  1231
                )
cg@3337
  1232
              
cg@3337
  1233
             )
cg@2636
  1234
           )
cg@3337
  1235
          (TextEditorSpec
cg@3337
  1236
             name: 'TextEditor1'
cg@3339
  1237
             layout: (LayoutFrame 2 0.0 190 0 -2 1.0 303 0)
cg@3337
  1238
             level: -1
cg@3337
  1239
             visibilityChannel: compilerWarnMessageVisibleHolder
cg@3337
  1240
             model: compilerWarnMessageHolder
cg@3337
  1241
             hasHorizontalScrollBar: true
cg@3337
  1242
             hasVerticalScrollBar: true
cg@3337
  1243
             miniScrollerHorizontal: true
cg@3337
  1244
             backgroundColor: (Color 100.0 50.0 50.0)
cg@3337
  1245
             hasKeyboardFocusInitially: false
cg@3337
  1246
             postBuildCallback: postBuildWarnMessageView:
cg@3337
  1247
           )
cg@3337
  1248
          )
cg@3337
  1249
        
cg@3337
  1250
       )
cg@3337
  1251
     )
cg@2636
  1252
!
cg@2636
  1253
cg@2656
  1254
page7_buildSpec
cg@2636
  1255
    "This resource specification was automatically generated
cg@2636
  1256
     by the UIPainter of ST/X."
cg@2636
  1257
cg@2636
  1258
    "Do not manually edit this!! If it is corrupted,
cg@2636
  1259
     the UIPainter may not be able to read the specification."
cg@2636
  1260
cg@2636
  1261
    "
cg@2656
  1262
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page7_buildSpec
cg@2656
  1263
     Tools::ProjectBuilderAssistantApplication new openInterface:#page7_buildSpec
cg@2636
  1264
    "
cg@2636
  1265
cg@2636
  1266
    <resource: #canvas>
cg@2636
  1267
cg@2636
  1268
    ^ 
cg@3126
  1269
    #(FullSpec
cg@3126
  1270
       name: #'page7_buildSpec'
cg@3126
  1271
       window: 
cg@3126
  1272
      (WindowSpec
cg@3126
  1273
         label: 'Project Selection'
cg@3126
  1274
         name: 'Project Selection'
cg@3126
  1275
         min: (Point 0 0)
cg@3126
  1276
         bounds: (Rectangle 0 0 679 492)
cg@3126
  1277
       )
cg@3126
  1278
       component: 
cg@3126
  1279
      (SpecCollection
cg@3126
  1280
         collection: (
cg@3126
  1281
          (FramedBoxSpec
cg@3126
  1282
             label: 'Make Output'
cg@3126
  1283
             name: 'FramedBox3'
cg@3337
  1284
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 -106 1)
cg@3126
  1285
             labelPosition: topLeft
cg@3126
  1286
             translateLabel: true
cg@3126
  1287
             component: 
cg@3126
  1288
            (SpecCollection
cg@3126
  1289
               collection: (
cg@3126
  1290
                (TextEditorSpec
cg@3126
  1291
                   name: 'MakeOutputWindow'
cg@3126
  1292
                   layout: (LayoutFrame 0 0 0 0 0 1 0 1)
cg@3126
  1293
                   activeHelpKey: makeOutput
cg@3126
  1294
                   model: makeOutputHolder
cg@3126
  1295
                   hasHorizontalScrollBar: true
cg@3126
  1296
                   hasVerticalScrollBar: true
cg@3126
  1297
                   hasKeyboardFocusInitially: false
cg@3337
  1298
                   postBuildCallback: postBuildMakeOutputWindow:
cg@3126
  1299
                   viewClassName: 'TextCollector'
cg@2636
  1300
                 )
cg@3126
  1301
                )
cg@3126
  1302
              
cg@3126
  1303
             )
cg@3126
  1304
           )
cg@3126
  1305
          (HorizontalPanelViewSpec
cg@3126
  1306
             name: 'HorizontalPanel1'
cg@3337
  1307
             layout: (LayoutFrame 0 0 -106 1 0 1 -72 1)
cg@3126
  1308
             horizontalLayout: leftSpace
cg@3126
  1309
             verticalLayout: center
cg@3126
  1310
             horizontalSpace: 3
cg@3126
  1311
             verticalSpace: 3
cg@3126
  1312
             component: 
cg@3126
  1313
            (SpecCollection
cg@3126
  1314
               collection: (
cg@3126
  1315
                (ActionButtonSpec
cg@3126
  1316
                   label: 'Make All'
cg@3126
  1317
                   name: 'Button3'
cg@3126
  1318
                   activeHelpKey: makeAll
cg@3126
  1319
                   translateLabel: true
cg@3126
  1320
                   model: doStartMakeAll
cg@3126
  1321
                   enableChannel: startMakeButtonEnabled
cg@3126
  1322
                   useDefaultExtent: true
cg@2917
  1323
                 )
cg@3126
  1324
                (ActionButtonSpec
cg@3126
  1325
                   label: 'Make App'
cg@3126
  1326
                   name: 'Button17'
cg@3126
  1327
                   activeHelpKey: makeAll
cg@3126
  1328
                   visibilityChannel: osIsOSX
cg@3126
  1329
                   translateLabel: true
cg@3126
  1330
                   model: doStartMakeApp
cg@3126
  1331
                   enableChannel: startMakeButtonEnabled
cg@3126
  1332
                   useDefaultExtent: true
cg@2648
  1333
                 )
cg@3126
  1334
                (ActionButtonSpec
cg@3126
  1335
                   label: 'Make EXE only'
cg@3126
  1336
                   name: 'Button5'
cg@3126
  1337
                   activeHelpKey: makeExe
cg@3126
  1338
                   translateLabel: true
cg@3126
  1339
                   model: doStartMakeExe
cg@3126
  1340
                   enableChannel: startMakeButtonEnabled
cg@3126
  1341
                   useDefaultExtent: true
cg@2960
  1342
                 )
cg@3126
  1343
                (ActionButtonSpec
cg@3126
  1344
                   label: 'Quick Make EXE'
cg@3126
  1345
                   name: 'Button16'
cg@3126
  1346
                   activeHelpKey: makeExeQuick
cg@3126
  1347
                   translateLabel: true
cg@3126
  1348
                   model: doStartMakeExeQuick
cg@3126
  1349
                   enableChannel: startMakeButtonEnabled
cg@3126
  1350
                   useDefaultExtent: true
cg@3126
  1351
                 )
cg@3126
  1352
                (ViewSpec
cg@3126
  1353
                   name: 'Box1'
cg@3126
  1354
                   extent: (Point 20 10)
cg@3126
  1355
                 )
cg@3126
  1356
                (ActionButtonSpec
cg@3126
  1357
                   label: 'Stop Make'
cg@3126
  1358
                   name: 'Button4'
cg@3126
  1359
                   activeHelpKey: stopMake
cg@3126
  1360
                   visibilityChannel: stopMakeButtonVisible
cg@3126
  1361
                   translateLabel: true
cg@3126
  1362
                   model: doStopMake
cg@3126
  1363
                   useDefaultExtent: true
cg@3126
  1364
                 )
cg@3126
  1365
                )
cg@3126
  1366
              
cg@3126
  1367
             )
cg@2636
  1368
           )
cg@3126
  1369
          (HorizontalPanelViewSpec
cg@3126
  1370
             name: 'HorizontalPanel2'
cg@3337
  1371
             layout: (LayoutFrame 0 0 -70 1 0 1 -36 1)
cg@3126
  1372
             horizontalLayout: leftSpace
cg@3126
  1373
             verticalLayout: center
cg@3126
  1374
             horizontalSpace: 3
cg@3126
  1375
             verticalSpace: 3
cg@3126
  1376
             component: 
cg@3126
  1377
            (SpecCollection
cg@3126
  1378
               collection: (
cg@3337
  1379
                (LabelSpec
cg@3337
  1380
                   label: 'Build Directory'
cg@3337
  1381
                   name: 'Label1'
cg@3337
  1382
                   translateLabel: true
cg@3337
  1383
                   useDefaultExtent: true
cg@3337
  1384
                 )
cg@3126
  1385
                (ActionButtonSpec
cg@3337
  1386
                   label: 'Finder'
cg@3126
  1387
                   name: 'Button13'
cg@3126
  1388
                   activeHelpKey: openFinder
cg@3126
  1389
                   visibilityChannel: osIsOSX
cg@3126
  1390
                   translateLabel: true
cg@3126
  1391
                   model: doOpenFinder
cg@3126
  1392
                   useDefaultExtent: true
cg@3126
  1393
                 )
cg@3126
  1394
                (ActionButtonSpec
cg@3337
  1395
                   label: 'Explorer'
cg@3126
  1396
                   name: 'Button14'
cg@3126
  1397
                   activeHelpKey: openExplorer
cg@3126
  1398
                   visibilityChannel: osIsWindows
cg@3126
  1399
                   translateLabel: true
cg@3126
  1400
                   model: doOpenExplorer
cg@3126
  1401
                   useDefaultExtent: true
cg@3126
  1402
                 )
cg@3126
  1403
                (ActionButtonSpec
cg@3337
  1404
                   label: 'Browser'
cg@3126
  1405
                   name: 'Button11'
cg@3126
  1406
                   activeHelpKey: openFileBrowser
cg@3126
  1407
                   translateLabel: true
cg@3126
  1408
                   model: doBrowseBuildDirectory
cg@3126
  1409
                   useDefaultExtent: true
cg@3126
  1410
                 )
cg@3126
  1411
                (ViewSpec
cg@3126
  1412
                   name: 'Box2'
cg@3126
  1413
                   extent: (Point 20 10)
cg@3126
  1414
                 )
cg@3126
  1415
                (ActionButtonSpec
cg@3337
  1416
                   label: 'Clear'
cg@3126
  1417
                   name: 'Button12'
cg@3126
  1418
                   activeHelpKey: clearBuildDirectory
cg@3126
  1419
                   translateLabel: true
cg@3126
  1420
                   model: doClearBuildDirectory
cg@3126
  1421
                   useDefaultExtent: true
cg@3126
  1422
                 )
cg@3126
  1423
                )
cg@3126
  1424
              
cg@3126
  1425
             )
cg@3126
  1426
           )
cg@3126
  1427
          (HorizontalPanelViewSpec
cg@3126
  1428
             name: 'HorizontalPanel3'
cg@3337
  1429
             layout: (LayoutFrame 0 0 -34 1 0 1 0 1)
cg@3126
  1430
             horizontalLayout: leftSpace
cg@3126
  1431
             verticalLayout: center
cg@3126
  1432
             horizontalSpace: 3
cg@3126
  1433
             verticalSpace: 3
cg@3126
  1434
             component: 
cg@3126
  1435
            (SpecCollection
cg@3126
  1436
               collection: (
cg@3126
  1437
                (ActionButtonSpec
cg@3126
  1438
                   label: 'Terminal in Build Directory'
cg@3126
  1439
                   name: 'Button15'
cg@3126
  1440
                   activeHelpKey: openTerminal
cg@3126
  1441
                   translateLabel: true
cg@3126
  1442
                   model: doOpenTerminal
cg@3126
  1443
                   useDefaultExtent: true
cg@3126
  1444
                 )
cg@3126
  1445
                )
cg@3126
  1446
              
cg@3126
  1447
             )
cg@3126
  1448
           )
cg@3126
  1449
          )
cg@3126
  1450
        
cg@3126
  1451
       )
cg@3126
  1452
     )
cg@2636
  1453
!
cg@2636
  1454
cg@3068
  1455
page7a_checkinSpec
cg@3068
  1456
    "This resource specification was automatically generated
cg@3068
  1457
     by the UIPainter of ST/X."
cg@3068
  1458
cg@3068
  1459
    "Do not manually edit this!! If it is corrupted,
cg@3068
  1460
     the UIPainter may not be able to read the specification."
cg@3068
  1461
cg@3068
  1462
    "
cg@3068
  1463
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page7a_checkinSpec
cg@3068
  1464
     Tools::ProjectBuilderAssistantApplication new openInterface:#page7a_checkinSpec
cg@3068
  1465
    "
cg@3068
  1466
cg@3068
  1467
    <resource: #canvas>
cg@3068
  1468
cg@3068
  1469
    ^ 
cg@3068
  1470
    #(FullSpec
cg@3068
  1471
       name: #'page7a_checkinSpec'
cg@3068
  1472
       window: 
cg@3068
  1473
      (WindowSpec
cg@3068
  1474
         label: 'Check Into Repository'
cg@3068
  1475
         name: 'Check Into Repository'
cg@3068
  1476
         min: (Point 0 0)
cg@3068
  1477
         bounds: (Rectangle 0 0 679 492)
cg@3068
  1478
       )
cg@3068
  1479
       component: 
cg@3068
  1480
      (SpecCollection
cg@3068
  1481
         collection: (
cg@3068
  1482
          (HorizontalPanelViewSpec
cg@3068
  1483
             name: 'HorizontalPanel2'
cg@3337
  1484
             layout: (LayoutFrame 10 0 10 0 0 1 44 0)
cg@3068
  1485
             horizontalLayout: leftSpace
cg@3068
  1486
             verticalLayout: center
cg@3068
  1487
             horizontalSpace: 3
cg@3068
  1488
             verticalSpace: 3
cg@3068
  1489
             component: 
cg@3068
  1490
            (SpecCollection
cg@3068
  1491
               collection: (
cg@3068
  1492
                (ActionButtonSpec
cg@3068
  1493
                   label: 'Checkin...'
cg@3126
  1494
                   name: 'CheckinButton'
cg@3068
  1495
                   activeHelpKey: openFinder
cg@3068
  1496
                   visibilityChannel: osIsOSX
cg@3068
  1497
                   translateLabel: true
cg@3126
  1498
                   resizeForLabel: true
cg@3068
  1499
                   model: doCheckin
cg@3068
  1500
                   useDefaultExtent: true
cg@3068
  1501
                 )
cg@3068
  1502
                )
cg@3068
  1503
              
cg@3068
  1504
             )
cg@3068
  1505
           )
cg@3068
  1506
          )
cg@3068
  1507
        
cg@3068
  1508
       )
cg@3068
  1509
     )
cg@3068
  1510
!
cg@3068
  1511
cg@3068
  1512
page7b_buildSpec
cg@3068
  1513
    "This resource specification was automatically generated
cg@3068
  1514
     by the UIPainter of ST/X."
cg@3068
  1515
cg@3068
  1516
    "Do not manually edit this!! If it is corrupted,
cg@3068
  1517
     the UIPainter may not be able to read the specification."
cg@3068
  1518
cg@3068
  1519
    "
cg@3126
  1520
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page7b_buildSpec
cg@3126
  1521
     Tools::ProjectBuilderAssistantApplication new openInterface:#page7b_buildSpec
cg@3068
  1522
    "
cg@3068
  1523
cg@3068
  1524
    <resource: #canvas>
cg@3068
  1525
cg@3068
  1526
    ^ 
cg@3126
  1527
    #(FullSpec
cg@3126
  1528
       name: #'page7b_buildSpec'
cg@3126
  1529
       window: 
cg@3126
  1530
      (WindowSpec
cg@3126
  1531
         label: 'Project Selection'
cg@3126
  1532
         name: 'Project Selection'
cg@3126
  1533
         min: (Point 0 0)
cg@3126
  1534
         bounds: (Rectangle 0 0 679 492)
cg@3126
  1535
       )
cg@3126
  1536
       component: 
cg@3126
  1537
      (SpecCollection
cg@3126
  1538
         collection: (
cg@3126
  1539
          (FramedBoxSpec
cg@3126
  1540
             label: 'Make Output'
cg@3126
  1541
             name: 'FramedBox3'
cg@3337
  1542
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 -106 1)
cg@3126
  1543
             labelPosition: topLeft
cg@3126
  1544
             translateLabel: true
cg@3126
  1545
             component: 
cg@3126
  1546
            (SpecCollection
cg@3126
  1547
               collection: (
cg@3126
  1548
                (TextEditorSpec
cg@3126
  1549
                   name: 'MakeOutputWindow'
cg@3126
  1550
                   layout: (LayoutFrame 0 0 0 0 0 1 0 1)
cg@3126
  1551
                   activeHelpKey: makeOutput
cg@3126
  1552
                   model: makeOutputHolder
cg@3126
  1553
                   hasHorizontalScrollBar: true
cg@3126
  1554
                   hasVerticalScrollBar: true
cg@3126
  1555
                   hasKeyboardFocusInitially: false
cg@3337
  1556
                   postBuildCallback: postBuildMakeOutputWindow:
cg@3126
  1557
                   viewClassName: 'TextCollector'
cg@3068
  1558
                 )
cg@3126
  1559
                )
cg@3126
  1560
              
cg@3126
  1561
             )
cg@3126
  1562
           )
cg@3126
  1563
          (HorizontalPanelViewSpec
cg@3126
  1564
             name: 'HorizontalPanel1'
cg@3337
  1565
             layout: (LayoutFrame 0 0 -106 1 -2 1 -72 1)
cg@3126
  1566
             horizontalLayout: leftSpace
cg@3126
  1567
             verticalLayout: center
cg@3126
  1568
             horizontalSpace: 3
cg@3126
  1569
             verticalSpace: 3
cg@3126
  1570
             component: 
cg@3126
  1571
            (SpecCollection
cg@3126
  1572
               collection: (
cg@3126
  1573
                (ActionButtonSpec
cg@3126
  1574
                   label: 'Make All'
cg@3126
  1575
                   name: 'Button3'
cg@3126
  1576
                   activeHelpKey: makeAll
cg@3126
  1577
                   translateLabel: true
cg@3126
  1578
                   model: doStartMakeAll
cg@3126
  1579
                   enableChannel: startMakeButtonEnabled
cg@3126
  1580
                   useDefaultExtent: true
cg@3068
  1581
                 )
cg@3126
  1582
                (ActionButtonSpec
cg@3126
  1583
                   label: 'Make APP only'
cg@3126
  1584
                   name: 'Button17'
cg@3126
  1585
                   activeHelpKey: makeApp
cg@3126
  1586
                   visibilityChannel: osIsOSX
cg@3126
  1587
                   translateLabel: true
cg@3126
  1588
                   model: doStartMakeApp
cg@3126
  1589
                   enableChannel: startMakeButtonEnabled
cg@3126
  1590
                   useDefaultExtent: true
cg@3068
  1591
                 )
cg@3126
  1592
                (ActionButtonSpec
cg@3126
  1593
                   label: 'Make EXE only'
cg@3126
  1594
                   name: 'Button5'
cg@3126
  1595
                   activeHelpKey: makeExe
cg@3126
  1596
                   translateLabel: true
cg@3126
  1597
                   model: doStartMakeExe
cg@3126
  1598
                   enableChannel: startMakeButtonEnabled
cg@3126
  1599
                   useDefaultExtent: true
cg@3068
  1600
                 )
cg@3126
  1601
                (ActionButtonSpec
cg@3126
  1602
                   label: 'Quick Make EXE'
cg@3126
  1603
                   name: 'Button16'
cg@3126
  1604
                   activeHelpKey: makeExeQuick
cg@3126
  1605
                   translateLabel: true
cg@3126
  1606
                   model: doStartMakeExeQuick
cg@3126
  1607
                   enableChannel: startMakeButtonEnabled
cg@3126
  1608
                   useDefaultExtent: true
cg@3126
  1609
                 )
cg@3126
  1610
                (ViewSpec
cg@3126
  1611
                   name: 'Box1'
cg@3126
  1612
                   extent: (Point 20 10)
cg@3126
  1613
                 )
cg@3126
  1614
                (ActionButtonSpec
cg@3126
  1615
                   label: 'Stop Make'
cg@3126
  1616
                   name: 'Button4'
cg@3126
  1617
                   activeHelpKey: stopMake
cg@3126
  1618
                   visibilityChannel: stopMakeButtonVisible
cg@3126
  1619
                   translateLabel: true
cg@3126
  1620
                   model: doStopMake
cg@3126
  1621
                   useDefaultExtent: true
cg@3126
  1622
                 )
cg@3126
  1623
                )
cg@3126
  1624
              
cg@3126
  1625
             )
cg@3068
  1626
           )
cg@3126
  1627
          (HorizontalPanelViewSpec
cg@3126
  1628
             name: 'HorizontalPanel2'
cg@3337
  1629
             layout: (LayoutFrame 0 0 -70 1 -2 1 -36 1)
cg@3126
  1630
             horizontalLayout: leftSpace
cg@3126
  1631
             verticalLayout: center
cg@3126
  1632
             horizontalSpace: 3
cg@3126
  1633
             verticalSpace: 3
cg@3126
  1634
             component: 
cg@3126
  1635
            (SpecCollection
cg@3126
  1636
               collection: (
cg@3337
  1637
                (LabelSpec
cg@3337
  1638
                   label: 'Build Directory:'
cg@3337
  1639
                   name: 'Label1'
cg@3337
  1640
                   translateLabel: true
cg@3337
  1641
                   useDefaultExtent: true
cg@3337
  1642
                 )
cg@3126
  1643
                (ActionButtonSpec
cg@3337
  1644
                   label: 'Finder'
cg@3126
  1645
                   name: 'Button13'
cg@3126
  1646
                   activeHelpKey: openFinder
cg@3126
  1647
                   visibilityChannel: osIsOSX
cg@3126
  1648
                   translateLabel: true
cg@3126
  1649
                   model: doOpenFinder
cg@3126
  1650
                   useDefaultExtent: true
cg@3126
  1651
                 )
cg@3126
  1652
                (ActionButtonSpec
cg@3337
  1653
                   label: 'Explorer'
cg@3126
  1654
                   name: 'Button14'
cg@3126
  1655
                   activeHelpKey: openExplorer
cg@3126
  1656
                   visibilityChannel: osIsWindows
cg@3126
  1657
                   translateLabel: true
cg@3126
  1658
                   model: doOpenExplorer
cg@3126
  1659
                   useDefaultExtent: true
cg@3126
  1660
                 )
cg@3126
  1661
                (ActionButtonSpec
cg@3337
  1662
                   label: 'Browser'
cg@3126
  1663
                   name: 'Button11'
cg@3126
  1664
                   activeHelpKey: openFileBrowser
cg@3126
  1665
                   translateLabel: true
cg@3126
  1666
                   model: doBrowseBuildDirectory
cg@3126
  1667
                   useDefaultExtent: true
cg@3126
  1668
                 )
cg@3126
  1669
                (ViewSpec
cg@3126
  1670
                   name: 'Box2'
cg@3126
  1671
                   extent: (Point 20 10)
cg@3126
  1672
                 )
cg@3126
  1673
                (ActionButtonSpec
cg@3337
  1674
                   label: 'Clear'
cg@3126
  1675
                   name: 'Button12'
cg@3126
  1676
                   activeHelpKey: clearBuildDirectory
cg@3126
  1677
                   translateLabel: true
cg@3126
  1678
                   model: doClearBuildDirectory
cg@3126
  1679
                   useDefaultExtent: true
cg@3126
  1680
                 )
cg@3126
  1681
                )
cg@3126
  1682
              
cg@3126
  1683
             )
cg@3126
  1684
           )
cg@3126
  1685
          (HorizontalPanelViewSpec
cg@3126
  1686
             name: 'HorizontalPanel3'
cg@3337
  1687
             layout: (LayoutFrame 0 0 -34 1 -2 1 0 1)
cg@3126
  1688
             horizontalLayout: leftSpace
cg@3126
  1689
             verticalLayout: center
cg@3126
  1690
             horizontalSpace: 3
cg@3126
  1691
             verticalSpace: 3
cg@3126
  1692
             component: 
cg@3126
  1693
            (SpecCollection
cg@3126
  1694
               collection: (
cg@3126
  1695
                (ActionButtonSpec
cg@3126
  1696
                   label: 'Terminal in Build Directory'
cg@3126
  1697
                   name: 'Button15'
cg@3126
  1698
                   activeHelpKey: openTerminal
cg@3126
  1699
                   translateLabel: true
cg@3126
  1700
                   model: doOpenTerminal
cg@3126
  1701
                   useDefaultExtent: true
cg@3126
  1702
                 )
cg@3126
  1703
                )
cg@3126
  1704
              
cg@3126
  1705
             )
cg@3126
  1706
           )
cg@3126
  1707
          )
cg@3126
  1708
        
cg@3126
  1709
       )
cg@3126
  1710
     )
cg@3068
  1711
!
cg@3068
  1712
cg@2676
  1713
page8_deploySpec
cg@2676
  1714
    "This resource specification was automatically generated
cg@2676
  1715
     by the UIPainter of ST/X."
cg@2676
  1716
cg@2676
  1717
    "Do not manually edit this!! If it is corrupted,
cg@2676
  1718
     the UIPainter may not be able to read the specification."
cg@2676
  1719
cg@2676
  1720
    "
cg@2676
  1721
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#page8_deploySpec
cg@2676
  1722
     Tools::ProjectBuilderAssistantApplication new openInterface:#page8_deploySpec
cg@2676
  1723
    "
cg@2676
  1724
cg@2676
  1725
    <resource: #canvas>
cg@2676
  1726
cg@2676
  1727
    ^ 
cg@3126
  1728
    #(FullSpec
cg@3126
  1729
       name: #'page8_deploySpec'
cg@3126
  1730
       window: 
cg@3126
  1731
      (WindowSpec
cg@3126
  1732
         label: 'Project Selection'
cg@3126
  1733
         name: 'Project Selection'
cg@3126
  1734
         min: (Point 0 0)
cg@3337
  1735
         bounds: (Rectangle 0 0 520 478)
cg@3126
  1736
       )
cg@3126
  1737
       component: 
cg@3126
  1738
      (SpecCollection
cg@3126
  1739
         collection: (
cg@3126
  1740
          (FramedBoxSpec
cg@3126
  1741
             label: 'Files for Deployment'
cg@3126
  1742
             name: 'FramedBox3'
cg@3126
  1743
             layout: (LayoutFrame 0 0.0 5 0 4 1.0 0 1)
cg@3126
  1744
             labelPosition: topLeft
cg@3126
  1745
             translateLabel: true
cg@3126
  1746
             component: 
cg@3126
  1747
            (SpecCollection
cg@3126
  1748
               collection: (
cg@3126
  1749
                (SubCanvasSpec
cg@3335
  1750
                   name: 'FileBrowserSubCanvas'
cg@3337
  1751
                   layout: (LayoutFrame 0 0 0 0 0 1 -34 1)
cg@3126
  1752
                   hasHorizontalScrollBar: false
cg@3126
  1753
                   hasVerticalScrollBar: false
cg@3126
  1754
                   clientHolder: fileBrowserInstance
cg@3126
  1755
                   createNewApplication: true
cg@3126
  1756
                   createNewBuilder: true
cg@3126
  1757
                 )
cg@3126
  1758
                (HorizontalPanelViewSpec
cg@3126
  1759
                   name: 'HorizontalPanel1'
cg@3337
  1760
                   layout: (LayoutFrame 0 0 -34 1 -2 1 0 1)
cg@3126
  1761
                   horizontalLayout: centerMax
cg@3126
  1762
                   verticalLayout: center
cg@3126
  1763
                   horizontalSpace: 3
cg@3126
  1764
                   verticalSpace: 3
cg@3126
  1765
                   component: 
cg@3126
  1766
                  (SpecCollection
cg@3126
  1767
                     collection: (
cg@3126
  1768
                      (ActionButtonSpec
cg@3337
  1769
                         label: 'Windows Explorer'
cg@3126
  1770
                         name: 'Button1'
cg@3126
  1771
                         visibilityChannel: osIsWindows
cg@3126
  1772
                         translateLabel: true
cg@3126
  1773
                         resizeForLabel: true
cg@3126
  1774
                         model: doOpenExplorer
cg@3337
  1775
                         useDefaultExtent: true
cg@2649
  1776
                       )
cg@3126
  1777
                      (ActionButtonSpec
cg@3337
  1778
                         label: ' Finder'
cg@3126
  1779
                         name: 'Button3'
cg@3126
  1780
                         visibilityChannel: osIsOSX
cg@3126
  1781
                         translateLabel: true
cg@3126
  1782
                         resizeForLabel: true
cg@3126
  1783
                         model: doOpenFinder
cg@3337
  1784
                         useDefaultExtent: true
cg@3126
  1785
                       )
cg@3126
  1786
                      (ActionButtonSpec
cg@3337
  1787
                         label: 'Terminal'
cg@3126
  1788
                         name: 'Button2'
cg@3126
  1789
                         translateLabel: true
cg@3126
  1790
                         resizeForLabel: true
cg@3126
  1791
                         model: doOpenTerminal
cg@3337
  1792
                         useDefaultExtent: true
cg@3126
  1793
                       )
cg@3126
  1794
                      )
cg@3126
  1795
                    
cg@3126
  1796
                   )
cg@2636
  1797
                 )
cg@3126
  1798
                )
cg@3126
  1799
              
cg@3126
  1800
             )
cg@2636
  1801
           )
cg@3126
  1802
          )
cg@3126
  1803
        
cg@3126
  1804
       )
cg@3126
  1805
     )
cg@2676
  1806
! !
cg@2676
  1807
fm@2697
  1808
!ProjectBuilderAssistantApplication class methodsFor:'misc specs'!
fm@2697
  1809
fm@2697
  1810
newProjectsNameListSpec
fm@2697
  1811
    "This resource specification was automatically generated
fm@2697
  1812
     by the UIPainter of ST/X."
fm@2697
  1813
fm@2697
  1814
    "Do not manually edit this!! If it is corrupted,
fm@2697
  1815
     the UIPainter may not be able to read the specification."
fm@2697
  1816
fm@2697
  1817
    "
fm@2697
  1818
     UIPainter new openOnClass:Tools::ProjectBuilderAssistantApplication andSelector:#newProjectsNameListSpec
fm@2697
  1819
     Tools::ProjectBuilderAssistantApplication new openInterface:#newProjectsNameListSpec
fm@2697
  1820
    "
fm@2697
  1821
fm@2697
  1822
    <resource: #canvas>
fm@2697
  1823
fm@2697
  1824
    ^ 
fm@2697
  1825
     #(FullSpec
fm@2697
  1826
        name: newProjectsNameListSpec
fm@2697
  1827
        window: 
fm@2697
  1828
       (WindowSpec
fm@2697
  1829
          label: 'NewApplication'
fm@2697
  1830
          name: 'NewApplication'
fm@2697
  1831
          min: (Point 0 0)
fm@2697
  1832
          bounds: (Rectangle 0 0 131 207)
cg@2990
  1833
          usePreferredExtent: true
fm@2697
  1834
        )
fm@2697
  1835
        component: 
fm@2697
  1836
       (SpecCollection
fm@2697
  1837
          collection: (
fm@2697
  1838
           (SequenceViewSpec
fm@2697
  1839
              name: 'ReferencePoint2'
fm@2697
  1840
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
fm@2705
  1841
              activeHelpKey: listOfNewProjectsName
fm@2697
  1842
              model: newProjectsName
fm@2697
  1843
              hasHorizontalScrollBar: true
fm@2697
  1844
              hasVerticalScrollBar: true
fm@2697
  1845
              miniScrollerHorizontal: true
fm@2697
  1846
              miniScrollerVertical: false
fm@2697
  1847
              useIndex: false
fm@2697
  1848
              sequenceList: listOfNewProjectsName
fm@2705
  1849
              doubleClickChannel: newProjectsNameListDoubleClickChannel
cg@2990
  1850
              usePreferredHeight: true
cg@2990
  1851
              useDynamicPreferredHeight: true
fm@2697
  1852
            )
fm@2697
  1853
           )
fm@2697
  1854
         
fm@2697
  1855
        )
fm@2697
  1856
      )
fm@2697
  1857
! !
fm@2697
  1858
cg@2897
  1859
!ProjectBuilderAssistantApplication class methodsFor:'startup'!
cg@2897
  1860
cg@3337
  1861
openOn:aProjectDefinitionOrStartupClass
cg@3337
  1862
    ^ self new openOn:aProjectDefinitionOrStartupClass
cg@2897
  1863
cg@2897
  1864
    "Created: / 20-07-2012 / 12:33:25 / cg"
cg@2897
  1865
!
cg@2897
  1866
cg@2897
  1867
openOnPackage:aPackageId
cg@2897
  1868
    ^ self new openOnPackage:aPackageId
cg@2897
  1869
cg@2897
  1870
    "Created: / 20-07-2012 / 13:22:50 / cg"
cg@2897
  1871
! !
cg@2897
  1872
cg@2676
  1873
!ProjectBuilderAssistantApplication methodsFor:'actions'!
cg@2676
  1874
cg@2676
  1875
buildDirectoryChanged
cg@2676
  1876
    self updateButtonEnableState.
cg@2636
  1877
!
cg@2636
  1878
cg@3339
  1879
clearBuildDirectory
cg@3339
  1880
    self halt.
cg@3339
  1881
!
cg@3339
  1882
cg@2676
  1883
createNewApplication
cg@2676
  1884
    <resource: #uiCallback>
cg@2636
  1885
cg@2676
  1886
    |newAppName newAppClass|
cg@2676
  1887
cg@2676
  1888
    newAppName := self newApplicationsName value.
cg@2676
  1889
    newAppName isEmptyOrNil ifTrue:[
cg@2676
  1890
        Dialog warn:'Please enter the name of the Application-Class first.'.
cg@2676
  1891
        ^ self
cg@2676
  1892
    ].
cg@3004
  1893
    newAppName isUppercaseFirst ifFalse:[
cg@3004
  1894
        (Dialog confirm:(resources 
cg@3004
  1895
                    stringWithCRs:'Class names must start with an uppercase character.\\Change to "%1"?'
cg@3004
  1896
                    with:newAppName asUppercaseFirst))
cg@3004
  1897
        ifFalse:[
cg@3004
  1898
            ^ self
cg@3004
  1899
        ].
cg@3004
  1900
        newAppName := newAppName asUppercaseFirst.
cg@3004
  1901
        self newApplicationsName value:newAppName.
cg@3004
  1902
    ].
cg@2676
  1903
cg@2676
  1904
    self withWaitCursorDo:[
cg@2676
  1905
        Class packageQuerySignal answer:(selectedProjectDefinition package)
cg@2676
  1906
        do:[
cg@2659
  1907
            newAppClass := ApplicationModel
cg@2659
  1908
                            subclass:newAppName asSymbol
cg@2659
  1909
                            instanceVariableNames:''
cg@2659
  1910
                            classVariableNames:''
cg@2659
  1911
                            poolDictionaries:''
cg@2659
  1912
                            category:'Applications'.
cg@2832
  1913
            SmalltalkCodeGeneratorTool createApplicationCodeFor:newAppClass.
cg@2659
  1914
        ].
cg@2724
  1915
        self updateListOfApplicationsInProject.
cg@2724
  1916
        self selectedApplicationIndexHolder value:(listOfApplicationsInProject value indexOf:newAppClass).
cg@2636
  1917
    ].
cg@2832
  1918
cg@2832
  1919
    "Modified: / 31-01-2011 / 18:29:50 / cg"
cg@2636
  1920
!
cg@2636
  1921
cg@2676
  1922
createNewProject
cg@2676
  1923
    <resource: #uiCallback>
cg@2676
  1924
cg@2676
  1925
    |newProjectID projectDefinitionType projectDefinitionClass projectClasses|
cg@2676
  1926
cg@2676
  1927
    newProjectID := self newProjectsName value.
cg@2676
  1928
    newProjectID isEmptyOrNil ifTrue:[
cg@2686
  1929
        Dialog warn:(resources string:'Please enter a packageID first.').
cg@2676
  1930
        ^ self
cg@2676
  1931
    ].
cg@2676
  1932
    newProjectID asPackageId isModuleId ifTrue:[
cg@2686
  1933
        Dialog warn:(resources stringWithCRs:
cg@2686
  1934
'Please enter a corrent packageID.
cg@2686
  1935
cg@2686
  1936
All packages must be named like "%1:%2"
cg@2686
  1937
(%2 can be a path like "dir/dir/...").' with:(resources string:'module')allItalic
cg@2686
  1938
                                        with:(resources string:'directory')allItalic).
cg@2676
  1939
        ^ self
cg@2676
  1940
    ].
cg@2676
  1941
cg@2709
  1942
    self withWaitCursorDo:[
cg@2900
  1943
        projectDefinitionType := self projectType. "/ ProjectDefinition perform:(self projectTypeHolder value).
cg@2676
  1944
cg@2709
  1945
        projectDefinitionClass := ProjectDefinition
cg@2709
  1946
                                    definitionClassForPackage:newProjectID
cg@2709
  1947
                                    projectType: projectDefinitionType
cg@2709
  1948
                                    createIfAbsent:true.
cg@2676
  1949
cg@2709
  1950
        projectDefinitionClass compileDescriptionMethods.
cg@2709
  1951
        self updateListOfMatchingProjects.
cg@2709
  1952
        self updateListOfNewProjectsName.
cg@2676
  1953
cg@2709
  1954
        self selectedProjectIndexHolder value:( self listOfMatchingProjects value indexOf:projectDefinitionClass).
cg@2676
  1955
cg@2851
  1956
        projectClasses := projectDefinitionClass allClasses.
cg@2676
  1957
cg@2676
  1958
"/    projectDefinitionClass isGUIApplication ifTrue:[
cg@2676
  1959
"/        "/ see if it has an AppModel class
cg@2659
  1960
"/        (projectClasses contains:[:cls | cls isVisualStartable]) ifFalse:[
cg@2659
  1961
"/            (Dialog confirm:'Create an Application Class ?') ifTrue:[
cg@2659
  1962
"/                self halt.
cg@2659
  1963
"/            ].
cg@2659
  1964
"/        ].
cg@2659
  1965
"/    ].
cg@2636
  1966
cg@2636
  1967
"/    projectDefinitionClass isLibrary ifFalse:[
cg@2636
  1968
"/        "/ see if it has a Startup class
cg@2636
  1969
"/        (projectClasses contains:[:cls | cls isStartable]) ifFalse:[
cg@2636
  1970
"/        ].
cg@2636
  1971
"/    ].
cg@2709
  1972
cg@2709
  1973
    ].
cg@2851
  1974
cg@2900
  1975
    "Modified: / 06-08-2012 / 16:55:54 / cg"
cg@2636
  1976
!
cg@2636
  1977
cg@2676
  1978
createNewStartupClass
cg@2676
  1979
    <resource: #uiCallback>
cg@2676
  1980
fm@2696
  1981
    |newClassName newStartupClass startupApplication|
cg@2676
  1982
cg@2676
  1983
    newClassName := self newStartupClassName value.
cg@2676
  1984
    newClassName isEmptyOrNil ifTrue:[
cg@2676
  1985
        Dialog warn:'Please enter the name of the Startup-Class first.'.
cg@2676
  1986
        ^ self
cg@2676
  1987
    ].
cg@3004
  1988
    newClassName isUppercaseFirst ifFalse:[
cg@3004
  1989
        (Dialog confirm:(resources 
cg@3004
  1990
                    stringWithCRs:'Class names must start with an uppercase character.\\Change to "%1"?'
cg@3004
  1991
                    with:newClassName asUppercaseFirst))
cg@3004
  1992
        ifFalse:[
cg@3004
  1993
            ^ self
cg@3004
  1994
        ].
cg@3004
  1995
        newClassName := newClassName asUppercaseFirst.
cg@3004
  1996
        self newStartupClassName value:newClassName.
cg@3004
  1997
    ].
cg@2676
  1998
cg@2719
  1999
    self withWaitCursorDo:[ 
cg@2719
  2000
        |pkg|
cg@2719
  2001
cg@2719
  2002
        pkg := selectedProjectDefinition notNil 
cg@2719
  2003
                    ifTrue:[selectedProjectDefinition package]
cg@2719
  2004
                    ifFalse:[newProjectsName value].
cg@2719
  2005
        Class packageQuerySignal answer:pkg
cg@2676
  2006
        do:[
cg@3337
  2007
            |startupClass|
cg@3337
  2008
            
cg@3337
  2009
            startupClass := self projectTypeIsNonGuiApplication
cg@3337
  2010
                                ifTrue:[ StandaloneStartupHeadless ]
cg@3337
  2011
                                ifFalse:[ StandaloneStartup ]. 
cg@3337
  2012
            newStartupClass := startupClass
cg@2659
  2013
                            subclass:newClassName asSymbol
cg@2659
  2014
                            instanceVariableNames:''
cg@2659
  2015
                            classVariableNames:''
cg@2659
  2016
                            poolDictionaries:''
fm@2696
  2017
                            category:'Applications'.   
fm@2696
  2018
fm@2696
  2019
            self projectTypeIsGuiApplication ifTrue: [startupApplication := selectedApplication].
cg@2832
  2020
            SmalltalkCodeGeneratorTool createStartupCodeFor:newStartupClass forStartOf:startupApplication.
cg@2659
  2021
        ].
cg@2724
  2022
        self updateListOfStartupClassesInProject.
cg@2724
  2023
        self selectedStartupClassIndexHolder value:(listOfStartupClassesInProject value indexOf:newStartupClass).
cg@2659
  2024
    ].
cg@2832
  2025
cg@2832
  2026
    "Modified: / 31-01-2011 / 18:29:47 / cg"
cg@2659
  2027
!
cg@2659
  2028
cg@2676
  2029
doAddClassToProject
cg@2676
  2030
    <resource: #uiCallback>
cg@2636
  2031
cg@2636
  2032
    Transcript showCR:self class name, ': action for doAddClassToProject ...'.
cg@2962
  2033
    self halt:'unimplemented'.
cg@2636
  2034
!
cg@2636
  2035
cg@2676
  2036
doBrowseApplication
cg@2676
  2037
    <resource: #uiCallback>
cg@2636
  2038
cg@2636
  2039
    |appClass|
cg@2636
  2040
cg@2659
  2041
    self hasApplicationSelected ifTrue:[
cg@2659
  2042
        appClass := self listOfApplicationsInProject value at:(self selectedApplicationIndexHolder value).
cg@3485
  2043
        SystemBrowser default
cg@2668
  2044
            openInClass:appClass class selector:#windowSpec.
cg@2659
  2045
    ].
cg@3485
  2046
cg@3485
  2047
    "Modified: / 01-09-2017 / 14:23:06 / cg"
cg@2636
  2048
!
cg@2636
  2049
cg@2906
  2050
doBrowseBuildDirectory
cg@2906
  2051
    <resource: #uiCallback>
cg@2906
  2052
cg@2959
  2053
    projectBuilder isNil ifTrue:[ self getProjectBuilder ].
cg@2959
  2054
    projectBuilder buildDirectory isNil ifTrue:[
cg@2959
  2055
        Dialog information:'No build directory yet'.
cg@2959
  2056
        ^  self
cg@2959
  2057
    ].
cg@3480
  2058
    FileBrowser default
cg@2906
  2059
        openIn:projectBuilder packageBuildDirectory asFilename
cg@2906
  2060
"/    projectBuilder packageBuildDirectory asFilename openExplorer
cg@2906
  2061
cg@2906
  2062
    "Created: / 20-08-2012 / 17:05:54 / cg"
cg@3480
  2063
    "Modified: / 01-09-2017 / 14:06:28 / cg"
cg@2906
  2064
!
cg@2906
  2065
cg@2676
  2066
doBrowseProject
cg@2676
  2067
    <resource: #uiCallback>
cg@2676
  2068
cg@3485
  2069
    SystemBrowser default openOnPackage:selectedProjectDefinition package.
cg@3485
  2070
cg@3485
  2071
    "Modified: / 01-09-2017 / 14:23:09 / cg"
cg@2636
  2072
!
cg@2636
  2073
cg@2676
  2074
doBrowseProjectDefinitionClass
cg@2676
  2075
    <resource: #uiCallback>
cg@2676
  2076
cg@2676
  2077
    |defClass|
cg@2676
  2078
cg@2676
  2079
    self hasProjectSelected ifTrue:[
cg@2676
  2080
        defClass := self selectedProjectDefinition.
cg@3485
  2081
        SystemBrowser default
cg@2659
  2082
            openInClass:defClass class selector:#classNamesAndAttributes.
cg@2659
  2083
    ].
cg@3485
  2084
cg@3485
  2085
    "Modified: / 01-09-2017 / 14:23:12 / cg"
cg@2659
  2086
!
cg@2659
  2087
cg@2959
  2088
doBrowseProjectDefinitionClassForPrereqs
cg@2959
  2089
    <resource: #uiCallback>
cg@2959
  2090
cg@2959
  2091
    |defClass|
cg@2959
  2092
cg@2959
  2093
    self hasProjectSelected ifTrue:[
cg@2959
  2094
        defClass := self selectedProjectDefinition.
cg@3485
  2095
        SystemBrowser default
cg@3342
  2096
            openInClass:defClass class selector:#referencedPreRequisites "/ #mandatoryPreRequisites.
cg@2959
  2097
    ].
cg@3485
  2098
cg@3485
  2099
    "Modified: / 01-09-2017 / 14:23:15 / cg"
cg@2959
  2100
!
cg@2959
  2101
cg@2676
  2102
doBrowseStartupClass
cg@2676
  2103
    <resource: #uiCallback>
cg@2676
  2104
cg@2676
  2105
    |startupClass|
cg@2676
  2106
cg@2676
  2107
    self hasStartupClassSelected ifTrue:[
cg@2676
  2108
        startupClass := self listOfStartupClassesInProject value at:(self selectedStartupClassIndexHolder value).
cg@3485
  2109
        SystemBrowser default
cg@2676
  2110
            openInClass:startupClass class selector:#main:.
cg@2659
  2111
    ].
cg@3485
  2112
cg@3485
  2113
    "Modified: / 01-09-2017 / 14:23:18 / cg"
cg@2659
  2114
!
cg@2659
  2115
cg@3068
  2116
doCheckin
cg@3068
  2117
    <resource: #uiCallback>
cg@3068
  2118
cg@3068
  2119
    |package utilities|
cg@3068
  2120
cg@3068
  2121
    package := selectedProjectDefinition package.
cg@3068
  2122
    utilities := (AbstractSourceCodeManager managerForPackage:package) utilities.
cg@3068
  2123
cg@3068
  2124
    AbortAllOperationRequest catch:[
cg@3068
  2125
        self withWaitCursorDo:[
cg@3068
  2126
            utilities
cg@3068
  2127
                checkinPackage:package
cg@3068
  2128
                classes:true
cg@3068
  2129
                extensions:true
cg@3068
  2130
                buildSupport:true
cg@3068
  2131
                askForMethodsInOtherPackages:true
cg@3068
  2132
        ]
cg@3068
  2133
    ]
cg@3068
  2134
!
cg@3068
  2135
cg@2917
  2136
doClearBuildDirectory
cg@2917
  2137
    <resource: #uiCallback>
cg@2917
  2138
cg@2928
  2139
    projectBuilder isNil ifTrue:[ self getProjectBuilder ].
cg@2928
  2140
    projectBuilder buildDirectory notNil ifTrue:[   
cg@2929
  2141
        self withWaitCursorDo:[
cg@2929
  2142
            projectBuilder packageBuildDirectory asFilename recursiveRemove
cg@2929
  2143
        ]
cg@2928
  2144
    ].
cg@2917
  2145
cg@2917
  2146
    "Created: / 05-09-2012 / 10:35:54 / cg"
cg@2917
  2147
!
cg@2917
  2148
cg@2676
  2149
doGenerateProjectContentsDefinition
cg@2676
  2150
    self generatePackageContentsMethods
cg@2676
  2151
!
cg@2676
  2152
cg@2872
  2153
doGenerateProjectPrerequisitesDefinition
cg@2872
  2154
    self generatePackageContentsMethods
cg@2872
  2155
cg@2872
  2156
    "Created: / 19-01-2012 / 15:44:23 / cg"
cg@2872
  2157
!
cg@2872
  2158
cg@2676
  2159
doLaunchApplication
cg@2676
  2160
    <resource: #uiCallback>
cg@2676
  2161
cg@2676
  2162
    |appClass|
cg@2676
  2163
cg@2676
  2164
    self hasApplicationSelected ifTrue:[
cg@2676
  2165
        appClass := self listOfApplicationsInProject value at:(self selectedApplicationIndexHolder value).
cg@2676
  2166
        appClass open.
cg@2659
  2167
    ].
cg@2659
  2168
!
cg@2659
  2169
cg@2676
  2170
doOpenExplorer
cg@2959
  2171
    projectBuilder isNil ifTrue:[ self getProjectBuilder ].
cg@2959
  2172
    projectBuilder buildDirectory isNil ifTrue:[
cg@2959
  2173
        Dialog information:'No build directory yet'.
cg@2959
  2174
        ^  self
cg@2959
  2175
    ].
cg@2899
  2176
    projectBuilder packageBuildDirectory asFilename openExplorer
cg@2899
  2177
cg@2899
  2178
    "Modified: / 21-07-2012 / 12:29:21 / cg"
cg@2676
  2179
!
cg@2676
  2180
cg@2959
  2181
doOpenFinder
cg@2959
  2182
    projectBuilder isNil ifTrue:[ self getProjectBuilder ].
cg@2959
  2183
    projectBuilder buildDirectory isNil ifTrue:[
cg@2959
  2184
        Dialog information:'No build directory yet'.
cg@2959
  2185
        ^  self
cg@2959
  2186
    ].
cg@2959
  2187
    projectBuilder packageBuildDirectory asFilename openFinder
cg@2959
  2188
cg@2959
  2189
    "Modified: / 21-07-2012 / 12:29:21 / cg"
cg@2674
  2190
!
cg@2674
  2191
cg@2960
  2192
doOpenTerminal
cg@2960
  2193
    projectBuilder isNil ifTrue:[ self getProjectBuilder ].
cg@2960
  2194
    projectBuilder buildDirectory isNil ifTrue:[
cg@2960
  2195
        Dialog information:'No build directory yet'.
cg@2960
  2196
        ^  self
cg@2960
  2197
    ].
cg@2960
  2198
    projectBuilder packageBuildDirectory asFilename openTerminal
cg@2960
  2199
!
cg@2960
  2200
cg@2959
  2201
doStartMake:whichTarget
cg@2674
  2202
    <resource: #uiCallback>
cg@2674
  2203
cg@2674
  2204
    self stopMakeButtonVisible value:true.
cg@2674
  2205
    self startMakeButtonEnabled value:false.
cg@2674
  2206
cg@2724
  2207
    self infoHolder value:'Building (make) - please wait...'.
cg@2674
  2208
    makeOutputWindow clear.
cg@2674
  2209
cg@2674
  2210
    makeProcess := 
cg@2674
  2211
            [
cg@2674
  2212
                [
cg@2968
  2213
                    self runBuildProcess:whichTarget
cg@2636
  2214
                ] ensure:[
cg@2636
  2215
                    self stopMakeButtonVisible value:false.
cg@2636
  2216
                    self startMakeButtonEnabled value:true.
cg@2646
  2217
                    makeProcess := nil.
cg@2648
  2218
                    self updateButtonEnableState.
cg@2724
  2219
                    self infoHolder value:''.
cg@2636
  2220
                ].
cg@2636
  2221
            ] newProcess.
cg@2636
  2222
cg@2636
  2223
    makeProcess priority:4.
cg@2636
  2224
    makeProcess priorityRange:(4 to:8).
cg@2636
  2225
    makeProcess resume.
cg@2636
  2226
!
cg@2636
  2227
cg@2959
  2228
doStartMakeAll
cg@2959
  2229
    <resource: #uiCallback>
cg@2959
  2230
cg@2959
  2231
    self doStartMake:'all'
cg@2959
  2232
!
cg@2959
  2233
cg@3126
  2234
doStartMakeApp
cg@3126
  2235
    <resource: #uiCallback>
cg@3126
  2236
cg@3126
  2237
    self doStartMake:'app'
cg@3126
  2238
!
cg@3126
  2239
cg@2959
  2240
doStartMakeExe
cg@2959
  2241
    <resource: #uiCallback>
cg@2959
  2242
cg@2959
  2243
    self doStartMake:'exe'
cg@2959
  2244
!
cg@2959
  2245
cg@2973
  2246
doStartMakeExeQuick
cg@2973
  2247
    <resource: #uiCallback>
cg@2973
  2248
cg@2973
  2249
    self doStartMake:'exeQuick'
cg@2973
  2250
!
cg@2973
  2251
cg@2676
  2252
doStopMake
cg@2676
  2253
    <resource: #uiCallback>
cg@2646
  2254
cg@2676
  2255
    |p|
cg@2676
  2256
cg@2676
  2257
    (p := makeProcess) notNil ifTrue:[
cg@2676
  2258
        makeProcess := nil.
cg@2929
  2259
        self withWaitCursorDo:[
cg@2929
  2260
            p terminate.
cg@2929
  2261
            p waitUntilTerminated.
cg@2929
  2262
        ].
cg@2676
  2263
        makeOutputWindow endEntry.
cg@2676
  2264
        makeOutputWindow cr.
cg@3558
  2265
        makeOutputWindow nextPutLine:('Make Canceled' withColor:Color white on:Color red).
cg@2676
  2266
        makeOutputWindow endEntry.
cg@2676
  2267
    ].
cg@2929
  2268
cg@3508
  2269
    "Modified: / 28-11-2017 / 17:10:15 / cg"
cg@2646
  2270
!
cg@2646
  2271
cg@2913
  2272
fetchSelectedProject
cg@2913
  2273
    |selectedProjectIndex|
cg@2913
  2274
cg@2913
  2275
    selectedProjectIndex := self selectedProjectIndexHolder value.
cg@2913
  2276
    (selectedProjectIndex ? 0) == 0 ifTrue:[
cg@2913
  2277
        selectedProjectDefinition := nil.
cg@2913
  2278
    ] ifFalse:[
cg@2913
  2279
        selectedProjectDefinition := self listOfMatchingProjects value at:(selectedProjectIndex).
cg@2913
  2280
    ].
cg@2913
  2281
    self hasProjectSelectedHolder value:(selectedProjectDefinition notNil).
cg@2913
  2282
cg@2913
  2283
    "Created: / 04-09-2012 / 09:52:32 / cg"
cg@2913
  2284
!
cg@2913
  2285
cg@2928
  2286
getProjectBuilder
cg@2928
  2287
    projectBuilder := ProjectBuilder new.
cg@2928
  2288
    projectBuilder package:(selectedProjectDefinition package).
cg@2928
  2289
    projectBuilder usedCompilerForBuild:(usedCompilerHolder value).
cg@2928
  2290
    ^ projectBuilder
cg@2928
  2291
cg@2928
  2292
    "Created: / 26-09-2012 / 20:57:32 / cg"
cg@2928
  2293
!
cg@2928
  2294
cg@2676
  2295
projectTypeChanged
cg@2676
  2296
    <resource: #uiCallback>
cg@2676
  2297
cg@2676
  2298
    self updateListOfMatchingProjects
cg@2636
  2299
!
cg@2636
  2300
cg@2674
  2301
runBuildProcess:what
cg@2636
  2302
    <resource: #uiCallback>
cg@2636
  2303
cg@2646
  2304
    self assert:makeOutputWindow notNil.
cg@2646
  2305
    self assert:makeOutputWindow model == self makeOutputHolder.
cg@2646
  2306
cg@2646
  2307
    ActivityNotification handle:[:ex |
cg@3631
  2308
        |msg|
cg@3631
  2309
        
cg@3631
  2310
        (msg := ex messageText) notNil ifTrue:[
cg@2646
  2311
            makeOutputWindow endEntry.
cg@2646
  2312
            makeOutputWindow cr.
cg@3631
  2313
            makeOutputWindow nextPutLine:(
cg@3631
  2314
                                "/ msg withColor:Color white on:Color blue
cg@3631
  2315
                                msg withColor:Color blue
cg@3631
  2316
                             ).
cg@2646
  2317
            makeOutputWindow endEntry.
cg@2687
  2318
        ].
cg@2646
  2319
        ex proceed.
cg@2646
  2320
    ] do:[
cg@2928
  2321
        self getProjectBuilder.
cg@2973
  2322
        projectBuilder makeExeOnly:((what = 'exe') or:[what = 'exeQuick']).
cg@3126
  2323
        projectBuilder makeAppOnly:(what = 'app').
cg@2973
  2324
        projectBuilder makeQuick:(what = 'exeQuick').
cg@2674
  2325
cg@2674
  2326
        Error handle:[:ex |
cg@3309
  2327
            ex creator = MessageNotUnderstood ifTrue:[ex reject].
cg@3309
  2328
cg@2674
  2329
            makeOutputWindow endEntry.
cg@2674
  2330
            makeOutputWindow cr.
cg@3631
  2331
            makeOutputWindow nextPutLine:(
cg@3631
  2332
                    ex description withColor:Color white on:Color red
cg@3631
  2333
                    "/ ex description withColor:Color red darkened
cg@3631
  2334
                ).
cg@2674
  2335
            makeOutputWindow endEntry.
cg@2959
  2336
            Debugging == true ifTrue:[ ex reject ].
sr@2682
  2337
            ex proceed.
cg@2674
  2338
        ] do:[
cg@2674
  2339
            projectBuilder buildWithColorizedOutputTo:makeOutputWindow.
cg@2674
  2340
        ].
cg@2646
  2341
    ].
cg@2874
  2342
cg@2959
  2343
    "
cg@2959
  2344
     Debugging := true.   
cg@2959
  2345
     Debugging := false.   
cg@2959
  2346
    "
cg@2959
  2347
cg@3309
  2348
    "Modified: / 07-06-2016 / 11:00:01 / cg"
cg@3631
  2349
    "Modified (comment): / 29-12-2018 / 12:51:51 / Claus Gittinger"
cg@2636
  2350
!
cg@2636
  2351
cg@2676
  2352
selectedApplicationChanged
cg@2676
  2353
    |idx|
cg@2671
  2354
cg@2676
  2355
    ((idx := self selectedApplicationIndexHolder value) isNil
cg@2676
  2356
    or:[idx == 0]) ifTrue:[
cg@2676
  2357
        selectedApplication := nil.
cg@2676
  2358
    ] ifFalse:[
cg@2676
  2359
        selectedApplication := self listOfApplicationsInProject value at:idx.
cg@2636
  2360
    ].
cg@2676
  2361
    self hasApplicationSelectedHolder value:(selectedApplication notNil).
cg@2659
  2362
cg@2676
  2363
"/    selectedApplication notNil ifTrue:[
cg@2676
  2364
"/        "/ generate startupClass code
cg@2676
  2365
"/        CodeGeneratorTool
cg@2656
  2366
"/            compile:(selectedProjectDefinition startupClassName_codeFor:(selectedApplication name))
cg@2656
  2367
"/            forClass:selectedProjectDefinition theMetaclass
cg@2656
  2368
"/            inCategory:'description - startup'.
cg@2656
  2369
"/    ].
cg@2636
  2370
    self updateApplicationComment.
cg@2636
  2371
    self updateButtonEnableState.
cg@2636
  2372
!
cg@2636
  2373
cg@2676
  2374
selectedProjectChanged
cg@2913
  2375
    self fetchSelectedProject.
cg@2676
  2376
cg@2676
  2377
    self updateComment.
cg@2676
  2378
    self updateListOfApplicationsInProject.
cg@2636
  2379
    self updateButtonEnableState.
cg@2913
  2380
cg@2913
  2381
    "Modified: / 04-09-2012 / 09:52:43 / cg"
cg@2656
  2382
!
cg@2656
  2383
cg@2676
  2384
selectedStartupClassChanged
cg@2676
  2385
    self selectedStartupClassIndexHolder value isNil ifTrue:[
cg@2676
  2386
        selectedStartupClass := nil.
cg@2676
  2387
    ] ifFalse:[
cg@2676
  2388
        selectedStartupClass := self listOfStartupClassesInProject value at:(self selectedStartupClassIndexHolder value).
cg@2656
  2389
    ].
cg@2659
  2390
    self hasStartupClassSelectedHolder value:(selectedStartupClass notNil).
cg@2659
  2391
cg@2656
  2392
    selectedStartupClass notNil ifTrue:[
cg@2656
  2393
        "/ generate startupClass code
cg@3008
  2394
        Class packageQuerySignal
cg@3008
  2395
            answer:selectedProjectDefinition package
cg@3008
  2396
            do:[
cg@3008
  2397
                SmalltalkCodeGeneratorTool
cg@3008
  2398
                    compile:(selectedProjectDefinition startupClassName_codeFor:(selectedStartupClass name))
cg@3008
  2399
                    forClass:selectedProjectDefinition theMetaclass
cg@3008
  2400
                    inCategory:'description - startup'.
cg@3008
  2401
            ]
cg@2656
  2402
    ].
cg@2656
  2403
    self updateButtonEnableState.
cg@2832
  2404
cg@2832
  2405
    "Modified: / 31-01-2011 / 18:29:42 / cg"
cg@2676
  2406
! !
cg@2636
  2407
cg@2676
  2408
!ProjectBuilderAssistantApplication methodsFor:'aspects'!
cg@2636
  2409
cg@2676
  2410
buildDirectoryHolder
cg@2676
  2411
    <resource: #uiAspect>
cg@2636
  2412
cg@2636
  2413
    |buildDirectory|
cg@2636
  2414
cg@2636
  2415
    buildDirectoryHolder isNil ifTrue:[
cg@2636
  2416
        buildDirectoryHolder := nil asValue.
cg@2636
  2417
        buildDirectoryHolder onChangeSend:#buildDirectoryChanged to:self.
cg@2636
  2418
    ].
cg@2636
  2419
    buildDirectoryHolder value isEmptyOrNil ifTrue:[
cg@2686
  2420
        buildDirectory := ProjectBuilder previousBuildDirectory.
cg@2636
  2421
        buildDirectory isNil ifTrue:[
cg@2636
  2422
            buildDirectory := UserPreferences current buildDirectory.
cg@2636
  2423
            buildDirectory isNil ifTrue:[
cg@2636
  2424
                buildDirectory := Filename tempDirectory construct:'stx_build'.
cg@2636
  2425
            ].
cg@2636
  2426
        ].
cg@2636
  2427
        buildDirectoryHolder value: buildDirectory.
cg@2636
  2428
    ].
cg@2636
  2429
    ^ buildDirectoryHolder.
cg@2636
  2430
!
cg@2636
  2431
cg@2724
  2432
companyNameHolder
cg@2724
  2433
    <resource: #uiAspect>
cg@2724
  2434
cg@2724
  2435
    companyNameHolder isNil ifTrue:[
cg@2724
  2436
        companyNameHolder := 'MyCompany' asValue.
cg@2724
  2437
    ].
cg@2724
  2438
    ^ companyNameHolder.
cg@2724
  2439
!
cg@2724
  2440
cg@2724
  2441
compilerWarnMessageHolder
cg@2724
  2442
    <resource: #uiAspect>
cg@2724
  2443
cg@2724
  2444
    compilerWarnMessageHolder isNil ifTrue:[
cg@2724
  2445
        compilerWarnMessageHolder := '' asValue.
cg@2724
  2446
    ].
cg@2724
  2447
    ^ compilerWarnMessageHolder.
cg@2724
  2448
!
cg@2724
  2449
cg@2724
  2450
compilerWarnMessageVisibleHolder
cg@2724
  2451
    <resource: #uiAspect>
cg@2724
  2452
cg@2724
  2453
    compilerWarnMessageVisibleHolder isNil ifTrue:[
cg@2724
  2454
        compilerWarnMessageVisibleHolder := false asValue.
cg@2724
  2455
    ].
cg@2724
  2456
    ^ compilerWarnMessageVisibleHolder.
cg@2724
  2457
!
cg@2724
  2458
cg@3339
  2459
execuableNameVisible
cg@3339
  2460
    ^ self projectTypeIsNonGuiApplication
cg@3339
  2461
!
cg@3339
  2462
cg@3339
  2463
executableNameHolder
cg@3651
  2464
    ^ builder nilValueAspectFor:#executableNameHolder
cg@3651
  2465
cg@3651
  2466
    "Modified: / 09-03-2019 / 22:00:43 / Claus Gittinger"
cg@3339
  2467
!
cg@3339
  2468
cg@2676
  2469
hasApplicationSelectedHolder
cg@2676
  2470
    <resource: #uiAspect>
cg@2676
  2471
cg@2676
  2472
    hasApplicationSelectedHolder isNil ifTrue:[
cg@2659
  2473
        hasApplicationSelectedHolder := nil asValue.
cg@2659
  2474
    ].
cg@2659
  2475
    ^ hasApplicationSelectedHolder.
cg@2636
  2476
!
cg@2636
  2477
cg@2676
  2478
hasProjectSelectedHolder
cg@2676
  2479
    <resource: #uiAspect>
cg@2676
  2480
cg@2676
  2481
    hasProjectSelectedHolder isNil ifTrue:[
cg@2659
  2482
        hasProjectSelectedHolder := nil asValue.
cg@2659
  2483
    ].
cg@2659
  2484
    ^ hasProjectSelectedHolder.
cg@2648
  2485
!
cg@2648
  2486
cg@2676
  2487
hasStartupClassSelectedHolder
cg@2676
  2488
    <resource: #uiAspect>
cg@2676
  2489
cg@2676
  2490
    hasStartupClassSelectedHolder isNil ifTrue:[
cg@2659
  2491
        hasStartupClassSelectedHolder := nil asValue.
cg@2659
  2492
    ].
cg@2659
  2493
    ^ hasStartupClassSelectedHolder.
cg@2636
  2494
!
cg@2636
  2495
cg@2676
  2496
hideOtherApplicationClasses
cg@2676
  2497
    <resource: #uiAspect>
cg@2676
  2498
cg@2676
  2499
    hideOtherApplicationClasses isNil ifTrue:[
cg@2671
  2500
        hideOtherApplicationClasses := true asValue.
cg@2671
  2501
        hideOtherApplicationClasses onChangeSend:#updateListOfApplicationsInProject to:self.
cg@2671
  2502
    ].
cg@2671
  2503
    ^ hideOtherApplicationClasses.
cg@2671
  2504
!
cg@2671
  2505
cg@2676
  2506
hideOtherStartupClasses
cg@2676
  2507
    <resource: #uiAspect>
cg@2676
  2508
cg@2676
  2509
    hideOtherStartupClasses isNil ifTrue:[
cg@2676
  2510
        hideOtherStartupClasses := true asValue.
cg@2676
  2511
        hideOtherStartupClasses onChangeSend:#updateListOfStartupClassesInProject to:self.
cg@2671
  2512
    ].
cg@2676
  2513
    ^ hideOtherStartupClasses.
cg@2671
  2514
!
cg@2671
  2515
cg@2676
  2516
hideSTXProjects
cg@2676
  2517
    <resource: #uiAspect>
cg@2676
  2518
cg@2676
  2519
    hideSTXProjects isNil ifTrue:[
cg@2676
  2520
        hideSTXProjects := true asValue.
cg@2676
  2521
        hideSTXProjects onChangeSend:#updateListOfMatchingProjects to:self.
cg@2676
  2522
    ].
cg@2676
  2523
    ^ hideSTXProjects.
cg@2676
  2524
!
cg@2676
  2525
cg@2676
  2526
listOfApplicationsInProject
cg@2676
  2527
    <resource: #uiAspect>
cg@2676
  2528
cg@2676
  2529
    listOfApplicationsInProject isNil ifTrue:[
cg@2636
  2530
        listOfApplicationsInProject := ValueHolder new.
cg@2636
  2531
    ].
cg@2636
  2532
    ^ listOfApplicationsInProject.
cg@2636
  2533
!
cg@2636
  2534
cg@2676
  2535
listOfClassesInProject
cg@2676
  2536
    <resource: #uiAspect>
cg@2676
  2537
cg@2676
  2538
    listOfClassesInProject isNil ifTrue:[
cg@2636
  2539
        listOfClassesInProject := ValueHolder new.
cg@2636
  2540
    ].
cg@2636
  2541
    ^ listOfClassesInProject.
cg@2636
  2542
!
cg@2636
  2543
cg@2686
  2544
listOfMatchingPackageIds
cg@2686
  2545
    <resource: #uiAspect>
cg@2686
  2546
cg@2686
  2547
    listOfMatchingPackageIds isNil ifTrue:[
cg@2686
  2548
        listOfMatchingPackageIds := ValueHolder new.
cg@2686
  2549
    ].
cg@2686
  2550
    ^ listOfMatchingPackageIds.
cg@2686
  2551
!
cg@2686
  2552
cg@2676
  2553
listOfMatchingProjects
cg@2676
  2554
    <resource: #uiAspect>
cg@2636
  2555
cg@2636
  2556
    listOfMatchingProjects isNil ifTrue:[
cg@2636
  2557
        listOfMatchingProjects := ValueHolder new.
cg@2636
  2558
    ].
cg@2636
  2559
    ^ listOfMatchingProjects.
cg@2636
  2560
!
cg@2636
  2561
fm@2697
  2562
listOfNewProjectsName
fm@2697
  2563
fm@2697
  2564
    <resource: #uiAspect>
fm@2697
  2565
fm@2697
  2566
    listOfNewProjectsName isNil ifTrue:[
fm@2697
  2567
        listOfNewProjectsName := ValueHolder new.
fm@2697
  2568
    ].
fm@2697
  2569
    ^ listOfNewProjectsName.
fm@2697
  2570
!
fm@2697
  2571
cg@2681
  2572
listOfPossibleCompilers
cg@2874
  2573
    ^ Tools::ProjectBuilder listOfPossibleCompilers
cg@2874
  2574
cg@2919
  2575
    "Modified: / 05-09-2012 / 19:10:24 / cg"
cg@2681
  2576
!
cg@2681
  2577
cg@2872
  2578
listOfPrerequisitesInProject
cg@2872
  2579
    <resource: #uiAspect>
cg@2872
  2580
cg@2872
  2581
    listOfPrerequisitesInProject isNil ifTrue:[
cg@2872
  2582
        listOfPrerequisitesInProject := ValueHolder new.
cg@2872
  2583
    ].
cg@2872
  2584
    ^ listOfPrerequisitesInProject.
cg@2872
  2585
cg@2872
  2586
    "Created: / 19-01-2012 / 15:39:34 / cg"
cg@2872
  2587
!
cg@2872
  2588
cg@2676
  2589
listOfStartupClassesInProject
cg@2676
  2590
    <resource: #uiAspect>
cg@2676
  2591
cg@2676
  2592
    listOfStartupClassesInProject isNil ifTrue:[
cg@2676
  2593
        listOfStartupClassesInProject := ValueHolder new.
cg@2676
  2594
    ].
cg@2676
  2595
    ^ listOfStartupClassesInProject.
cg@2676
  2596
!
cg@2676
  2597
cg@2676
  2598
makeOutputHolder
cg@2676
  2599
    <resource: #uiAspect>
cg@2636
  2600
cg@2636
  2601
    makeOutputHolder isNil ifTrue:[
cg@2646
  2602
        makeOutputHolder := ValueHolder new.
cg@2636
  2603
    ].
cg@2636
  2604
    ^ makeOutputHolder.
cg@2636
  2605
!
cg@2636
  2606
cg@2910
  2607
nameOfUsedCompilerSuiteHolder
cg@2910
  2608
    <resource: #uiAspect>
cg@2910
  2609
cg@2910
  2610
    nameOfUsedCompilerSuiteHolder isNil ifTrue:[
cg@2910
  2611
        nameOfUsedCompilerSuiteHolder := nil asValue.
cg@2910
  2612
    ].
cg@2910
  2613
    ^ nameOfUsedCompilerSuiteHolder.
cg@2910
  2614
cg@2910
  2615
    "Created: / 03-09-2012 / 19:32:27 / cg"
cg@2910
  2616
!
cg@2910
  2617
cg@2676
  2618
newApplicationsName
cg@2676
  2619
    <resource: #uiAspect>
cg@2676
  2620
cg@2676
  2621
    "automatically generated by UIPainter ..."
cg@2676
  2622
cg@2676
  2623
    newApplicationsName isNil ifTrue:[
cg@2676
  2624
        newApplicationsName := ValueHolder new.
cg@2636
  2625
    ].
cg@2636
  2626
    ^ newApplicationsName.
cg@2636
  2627
!
cg@2636
  2628
cg@2676
  2629
newProjectsName
cg@2676
  2630
    <resource: #uiAspect>
cg@2676
  2631
cg@2676
  2632
    newProjectsName isNil ifTrue:[
cg@2636
  2633
        newProjectsName := nil asValue.
cg@2636
  2634
    ].
cg@2636
  2635
    ^ newProjectsName.
cg@2636
  2636
!
cg@2636
  2637
fm@2705
  2638
newProjectsNameListDoubleClickChannel
fm@2705
  2639
    "automatically generated by UIPainter ..."
fm@2705
  2640
fm@2705
  2641
    |holder|
fm@2705
  2642