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