Tools__ProjectDefinitionEditor.st
author Claus Gittinger <cg@exept.de>
Wed, 29 Jul 2009 20:02:02 +0200
changeset 2570 4e663bc64364
parent 2146 a5ce8e00652f
child 2666 316855d0ca7d
permissions -rw-r--r--
changed #requestPackage
     1 "{ Package: 'stx:libtool2' }"
     2 
     3 "{ NameSpace: Tools }"
     4 
     5 ResourceSpecEditor subclass:#ProjectDefinitionEditor
     6 	instanceVariableNames:'definitionClass classList extensionsList selectedClassIndexHolder
     7 		classesTableColumns revisionNrHolder companyNameHolder
     8 		fileMajorVersionNrHolder minorVersionNrHolder iconFileNameHolder
     9 		fileReleaseNrHolder productNameHolder majorVersionNrHolder
    10 		fileRevisionNrHolder fileDescriptionHolder releaseNrHolder
    11 		fileMinorVersionNrHolder descriptionHolder legalCopyrightHolder
    12 		isApplicationDefinitionHolder isNonGUIApplicationHolder
    13 		startSinglethreadedHolder hasConsoleHolder shownHasConsoleHolder
    14 		startupClassNameHolder startupSelectorHolder prerequisitesList
    15 		classListHolder extensionsListHolder prerequisitesListHolder
    16 		documentExtensionsListStringHolder stcOptimizationFlagsHolder
    17 		ccOptimizationFlagsHolder'
    18 	classVariableNames:''
    19 	poolDictionaries:''
    20 	category:'Interface-Tools'
    21 !
    22 
    23 Object subclass:#ClassListEntry
    24 	instanceVariableNames:'className autoloaded win32 unix'
    25 	classVariableNames:''
    26 	poolDictionaries:''
    27 	privateIn:ProjectDefinitionEditor
    28 !
    29 
    30 Object subclass:#ExtensionsListEntry
    31 	instanceVariableNames:'className selector'
    32 	classVariableNames:''
    33 	poolDictionaries:''
    34 	privateIn:ProjectDefinitionEditor
    35 !
    36 
    37 Object subclass:#PrerequisitesListEntry
    38 	instanceVariableNames:'package'
    39 	classVariableNames:''
    40 	poolDictionaries:''
    41 	privateIn:ProjectDefinitionEditor
    42 !
    43 
    44 !ProjectDefinitionEditor class methodsFor:'documentation'!
    45 
    46 documentation
    47 "
    48     unfinished app-definition editor
    49 
    50     [author:]
    51 	cg (cg@FUSI)
    52 
    53     [instance variables:]
    54 
    55     [class variables:]
    56 
    57     [see also:]
    58 
    59 "
    60 !
    61 
    62 examples
    63 "
    64   Starting the application:
    65 								[exBegin]
    66     (ProjectDefinitionEditor new
    67 	definitionClass:stx_libbasic) open
    68 								[exEnd]
    69 
    70 								[exBegin]
    71     (ProjectDefinitionEditor new
    72 	definitionClass:bosch_dapasx_application) open
    73 								[exEnd]
    74 "
    75 ! !
    76 
    77 !ProjectDefinitionEditor class methodsFor:'help specs'!
    78 
    79 flyByHelpSpec
    80     "This resource specification was automatically generated
    81      by the UIHelpTool of ST/X."
    82 
    83     "Do not manually edit this!! If it is corrupted,
    84      the UIHelpTool may not be able to read the specification."
    85 
    86     "
    87      UIHelpTool openOnClass:Tools::ProjectDefinitionEditor    
    88     "
    89 
    90     <resource: #help>
    91 
    92     ^ super flyByHelpSpec addPairsFrom:#(
    93 
    94 #documentExtensions
    95 '";"-separated list of file extensions'
    96 
    97 )
    98 
    99     "Created: / 15-10-2006 / 14:34:57 / cg"
   100 !
   101 
   102 helpSpec
   103     "This resource specification was automatically generated
   104      by the UIHelpTool of ST/X."
   105 
   106     "Do not manually edit this!! If it is corrupted,
   107      the UIHelpTool may not be able to read the specification."
   108 
   109     "
   110      UIHelpTool openOnClass:Tools::ProjectDefinitionEditor    
   111     "
   112 
   113     <resource: #help>
   114 
   115     ^ super helpSpec addPairsFrom:#(
   116 
   117 #documentExtensions
   118 '";"-separated list of file extensions'
   119 
   120 )
   121 ! !
   122 
   123 !ProjectDefinitionEditor class methodsFor:'interface specs'!
   124 
   125 classesSpec
   126     "This resource specification was automatically generated
   127      by the UIPainter of ST/X."
   128 
   129     "Do not manually edit this!! If it is corrupted,
   130      the UIPainter may not be able to read the specification."
   131 
   132     "
   133      UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesSpec
   134      Tools::ProjectDefinitionEditor new openInterface:#classesSpec
   135     "
   136 
   137     <resource: #canvas>
   138 
   139     ^
   140      #(FullSpec
   141 	name: classesSpec
   142 	window:
   143        (WindowSpec
   144 	  label: 'NewApplication'
   145 	  name: 'NewApplication'
   146 	  min: (Point 0 0)
   147 	  bounds: (Rectangle 0 0 300 300)
   148 	)
   149 	component:
   150        (SpecCollection
   151 	  collection: (
   152 	   (DataSetSpec
   153 	      name: 'ClassesTable'
   154 	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   155 	      model: selectedClassIndexHolder
   156 	      menu: classListMenu
   157 	      hasHorizontalScrollBar: true
   158 	      hasVerticalScrollBar: true
   159 	      dataList: classListHolder
   160 	      columnHolder: classesTableColumns
   161 	    )
   162 	   )
   163 
   164 	)
   165       )
   166 
   167     "Modified: / 07-09-2006 / 11:35:14 / cg"
   168 !
   169 
   170 compilationSpec
   171     "This resource specification was automatically generated
   172      by the UIPainter of ST/X."
   173 
   174     "Do not manually edit this!! If it is corrupted,
   175      the UIPainter may not be able to read the specification."
   176 
   177     "
   178      UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#compilationSpec
   179      Tools::ProjectDefinitionEditor new openInterface:#compilationSpec
   180     "
   181 
   182     <resource: #canvas>
   183 
   184     ^ 
   185      #(FullSpec
   186         name: compilationSpec
   187         window: 
   188        (WindowSpec
   189           label: 'NewApplication'
   190           name: 'NewApplication'
   191           min: (Point 0 0)
   192           bounds: (Rectangle 0 0 433 300)
   193         )
   194         component: 
   195        (SpecCollection
   196           collection: (
   197            (FramedBoxSpec
   198               label: 'Optimization'
   199               name: 'FramedBox1'
   200               layout: (LayoutFrame 0 0 0 0 0 1 93 0)
   201               labelPosition: topLeft
   202               translateLabel: true
   203               component: 
   204              (SpecCollection
   205                 collection: (
   206                  (LabelSpec
   207                     label: 'STC Optimization Flags:'
   208                     name: 'Label1'
   209                     layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
   210                     translateLabel: true
   211                     adjust: right
   212                   )
   213                  (ComboBoxSpec
   214                     name: 'STCOptimizationFlagsComboBox'
   215                     layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
   216                     model: stcOptimizationFlagsHolder
   217                     acceptOnPointerLeave: false
   218                     comboList: stcOptimizationFlagList
   219                     postBuildCallback: flagHolderBuilt:
   220                   )
   221                  (LabelSpec
   222                     label: 'CC Optimization Flags:'
   223                     name: 'Label2'
   224                     layout: (LayoutFrame 0 0.0 35 0 160 0 57 0)
   225                     translateLabel: true
   226                     adjust: right
   227                   )
   228                  (ComboBoxSpec
   229                     name: 'CCOptimizationFlagsComboBox'
   230                     layout: (LayoutFrame 162 0.0 33 0 0 1.0 55 0)
   231                     model: ccOptimizationFlagsHolder
   232                     acceptOnPointerLeave: false
   233                     comboList: ccOptimizationFlagList
   234                     postBuildCallback: flagHolderBuilt:
   235                   )
   236                  )
   237                
   238               )
   239             )
   240            (FramedBoxSpec
   241               label: 'Includes'
   242               name: 'FramedBox2'
   243               layout: (LayoutFrame 0 0 98 0 0 1 160 0)
   244               labelPosition: topLeft
   245               translateLabel: true
   246               component: 
   247              (SpecCollection
   248                 collection: (
   249                  (LabelSpec
   250                     label: 'Additional Includes:'
   251                     name: 'Label3'
   252                     layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
   253                     translateLabel: true
   254                     adjust: right
   255                   )
   256                  (InputFieldSpec
   257                     name: 'IncludeFlagsEntryField'
   258                     layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
   259                     model: includeFlagsHolder
   260                     acceptOnReturn: true
   261                     acceptOnTab: true
   262                     acceptOnLostFocus: true
   263                     acceptOnPointerLeave: false
   264                   )
   265                  )
   266                
   267               )
   268             )
   269            )
   270          
   271         )
   272       )
   273 !
   274 
   275 descriptionSpec
   276     "This resource specification was automatically generated
   277      by the UIPainter of ST/X."
   278 
   279     "Do not manually edit this!! If it is corrupted,
   280      the UIPainter may not be able to read the specification."
   281 
   282     "
   283      UIPainter new openOnClass:ApplicationDefinitionBuilder andSelector:#descriptionSpec
   284      ApplicationDefinitionBuilder new openInterface:#descriptionSpec
   285     "
   286 
   287     <resource: #canvas>
   288 
   289     ^
   290      #(FullSpec
   291 	name: descriptionSpec
   292 	window:
   293        (WindowSpec
   294 	  label: 'NewApplication'
   295 	  name: 'NewApplication'
   296 	  min: (Point 0 0)
   297 	  bounds: (Rectangle 0 0 433 300)
   298 	)
   299 	component:
   300        (SpecCollection
   301 	  collection: (
   302 	   (LabelSpec
   303 	      label: 'Company:'
   304 	      name: 'CompanyLabel'
   305 	      layout: (LayoutFrame 2 0.0 13 0 160 0 35 0)
   306 	      translateLabel: true
   307 	      adjust: right
   308 	    )
   309 	   (InputFieldSpec
   310 	      name: 'CompanyEntryField'
   311 	      layout: (LayoutFrame 162 0.0 12 0 -2 1.0 34 0)
   312 	      model: companyNameHolder
   313 	      acceptOnReturn: true
   314 	      acceptOnTab: true
   315 	      acceptOnLostFocus: true
   316 	      acceptOnPointerLeave: false
   317 	    )
   318 	   (LabelSpec
   319 	      label: 'Description:'
   320 	      name: 'DescriptionLabel'
   321 	      layout: (LayoutFrame 2 0.0 39 0 160 0 61 0)
   322 	      translateLabel: true
   323 	      adjust: right
   324 	    )
   325 	   (InputFieldSpec
   326 	      name: 'DescriptionEntryField'
   327 	      layout: (LayoutFrame 162 0.0 38 0 -2 1.0 60 0)
   328 	      model: descriptionHolder
   329 	      acceptOnReturn: true
   330 	      acceptOnTab: true
   331 	      acceptOnLostFocus: true
   332 	      acceptOnPointerLeave: false
   333 	    )
   334 	   (LabelSpec
   335 	      label: 'ProductName:'
   336 	      name: 'ProductNameLabel'
   337 	      layout: (LayoutFrame 2 0.0 65 0 160 0 87 0)
   338 	      translateLabel: true
   339 	      adjust: right
   340 	    )
   341 	   (InputFieldSpec
   342 	      name: 'ProductNameEntryField'
   343 	      layout: (LayoutFrame 162 0.0 64 0 -2 1.0 86 0)
   344 	      model: productNameHolder
   345 	      acceptOnReturn: true
   346 	      acceptOnTab: true
   347 	      acceptOnLostFocus: true
   348 	      acceptOnPointerLeave: false
   349 	    )
   350 	   (LabelSpec
   351 	      label: 'ProductVersion:'
   352 	      name: 'ProductVersionLabel'
   353 	      layout: (LayoutFrame 2 0.0 91 0 160 0 113 0)
   354 	      translateLabel: true
   355 	      adjust: right
   356 	    )
   357 	   (InputFieldSpec
   358 	      name: 'MajorVersionNrEntryField'
   359 	      layout: (LayoutFrame 162 0.0 90 0 182 0.0 112 0)
   360 	      model: majorVersionNrHolder
   361 	      type: number
   362 	      acceptOnReturn: true
   363 	      acceptOnTab: true
   364 	      acceptOnLostFocus: true
   365 	      acceptOnPointerLeave: false
   366 	    )
   367 	   (InputFieldSpec
   368 	      name: 'MinorVersionNrEntryField'
   369 	      layout: (LayoutFrame 184 0.0 90 0 204 0.0 112 0)
   370 	      model: minorVersionNrHolder
   371 	      type: numberOrNil
   372 	      acceptOnReturn: true
   373 	      acceptOnTab: true
   374 	      acceptOnLostFocus: true
   375 	      acceptOnPointerLeave: false
   376 	    )
   377 	   (InputFieldSpec
   378 	      name: 'RevisionNrEntryField'
   379 	      layout: (LayoutFrame 206 0.0 90 0 226 0.0 112 0)
   380 	      model: revisionNrHolder
   381 	      type: number
   382 	      acceptOnReturn: true
   383 	      acceptOnTab: true
   384 	      acceptOnLostFocus: true
   385 	      acceptOnPointerLeave: false
   386 	    )
   387 	   (InputFieldSpec
   388 	      name: 'ReleaseNrEntryField'
   389 	      layout: (LayoutFrame 228 0.0 90 0 248 0.0 112 0)
   390 	      model: releaseNrHolder
   391 	      type: number
   392 	      acceptOnReturn: true
   393 	      acceptOnTab: true
   394 	      acceptOnLostFocus: true
   395 	      acceptOnPointerLeave: false
   396 	    )
   397 	   (LabelSpec
   398 	      label: 'LegalCopyright:'
   399 	      name: 'LegalCopyrightLabel'
   400 	      layout: (LayoutFrame 2 0.0 119 0 160 0 141 0)
   401 	      translateLabel: true
   402 	      adjust: right
   403 	    )
   404 	   (InputFieldSpec
   405 	      name: 'LegalCopyrightEntryField'
   406 	      layout: (LayoutFrame 162 0.0 118 0 -2 1.0 140 0)
   407 	      model: legalCopyrightHolder
   408 	      acceptOnReturn: true
   409 	      acceptOnTab: true
   410 	      acceptOnLostFocus: true
   411 	      acceptOnPointerLeave: false
   412 	    )
   413 	   (LabelSpec
   414 	      label: 'FileDescriptionDescription:'
   415 	      name: 'FileDescriptionLabel'
   416 	      layout: (LayoutFrame 2 0.0 161 0 160 0 183 0)
   417 	      translateLabel: true
   418 	      adjust: right
   419 	    )
   420 	   (InputFieldSpec
   421 	      name: 'FileDescriptionEntryField'
   422 	      layout: (LayoutFrame 162 0.0 160 0 -2 1.0 182 0)
   423 	      model: fileDescriptionHolder
   424 	      acceptOnReturn: true
   425 	      acceptOnTab: true
   426 	      acceptOnLostFocus: true
   427 	      acceptOnPointerLeave: false
   428 	    )
   429 	   (LabelSpec
   430 	      label: 'FileVersion:'
   431 	      name: 'FileVersionLabel'
   432 	      layout: (LayoutFrame 2 0.0 187 0 160 0 209 0)
   433 	      translateLabel: true
   434 	      adjust: right
   435 	    )
   436 	   (InputFieldSpec
   437 	      name: 'FileMajorVersionNrEntryField'
   438 	      layout: (LayoutFrame 162 0.0 186 0 182 0.0 208 0)
   439 	      model: fileMajorVersionNrHolder
   440 	      type: number
   441 	      acceptOnReturn: true
   442 	      acceptOnTab: true
   443 	      acceptOnLostFocus: true
   444 	      acceptOnPointerLeave: false
   445 	    )
   446 	   (InputFieldSpec
   447 	      name: 'FileMinorVersionNrEntryField'
   448 	      layout: (LayoutFrame 184 0.0 186 0 204 0.0 208 0)
   449 	      model: fileMinorVersionNrHolder
   450 	      type: number
   451 	      acceptOnReturn: true
   452 	      acceptOnTab: true
   453 	      acceptOnLostFocus: true
   454 	      acceptOnPointerLeave: false
   455 	    )
   456 	   (InputFieldSpec
   457 	      name: 'FileRevisionNrEntryField'
   458 	      layout: (LayoutFrame 206 0.0 186 0 226 0.0 208 0)
   459 	      model: fileRevisionNrHolder
   460 	      type: number
   461 	      acceptOnReturn: true
   462 	      acceptOnTab: true
   463 	      acceptOnLostFocus: true
   464 	      acceptOnPointerLeave: false
   465 	    )
   466 	   (InputFieldSpec
   467 	      name: 'FileReleaseNrEntryField'
   468 	      layout: (LayoutFrame 228 0.0 186 0 248 0.0 208 0)
   469 	      model: fileReleaseNrHolder
   470 	      type: number
   471 	      acceptOnReturn: true
   472 	      acceptOnTab: true
   473 	      acceptOnLostFocus: true
   474 	      acceptOnPointerLeave: false
   475 	    )
   476 	   (LabelSpec
   477 	      label: 'Icon Filename:'
   478 	      name: 'IconFileNameLabel'
   479 	      layout: (LayoutFrame 2 0.0 236 0 160 0 258 0)
   480 	      visibilityChannel: isApplicationDefinitionHolder
   481 	      translateLabel: true
   482 	      adjust: right
   483 	    )
   484 	   (InputFieldSpec
   485 	      name: 'IconFileNameEntryField'
   486 	      layout: (LayoutFrame 162 0.0 234 0 -2 1.0 256 0)
   487 	      visibilityChannel: isApplicationDefinitionHolder
   488 	      model: iconFilenameHolder
   489 	      acceptOnReturn: true
   490 	      acceptOnTab: true
   491 	      acceptOnLostFocus: true
   492 	      acceptOnPointerLeave: false
   493 	    )
   494 	   )
   495 
   496 	)
   497       )
   498 !
   499 
   500 extensionsSpec
   501     "This resource specification was automatically generated
   502      by the UIPainter of ST/X."
   503 
   504     "Do not manually edit this!! If it is corrupted,
   505      the UIPainter may not be able to read the specification."
   506 
   507     "
   508      UIPainter new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsSpec
   509      ApplicationDefinitionEditor new openInterface:#extensionsSpec
   510     "
   511 
   512     <resource: #canvas>
   513 
   514     ^
   515      #(FullSpec
   516 	name: extensionsSpec
   517 	window:
   518        (WindowSpec
   519 	  label: 'NewApplication'
   520 	  name: 'NewApplication'
   521 	  min: (Point 0 0)
   522 	  bounds: (Rectangle 0 0 300 300)
   523 	)
   524 	component:
   525        (SpecCollection
   526 	  collection: (
   527 	   (DataSetSpec
   528 	      name: 'ExtensionsTable'
   529 	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   530 	      model: selectedExtensionIndexHolder
   531 	      hasHorizontalScrollBar: true
   532 	      hasVerticalScrollBar: true
   533 	      dataList: extensionsListHolder
   534 	      columnHolder: extensionsTableColumns
   535 	    )
   536 	   )
   537 
   538 	)
   539       )
   540 
   541     "Modified: / 07-09-2006 / 11:35:17 / cg"
   542 !
   543 
   544 prerequisitesSpec
   545     "This resource specification was automatically generated
   546      by the UIPainter of ST/X."
   547 
   548     "Do not manually edit this!! If it is corrupted,
   549      the UIPainter may not be able to read the specification."
   550 
   551     "
   552      UIPainter new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsSpec
   553      ApplicationDefinitionEditor new openInterface:#extensionsSpec
   554     "
   555 
   556     <resource: #canvas>
   557 
   558     ^
   559      #(FullSpec
   560 	name: extensionsSpec
   561 	window:
   562        (WindowSpec
   563 	  label: 'NewApplication'
   564 	  name: 'NewApplication'
   565 	  min: (Point 0 0)
   566 	  bounds: (Rectangle 0 0 300 300)
   567 	)
   568 	component:
   569        (SpecCollection
   570 	  collection: (
   571 	   (DataSetSpec
   572 	      name: 'ExtensionsTable'
   573 	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   574 	      model: selectedPrerequisitesIndexHolder
   575 	      hasHorizontalScrollBar: true
   576 	      hasVerticalScrollBar: true
   577 	      dataList: prerequisitesListHolder
   578 	      columnHolder: prerequisitesTableColumns
   579 	    )
   580 	   )
   581 
   582 	)
   583       )
   584 
   585     "Created: / 05-09-2006 / 13:21:32 / cg"
   586     "Modified: / 07-09-2006 / 11:35:20 / cg"
   587 !
   588 
   589 startupSpec
   590     "This resource specification was automatically generated
   591      by the UIPainter of ST/X."
   592 
   593     "Do not manually edit this!! If it is corrupted,
   594      the UIPainter may not be able to read the specification."
   595 
   596     "
   597      UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#startupSpec
   598      Tools::ProjectDefinitionEditor new openInterface:#startupSpec
   599     "
   600 
   601     <resource: #canvas>
   602 
   603     ^ 
   604      #(FullSpec
   605         name: startupSpec
   606         window: 
   607        (WindowSpec
   608           label: 'NewApplication'
   609           name: 'NewApplication'
   610           min: (Point 0 0)
   611           bounds: (Rectangle 0 0 433 300)
   612         )
   613         component: 
   614        (SpecCollection
   615           collection: (
   616            (FramedBoxSpec
   617               label: 'Startup'
   618               name: 'StartupFrame'
   619               layout: (LayoutFrame 0 0 0 0 0 1 93 0)
   620               labelPosition: topLeft
   621               translateLabel: true
   622               component: 
   623              (SpecCollection
   624                 collection: (
   625                  (LabelSpec
   626                     label: 'Startup Class:'
   627                     name: 'Label1'
   628                     layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
   629                     translateLabel: true
   630                     adjust: right
   631                   )
   632                  (InputFieldSpec
   633                     name: 'StartupClassEntryField'
   634                     layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
   635                     model: startupClassNameHolder
   636                     acceptOnReturn: true
   637                     acceptOnTab: true
   638                     acceptOnLostFocus: true
   639                     acceptOnPointerLeave: false
   640                   )
   641                  (LabelSpec
   642                     label: 'Startup Selector:'
   643                     name: 'Label2'
   644                     layout: (LayoutFrame 0 0.0 35 0 160 0 57 0)
   645                     translateLabel: true
   646                     adjust: right
   647                   )
   648                  (InputFieldSpec
   649                     name: 'StartupSelectorEntryField'
   650                     layout: (LayoutFrame 162 0.0 33 0 0 1.0 55 0)
   651                     model: startupSelectorHolder
   652                     acceptOnReturn: true
   653                     acceptOnTab: true
   654                     acceptOnLostFocus: true
   655                     acceptOnPointerLeave: false
   656                   )
   657                  )
   658                
   659               )
   660             )
   661            (FramedBoxSpec
   662               label: 'Execution'
   663               name: 'ExecutionFrame'
   664               layout: (LayoutFrame 0 0 94 0 0 1 176 0)
   665               labelPosition: topLeft
   666               translateLabel: true
   667               component: 
   668              (SpecCollection
   669                 collection: (
   670                  (CheckBoxSpec
   671                     label: 'Non-GUI Application'
   672                     name: 'Non-GUI CheckBox'
   673                     layout: (LayoutFrame 0 0.0 7 0 0 0.5 29 0)
   674                     model: isNonGUIApplicationHolder
   675                     translateLabel: true
   676                   )
   677                  (CheckBoxSpec
   678                     label: 'Singlethreaded'
   679                     name: 'SinglethreadedCheckBox'
   680                     layout: (LayoutFrame 0 0.5 7 0 0 1 29 0)
   681                     enableChannel: isNonGUIApplicationHolder
   682                     model: startSinglethreadedHolder
   683                     translateLabel: true
   684                   )
   685                  (CheckBoxSpec
   686                     label: 'Has Console'
   687                     name: 'HasConsoleCheckBox1'
   688                     layout: (LayoutFrame 0 0.5 34 0 0 1 56 0)
   689                     enableChannel: isGUIApplicationHolder
   690                     model: shownHasConsoleHolder
   691                     translateLabel: true
   692                   )
   693                  )
   694                
   695               )
   696             )
   697            (FramedBoxSpec
   698               label: 'File Extensions'
   699               name: 'FileExtensionsFrame'
   700               layout: (LayoutFrame 0 0 177 0 0 1 237 0)
   701               labelPosition: topLeft
   702               translateLabel: true
   703               component: 
   704              (SpecCollection
   705                 collection: (
   706                  (LabelSpec
   707                     label: 'Document Extensions:'
   708                     name: 'Label3'
   709                     layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
   710                     activeHelpKey: documentExtensions
   711                     translateLabel: true
   712                     adjust: right
   713                   )
   714                  (InputFieldSpec
   715                     activeHelpKey: documentExtensions
   716                     name: 'EntryField1'
   717                     layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
   718                     model: documentExtensionsListStringHolder
   719                     type: string
   720                     acceptOnReturn: true
   721                     acceptOnTab: true
   722                     acceptOnLostFocus: true
   723                     acceptOnPointerLeave: false
   724                   )
   725                  )
   726                
   727               )
   728             )
   729            )
   730          
   731         )
   732       )
   733 
   734     "Modified: / 15-10-2006 / 14:35:12 / cg"
   735 !
   736 
   737 windowSpec
   738     "This resource specification was automatically generated
   739      by the UIPainter of ST/X."
   740 
   741     "Do not manually edit this!! If it is corrupted,
   742      the UIPainter may not be able to read the specification."
   743 
   744     "
   745      UIPainter new openOnClass:ApplicationDefinitionBuilder andSelector:#windowSpec
   746      ApplicationDefinitionBuilder new openInterface:#windowSpec
   747      ApplicationDefinitionBuilder open
   748     "
   749 
   750     <resource: #canvas>
   751 
   752     ^
   753      #(FullSpec
   754 	name: windowSpec
   755 	window:
   756        (WindowSpec
   757 	  label: 'ApplicationDefinitionBuilder'
   758 	  name: 'ApplicationDefinitionBuilder'
   759 	  min: (Point 10 10)
   760 	  max: (Point 1024 768)
   761 	  bounds: (Rectangle 0 0 596 339)
   762 	  menu: mainMenu
   763 	)
   764 	component:
   765        (SpecCollection
   766 	  collection: (
   767 	   (NoteBookViewSpec
   768 	      name: 'NoteBook1'
   769 	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   770 	      model: selectedTabIndexHolder
   771 	      menu: tabList
   772 	      useIndex: true
   773 	    )
   774 	   )
   775 
   776 	)
   777       )
   778 
   779     "Modified: / 03-09-2006 / 10:57:33 / cg"
   780 ! !
   781 
   782 !ProjectDefinitionEditor class methodsFor:'list specs'!
   783 
   784 tabList
   785 ^ self  tabListForApplication.
   786 
   787     "Created: / 06-09-2006 / 13:38:03 / cg"
   788 !
   789 
   790 tabListForApplication
   791     "This resource specification was automatically generated
   792      by the TabListEditor of ST/X."
   793 
   794     "Do not manually edit this!! If it is corrupted,
   795      the TabListEditor may not be able to read the specification."
   796 
   797     "
   798      TabListEditor new openOnClass: self andSelector:#tabList
   799     "
   800 
   801     <resource: #tabList>
   802 
   803     ^     #(
   804        (TabItem
   805 	  label: 'Description'
   806 	  minorKey: descriptionSpec
   807 	)
   808        (TabItem
   809 	  label: 'Classes'
   810 	  createNewBuilder: false
   811 	  translateLabel: true
   812 	  minorKey: classesSpec
   813 	)
   814        (TabItem
   815 	  label: 'Extensions'
   816 	  minorKey: extensionsSpec
   817 	)
   818        (TabItem
   819 	  label: 'Prerequisites'
   820 	  minorKey: prerequisitesSpec
   821 	)
   822        (TabItem
   823 	  label: 'Compilation'
   824 	  minorKey: compilationSpec
   825 	)
   826        (TabItem
   827 	  label: 'Startup'
   828 	  minorKey: startupSpec
   829 	)
   830        )
   831 
   832       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
   833 
   834     "Created: / 05-09-2006 / 16:24:48 / cg"
   835     "Modified: / 06-09-2006 / 18:44:34 / cg"
   836 !
   837 
   838 tabListForLibrary
   839     "This resource specification was automatically generated
   840      by the TabListEditor of ST/X."
   841 
   842     "Do not manually edit this!! If it is corrupted,
   843      the TabListEditor may not be able to read the specification."
   844 
   845     "
   846      TabListEditor new openOnClass: self andSelector:#tabList
   847     "
   848 
   849     <resource: #tabList>
   850 
   851     ^     #(
   852        (TabItem
   853 	  label: 'Description'
   854 	  minorKey: descriptionSpec
   855 	)
   856        (TabItem
   857 	  label: 'Classes'
   858 	  createNewBuilder: false
   859 	  translateLabel: true
   860 	  minorKey: classesSpec
   861 	)
   862        (TabItem
   863 	  label: 'Extensions'
   864 	  minorKey: extensionsSpec
   865 	)
   866        (TabItem
   867 	  label: 'Prerequisites'
   868 	  minorKey: prerequisitesSpec
   869 	)
   870        (TabItem
   871 	  label: 'Compilation'
   872 	  minorKey: compilationSpec
   873 	)
   874        )
   875 
   876       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
   877 
   878     "Created: / 05-09-2006 / 16:24:52 / cg"
   879     "Modified: / 06-09-2006 / 18:44:38 / cg"
   880 ! !
   881 
   882 !ProjectDefinitionEditor class methodsFor:'menu specs'!
   883 
   884 classListMenu
   885     "This resource specification was automatically generated
   886      by the MenuEditor of ST/X."
   887 
   888     "Do not manually edit this!! If it is corrupted,
   889      the MenuEditor may not be able to read the specification."
   890 
   891     "
   892      MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classListMenu
   893      (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor classListMenu)) startUp
   894     "
   895 
   896     <resource: #menu>
   897 
   898     ^
   899      #(Menu
   900 	(
   901 	 (MenuItem
   902 	    enabled: hasDefinitionClassHolder
   903 	    label: 'Generate'
   904 	    itemValue: menuGenerateClassList
   905 	    translateLabel: true
   906 	  )
   907 	 (MenuItem
   908 	    label: '-'
   909 	  )
   910 	 (MenuItem
   911 	    enabled: hasDefinitionClassHolder
   912 	    label: 'Add...'
   913 	    itemValue: menuAddClass
   914 	    translateLabel: true
   915 	  )
   916 	 (MenuItem
   917 	    enabled: hasDefinitionClassHolder
   918 	    label: 'Remove...'
   919 	    itemValue: menuRemoveClass
   920 	    translateLabel: true
   921 	  )
   922 	 )
   923 	nil
   924 	nil
   925       )
   926 !
   927 
   928 extensionsListMenu
   929     "This resource specification was automatically generated
   930      by the MenuEditor of ST/X."
   931 
   932     "Do not manually edit this!! If it is corrupted,
   933      the MenuEditor may not be able to read the specification."
   934 
   935     "
   936      MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsListMenu
   937      (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor extensionsListMenu)) startUp
   938     "
   939 
   940     <resource: #menu>
   941 
   942     ^
   943      #(Menu
   944 	(
   945 	 (MenuItem
   946 	    enabled: hasDefinitionClassHolder
   947 	    label: 'Generate'
   948 	    itemValue: menuGenerateExtensionsList
   949 	    translateLabel: true
   950 	  )
   951 	 (MenuItem
   952 	    label: '-'
   953 	  )
   954 	 (MenuItem
   955 	    enabled: hasDefinitionClassHolder
   956 	    label: 'Add...'
   957 	    itemValue: menuAddExtension
   958 	    translateLabel: true
   959 	  )
   960 	 (MenuItem
   961 	    enabled: hasDefinitionClassHolder
   962 	    label: 'Remove...'
   963 	    itemValue: menuRemoveExtension
   964 	    translateLabel: true
   965 	  )
   966 	 )
   967 	nil
   968 	nil
   969       )
   970 !
   971 
   972 mainMenu
   973     "This resource specification was automatically generated
   974      by the MenuEditor of ST/X."
   975 
   976     "Do not manually edit this!! If it is corrupted,
   977      the MenuEditor may not be able to read the specification."
   978 
   979     "
   980      MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#mainMenu
   981      (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor mainMenu)) startUp
   982     "
   983 
   984     <resource: #menu>
   985 
   986     ^ 
   987      #(Menu
   988         (
   989          (MenuItem
   990             label: 'File'
   991             translateLabel: true
   992             submenu: 
   993            (Menu
   994               (
   995                (MenuItem
   996                   label: 'New Library'
   997                   itemValue: menuNewLibraryDefinition
   998                   translateLabel: true
   999                 )
  1000                (MenuItem
  1001                   label: 'New Application'
  1002                   itemValue: menuNewApplicationDefinition
  1003                   translateLabel: true
  1004                 )
  1005                (MenuItem
  1006                   label: '-'
  1007                 )
  1008                (MenuItem
  1009                   label: 'Open...'
  1010                   itemValue: menuOpen
  1011                   translateLabel: true
  1012                 )
  1013                (MenuItem
  1014                   label: '-'
  1015                 )
  1016                (MenuItem
  1017                   enabled: hasDefinitionClassHolder
  1018                   label: 'Save'
  1019                   itemValue: menuSave
  1020                   translateLabel: true
  1021                 )
  1022                (MenuItem
  1023                   enabled: hasDefinitionClassHolder
  1024                   label: 'Save As...'
  1025                   itemValue: menuSaveAs
  1026                   translateLabel: true
  1027                 )
  1028                (MenuItem
  1029                   label: '-'
  1030                 )
  1031                (MenuItem
  1032                   label: 'Exit'
  1033                   itemValue: closeRequest
  1034                   translateLabel: true
  1035                 )
  1036                )
  1037               nil
  1038               nil
  1039             )
  1040           )
  1041          (MenuItem
  1042             label: 'Definition'
  1043             translateLabel: true
  1044             submenu: 
  1045            (Menu
  1046               (
  1047                (MenuItem
  1048                   enabled: hasDefinitionClassHolder
  1049                   label: 'Generate Definitions'
  1050                   itemValue: menuGenerateProjectDefinitions
  1051                   translateLabel: true
  1052                 )
  1053                )
  1054               nil
  1055               nil
  1056             )
  1057           )
  1058          (MenuItem
  1059             label: 'Classes'
  1060             translateLabel: true
  1061             isVisible: classesMenuVisibleHolder
  1062             submenuChannel: classListMenu
  1063             keepLinkedMenu: true
  1064           )
  1065          (MenuItem
  1066             label: 'Extensions'
  1067             translateLabel: true
  1068             isVisible: extensionsMenuVisibleHolder
  1069             submenuChannel: extensionsListMenu
  1070             keepLinkedMenu: true
  1071           )
  1072          (MenuItem
  1073             label: 'Prerequisites'
  1074             translateLabel: true
  1075             isVisible: prerequisitesMenuVisibleHolder
  1076             submenuChannel: prerequisitesListMenu
  1077             keepLinkedMenu: true
  1078           )
  1079          (MenuItem
  1080             label: 'Help'
  1081             translateLabel: true
  1082             startGroup: conditionalRight
  1083             submenu: 
  1084            (Menu
  1085               (
  1086                (MenuItem
  1087                   label: 'Documentation'
  1088                   itemValue: openDocumentation
  1089                   translateLabel: true
  1090                 )
  1091                (MenuItem
  1092                   label: '-'
  1093                 )
  1094                (MenuItem
  1095                   label: 'About this Application...'
  1096                   itemValue: openAboutThisApplication
  1097                   translateLabel: true
  1098                 )
  1099                )
  1100               nil
  1101               nil
  1102             )
  1103           )
  1104          )
  1105         nil
  1106         nil
  1107       )
  1108 !
  1109 
  1110 prerequisitesListMenu
  1111     "This resource specification was automatically generated
  1112      by the MenuEditor of ST/X."
  1113 
  1114     "Do not manually edit this!! If it is corrupted,
  1115      the MenuEditor may not be able to read the specification."
  1116 
  1117     "
  1118      MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#prerequisitesListMenu
  1119      (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor prerequisitesListMenu)) startUp
  1120     "
  1121 
  1122     <resource: #menu>
  1123 
  1124     ^
  1125      #(Menu
  1126 	(
  1127 	 (MenuItem
  1128 	    enabled: hasDefinitionClassHolder
  1129 	    label: 'Generate'
  1130 	    itemValue: menuGeneratePrerequisitesList
  1131 	    translateLabel: true
  1132 	  )
  1133 	 (MenuItem
  1134 	    label: '-'
  1135 	  )
  1136 	 (MenuItem
  1137 	    enabled: hasDefinitionClassHolder
  1138 	    label: 'Add...'
  1139 	    itemValue: menuAddPrerequisite
  1140 	    translateLabel: true
  1141 	  )
  1142 	 (MenuItem
  1143 	    enabled: hasDefinitionClassHolder
  1144 	    label: 'Remove...'
  1145 	    itemValue: menuRemovePrerequisite
  1146 	    translateLabel: true
  1147 	  )
  1148 	 )
  1149 	nil
  1150 	nil
  1151       )
  1152 ! !
  1153 
  1154 !ProjectDefinitionEditor class methodsFor:'tableColumns specs'!
  1155 
  1156 classesTableColumns
  1157     "This resource specification was automatically generated
  1158      by the DataSetBuilder of ST/X."
  1159 
  1160     "Do not manually edit this!! If it is corrupted,
  1161      the DataSetBuilder may not be able to read the specification."
  1162 
  1163     "
  1164      DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesTableColumns
  1165     "
  1166 
  1167     <resource: #tableColumns>
  1168 
  1169     ^#(
  1170       (DataSetColumnSpec
  1171          label: 'Class'
  1172          labelAlignment: left
  1173          labelButtonType: Button
  1174          model: className
  1175          canSelect: false
  1176        )
  1177       (DataSetColumnSpec
  1178          label: 'Auto'
  1179          labelButtonType: Button
  1180          editorType: CheckToggle
  1181          rendererType: CheckToggle
  1182          model: autoloaded
  1183        )
  1184       (DataSetColumnSpec
  1185          label: 'Win32'
  1186          labelButtonType: Button
  1187          editorType: CheckToggle
  1188          rendererType: CheckToggle
  1189          model: win32
  1190        )
  1191       (DataSetColumnSpec
  1192          label: 'Unix'
  1193          labelButtonType: Button
  1194          editorType: CheckToggle
  1195          rendererType: CheckToggle
  1196          model: unix
  1197        )
  1198       )
  1199     
  1200 !
  1201 
  1202 extensionsTableColumns
  1203     "This resource specification was automatically generated
  1204      by the DataSetBuilder of ST/X."
  1205 
  1206     "Do not manually edit this!! If it is corrupted,
  1207      the DataSetBuilder may not be able to read the specification."
  1208 
  1209     "
  1210      DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsTableColumns
  1211     "
  1212 
  1213     <resource: #tableColumns>
  1214 
  1215     ^#(
  1216       (DataSetColumnSpec
  1217 	 label: 'Class'
  1218 	 labelAlignment: left
  1219 	 labelButtonType: Button
  1220 	 model: className
  1221 	 canSelect: false
  1222        )
  1223       (DataSetColumnSpec
  1224 	 label: 'Selector'
  1225 	 labelAlignment: left
  1226 	 labelButtonType: Button
  1227 	 model: selector
  1228 	 canSelect: false
  1229        )
  1230       )
  1231 
  1232 !
  1233 
  1234 prerequisitesTableColumns
  1235     "This resource specification was automatically generated
  1236      by the DataSetBuilder of ST/X."
  1237 
  1238     "Do not manually edit this!! If it is corrupted,
  1239      the DataSetBuilder may not be able to read the specification."
  1240 
  1241     "
  1242      DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#prerequisitesTableColumns
  1243     "
  1244 
  1245     <resource: #tableColumns>
  1246 
  1247     ^#(
  1248       (DataSetColumnSpec
  1249 	 label: 'Package'
  1250 	 labelAlignment: left
  1251 	 labelButtonType: Button
  1252 	 model: package
  1253        )
  1254       )
  1255 
  1256 ! !
  1257 
  1258 !ProjectDefinitionEditor methodsFor:'accessing'!
  1259 
  1260 definitionClass
  1261     ^ definitionClass
  1262 
  1263     "Created: / 04-09-2006 / 16:30:09 / cg"
  1264 !
  1265 
  1266 definitionClass:aClass
  1267     definitionClass := aClass.
  1268     self refetchDefinitionValues.
  1269 
  1270     "Created: / 04-09-2006 / 16:30:18 / cg"
  1271     "Modified: / 07-09-2006 / 12:26:57 / cg"
  1272 !
  1273 
  1274 specClass:aClass
  1275     super specClass:aClass.
  1276     self definitionClass:aClass theNonMetaclass.
  1277 
  1278     "Created: / 06-09-2006 / 19:24:10 / cg"
  1279 ! !
  1280 
  1281 !ProjectDefinitionEditor methodsFor:'aspects'!
  1282 
  1283 ccOptimizationFlagList
  1284     ^ #(
  1285         '-O'
  1286         '-g'
  1287     )
  1288 
  1289     "Created: / 15-10-2006 / 15:14:39 / cg"
  1290 !
  1291 
  1292 ccOptimizationFlagsHolder
  1293     ccOptimizationFlagsHolder isNil ifTrue:[
  1294         ccOptimizationFlagsHolder := ValueHolder new.
  1295     ].
  1296     ^ ccOptimizationFlagsHolder
  1297 
  1298     "Created: / 15-10-2006 / 15:13:14 / cg"
  1299 !
  1300 
  1301 classListHolder
  1302     classListHolder isNil ifTrue:[
  1303 	classListHolder := #() asValue.
  1304     ].
  1305     ^ classListHolder.
  1306 
  1307     "Created: / 07-09-2006 / 11:34:35 / cg"
  1308 !
  1309 
  1310 classesTableColumns
  1311     classesTableColumns isNil ifTrue:[
  1312 	classesTableColumns := self class classesTableColumns asValue.
  1313     ].
  1314     ^ classesTableColumns.
  1315 
  1316     "Modified: / 04-09-2006 / 17:58:09 / cg"
  1317 !
  1318 
  1319 companyNameHolder
  1320     companyNameHolder isNil ifTrue:[
  1321 	companyNameHolder := ValueHolder new.
  1322     ].
  1323     ^ companyNameHolder.
  1324 
  1325     "Created: / 04-09-2006 / 17:58:02 / cg"
  1326 !
  1327 
  1328 descriptionHolder
  1329     descriptionHolder isNil ifTrue:[
  1330 	descriptionHolder := ValueHolder new.
  1331     ].
  1332     ^ descriptionHolder.
  1333 
  1334     "Modified: / 04-09-2006 / 17:58:15 / cg"
  1335 !
  1336 
  1337 documentExtensionsListStringHolder
  1338     documentExtensionsListStringHolder isNil ifTrue:[
  1339         documentExtensionsListStringHolder := '' asValue.
  1340     ].
  1341     ^ documentExtensionsListStringHolder.
  1342 
  1343     "Created: / 15-10-2006 / 14:32:29 / cg"
  1344 !
  1345 
  1346 extensionsListHolder
  1347     extensionsListHolder isNil ifTrue:[
  1348 	extensionsListHolder := #() asValue.
  1349     ].
  1350     ^ extensionsListHolder.
  1351 
  1352     "Created: / 07-09-2006 / 11:34:50 / cg"
  1353 !
  1354 
  1355 fileDescriptionHolder
  1356     fileDescriptionHolder isNil ifTrue:[
  1357 	fileDescriptionHolder := ValueHolder new.
  1358     ].
  1359     ^ fileDescriptionHolder.
  1360 
  1361     "Modified: / 04-09-2006 / 17:58:19 / cg"
  1362 !
  1363 
  1364 fileMajorVersionNrHolder
  1365     "automatically generated by UIPainter ..."
  1366 
  1367     "*** the code below creates a default model when invoked."
  1368     "*** (which may not be the one you wanted)"
  1369     "*** Please change as required and accept it in the browser."
  1370     "*** (and replace this comment by something more useful ;-)"
  1371 
  1372     fileMajorVersionNrHolder isNil ifTrue:[
  1373 	fileMajorVersionNrHolder := ValueHolder new.
  1374 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1375 "/       fileMajorVersionNrHolder addDependent:self.
  1376 "/       fileMajorVersionNrHolder onChangeSend:#fileMajorVersionNrHolderChanged to:self.
  1377     ].
  1378     ^ fileMajorVersionNrHolder.
  1379 !
  1380 
  1381 fileMinorVersionNrHolder
  1382     "automatically generated by UIPainter ..."
  1383 
  1384     "*** the code below creates a default model when invoked."
  1385     "*** (which may not be the one you wanted)"
  1386     "*** Please change as required and accept it in the browser."
  1387     "*** (and replace this comment by something more useful ;-)"
  1388 
  1389     fileMinorVersionNrHolder isNil ifTrue:[
  1390 	fileMinorVersionNrHolder := ValueHolder new.
  1391 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1392 "/       fileMinorVersionNrHolder addDependent:self.
  1393 "/       fileMinorVersionNrHolder onChangeSend:#fileMinorVersionNrHolderChanged to:self.
  1394     ].
  1395     ^ fileMinorVersionNrHolder.
  1396 !
  1397 
  1398 fileReleaseNrHolder
  1399     "automatically generated by UIPainter ..."
  1400 
  1401     "*** the code below creates a default model when invoked."
  1402     "*** (which may not be the one you wanted)"
  1403     "*** Please change as required and accept it in the browser."
  1404     "*** (and replace this comment by something more useful ;-)"
  1405 
  1406     fileReleaseNrHolder isNil ifTrue:[
  1407 	fileReleaseNrHolder := ValueHolder new.
  1408 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1409 "/       fileReleaseNrHolder addDependent:self.
  1410 "/       fileReleaseNrHolder onChangeSend:#fileReleaseNrHolderChanged to:self.
  1411     ].
  1412     ^ fileReleaseNrHolder.
  1413 !
  1414 
  1415 fileRevisionNrHolder
  1416     "automatically generated by UIPainter ..."
  1417 
  1418     "*** the code below creates a default model when invoked."
  1419     "*** (which may not be the one you wanted)"
  1420     "*** Please change as required and accept it in the browser."
  1421     "*** (and replace this comment by something more useful ;-)"
  1422 
  1423     fileRevisionNrHolder isNil ifTrue:[
  1424 	fileRevisionNrHolder := ValueHolder new.
  1425 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1426 "/       fileRevisionNrHolder addDependent:self.
  1427 "/       fileRevisionNrHolder onChangeSend:#fileRevisionNrHolderChanged to:self.
  1428     ].
  1429     ^ fileRevisionNrHolder.
  1430 !
  1431 
  1432 hasConsoleHolder
  1433     hasConsoleHolder isNil ifTrue:[
  1434         hasConsoleHolder := false asValue
  1435     ].
  1436     ^ hasConsoleHolder.
  1437 
  1438     "Created: / 20-09-2006 / 14:39:18 / cg"
  1439 !
  1440 
  1441 iconFileNameHolder
  1442     iconFileNameHolder isNil ifTrue:[
  1443 	iconFileNameHolder := ValueHolder new.
  1444     ].
  1445     ^ iconFileNameHolder.
  1446 
  1447     "Created: / 04-09-2006 / 18:01:22 / cg"
  1448 !
  1449 
  1450 iconFilenameHolder
  1451     "automatically generated by UIPainter ..."
  1452 
  1453     "*** the code below creates a default model when invoked."
  1454     "*** (which may not be the one you wanted)"
  1455     "*** Please change as required and accept it in the browser."
  1456     "*** (and replace this comment by something more useful ;-)"
  1457 
  1458     iconFilenameHolder isNil ifTrue:[
  1459 	iconFilenameHolder := ValueHolder new.
  1460 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1461 "/       iconFilenameHolder addDependent:self.
  1462 "/       iconFilenameHolder onChangeSend:#iconFilenameHolderChanged to:self.
  1463     ].
  1464     ^ iconFilenameHolder.
  1465 !
  1466 
  1467 isApplicationDefinitionHolder
  1468     isApplicationDefinitionHolder isNil ifTrue:[
  1469 	isApplicationDefinitionHolder := false asValue
  1470     ].
  1471     ^ isApplicationDefinitionHolder.
  1472 
  1473     "Created: / 04-09-2006 / 19:22:47 / cg"
  1474 !
  1475 
  1476 isGUIApplicationHolder
  1477     ^ BlockValue forLogicalNot:self isNonGUIApplicationHolder
  1478 
  1479     "Created: / 20-09-2006 / 14:38:32 / cg"
  1480 !
  1481 
  1482 isNonGUIApplicationHolder
  1483     isNonGUIApplicationHolder isNil ifTrue:[
  1484         isNonGUIApplicationHolder := false asValue.
  1485         isNonGUIApplicationHolder addDependent:self.
  1486     ].
  1487     ^ isNonGUIApplicationHolder.
  1488 
  1489     "Created: / 05-09-2006 / 13:34:31 / cg"
  1490     "Modified: / 15-10-2006 / 14:00:03 / cg"
  1491 !
  1492 
  1493 legalCopyrightHolder
  1494     "automatically generated by UIPainter ..."
  1495 
  1496     "*** the code below creates a default model when invoked."
  1497     "*** (which may not be the one you wanted)"
  1498     "*** Please change as required and accept it in the browser."
  1499     "*** (and replace this comment by something more useful ;-)"
  1500 
  1501     legalCopyrightHolder isNil ifTrue:[
  1502 	legalCopyrightHolder := ValueHolder new.
  1503 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1504 "/       legalCopyrightHolder addDependent:self.
  1505 "/       legalCopyrightHolder onChangeSend:#legalCopyrightHolderChanged to:self.
  1506     ].
  1507     ^ legalCopyrightHolder.
  1508 !
  1509 
  1510 majorVersionNrHolder
  1511     "automatically generated by UIPainter ..."
  1512 
  1513     "*** the code below creates a default model when invoked."
  1514     "*** (which may not be the one you wanted)"
  1515     "*** Please change as required and accept it in the browser."
  1516     "*** (and replace this comment by something more useful ;-)"
  1517 
  1518     majorVersionNrHolder isNil ifTrue:[
  1519 	majorVersionNrHolder := ValueHolder new.
  1520 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1521 "/       majorVersionNrHolder addDependent:self.
  1522 "/       majorVersionNrHolder onChangeSend:#majorVersionNrHolderChanged to:self.
  1523     ].
  1524     ^ majorVersionNrHolder.
  1525 !
  1526 
  1527 minorVersionNrHolder
  1528     "automatically generated by UIPainter ..."
  1529 
  1530     "*** the code below creates a default model when invoked."
  1531     "*** (which may not be the one you wanted)"
  1532     "*** Please change as required and accept it in the browser."
  1533     "*** (and replace this comment by something more useful ;-)"
  1534 
  1535     minorVersionNrHolder isNil ifTrue:[
  1536 	minorVersionNrHolder := ValueHolder new.
  1537 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1538 "/       minorVersionNrHolder addDependent:self.
  1539 "/       minorVersionNrHolder onChangeSend:#minorVersionNrHolderChanged to:self.
  1540     ].
  1541     ^ minorVersionNrHolder.
  1542 !
  1543 
  1544 prerequisitesListHolder
  1545     prerequisitesListHolder isNil ifTrue:[
  1546 	prerequisitesListHolder := #() asValue.
  1547     ].
  1548     ^ prerequisitesListHolder.
  1549 
  1550     "Created: / 07-09-2006 / 11:35:03 / cg"
  1551 !
  1552 
  1553 productNameHolder
  1554     "automatically generated by UIPainter ..."
  1555 
  1556     "*** the code below creates a default model when invoked."
  1557     "*** (which may not be the one you wanted)"
  1558     "*** Please change as required and accept it in the browser."
  1559     "*** (and replace this comment by something more useful ;-)"
  1560 
  1561     productNameHolder isNil ifTrue:[
  1562 	productNameHolder := ValueHolder new.
  1563 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1564 "/       productNameHolder addDependent:self.
  1565 "/       productNameHolder onChangeSend:#productNameHolderChanged to:self.
  1566     ].
  1567     ^ productNameHolder.
  1568 !
  1569 
  1570 releaseNrHolder
  1571     "automatically generated by UIPainter ..."
  1572 
  1573     "*** the code below creates a default model when invoked."
  1574     "*** (which may not be the one you wanted)"
  1575     "*** Please change as required and accept it in the browser."
  1576     "*** (and replace this comment by something more useful ;-)"
  1577 
  1578     releaseNrHolder isNil ifTrue:[
  1579 	releaseNrHolder := ValueHolder new.
  1580 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1581 "/       releaseNrHolder addDependent:self.
  1582 "/       releaseNrHolder onChangeSend:#releaseNrHolderChanged to:self.
  1583     ].
  1584     ^ releaseNrHolder.
  1585 !
  1586 
  1587 revisionNrHolder
  1588     "automatically generated by UIPainter ..."
  1589 
  1590     "*** the code below creates a default model when invoked."
  1591     "*** (which may not be the one you wanted)"
  1592     "*** Please change as required and accept it in the browser."
  1593     "*** (and replace this comment by something more useful ;-)"
  1594 
  1595     revisionNrHolder isNil ifTrue:[
  1596 	revisionNrHolder := ValueHolder new.
  1597 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1598 "/       revisionNrHolder addDependent:self.
  1599 "/       revisionNrHolder onChangeSend:#revisionNrHolderChanged to:self.
  1600     ].
  1601     ^ revisionNrHolder.
  1602 !
  1603 
  1604 selectedClassIndexHolder
  1605     "automatically generated by UIPainter ..."
  1606 
  1607     "*** the code below creates a default model when invoked."
  1608     "*** (which may not be the one you wanted)"
  1609     "*** Please change as required and accept it in the browser."
  1610     "*** (and replace this comment by something more useful ;-)"
  1611 
  1612     selectedClassIndexHolder isNil ifTrue:[
  1613 	selectedClassIndexHolder := ValueHolder new.
  1614 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1615 "/       selectedClassIndexHolder addDependent:self.
  1616 "/       selectedClassIndexHolder onChangeSend:#selectedClassIndexHolderChanged to:self.
  1617     ].
  1618     ^ selectedClassIndexHolder.
  1619 !
  1620 
  1621 shownHasConsoleHolder
  1622     shownHasConsoleHolder isNil ifTrue:[
  1623         shownHasConsoleHolder := IndirectValue for:self hasConsoleHolder.
  1624     ].
  1625     ^ shownHasConsoleHolder
  1626 
  1627     "Created: / 15-10-2006 / 13:59:01 / cg"
  1628 !
  1629 
  1630 shownHasConsoleValue
  1631     ^ BlockValue 
  1632         with:[:m1 :m2 | self isGUIApplicationHolder value not
  1633                         or:[ self hasConsoleHolder value] ]
  1634         argument:(self hasConsoleHolder)
  1635         argument:(self isGUIApplicationHolder).
  1636 
  1637     "Created: / 15-10-2006 / 13:54:16 / cg"
  1638 !
  1639 
  1640 startSinglethreadedHolder
  1641     startSinglethreadedHolder isNil ifTrue:[
  1642 	startSinglethreadedHolder := false asValue.
  1643     ].
  1644     ^ startSinglethreadedHolder.
  1645 
  1646     "Created: / 05-09-2006 / 13:34:54 / cg"
  1647 !
  1648 
  1649 startupClassNameHolder
  1650     startupClassNameHolder isNil ifTrue:[
  1651 	startupClassNameHolder := '' asValue.
  1652     ].
  1653     ^ startupClassNameHolder.
  1654 
  1655     "Created: / 06-09-2006 / 18:41:52 / cg"
  1656 !
  1657 
  1658 startupSelectorHolder
  1659     startupSelectorHolder isNil ifTrue:[
  1660 	startupSelectorHolder := '' asValue.
  1661     ].
  1662     ^ startupSelectorHolder.
  1663 
  1664     "Created: / 05-09-2006 / 13:34:20 / cg"
  1665 !
  1666 
  1667 stcOptimizationFlagList
  1668     ^ #(
  1669         '+optSpace'
  1670         '+optSpace2'
  1671         '+optSpace3'
  1672         '+optInline'
  1673         '-optInline'
  1674         '-inlineNew'
  1675         '-inlineNot'
  1676     )
  1677 
  1678     "Created: / 15-10-2006 / 15:14:29 / cg"
  1679 !
  1680 
  1681 stcOptimizationFlagsHolder
  1682     stcOptimizationFlagsHolder isNil ifTrue:[
  1683         stcOptimizationFlagsHolder := ValueHolder new.
  1684     ].
  1685     ^ stcOptimizationFlagsHolder
  1686 
  1687     "Modified: / 15-10-2006 / 15:13:10 / cg"
  1688 !
  1689 
  1690 tabList
  1691     "Generated by the TabListEditor"
  1692 
  1693     |list|
  1694 
  1695     (list := builder bindingAt:#tabList) isNil ifTrue:[
  1696 	builder aspectAt:#tabList put:(list := self class tabListForApplication asValue).
  1697     ].
  1698     ^ list
  1699 
  1700     "Modified: / 06-09-2006 / 17:58:08 / cg"
  1701 ! !
  1702 
  1703 !ProjectDefinitionEditor methodsFor:'aspects-menu'!
  1704 
  1705 classesMenuVisibleHolder
  1706     ^ builder booleanValueAspectFor:#'classesMenuVisibleHolder'
  1707 
  1708     "Modified: / 03-09-2006 / 10:57:00 / cg"
  1709 !
  1710 
  1711 extensionsMenuVisibleHolder
  1712     ^ builder booleanValueAspectFor:#'extensionsMenuVisibleHolder'
  1713 
  1714     "Created: / 05-09-2006 / 13:03:16 / cg"
  1715 !
  1716 
  1717 hasDefinitionClass
  1718     ^ definitionClass notNil
  1719 
  1720     "Created: / 07-09-2006 / 12:29:10 / cg"
  1721 !
  1722 
  1723 hasDefinitionClassHolder
  1724     ^ [ self hasDefinitionClass ]
  1725 
  1726     "Created: / 07-09-2006 / 12:29:22 / cg"
  1727 !
  1728 
  1729 prerequisitesMenuVisibleHolder
  1730     ^ builder booleanValueAspectFor:#'prerequisitesMenuVisibleHolder'
  1731 
  1732     "Created: / 05-09-2006 / 13:26:45 / cg"
  1733 !
  1734 
  1735 selectedTabIndexHolder
  1736     |h|
  1737 
  1738     h := builder valueAspectFor:#'selectedTabIndexHolder' initialValue:nil.
  1739     h addDependent:self.
  1740     ^ h
  1741 
  1742     "Created: / 03-09-2006 / 10:58:05 / cg"
  1743 ! !
  1744 
  1745 !ProjectDefinitionEditor methodsFor:'change & update'!
  1746 
  1747 fetchClassListEntries
  1748     |entries|
  1749 
  1750     entries := OrderedCollection new.
  1751     definitionClass
  1752         classNamesAndAttributesDo:[:className :attributes |
  1753             |entry|
  1754 
  1755             entry := ClassListEntry new.
  1756             entry
  1757                 className:className
  1758                 autoloaded:(attributes includes:#autoload)
  1759                 win32:(attributes includes:#win32)
  1760                 unix:(attributes includes:#unix).
  1761             entries add:entry.
  1762         ].
  1763     entries sort:[:a :b | a className < b className].
  1764     ^ entries.
  1765 
  1766     "Created: / 05-09-2006 / 12:31:26 / cg"
  1767     "Modified: / 21-11-2006 / 18:04:35 / cg"
  1768 !
  1769 
  1770 fetchExtensionsListEntries
  1771     |entries|
  1772 
  1773     entries := OrderedCollection new.
  1774     definitionClass
  1775 	extensionMethodNames pairWiseDo:[:className :selector |
  1776 	    |entry|
  1777 
  1778 	    entry := ExtensionsListEntry new.
  1779 	    entry className:className selector:selector.
  1780 	    entries add:entry.
  1781 	].
  1782 
  1783     ^ entries.
  1784 
  1785     "Created: / 06-09-2006 / 18:45:15 / cg"
  1786 !
  1787 
  1788 fetchPrerequisitesListEntries
  1789     |entries|
  1790 
  1791     entries := OrderedCollection new.
  1792     definitionClass
  1793 	preRequisites do:[:packageName |
  1794 	    |entry|
  1795 
  1796 	    entry := PrerequisitesListEntry new.
  1797 	    entry package:packageName.
  1798 	    entries add:entry.
  1799 	].
  1800 
  1801     ^ entries.
  1802 
  1803     "Created: / 06-09-2006 / 18:45:15 / cg"
  1804     "Modified: / 07-09-2006 / 12:36:21 / cg"
  1805 !
  1806 
  1807 fetchValues
  1808     |definitionClass isApplicationDefinition startupClassName startupSelector|
  1809 
  1810     definitionClass := self definitionClass.
  1811     definitionClass isNil ifTrue:[^ self ].
  1812 
  1813     isApplicationDefinition := definitionClass isApplicationDefinition.
  1814 
  1815     self isApplicationDefinitionHolder value:isApplicationDefinition.
  1816     self isNonGUIApplicationHolder value:(isApplicationDefinition and:[definitionClass isGUIApplication not]).
  1817     self hasConsoleHolder value:(isApplicationDefinition and:[definitionClass isConsoleApplication]).
  1818     self startSinglethreadedHolder value:(isApplicationDefinition and:[definitionClass isSingleThreadedApplication]).
  1819 
  1820     isApplicationDefinition ifTrue:[
  1821         startupClassName := definitionClass name.
  1822         startupSelector := #start.
  1823 
  1824         Error handle:[:ex | ] do:[ startupClassName := definitionClass startupClassName].
  1825         Error handle:[:ex | ] do:[ startupSelector := definitionClass startupSelector].
  1826         self startupClassNameHolder value:startupClassName.
  1827         self startupSelectorHolder value:startupSelector.
  1828 
  1829         self iconFileNameHolder value:(definitionClass iconFileName).
  1830         self tabList value:(self class tabListForApplication).
  1831         self documentExtensionsListStringHolder value:(definitionClass documentExtensions asStringWith:';').
  1832     ] ifFalse:[
  1833         self tabList value:(self class tabListForLibrary).
  1834     ].
  1835 
  1836     self companyNameHolder value:(definitionClass companyName).
  1837     self descriptionHolder value:(definitionClass description).
  1838     self legalCopyrightHolder value:(definitionClass legalCopyright).
  1839     self productNameHolder value:(definitionClass productName).
  1840     self majorVersionNrHolder value:(definitionClass majorVersionNr asInteger).
  1841     self minorVersionNrHolder value:(definitionClass minorVersionNr asInteger).
  1842     self revisionNrHolder value:(definitionClass revisionNr asInteger).
  1843     self releaseNrHolder value:(definitionClass releaseNr asInteger).
  1844 
  1845     self fileDescriptionHolder value:(definitionClass fileDescription).
  1846     self fileMajorVersionNrHolder value:(definitionClass fileMajorVersionNr asInteger).
  1847     self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger).
  1848     self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger).
  1849     self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger).
  1850 
  1851     self classListHolder value:(self fetchClassListEntries).
  1852     self extensionsListHolder value:(self fetchExtensionsListEntries).
  1853     self prerequisitesListHolder value:(self fetchPrerequisitesListEntries).
  1854 
  1855     self window notNil ifTrue:[
  1856         self window
  1857             label:(isApplicationDefinition
  1858                     ifTrue:'Application'
  1859                     ifFalse:'Library' )
  1860                         , ' Definition: ',definitionClass name.
  1861     ].
  1862 
  1863     "Created: / 04-09-2006 / 16:34:39 / cg"
  1864     "Modified: / 15-10-2006 / 14:32:45 / cg"
  1865 !
  1866 
  1867 refetchDefinitionValues
  1868     self isApplicationDefinitionHolder value:( definitionClass isApplicationDefinition ).
  1869     self fetchValues.
  1870 
  1871     "Created: / 07-09-2006 / 12:26:54 / cg"
  1872 !
  1873 
  1874 update:something with:parameter from:changedObject
  1875     changedObject == self selectedTabIndexHolder ifTrue:[
  1876         self updateMenuVisibility.
  1877         ^ self.
  1878     ].
  1879     changedObject == self isNonGUIApplicationHolder ifTrue:[
  1880         changedObject value ifTrue:[
  1881             "/ a NON-GUI application - always has a console
  1882             self shownHasConsoleHolder valueHolder:true
  1883         ] ifFalse:[
  1884             "/ a GUI application - sometimes has a console
  1885             self shownHasConsoleHolder valueHolder:(self hasConsoleHolder)
  1886         ].
  1887         ^ self.
  1888     ].
  1889     ^ super update:something with:parameter from:changedObject
  1890 
  1891     "Created: / 03-09-2006 / 10:59:42 / cg"
  1892     "Modified: / 15-10-2006 / 14:08:23 / cg"
  1893 !
  1894 
  1895 updateMenuVisibility
  1896     self classesMenuVisibleHolder value:(self hasClassesTabSelected).
  1897     self extensionsMenuVisibleHolder value:(self hasExtensionsTabSelected).
  1898     self prerequisitesMenuVisibleHolder value:(self hasPrerequisitesTabSelected).
  1899 
  1900     "Created: / 03-09-2006 / 11:01:48 / cg"
  1901     "Modified: / 05-09-2006 / 13:27:10 / cg"
  1902 ! !
  1903 
  1904 !ProjectDefinitionEditor methodsFor:'initialization & release'!
  1905 
  1906 closeRequest
  1907     (self hasUnsavedChanges) ifTrue:[
  1908 	(self confirm:(resources string:'Close without saving ?')) ifFalse:[
  1909 	    ^ self
  1910 	]
  1911     ].
  1912 
  1913     ^ super closeRequest
  1914 
  1915     "Modified: / 03-09-2006 / 10:53:14 / cg"
  1916 !
  1917 
  1918 flagHolderBuilt:aComboBox
  1919     aComboBox menuSelectAction:[:txt |
  1920         self updateFlagsIn:aComboBox from:txt
  1921     ].
  1922 
  1923     "Created: / 15-10-2006 / 15:11:50 / cg"
  1924 !
  1925 
  1926 postBuildWith:aBuilder
  1927     super postBuildWith:aBuilder.
  1928     self selectedTabIndexHolder value:1.
  1929     self updateMenuVisibility.
  1930     self fetchValues.
  1931 
  1932     "Modified: / 04-09-2006 / 16:28:09 / cg"
  1933 !
  1934 
  1935 postOpenWith:aBuilder
  1936     "This is a hook method generated by the Browser.
  1937      It will be invoked right after the applications window has been opened.
  1938      Add any app-specific actions here (starting background processes etc.).
  1939      See also #postBuildWith:, which is invoked before opening."
  1940 
  1941     "/ add any code here ...
  1942 
  1943     ^ super postOpenWith:aBuilder
  1944 ! !
  1945 
  1946 !ProjectDefinitionEditor methodsFor:'menu actions'!
  1947 
  1948 editNew:definitionClass
  1949     |className class newPackage|
  1950 
  1951     self hasUnsavedChanges ifTrue:[
  1952         self halt.
  1953     ].
  1954     className := Dialog
  1955                     requestClassName:'Name of new Definition class'
  1956                     okLabel:'Create'
  1957                     initialAnswer:'private_myProject'.
  1958     className isEmptyOrNil ifTrue:[^ self].
  1959 
  1960     class := Smalltalk classNamed:className.
  1961     class notNil ifTrue:[
  1962         (class isLibraryDefinition == (definitionClass == LibraryDefinition)) ifFalse:[
  1963             Dialog warn:(resources
  1964                             string:'A class named "%1" already exists as %2.'
  1965                             with:className allBold
  1966                             with:(class isLibraryDefinition 
  1967                                     ifTrue:'Library'
  1968                                     ifFalse:'Application')).
  1969             ^ self
  1970         ].
  1971         Dialog warn:(resources
  1972                             string:'A class named "%1" already exists. Editing the existing definition.'
  1973                             with:className allBold).
  1974     ] ifFalse:[
  1975         newPackage := className copy replaceAll:$_ with:$/.
  1976         newPackage replaceAll:$/ with:$:. 
  1977         class := definitionClass newNamed:className package:newPackage.
  1978     ].
  1979     self definitionClass:class.
  1980 
  1981     "Created: / 15-10-2006 / 14:50:15 / cg"
  1982 !
  1983 
  1984 menuGenerateProjectDefinitions
  1985     |action|
  1986 
  1987     action := [:generator :defClass |
  1988 		    defClass theNonMetaclass
  1989 			forEachMethodsCodeToCompileDo:
  1990 			    [:code :category |
  1991 				generator
  1992 				    compile:code
  1993 				    forClass:defClass theMetaclass
  1994 				    inCategory:category.
  1995 			    ]
  1996 			ignoreOldDefinition:true
  1997 	       ].
  1998 
  1999     masterApplication notNil ifTrue:[
  2000 	masterApplication
  2001 	    generateUndoableChange:'Generate Project Definitions'
  2002 	    overClasses:(Array with:self definitionClass)
  2003 	    via:action.
  2004     ] ifFalse:[
  2005 	action value:Compiler value:self definitionClass
  2006     ].
  2007 
  2008     self refetchDefinitionValues
  2009 
  2010     "Created: / 07-09-2006 / 12:26:22 / cg"
  2011 !
  2012 
  2013 menuNew
  2014     "This method was generated by the Browser.
  2015      It will be invoked when the menu-item 'new' is selected."
  2016 
  2017     "/ change below and add any actions as required here ...
  2018     self warn:'no action for ''new'' available.'.
  2019 !
  2020 
  2021 menuNewApplicationDefinition
  2022     self editNew:ApplicationDefinition
  2023 
  2024     "Created: / 15-10-2006 / 14:49:53 / cg"
  2025 !
  2026 
  2027 menuNewLibraryDefinition
  2028     self editNew:LibraryDefinition
  2029 
  2030     "Created: / 15-10-2006 / 14:49:46 / cg"
  2031 !
  2032 
  2033 menuOpen
  2034     |projectID class answer|
  2035 
  2036     projectID := Dialog requestProject:'Project' initialAnswer:'' suggestions:nil.
  2037     class := ProjectDefinition definitionClassForPackage:projectID.
  2038     class isNil ifTrue:[
  2039 	answer := Dialog
  2040 	    confirmWithCancel:(resources string:'No Projectdefinition class exists for "%1".\\Create ?' with:projectID allBold)
  2041 	    labels:(resources array:#('Cancel' 'Create Library' 'Create Application' ))
  2042 	    values:#(nil LibraryDefinition ApplicationDefinition)
  2043 	    default:2
  2044 	    boxLabel:(resources string:'Create Projectdefinition').
  2045 	answer isNil ifTrue:[^ self].
  2046     ].
  2047     answer == #LibraryDefinition ifTrue:[
  2048 	class := LibraryDefinition definitionClassForPackage:projectID createIfAbsent:true
  2049     ] ifFalse:[
  2050 	class := ApplicationDefinition definitionClassForPackage:projectID createIfAbsent:true
  2051     ].
  2052     self definitionClass:class.
  2053 
  2054     "Modified: / 07-09-2006 / 12:19:58 / cg"
  2055 !
  2056 
  2057 menuRemoveClass
  2058     |classListHolder|
  2059 
  2060     classListHolder := self classListHolder.
  2061     classListHolder value removeIndex:(self selectedClassIndexHolder value).
  2062     classListHolder changed.
  2063 
  2064     "Created: / 06-09-2006 / 21:31:05 / cg"
  2065     "Modified: / 07-09-2006 / 11:35:44 / cg"
  2066 !
  2067 
  2068 menuSave
  2069     self menuSaveAs:definitionClass name
  2070 
  2071     "Modified: / 05-09-2006 / 13:48:27 / cg"
  2072 !
  2073 
  2074 menuSaveAs
  2075     |className class newPackage|
  2076 
  2077     className := Dialog
  2078                     requestClassName:'Name of new Definition class'
  2079                     okLabel:'Create'
  2080                     initialAnswer:'private_myProject'.
  2081     className isEmptyOrNil ifTrue:[^ self].
  2082     class := Smalltalk classNamed:className.
  2083     class notNil ifTrue:[
  2084         Dialog warn:(resources
  2085                             string:'A class named %1 already exists'
  2086                             with:className).
  2087         ^ self.
  2088     ].
  2089     newPackage := className copy replaceAll:$_ with:$/.
  2090     newPackage replaceAll:$/ with:$:. 
  2091     class := ApplicationDefinition newNamed:className package:newPackage.
  2092     self menuSaveAs:class.
  2093 
  2094     "Modified: / 15-10-2006 / 14:47:53 / cg"
  2095 !
  2096 
  2097 menuSaveAs:aClassName
  2098     self halt.
  2099 
  2100     "Created: / 05-09-2006 / 13:48:03 / cg"
  2101 !
  2102 
  2103 openAboutThisApplication
  2104     "This method was generated by the Browser.
  2105      It will be invoked when the menu-item 'help-about' is selected."
  2106 
  2107     "/ could open a customized aboutBox here ...
  2108     super openAboutThisApplication
  2109 !
  2110 
  2111 openDocumentation
  2112     "This method was generated by the Browser.
  2113      It will be invoked when the menu-item 'help-documentation' is selected."
  2114 
  2115     "/ change below as required ...
  2116 
  2117     "/ to open an HTML viewer on some document (under 'doc/online/<language>/' ):
  2118     HTMLDocumentView openFullOnDocumentationFile:'TOP.html'.
  2119 
  2120     "/ add application-specific help files under the 'doc/online/<language>/help/appName'
  2121     "/ directory, and open a viewer with:
  2122     "/ HTMLDocumentView openFullOnDocumentationFile:'help/<MyApplication>/TOP.html'.
  2123 !
  2124 
  2125 updateFlagsIn:aComboBox from:flag
  2126     |s flags base negation|
  2127 
  2128     s := aComboBox editor contents.
  2129     flags := s asCollectionOfWords.
  2130     (flags includes:flag) ifFalse:[
  2131         base := (flag copyFrom:2).
  2132         negation := (flag startsWith:'+') 
  2133                         ifTrue:[ ('-',base) ]
  2134                         ifFalse:[ ('+',base) ].
  2135         flags remove:negation ifAbsent:[].
  2136         flags add:flag.
  2137         aComboBox editor contents:(flags asStringWith:' ').
  2138     ].
  2139 
  2140     "Created: / 15-10-2006 / 15:35:53 / cg"
  2141 ! !
  2142 
  2143 !ProjectDefinitionEditor methodsFor:'queries'!
  2144 
  2145 hasClassesTabSelected
  2146     ^ self selectedTabIndex == 2
  2147 
  2148     "Created: / 03-09-2006 / 11:00:39 / cg"
  2149     "Modified: / 06-09-2006 / 21:20:21 / cg"
  2150 !
  2151 
  2152 hasExtensionsTabSelected
  2153     ^ self selectedTabIndex == 3
  2154 
  2155     "Created: / 05-09-2006 / 13:02:26 / cg"
  2156     "Modified: / 06-09-2006 / 21:20:25 / cg"
  2157 !
  2158 
  2159 hasPrerequisitesTabSelected
  2160     ^ self selectedTabIndex == 4
  2161 
  2162     "Created: / 05-09-2006 / 13:27:16 / cg"
  2163     "Modified: / 06-09-2006 / 21:20:33 / cg"
  2164 !
  2165 
  2166 hasUnsavedChanges
  2167      ^ false
  2168 
  2169     "Created: / 03-09-2006 / 10:53:05 / cg"
  2170 !
  2171 
  2172 selectedClass
  2173     |item|
  2174 
  2175     item := self classListHolder value at:(self selectedClassIndexHolder value).
  2176 self halt.
  2177 
  2178     "Created: / 06-09-2006 / 21:32:20 / cg"
  2179     "Modified: / 07-09-2006 / 11:35:48 / cg"
  2180 !
  2181 
  2182 selectedTabIndex
  2183     ^ self selectedTabIndexHolder value
  2184 
  2185     "Created: / 03-09-2006 / 11:00:48 / cg"
  2186 ! !
  2187 
  2188 !ProjectDefinitionEditor::ClassListEntry methodsFor:'accessing'!
  2189 
  2190 autoloaded
  2191     ^ autoloaded
  2192 !
  2193 
  2194 autoloaded:aBoolean
  2195     autoloaded := aBoolean.
  2196 
  2197     "Modified: / 21-11-2006 / 18:05:26 / cg"
  2198 !
  2199 
  2200 className
  2201     ^ className
  2202 !
  2203 
  2204 className:something
  2205     className := something.
  2206 !
  2207 
  2208 className:classNameArg autoloaded:autoloadedArg win32:win32Arg unix:unixArg
  2209     className := classNameArg.
  2210     autoloaded := autoloadedArg.
  2211     win32 := win32Arg.
  2212     unix := unixArg.
  2213 !
  2214 
  2215 unix
  2216     ^ unix
  2217 !
  2218 
  2219 unix:aBoolean
  2220     unix := aBoolean.
  2221 
  2222     "Modified: / 21-11-2006 / 18:05:32 / cg"
  2223 !
  2224 
  2225 win32
  2226     ^ win32
  2227 !
  2228 
  2229 win32:aBoolean
  2230     win32 := aBoolean.
  2231 
  2232     "Modified: / 21-11-2006 / 18:05:35 / cg"
  2233 ! !
  2234 
  2235 !ProjectDefinitionEditor::ExtensionsListEntry methodsFor:'accessing'!
  2236 
  2237 className
  2238     ^ className
  2239 !
  2240 
  2241 className:classNameArg selector:selectorArg
  2242     className := classNameArg.
  2243     selector := selectorArg.
  2244 !
  2245 
  2246 selector
  2247     ^ selector
  2248 ! !
  2249 
  2250 !ProjectDefinitionEditor::PrerequisitesListEntry methodsFor:'accessing'!
  2251 
  2252 package
  2253     ^ package
  2254 
  2255     "Created: / 07-09-2006 / 12:23:17 / cg"
  2256 !
  2257 
  2258 package:something
  2259     package := something.
  2260 
  2261     "Created: / 07-09-2006 / 12:23:19 / cg"
  2262 ! !
  2263 
  2264 !ProjectDefinitionEditor class methodsFor:'documentation'!
  2265 
  2266 version
  2267     ^ '$Header$'
  2268 ! !