Tools__ProjectDefinitionEditor.st
author Claus Gittinger <cg@exept.de>
Wed, 06 Sep 2006 21:50:31 +0200
changeset 2080 b76931b8e953
parent 2079 43f28c0ce813
child 2081 7bd90dbd7018
permissions -rw-r--r--
*** empty log message ***

"{ Package: 'stx:libtool2' }"

"{ NameSpace: Tools }"

ResourceSpecEditor subclass:#ProjectDefinitionEditor
	instanceVariableNames:'definitionClass classList extensionsList selectedClassIndexHolder
		classesTableColumns revisionNrHolder companyNameHolder
		fileMajorVersionNrHolder minorVersionNrHolder iconFileNameHolder
		fileReleaseNrHolder productNameHolder majorVersionNrHolder
		fileRevisionNrHolder fileDescriptionHolder releaseNrHolder
		fileMinorVersionNrHolder descriptionHolder legalCopyrightHolder
		isApplicationDefinitionHolder isNonGUIApplicationHolder
		startSinglethreadedHolder startupClassNameHolder
		startupSelectorHolder'
	classVariableNames:''
	poolDictionaries:''
	category:'Interface-Tools'
!

Object subclass:#ClassListEntry
	instanceVariableNames:'className autoloaded win32 unix'
	classVariableNames:''
	poolDictionaries:''
	privateIn:ProjectDefinitionEditor
!

Object subclass:#ExtensionsListEntry
	instanceVariableNames:'className selector'
	classVariableNames:''
	poolDictionaries:''
	privateIn:ProjectDefinitionEditor
!

!ProjectDefinitionEditor class methodsFor:'documentation'!

documentation
"
    unfinished app-definition editor

    [author:]
        cg (cg@FUSI)

    [instance variables:]

    [class variables:]

    [see also:]

"
!

examples
"
  Starting the application:
                                                                [exBegin]
    (ProjectDefinitionEditor new
        definitionClass:stx_libbasic) open
                                                                [exEnd]

                                                                [exBegin]
    (ProjectDefinitionEditor new
        definitionClass:bosch_dapasx_application) open
                                                                [exEnd]
"
! !

!ProjectDefinitionEditor class methodsFor:'interface specs'!

classesSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesSpec
     Tools::ProjectDefinitionEditor new openInterface:#classesSpec
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: classesSpec
        window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
          min: (Point 0 0)
          bounds: (Rectangle 0 0 300 300)
        )
        component: 
       (SpecCollection
          collection: (
           (DataSetSpec
              name: 'ClassesTable'
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
              model: selectedClassIndexHolder
              menu: classListMenu
              hasHorizontalScrollBar: true
              hasVerticalScrollBar: true
              dataList: classList
              columnHolder: classesTableColumns
            )
           )
         
        )
      )
!

compilationSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#compilationSpec
     Tools::ProjectDefinitionEditor new openInterface:#compilationSpec
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: compilationSpec
        window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
          min: (Point 0 0)
          bounds: (Rectangle 0 0 433 300)
        )
        component: 
       (SpecCollection
          collection: (
           (FramedBoxSpec
              label: 'Optimization'
              name: 'FramedBox1'
              layout: (LayoutFrame 0 0 0 0 0 1 93 0)
              labelPosition: topLeft
              translateLabel: true
              component: 
             (SpecCollection
                collection: (
                 (LabelSpec
                    label: 'STC Optimization Flags:'
                    name: 'Label1'
                    layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
                    translateLabel: true
                    adjust: right
                  )
                 (InputFieldSpec
                    name: 'STCOptimizationFlagsEntryField'
                    layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
                    model: stcOptimizationFlagsHolder
                    acceptOnReturn: true
                    acceptOnTab: true
                    acceptOnLostFocus: true
                    acceptOnPointerLeave: false
                  )
                 (LabelSpec
                    label: 'CC Optimization Flags:'
                    name: 'Label2'
                    layout: (LayoutFrame 0 0.0 35 0 160 0 57 0)
                    translateLabel: true
                    adjust: right
                  )
                 (InputFieldSpec
                    name: 'CCOptimizationFlagsEntryField'
                    layout: (LayoutFrame 162 0.0 33 0 0 1.0 55 0)
                    model: ccOptimizationFlagsHolder
                    acceptOnReturn: true
                    acceptOnTab: true
                    acceptOnLostFocus: true
                    acceptOnPointerLeave: false
                  )
                 )
               
              )
            )
           (FramedBoxSpec
              label: 'Includes'
              name: 'FramedBox2'
              layout: (LayoutFrame 0 0 98 0 0 1 160 0)
              labelPosition: topLeft
              translateLabel: true
              component: 
             (SpecCollection
                collection: (
                 (LabelSpec
                    label: 'Additional Includes:'
                    name: 'Label3'
                    layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
                    translateLabel: true
                    adjust: right
                  )
                 (InputFieldSpec
                    name: 'IncludeFlagsEntryField'
                    layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
                    model: includeFlagsHolder
                    acceptOnReturn: true
                    acceptOnTab: true
                    acceptOnLostFocus: true
                    acceptOnPointerLeave: false
                  )
                 )
               
              )
            )
           )
         
        )
      )
!

descriptionSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:ApplicationDefinitionBuilder andSelector:#descriptionSpec
     ApplicationDefinitionBuilder new openInterface:#descriptionSpec
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: descriptionSpec
        window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
          min: (Point 0 0)
          bounds: (Rectangle 0 0 433 300)
        )
        component: 
       (SpecCollection
          collection: (
           (LabelSpec
              label: 'Company:'
              name: 'CompanyLabel'
              layout: (LayoutFrame 2 0.0 13 0 160 0 35 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'CompanyEntryField'
              layout: (LayoutFrame 162 0.0 12 0 -2 1.0 34 0)
              model: companyNameHolder
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'Description:'
              name: 'DescriptionLabel'
              layout: (LayoutFrame 2 0.0 39 0 160 0 61 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'DescriptionEntryField'
              layout: (LayoutFrame 162 0.0 38 0 -2 1.0 60 0)
              model: descriptionHolder
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'ProductName:'
              name: 'ProductNameLabel'
              layout: (LayoutFrame 2 0.0 65 0 160 0 87 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'ProductNameEntryField'
              layout: (LayoutFrame 162 0.0 64 0 -2 1.0 86 0)
              model: productNameHolder
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'ProductVersion:'
              name: 'ProductVersionLabel'
              layout: (LayoutFrame 2 0.0 91 0 160 0 113 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'MajorVersionNrEntryField'
              layout: (LayoutFrame 162 0.0 90 0 182 0.0 112 0)
              model: majorVersionNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (InputFieldSpec
              name: 'MinorVersionNrEntryField'
              layout: (LayoutFrame 184 0.0 90 0 204 0.0 112 0)
              model: minorVersionNrHolder
              type: numberOrNil
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (InputFieldSpec
              name: 'RevisionNrEntryField'
              layout: (LayoutFrame 206 0.0 90 0 226 0.0 112 0)
              model: revisionNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (InputFieldSpec
              name: 'ReleaseNrEntryField'
              layout: (LayoutFrame 228 0.0 90 0 248 0.0 112 0)
              model: releaseNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'LegalCopyright:'
              name: 'LegalCopyrightLabel'
              layout: (LayoutFrame 2 0.0 119 0 160 0 141 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'LegalCopyrightEntryField'
              layout: (LayoutFrame 162 0.0 118 0 -2 1.0 140 0)
              model: legalCopyrightHolder
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'FileDescriptionDescription:'
              name: 'FileDescriptionLabel'
              layout: (LayoutFrame 2 0.0 161 0 160 0 183 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'FileDescriptionEntryField'
              layout: (LayoutFrame 162 0.0 160 0 -2 1.0 182 0)
              model: fileDescriptionHolder
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'FileVersion:'
              name: 'FileVersionLabel'
              layout: (LayoutFrame 2 0.0 187 0 160 0 209 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'FileMajorVersionNrEntryField'
              layout: (LayoutFrame 162 0.0 186 0 182 0.0 208 0)
              model: fileMajorVersionNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (InputFieldSpec
              name: 'FileMinorVersionNrEntryField'
              layout: (LayoutFrame 184 0.0 186 0 204 0.0 208 0)
              model: fileMinorVersionNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (InputFieldSpec
              name: 'FileRevisionNrEntryField'
              layout: (LayoutFrame 206 0.0 186 0 226 0.0 208 0)
              model: fileRevisionNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (InputFieldSpec
              name: 'FileReleaseNrEntryField'
              layout: (LayoutFrame 228 0.0 186 0 248 0.0 208 0)
              model: fileReleaseNrHolder
              type: number
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           (LabelSpec
              label: 'Icon Filename:'
              name: 'IconFileNameLabel'
              layout: (LayoutFrame 2 0.0 236 0 160 0 258 0)
              visibilityChannel: isApplicationDefinitionHolder
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'IconFileNameEntryField'
              layout: (LayoutFrame 162 0.0 234 0 -2 1.0 256 0)
              visibilityChannel: isApplicationDefinitionHolder
              model: iconFilenameHolder
              acceptOnReturn: true
              acceptOnTab: true
              acceptOnLostFocus: true
              acceptOnPointerLeave: false
            )
           )
         
        )
      )
!

extensionsSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsSpec
     ApplicationDefinitionEditor new openInterface:#extensionsSpec
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: extensionsSpec
        window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
          min: (Point 0 0)
          bounds: (Rectangle 0 0 300 300)
        )
        component: 
       (SpecCollection
          collection: (
           (DataSetSpec
              name: 'ExtensionsTable'
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
              model: selectedExtensionIndexHolder
              hasHorizontalScrollBar: true
              hasVerticalScrollBar: true
              dataList: extensionsList
              columnHolder: extensionsTableColumns
            )
           )
         
        )
      )
!

prerequisitesSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsSpec
     ApplicationDefinitionEditor new openInterface:#extensionsSpec
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: extensionsSpec
        window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
          min: (Point 0 0)
          bounds: (Rectangle 0 0 300 300)
        )
        component: 
       (SpecCollection
          collection: (
           (DataSetSpec
              name: 'ExtensionsTable'
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
              model: selectedPrerequisitesIndexHolder
              hasHorizontalScrollBar: true
              hasVerticalScrollBar: true
              dataList: prerequisitesList
              columnHolder: prerequisitesTableColumns
            )
           )
         
        )
      )

    "Created: / 05-09-2006 / 13:21:32 / cg"
!

startupSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#startupSpec
     Tools::ProjectDefinitionEditor new openInterface:#startupSpec
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: startupSpec
        window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
          min: (Point 0 0)
          bounds: (Rectangle 0 0 433 300)
        )
        component: 
       (SpecCollection
          collection: (
           (FramedBoxSpec
              label: 'Startup'
              name: 'FramedBox1'
              layout: (LayoutFrame 0 0 0 0 0 1 93 0)
              labelPosition: topLeft
              translateLabel: true
              component: 
             (SpecCollection
                collection: (
                 (LabelSpec
                    label: 'Startup Class:'
                    name: 'Label1'
                    layout: (LayoutFrame 0 0.0 7 0 160 0 29 0)
                    translateLabel: true
                    adjust: right
                  )
                 (InputFieldSpec
                    name: 'StartupClassEntryField'
                    layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
                    model: startupClassNameHolder
                    acceptOnReturn: true
                    acceptOnTab: true
                    acceptOnLostFocus: true
                    acceptOnPointerLeave: false
                  )
                 (LabelSpec
                    label: 'Startup Selector:'
                    name: 'Label2'
                    layout: (LayoutFrame 0 0.0 35 0 160 0 57 0)
                    translateLabel: true
                    adjust: right
                  )
                 (InputFieldSpec
                    name: 'StartupSelectorEntryField'
                    layout: (LayoutFrame 162 0.0 33 0 0 1.0 55 0)
                    model: startupSelectorHolder
                    acceptOnReturn: true
                    acceptOnTab: true
                    acceptOnLostFocus: true
                    acceptOnPointerLeave: false
                  )
                 )
               
              )
            )
           (FramedBoxSpec
              label: 'Execution'
              name: 'FramedBox2'
              layout: (LayoutFrame 0 0 97 0 0 1 160 0)
              labelPosition: topLeft
              translateLabel: true
              component: 
             (SpecCollection
                collection: (
                 (CheckBoxSpec
                    label: 'Non-GUI Application'
                    name: 'CheckBox1'
                    layout: (LayoutFrame 0 0.0 7 0 0 0.5 29 0)
                    model: isNonGUIApplicationHolder
                    translateLabel: true
                  )
                 (CheckBoxSpec
                    label: 'Singlethreaded'
                    name: 'CheckBox2'
                    layout: (LayoutFrame 0 0.5 7 0 0 1 29 0)
                    enableChannel: isNonGUIApplicationHolder
                    model: startSinglethreadedHolder
                    translateLabel: true
                  )
                 )
               
              )
            )
           )
         
        )
      )
!

windowSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:ApplicationDefinitionBuilder andSelector:#windowSpec
     ApplicationDefinitionBuilder new openInterface:#windowSpec
     ApplicationDefinitionBuilder open
    "

    <resource: #canvas>

    ^ 
     #(FullSpec
        name: windowSpec
        window: 
       (WindowSpec
          label: 'ApplicationDefinitionBuilder'
          name: 'ApplicationDefinitionBuilder'
          min: (Point 10 10)
          max: (Point 1024 768)
          bounds: (Rectangle 0 0 596 339)
          menu: mainMenu
        )
        component: 
       (SpecCollection
          collection: (
           (NoteBookViewSpec
              name: 'NoteBook1'
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
              model: selectedTabIndexHolder
              menu: tabList
              useIndex: true
            )
           )
         
        )
      )

    "Modified: / 03-09-2006 / 10:57:33 / cg"
! !

!ProjectDefinitionEditor class methodsFor:'list specs'!

tabList
^ self  tabListForApplication.

    "Created: / 06-09-2006 / 13:38:03 / cg"
!

tabListForApplication
    "This resource specification was automatically generated
     by the TabListEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the TabListEditor may not be able to read the specification."

    "
     TabListEditor new openOnClass: self andSelector:#tabList
    "

    <resource: #tabList>

    ^     #(
       (TabItem
          label: 'Description'
          minorKey: descriptionSpec
        )
       (TabItem
          label: 'Classes'
          createNewBuilder: false
          translateLabel: true
          minorKey: classesSpec
        )
       (TabItem
          label: 'Extensions'
          minorKey: extensionsSpec
        )
       (TabItem
          label: 'Prerequisites'
          minorKey: prerequisitesSpec
        )
       (TabItem
          label: 'Compilation'
          minorKey: compilationSpec
        )
       (TabItem
          label: 'Startup'
          minorKey: startupSpec
        )
       )
     
      collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]

    "Created: / 05-09-2006 / 16:24:48 / cg"
    "Modified: / 06-09-2006 / 18:44:34 / cg"
!

tabListForLibrary
    "This resource specification was automatically generated
     by the TabListEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the TabListEditor may not be able to read the specification."

    "
     TabListEditor new openOnClass: self andSelector:#tabList
    "

    <resource: #tabList>

    ^     #(
       (TabItem
          label: 'Description'
          minorKey: descriptionSpec
        )
       (TabItem
          label: 'Classes'
          createNewBuilder: false
          translateLabel: true
          minorKey: classesSpec
        )
       (TabItem
          label: 'Extensions'
          minorKey: extensionsSpec
        )
       (TabItem
          label: 'Prerequisites'
          minorKey: prerequisitesSpec
        )
       (TabItem
          label: 'Compilation'
          minorKey: compilationSpec
        )
       )
     
      collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]

    "Created: / 05-09-2006 / 16:24:52 / cg"
    "Modified: / 06-09-2006 / 18:44:38 / cg"
! !

!ProjectDefinitionEditor class methodsFor:'menu specs'!

classListMenu
    "This resource specification was automatically generated
     by the MenuEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the MenuEditor may not be able to read the specification."

    "
     MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#classListMenu
     (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor classListMenu)) startUp
    "

    <resource: #menu>

    ^ 
     #(Menu
        (
         (MenuItem
            label: 'Generate'
            itemValue: menuGenerateClassList
            translateLabel: true
          )
         (MenuItem
            label: '-'
          )
         (MenuItem
            label: 'Add...'
            itemValue: menuAddClass
            translateLabel: true
          )
         (MenuItem
            label: 'Remove...'
            itemValue: menuRemoveClass
            translateLabel: true
          )
         )
        nil
        nil
      )
!

extensionsListMenu
    "This resource specification was automatically generated
     by the MenuEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the MenuEditor may not be able to read the specification."

    "
     MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsListMenu
     (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor extensionsListMenu)) startUp
    "

    <resource: #menu>

    ^ 
     #(Menu
        (
         (MenuItem
            label: 'Generate'
            itemValue: menuGenerateExtensionsList
            translateLabel: true
          )
         (MenuItem
            label: '-'
          )
         (MenuItem
            label: 'Add...'
            itemValue: menuAddExtension
            translateLabel: true
          )
         (MenuItem
            label: 'Remove...'
            itemValue: menuRemoveExtension
            translateLabel: true
          )
         )
        nil
        nil
      )
!

mainMenu
    "This resource specification was automatically generated
     by the MenuEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the MenuEditor may not be able to read the specification."

    "
     MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#mainMenu
     (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor mainMenu)) startUp
    "

    <resource: #menu>

    ^ 
     #(Menu
        (
         (MenuItem
            label: 'File'
            translateLabel: true
            submenu: 
           (Menu
              (
               (MenuItem
                  label: 'New'
                  itemValue: menuNew
                  translateLabel: true
                )
               (MenuItem
                  label: '-'
                )
               (MenuItem
                  label: 'Open...'
                  itemValue: menuOpen
                  translateLabel: true
                )
               (MenuItem
                  label: '-'
                )
               (MenuItem
                  label: 'Save'
                  itemValue: menuSave
                  translateLabel: true
                )
               (MenuItem
                  label: 'Save As...'
                  itemValue: menuSaveAs
                  translateLabel: true
                )
               (MenuItem
                  label: '-'
                )
               (MenuItem
                  label: 'Exit'
                  itemValue: closeRequest
                  translateLabel: true
                )
               )
              nil
              nil
            )
          )
         (MenuItem
            label: 'Classes'
            translateLabel: true
            isVisible: classesMenuVisibleHolder
            submenuChannel: classListMenu
            keepLinkedMenu: true
          )
         (MenuItem
            label: 'Extensions'
            translateLabel: true
            isVisible: extensionsMenuVisibleHolder
            submenuChannel: extensionsListMenu
            keepLinkedMenu: true
          )
         (MenuItem
            label: 'Prerequisites'
            translateLabel: true
            isVisible: prerequisitesMenuVisibleHolder
            submenuChannel: prerequisitesListMenu
            keepLinkedMenu: true
          )
         (MenuItem
            label: 'Help'
            translateLabel: true
            startGroup: right
            submenu: 
           (Menu
              (
               (MenuItem
                  label: 'Documentation'
                  itemValue: openDocumentation
                  translateLabel: true
                )
               (MenuItem
                  label: '-'
                )
               (MenuItem
                  label: 'About this Application...'
                  itemValue: openAboutThisApplication
                  translateLabel: true
                )
               )
              nil
              nil
            )
          )
         )
        nil
        nil
      )
!

prerequisitesListMenu
    "This resource specification was automatically generated
     by the MenuEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the MenuEditor may not be able to read the specification."

    "
     MenuEditor new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsListMenu
     (Menu new fromLiteralArrayEncoding:(ApplicationDefinitionEditor extensionsListMenu)) startUp
    "

    <resource: #menu>

    ^ 
     #(Menu
        (
         (MenuItem
            label: 'Generate'
            itemValue: menuGeneratePrerequisitesList
            translateLabel: true
          )
         (MenuItem
            label: '-'
          )
         (MenuItem
            label: 'Add...'
            itemValue: menuAddPrerequisite
            translateLabel: true
          )
         (MenuItem
            label: 'Remove...'
            itemValue: menuRemovePrerequisite
            translateLabel: true
          )
         )
        nil
        nil
      )

    "Modified: / 05-09-2006 / 13:24:58 / cg"
! !

!ProjectDefinitionEditor class methodsFor:'tableColumns specs'!

classesTableColumns
    "This resource specification was automatically generated
     by the DataSetBuilder of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the DataSetBuilder may not be able to read the specification."

    "
     DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesTableColumns
    "

    <resource: #tableColumns>

    ^#(
      (DataSetColumnSpec
         label: 'Auto'
         labelButtonType: Button
         rendererType: CheckToggle
         model: autoloaded
         canSelect: false
       )
      (DataSetColumnSpec
         label: 'Win32'
         labelButtonType: Button
         rendererType: CheckToggle
         model: win32
         canSelect: false
       )
      (DataSetColumnSpec
         label: 'Unix'
         labelButtonType: Button
         rendererType: CheckToggle
         model: unix
         canSelect: false
       )
      (DataSetColumnSpec
         label: 'Class'
         labelAlignment: left
         labelButtonType: Button
         model: className
         canSelect: false
       )
      )
    
!

extensionsTableColumns
    "This resource specification was automatically generated
     by the DataSetBuilder of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the DataSetBuilder may not be able to read the specification."

    "
     DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsTableColumns
    "

    <resource: #tableColumns>

    ^#(
      (DataSetColumnSpec
         label: 'Class'
         labelAlignment: left
         labelButtonType: Button
         model: className
         canSelect: false
       )
      (DataSetColumnSpec
         label: 'Selector'
         labelAlignment: left
         labelButtonType: Button
         model: selector
         canSelect: false
       )
      )
    
!

prerequisitesTableColumns
    "This resource specification was automatically generated
     by the DataSetBuilder of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the DataSetBuilder may not be able to read the specification."

    "
     DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#prerequisitesTableColumns
    "

    <resource: #tableColumns>

    ^#(
      (DataSetColumnSpec
         label: 'Package'
         labelAlignment: left
         labelButtonType: Button
         model: package
       )
      )
    
! !

!ProjectDefinitionEditor methodsFor:'accessing'!

definitionClass
    ^ definitionClass

    "Created: / 04-09-2006 / 16:30:09 / cg"
!

definitionClass:aClass
    definitionClass := aClass.
    self isApplicationDefinitionHolder value:( definitionClass isApplicationDefinition ).
    self fetchValues.

    "Created: / 04-09-2006 / 16:30:18 / cg"
    "Modified: / 06-09-2006 / 19:25:15 / cg"
!

specClass:aClass
    super specClass:aClass.
    self definitionClass:aClass theNonMetaclass.

    "Created: / 06-09-2006 / 19:24:10 / cg"
! !

!ProjectDefinitionEditor methodsFor:'aspects'!

classList
    classList isNil ifTrue:[
        classList := #() asValue.
    ].
    ^ classList.

    "Modified: / 05-09-2006 / 10:22:35 / cg"
!

classesTableColumns
    classesTableColumns isNil ifTrue:[
        classesTableColumns := self class classesTableColumns asValue.
    ].
    ^ classesTableColumns.

    "Modified: / 04-09-2006 / 17:58:09 / cg"
!

companyNameHolder
    companyNameHolder isNil ifTrue:[
        companyNameHolder := ValueHolder new.
    ].
    ^ companyNameHolder.

    "Created: / 04-09-2006 / 17:58:02 / cg"
!

descriptionHolder
    descriptionHolder isNil ifTrue:[
        descriptionHolder := ValueHolder new.
    ].
    ^ descriptionHolder.

    "Modified: / 04-09-2006 / 17:58:15 / cg"
!

extensionsList
    extensionsList isNil ifTrue:[
        extensionsList := #() asValue.
    ].
    ^ extensionsList.

    "Created: / 06-09-2006 / 18:47:54 / cg"
!

fileDescriptionHolder
    fileDescriptionHolder isNil ifTrue:[
        fileDescriptionHolder := ValueHolder new.
    ].
    ^ fileDescriptionHolder.

    "Modified: / 04-09-2006 / 17:58:19 / cg"
!

fileMajorVersionNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    fileMajorVersionNrHolder isNil ifTrue:[
        fileMajorVersionNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       fileMajorVersionNrHolder addDependent:self.
"/       fileMajorVersionNrHolder onChangeSend:#fileMajorVersionNrHolderChanged to:self.
    ].
    ^ fileMajorVersionNrHolder.
!

fileMinorVersionNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    fileMinorVersionNrHolder isNil ifTrue:[
        fileMinorVersionNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       fileMinorVersionNrHolder addDependent:self.
"/       fileMinorVersionNrHolder onChangeSend:#fileMinorVersionNrHolderChanged to:self.
    ].
    ^ fileMinorVersionNrHolder.
!

fileReleaseNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    fileReleaseNrHolder isNil ifTrue:[
        fileReleaseNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       fileReleaseNrHolder addDependent:self.
"/       fileReleaseNrHolder onChangeSend:#fileReleaseNrHolderChanged to:self.
    ].
    ^ fileReleaseNrHolder.
!

fileRevisionNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    fileRevisionNrHolder isNil ifTrue:[
        fileRevisionNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       fileRevisionNrHolder addDependent:self.
"/       fileRevisionNrHolder onChangeSend:#fileRevisionNrHolderChanged to:self.
    ].
    ^ fileRevisionNrHolder.
!

iconFileNameHolder
    iconFileNameHolder isNil ifTrue:[
        iconFileNameHolder := ValueHolder new.
    ].
    ^ iconFileNameHolder.

    "Created: / 04-09-2006 / 18:01:22 / cg"
!

iconFilenameHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    iconFilenameHolder isNil ifTrue:[
        iconFilenameHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       iconFilenameHolder addDependent:self.
"/       iconFilenameHolder onChangeSend:#iconFilenameHolderChanged to:self.
    ].
    ^ iconFilenameHolder.
!

isApplicationDefinitionHolder
    isApplicationDefinitionHolder isNil ifTrue:[
        isApplicationDefinitionHolder := false asValue
    ].
    ^ isApplicationDefinitionHolder.

    "Created: / 04-09-2006 / 19:22:47 / cg"
!

isNonGUIApplicationHolder
    isNonGUIApplicationHolder isNil ifTrue:[
        isNonGUIApplicationHolder := false asValue.
    ].
    ^ isNonGUIApplicationHolder.

    "Created: / 05-09-2006 / 13:34:31 / cg"
!

legalCopyrightHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    legalCopyrightHolder isNil ifTrue:[
        legalCopyrightHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       legalCopyrightHolder addDependent:self.
"/       legalCopyrightHolder onChangeSend:#legalCopyrightHolderChanged to:self.
    ].
    ^ legalCopyrightHolder.
!

majorVersionNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    majorVersionNrHolder isNil ifTrue:[
        majorVersionNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       majorVersionNrHolder addDependent:self.
"/       majorVersionNrHolder onChangeSend:#majorVersionNrHolderChanged to:self.
    ].
    ^ majorVersionNrHolder.
!

minorVersionNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    minorVersionNrHolder isNil ifTrue:[
        minorVersionNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       minorVersionNrHolder addDependent:self.
"/       minorVersionNrHolder onChangeSend:#minorVersionNrHolderChanged to:self.
    ].
    ^ minorVersionNrHolder.
!

productNameHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    productNameHolder isNil ifTrue:[
        productNameHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       productNameHolder addDependent:self.
"/       productNameHolder onChangeSend:#productNameHolderChanged to:self.
    ].
    ^ productNameHolder.
!

releaseNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    releaseNrHolder isNil ifTrue:[
        releaseNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       releaseNrHolder addDependent:self.
"/       releaseNrHolder onChangeSend:#releaseNrHolderChanged to:self.
    ].
    ^ releaseNrHolder.
!

revisionNrHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    revisionNrHolder isNil ifTrue:[
        revisionNrHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       revisionNrHolder addDependent:self.
"/       revisionNrHolder onChangeSend:#revisionNrHolderChanged to:self.
    ].
    ^ revisionNrHolder.
!

selectedClassIndexHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."
    "*** (and replace this comment by something more useful ;-)"

    selectedClassIndexHolder isNil ifTrue:[
        selectedClassIndexHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/       selectedClassIndexHolder addDependent:self.
"/       selectedClassIndexHolder onChangeSend:#selectedClassIndexHolderChanged to:self.
    ].
    ^ selectedClassIndexHolder.
!

startSinglethreadedHolder
    startSinglethreadedHolder isNil ifTrue:[
        startSinglethreadedHolder := false asValue.
    ].
    ^ startSinglethreadedHolder.

    "Created: / 05-09-2006 / 13:34:54 / cg"
!

startupClassNameHolder
    startupClassNameHolder isNil ifTrue:[
        startupClassNameHolder := '' asValue.
    ].
    ^ startupClassNameHolder.

    "Created: / 06-09-2006 / 18:41:52 / cg"
!

startupSelectorHolder
    startupSelectorHolder isNil ifTrue:[
        startupSelectorHolder := '' asValue.
    ].
    ^ startupSelectorHolder.

    "Created: / 05-09-2006 / 13:34:20 / cg"
!

tabList
    "Generated by the TabListEditor"

    |list|

    (list := builder bindingAt:#tabList) isNil ifTrue:[
        builder aspectAt:#tabList put:(list := self class tabListForApplication asValue).
    ].
    ^ list

    "Modified: / 06-09-2006 / 17:58:08 / cg"
! !

!ProjectDefinitionEditor methodsFor:'aspects-menu'!

classesMenuVisibleHolder
    ^ builder booleanValueAspectFor:#'classesMenuVisibleHolder'

    "Modified: / 03-09-2006 / 10:57:00 / cg"
!

extensionsMenuVisibleHolder
    ^ builder booleanValueAspectFor:#'extensionsMenuVisibleHolder'

    "Created: / 05-09-2006 / 13:03:16 / cg"
!

prerequisitesMenuVisibleHolder
    ^ builder booleanValueAspectFor:#'prerequisitesMenuVisibleHolder'

    "Created: / 05-09-2006 / 13:26:45 / cg"
!

selectedTabIndexHolder
    |h|

    h := builder valueAspectFor:#'selectedTabIndexHolder' initialValue:nil.
    h addDependent:self.
    ^ h

    "Created: / 03-09-2006 / 10:58:05 / cg"
! !

!ProjectDefinitionEditor methodsFor:'change & update'!

fetchClassListEntries
    |entries|

    entries := OrderedCollection new.
    definitionClass 
        classNamesAndAttributesDo:[:className :attributes |
            |entry|

            entry := ClassListEntry new.
            entry 
                className:className
                autoloaded:(attributes includes:#autoload)
                win32:(attributes includes:#win32) 
                unix:(attributes includes:#unix).
            entries add:entry.
        ].

    ^ entries.

    "Created: / 05-09-2006 / 12:31:26 / cg"
!

fetchExtensionsListEntries
    |entries|

    entries := OrderedCollection new.
    definitionClass 
        extensionMethodNames pairWiseDo:[:className :selector |
            |entry|

            entry := ExtensionsListEntry new.
            entry className:className selector:selector.
            entries add:entry.
        ].

    ^ entries.

    "Created: / 06-09-2006 / 18:45:15 / cg"
!

fetchValues
    |definitionClass isApplicationDefinition|

    definitionClass := self definitionClass.
    definitionClass isNil ifTrue:[^ self ].

    isApplicationDefinition := definitionClass isApplicationDefinition.

    self isApplicationDefinitionHolder value:isApplicationDefinition.
    isApplicationDefinition ifTrue:[
        self startupClassNameHolder value:(definitionClass startupClassName).
        self startupSelectorHolder value:(definitionClass startupSelector).
        self iconFileNameHolder value:(definitionClass iconFileName).
        self tabList value:(self class tabListForApplication).
    ] ifFalse:[
        self tabList value:(self class tabListForLibrary).
    ].

    self companyNameHolder value:(definitionClass companyName).
    self descriptionHolder value:(definitionClass description).
    self legalCopyrightHolder value:(definitionClass legalCopyright).
    self productNameHolder value:(definitionClass productName).
    self majorVersionNrHolder value:(definitionClass majorVersionNr asInteger).
    self minorVersionNrHolder value:(definitionClass minorVersionNr asInteger).
    self revisionNrHolder value:(definitionClass revisionNr asInteger).
    self releaseNrHolder value:(definitionClass releaseNr asInteger).

    self fileDescriptionHolder value:(definitionClass fileDescription).
    self fileMajorVersionNrHolder value:(definitionClass fileMajorVersionNr asInteger).
    self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger).
    self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger).
    self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger).

    self classList value:(self fetchClassListEntries).
    self extensionsList value:(self fetchExtensionsListEntries).

    self window 
        label:(isApplicationDefinition 
                ifTrue:'Application'
                ifFalse:'Library' ) 
                    , ' Definition: ',definitionClass name.

    "Created: / 04-09-2006 / 16:34:39 / cg"
    "Modified: / 06-09-2006 / 18:45:45 / cg"
!

update:something with:parameter from:changedObject
    changedObject == self selectedTabIndexHolder ifTrue:[
        self updateMenuVisibility.
        ^ self.
    ].
    ^ super update:something with:parameter from:changedObject

    "Created: / 03-09-2006 / 10:59:42 / cg"
!

updateMenuVisibility
    self classesMenuVisibleHolder value:(self hasClassesTabSelected).
    self extensionsMenuVisibleHolder value:(self hasExtensionsTabSelected).
    self prerequisitesMenuVisibleHolder value:(self hasPrerequisitesTabSelected).

    "Created: / 03-09-2006 / 11:01:48 / cg"
    "Modified: / 05-09-2006 / 13:27:10 / cg"
! !

!ProjectDefinitionEditor methodsFor:'initialization & release'!

closeRequest
    (self hasUnsavedChanges) ifTrue:[
        (self confirm:(resources string:'Close without saving ?')) ifFalse:[
            ^ self
        ]
    ].

    ^ super closeRequest

    "Modified: / 03-09-2006 / 10:53:14 / cg"
!

postBuildWith:aBuilder
    super postBuildWith:aBuilder.
    self selectedTabIndexHolder value:1.
    self updateMenuVisibility.
    self fetchValues.

    "Modified: / 04-09-2006 / 16:28:09 / cg"
!

postOpenWith:aBuilder
    "This is a hook method generated by the Browser.
     It will be invoked right after the applications window has been opened.
     Add any app-specific actions here (starting background processes etc.).
     See also #postBuildWith:, which is invoked before opening."

    "/ add any code here ...

    ^ super postOpenWith:aBuilder
! !

!ProjectDefinitionEditor methodsFor:'menu actions'!

menuGenerateClassList
    masterApplication
        generateProjectDefinitionsIn:(Array with:self definitionClass).

    self classList value:(self fetchClassListEntries).

    "Modified: / 06-09-2006 / 21:36:44 / cg"
!

menuNew
    "This method was generated by the Browser.
     It will be invoked when the menu-item 'new' is selected."

    "/ change below and add any actions as required here ...
    self warn:'no action for ''new'' available.'.
!

menuOpen
    self warn:'no action for ''open'' defined.'.

    "Modified: / 05-09-2006 / 16:28:51 / cg"
!

menuRemoveClass
    |classListHolder|

    classListHolder := self classList.
    classListHolder value removeIndex:(self selectedClassIndexHolder value).
    classListHolder changed.

    "Created: / 06-09-2006 / 21:31:05 / cg"
!

menuSave
    self menuSaveAs:definitionClass name

    "Modified: / 05-09-2006 / 13:48:27 / cg"
!

menuSaveAs
    |className class newPackage|

    className := Dialog 
                    requestClassName:'Name of new Definition class'
                    okLabel:'Create'
                    initialAnswer:'privete_myProject'.
    className isEmptyOrNil ifTrue:[^ self].
    class := Smalltalk classNamed:className.
    class notNil ifTrue:[
        Dialog warn:(resources 
                            string:'A class named %1 already exists'
                            with:className).
        ^ self.
    ].
    newPackage := className copy replaceAll:$_ with:$/.
    newPackage replace:$/ with:$:.
    class := ApplicationDefinition newNamed:className package:newPackage.
    self menuSaveAs:class.

    "Modified: / 05-09-2006 / 16:20:16 / cg"
!

menuSaveAs:aClassName
    self halt.

    "Created: / 05-09-2006 / 13:48:03 / cg"
!

openAboutThisApplication
    "This method was generated by the Browser.
     It will be invoked when the menu-item 'help-about' is selected."

    "/ could open a customized aboutBox here ...
    super openAboutThisApplication
!

openDocumentation
    "This method was generated by the Browser.
     It will be invoked when the menu-item 'help-documentation' is selected."

    "/ change below as required ...

    "/ to open an HTML viewer on some document (under 'doc/online/<language>/' ):
    HTMLDocumentView openFullOnDocumentationFile:'TOP.html'.

    "/ add application-specific help files under the 'doc/online/<language>/help/appName'
    "/ directory, and open a viewer with:
    "/ HTMLDocumentView openFullOnDocumentationFile:'help/<MyApplication>/TOP.html'.
! !

!ProjectDefinitionEditor methodsFor:'queries'!

hasClassesTabSelected
    ^ self selectedTabIndex == 2

    "Created: / 03-09-2006 / 11:00:39 / cg"
    "Modified: / 06-09-2006 / 21:20:21 / cg"
!

hasExtensionsTabSelected
    ^ self selectedTabIndex == 3

    "Created: / 05-09-2006 / 13:02:26 / cg"
    "Modified: / 06-09-2006 / 21:20:25 / cg"
!

hasPrerequisitesTabSelected
    ^ self selectedTabIndex == 4

    "Created: / 05-09-2006 / 13:27:16 / cg"
    "Modified: / 06-09-2006 / 21:20:33 / cg"
!

hasUnsavedChanges
     ^ false

    "Created: / 03-09-2006 / 10:53:05 / cg"
!

selectedClass
    |item|

    item := self classList value at:(self selectedClassIndexHolder value).
self halt.

    "Created: / 06-09-2006 / 21:32:20 / cg"
!

selectedTabIndex
    ^ self selectedTabIndexHolder value

    "Created: / 03-09-2006 / 11:00:48 / cg"
! !

!ProjectDefinitionEditor::ClassListEntry methodsFor:'accessing'!

autoloaded
    ^ autoloaded
!

autoloaded:something
    autoloaded := something.
!

className
    ^ className
!

className:something
    className := something.
!

className:classNameArg autoloaded:autoloadedArg win32:win32Arg unix:unixArg 
    className := classNameArg.
    autoloaded := autoloadedArg.
    win32 := win32Arg.
    unix := unixArg.
!

unix
    ^ unix
!

unix:something
    unix := something.
!

win32
    ^ win32
!

win32:something
    win32 := something.
! !

!ProjectDefinitionEditor::ExtensionsListEntry methodsFor:'accessing'!

className
    ^ className
!

className:classNameArg selector:selectorArg 
    className := classNameArg.
    selector := selectorArg.
!

selector
    ^ selector
! !

!ProjectDefinitionEditor class methodsFor:'documentation'!

version
    ^ '$Header$'
! !