cg@2078: "{ Package: 'stx:libtool2' }" cg@2078: cg@2078: "{ NameSpace: Tools }" cg@2078: cg@2078: ResourceSpecEditor subclass:#ProjectDefinitionEditor cg@2079: instanceVariableNames:'definitionClass classList extensionsList selectedClassIndexHolder cg@2078: classesTableColumns revisionNrHolder companyNameHolder cg@2078: fileMajorVersionNrHolder minorVersionNrHolder iconFileNameHolder cg@2078: fileReleaseNrHolder productNameHolder majorVersionNrHolder cg@2078: fileRevisionNrHolder fileDescriptionHolder releaseNrHolder cg@2078: fileMinorVersionNrHolder descriptionHolder legalCopyrightHolder cg@2078: isApplicationDefinitionHolder isNonGUIApplicationHolder cg@2121: startSinglethreadedHolder hasConsoleHolder shownHasConsoleHolder cg@2121: startupClassNameHolder startupSelectorHolder prerequisitesList cg@2121: classListHolder extensionsListHolder prerequisitesListHolder cg@2121: documentExtensionsListStringHolder stcOptimizationFlagsHolder cg@2121: ccOptimizationFlagsHolder' cg@2078: classVariableNames:'' cg@2078: poolDictionaries:'' cg@2078: category:'Interface-Tools' cg@2078: ! cg@2078: cg@2078: Object subclass:#ClassListEntry cg@2078: instanceVariableNames:'className autoloaded win32 unix' cg@2078: classVariableNames:'' cg@2078: poolDictionaries:'' cg@2078: privateIn:ProjectDefinitionEditor cg@2078: ! cg@2078: cg@2079: Object subclass:#ExtensionsListEntry cg@2079: instanceVariableNames:'className selector' cg@2079: classVariableNames:'' cg@2079: poolDictionaries:'' cg@2079: privateIn:ProjectDefinitionEditor cg@2079: ! cg@2079: cg@2081: Object subclass:#PrerequisitesListEntry cg@2081: instanceVariableNames:'package' cg@2081: classVariableNames:'' cg@2081: poolDictionaries:'' cg@2081: privateIn:ProjectDefinitionEditor cg@2081: ! cg@2081: cg@2078: !ProjectDefinitionEditor class methodsFor:'documentation'! cg@2078: cg@2078: documentation cg@2078: " cg@2078: unfinished app-definition editor cg@2078: cg@2078: [author:] cg@2100: cg (cg@FUSI) cg@2078: cg@2078: [instance variables:] cg@2078: cg@2078: [class variables:] cg@2078: cg@2078: [see also:] cg@2078: cg@2078: " cg@2078: ! cg@2078: cg@2078: examples cg@2078: " cg@2078: Starting the application: cg@2100: [exBegin] cg@2078: (ProjectDefinitionEditor new cg@2100: definitionClass:stx_libbasic) open cg@2100: [exEnd] cg@2078: cg@2100: [exBegin] cg@2078: (ProjectDefinitionEditor new cg@2100: definitionClass:bosch_dapasx_application) open cg@2100: [exEnd] cg@2078: " cg@2078: ! ! cg@2078: cg@2121: !ProjectDefinitionEditor class methodsFor:'help specs'! cg@2121: cg@2121: flyByHelpSpec cg@2121: "This resource specification was automatically generated cg@2121: by the UIHelpTool of ST/X." cg@2121: cg@2121: "Do not manually edit this!! If it is corrupted, cg@2121: the UIHelpTool may not be able to read the specification." cg@2121: cg@2121: " cg@3523: UIHelpTool openOnClass:Tools::ProjectDefinitionEditor cg@2121: " cg@2121: cg@2121: cg@2121: cg@2121: ^ super flyByHelpSpec addPairsFrom:#( cg@2121: cg@2121: #documentExtensions cg@2121: '";"-separated list of file extensions' cg@2121: cg@2121: ) cg@2121: cg@2121: "Created: / 15-10-2006 / 14:34:57 / cg" cg@2121: ! ! cg@2121: cg@2078: !ProjectDefinitionEditor class methodsFor:'interface specs'! cg@2078: cg@2078: classesSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2080: UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesSpec cg@2080: Tools::ProjectDefinitionEditor new openInterface:#classesSpec cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(FullSpec cg@2100: name: classesSpec cg@2100: window: cg@2078: (WindowSpec cg@2100: label: 'NewApplication' cg@2100: name: 'NewApplication' cg@2100: min: (Point 0 0) cg@2100: bounds: (Rectangle 0 0 300 300) cg@2100: ) cg@2100: component: cg@2078: (SpecCollection cg@2100: collection: ( cg@2100: (DataSetSpec cg@2100: name: 'ClassesTable' cg@2100: layout: (LayoutFrame 0 0 0 0 0 1 0 1) cg@2100: model: selectedClassIndexHolder cg@2100: menu: classListMenu cg@2100: hasHorizontalScrollBar: true cg@2100: hasVerticalScrollBar: true cg@2100: dataList: classListHolder cg@2100: columnHolder: classesTableColumns cg@2100: ) cg@2100: ) cg@2100: cg@2100: ) cg@2078: ) cg@2081: cg@2081: "Modified: / 07-09-2006 / 11:35:14 / cg" cg@2078: ! cg@2078: cg@2078: compilationSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2080: UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#compilationSpec cg@2080: Tools::ProjectDefinitionEditor new openInterface:#compilationSpec cg@2078: " cg@2078: cg@2078: cg@2078: cg@3523: ^ cg@2078: #(FullSpec cg@3523: name: compilationSpec cg@3523: window: cg@2078: (WindowSpec cg@3523: label: 'NewApplication' cg@3523: name: 'NewApplication' cg@3523: min: (Point 0 0) cg@3523: bounds: (Rectangle 0 0 433 300) cg@3523: ) cg@3523: component: cg@2078: (SpecCollection cg@3523: collection: ( cg@3523: (FramedBoxSpec cg@3523: label: 'Optimization' cg@3523: name: 'FramedBox1' cg@3523: layout: (LayoutFrame 0 0 0 0 0 1 93 0) cg@3523: labelPosition: topLeft cg@3523: translateLabel: true cg@3523: component: cg@3523: (SpecCollection cg@3523: collection: ( cg@3523: (LabelSpec cg@3523: label: 'STC Optimization Flags:' cg@3523: name: 'Label1' cg@3523: layout: (LayoutFrame 0 0.0 7 0 160 0 29 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (ComboBoxSpec cg@3523: name: 'STCOptimizationFlagsComboBox' cg@3523: layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0) cg@3523: model: stcOptimizationFlagsHolder cg@3523: acceptOnPointerLeave: false cg@3523: comboList: stcOptimizationFlagList cg@3523: postBuildCallback: flagHolderBuilt: cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'CC Optimization Flags:' cg@3523: name: 'Label2' cg@3523: layout: (LayoutFrame 0 0.0 35 0 160 0 57 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (ComboBoxSpec cg@3523: name: 'CCOptimizationFlagsComboBox' cg@3523: layout: (LayoutFrame 162 0.0 33 0 0 1.0 55 0) cg@3523: model: ccOptimizationFlagsHolder cg@3523: acceptOnPointerLeave: false cg@3523: comboList: ccOptimizationFlagList cg@3523: postBuildCallback: flagHolderBuilt: cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@3523: ) cg@3523: (FramedBoxSpec cg@3523: label: 'Includes' cg@3523: name: 'FramedBox2' cg@3523: layout: (LayoutFrame 0 0 98 0 0 1 160 0) cg@3523: labelPosition: topLeft cg@3523: translateLabel: true cg@3523: component: cg@3523: (SpecCollection cg@3523: collection: ( cg@3523: (LabelSpec cg@3523: label: 'Additional Includes:' cg@3523: name: 'Label3' cg@3523: layout: (LayoutFrame 0 0.0 7 0 160 0 29 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'IncludeFlagsEntryField' cg@3523: layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0) cg@3523: model: includeFlagsHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@2078: ) cg@2078: ! cg@2078: cg@2078: descriptionSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2078: UIPainter new openOnClass:ApplicationDefinitionBuilder andSelector:#descriptionSpec cg@2078: ApplicationDefinitionBuilder new openInterface:#descriptionSpec cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(FullSpec cg@3523: name: descriptionSpec cg@3523: window: cg@2078: (WindowSpec cg@3523: label: 'NewApplication' cg@3523: name: 'NewApplication' cg@3523: min: (Point 0 0) cg@3523: bounds: (Rectangle 0 0 433 300) cg@3523: ) cg@3523: component: cg@2078: (SpecCollection cg@3523: collection: ( cg@3523: (LabelSpec cg@3523: label: 'Company:' cg@3523: name: 'CompanyLabel' cg@3523: layout: (LayoutFrame 2 0.0 13 0 160 0 35 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'CompanyEntryField' cg@3523: layout: (LayoutFrame 162 0.0 12 0 -2 1.0 34 0) cg@3523: model: companyNameHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'Description:' cg@3523: name: 'DescriptionLabel' cg@3523: layout: (LayoutFrame 2 0.0 39 0 160 0 61 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'DescriptionEntryField' cg@3523: layout: (LayoutFrame 162 0.0 38 0 -2 1.0 60 0) cg@3523: model: descriptionHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'ProductName:' cg@3523: name: 'ProductNameLabel' cg@3523: layout: (LayoutFrame 2 0.0 65 0 160 0 87 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'ProductNameEntryField' cg@3523: layout: (LayoutFrame 162 0.0 64 0 -2 1.0 86 0) cg@3523: model: productNameHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'ProductVersion:' cg@3523: name: 'ProductVersionLabel' cg@3523: layout: (LayoutFrame 2 0.0 91 0 160 0 113 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'MajorVersionNrEntryField' cg@3523: layout: (LayoutFrame 162 0.0 90 0 182 0.0 112 0) cg@3523: model: majorVersionNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'MinorVersionNrEntryField' cg@3523: layout: (LayoutFrame 184 0.0 90 0 204 0.0 112 0) cg@3523: model: minorVersionNrHolder cg@3523: type: numberOrNil cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'RevisionNrEntryField' cg@3523: layout: (LayoutFrame 206 0.0 90 0 226 0.0 112 0) cg@3523: model: revisionNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'ReleaseNrEntryField' cg@3523: layout: (LayoutFrame 228 0.0 90 0 248 0.0 112 0) cg@3523: model: releaseNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'LegalCopyright:' cg@3523: name: 'LegalCopyrightLabel' cg@3523: layout: (LayoutFrame 2 0.0 119 0 160 0 141 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'LegalCopyrightEntryField' cg@3523: layout: (LayoutFrame 162 0.0 118 0 -2 1.0 140 0) cg@3523: model: legalCopyrightHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'FileDescriptionDescription:' cg@3523: name: 'FileDescriptionLabel' cg@3523: layout: (LayoutFrame 2 0.0 161 0 160 0 183 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'FileDescriptionEntryField' cg@3523: layout: (LayoutFrame 162 0.0 160 0 -2 1.0 182 0) cg@3523: model: fileDescriptionHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'FileVersion:' cg@3523: name: 'FileVersionLabel' cg@3523: layout: (LayoutFrame 2 0.0 187 0 160 0 209 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'FileMajorVersionNrEntryField' cg@3523: layout: (LayoutFrame 162 0.0 186 0 182 0.0 208 0) cg@3523: model: fileMajorVersionNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'FileMinorVersionNrEntryField' cg@3523: layout: (LayoutFrame 184 0.0 186 0 204 0.0 208 0) cg@3523: model: fileMinorVersionNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'FileRevisionNrEntryField' cg@3523: layout: (LayoutFrame 206 0.0 186 0 226 0.0 208 0) cg@3523: model: fileRevisionNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'FileReleaseNrEntryField' cg@3523: layout: (LayoutFrame 228 0.0 186 0 248 0.0 208 0) cg@3523: model: fileReleaseNrHolder cg@3523: type: number cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'Icon Filename:' cg@3523: name: 'IconFileNameLabel' cg@3523: layout: (LayoutFrame 2 0.0 236 0 160 0 258 0) cg@3523: visibilityChannel: isApplicationDefinitionHolder cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'IconFileNameEntryField' cg@3523: layout: (LayoutFrame 162 0.0 234 0 -2 1.0 256 0) cg@3523: visibilityChannel: isApplicationDefinitionHolder cg@3523: model: iconFileNameHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: ) cg@2100: cg@3523: ) cg@2078: ) cg@2078: ! cg@2078: cg@2078: extensionsSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2078: UIPainter new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsSpec cg@2078: ApplicationDefinitionEditor new openInterface:#extensionsSpec cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(FullSpec cg@2100: name: extensionsSpec cg@2100: window: cg@2078: (WindowSpec cg@2100: label: 'NewApplication' cg@2100: name: 'NewApplication' cg@2100: min: (Point 0 0) cg@2100: bounds: (Rectangle 0 0 300 300) cg@2100: ) cg@2100: component: cg@2078: (SpecCollection cg@2100: collection: ( cg@2100: (DataSetSpec cg@2100: name: 'ExtensionsTable' cg@2100: layout: (LayoutFrame 0 0 0 0 0 1 0 1) cg@2100: model: selectedExtensionIndexHolder cg@2100: hasHorizontalScrollBar: true cg@2100: hasVerticalScrollBar: true cg@2100: dataList: extensionsListHolder cg@2100: columnHolder: extensionsTableColumns cg@2100: ) cg@2100: ) cg@2100: cg@2100: ) cg@2078: ) cg@2081: cg@2081: "Modified: / 07-09-2006 / 11:35:17 / cg" cg@2078: ! cg@2078: cg@2078: prerequisitesSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2078: UIPainter new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsSpec cg@2078: ApplicationDefinitionEditor new openInterface:#extensionsSpec cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(FullSpec cg@2100: name: extensionsSpec cg@2100: window: cg@2078: (WindowSpec cg@2100: label: 'NewApplication' cg@2100: name: 'NewApplication' cg@2100: min: (Point 0 0) cg@2100: bounds: (Rectangle 0 0 300 300) cg@2100: ) cg@2100: component: cg@2078: (SpecCollection cg@2100: collection: ( cg@2100: (DataSetSpec cg@2100: name: 'ExtensionsTable' cg@2100: layout: (LayoutFrame 0 0 0 0 0 1 0 1) cg@2100: model: selectedPrerequisitesIndexHolder cg@2100: hasHorizontalScrollBar: true cg@2100: hasVerticalScrollBar: true cg@2100: dataList: prerequisitesListHolder cg@2100: columnHolder: prerequisitesTableColumns cg@2100: ) cg@2100: ) cg@2100: cg@2100: ) cg@2078: ) cg@2078: cg@2078: "Created: / 05-09-2006 / 13:21:32 / cg" cg@2081: "Modified: / 07-09-2006 / 11:35:20 / cg" cg@2078: ! cg@2078: cg@2078: startupSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2080: UIPainter new openOnClass:Tools::ProjectDefinitionEditor andSelector:#startupSpec cg@2080: Tools::ProjectDefinitionEditor new openInterface:#startupSpec cg@2078: " cg@2078: cg@2078: cg@2078: cg@3523: ^ cg@2078: #(FullSpec cg@3523: name: startupSpec cg@3523: window: cg@2078: (WindowSpec cg@3523: label: 'NewApplication' cg@3523: name: 'NewApplication' cg@3523: min: (Point 0 0) cg@3523: bounds: (Rectangle 0 0 433 300) cg@3523: ) cg@3523: component: cg@2078: (SpecCollection cg@3523: collection: ( cg@3523: (FramedBoxSpec cg@3523: label: 'Startup' cg@3523: name: 'StartupFrame' cg@3523: layout: (LayoutFrame 0 0 0 0 0 1 93 0) cg@3523: labelPosition: topLeft cg@3523: translateLabel: true cg@3523: component: cg@3523: (SpecCollection cg@3523: collection: ( cg@3523: (LabelSpec cg@3523: label: 'Startup Class:' cg@3523: name: 'Label1' cg@3523: layout: (LayoutFrame 0 0.0 7 0 160 0 29 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'StartupClassEntryField' cg@3523: layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0) cg@3523: model: startupClassNameHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: (LabelSpec cg@3523: label: 'Startup Selector:' cg@3523: name: 'Label2' cg@3523: layout: (LayoutFrame 0 0.0 35 0 160 0 57 0) cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: name: 'StartupSelectorEntryField' cg@3523: layout: (LayoutFrame 162 0.0 33 0 0 1.0 55 0) cg@3523: model: startupSelectorHolder cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@3523: ) cg@3523: (FramedBoxSpec cg@3523: label: 'Execution' cg@3523: name: 'ExecutionFrame' cg@3523: layout: (LayoutFrame 0 0 94 0 0 1 176 0) cg@3523: labelPosition: topLeft cg@3523: translateLabel: true cg@3523: component: cg@3523: (SpecCollection cg@3523: collection: ( cg@3523: (CheckBoxSpec cg@3523: label: 'Non-GUI Application' cg@3523: name: 'Non-GUI CheckBox' cg@3523: layout: (LayoutFrame 0 0.0 7 0 0 0.5 29 0) cg@3523: model: isNonGUIApplicationHolder cg@3523: translateLabel: true cg@3523: ) cg@3523: (CheckBoxSpec cg@3523: label: 'Singlethreaded' cg@3523: name: 'SinglethreadedCheckBox' cg@3523: layout: (LayoutFrame 0 0.5 7 0 0 1 29 0) cg@3523: enableChannel: isNonGUIApplicationHolder cg@3523: model: startSinglethreadedHolder cg@3523: translateLabel: true cg@3523: ) cg@3523: (CheckBoxSpec cg@3523: label: 'Has Console' cg@3523: name: 'HasConsoleCheckBox1' cg@3523: layout: (LayoutFrame 0 0.5 34 0 0 1 56 0) cg@3523: enableChannel: isGUIApplicationHolder cg@3523: model: shownHasConsoleHolder cg@3523: translateLabel: true cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@3523: ) cg@3523: (FramedBoxSpec cg@3523: label: 'File Extensions' cg@3523: name: 'FileExtensionsFrame' cg@3523: layout: (LayoutFrame 0 0 177 0 0 1 237 0) cg@3523: labelPosition: topLeft cg@3523: translateLabel: true cg@3523: component: cg@3523: (SpecCollection cg@3523: collection: ( cg@3523: (LabelSpec cg@3523: label: 'Document Extensions:' cg@3523: name: 'Label3' cg@3523: layout: (LayoutFrame 0 0.0 7 0 160 0 29 0) cg@3523: activeHelpKey: documentExtensions cg@3523: translateLabel: true cg@3523: adjust: right cg@3523: ) cg@3523: (InputFieldSpec cg@3523: activeHelpKey: documentExtensions cg@3523: name: 'EntryField1' cg@3523: layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0) cg@3523: model: documentExtensionsListStringHolder cg@3523: type: string cg@3523: acceptOnReturn: true cg@3523: acceptOnTab: true cg@3523: acceptOnLostFocus: true cg@3523: acceptOnPointerLeave: false cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@3523: ) cg@3523: ) cg@3523: cg@3523: ) cg@2078: ) cg@2121: cg@2121: "Modified: / 15-10-2006 / 14:35:12 / cg" cg@2078: ! cg@2078: cg@2078: windowSpec cg@2078: "This resource specification was automatically generated cg@2078: by the UIPainter of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the UIPainter may not be able to read the specification." cg@2078: cg@2078: " cg@2078: UIPainter new openOnClass:ApplicationDefinitionBuilder andSelector:#windowSpec cg@2078: ApplicationDefinitionBuilder new openInterface:#windowSpec cg@2078: ApplicationDefinitionBuilder open cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(FullSpec cg@2100: name: windowSpec cg@2100: window: cg@2078: (WindowSpec cg@2100: label: 'ApplicationDefinitionBuilder' cg@2100: name: 'ApplicationDefinitionBuilder' cg@2100: min: (Point 10 10) cg@2100: max: (Point 1024 768) cg@2100: bounds: (Rectangle 0 0 596 339) cg@2100: menu: mainMenu cg@2100: ) cg@2100: component: cg@2078: (SpecCollection cg@2100: collection: ( cg@2100: (NoteBookViewSpec cg@2100: name: 'NoteBook1' cg@2100: layout: (LayoutFrame 0 0 0 0 0 1 0 1) cg@2100: model: selectedTabIndexHolder cg@2100: menu: tabList cg@2100: useIndex: true cg@2100: ) cg@2100: ) cg@2100: cg@2100: ) cg@2078: ) cg@2078: cg@2078: "Modified: / 03-09-2006 / 10:57:33 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor class methodsFor:'list specs'! cg@2078: cg@2079: tabList cg@2079: ^ self tabListForApplication. cg@2079: cg@2079: "Created: / 06-09-2006 / 13:38:03 / cg" cg@2079: ! cg@2079: cg@2078: tabListForApplication cg@2078: "This resource specification was automatically generated cg@2078: by the TabListEditor of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the TabListEditor may not be able to read the specification." cg@2078: cg@2078: " cg@2078: TabListEditor new openOnClass: self andSelector:#tabList cg@2078: " cg@2078: cg@2078: cg@2078: cg@2078: ^ #( cg@2078: (TabItem cg@2100: label: 'Description' cg@2100: minorKey: descriptionSpec cg@2100: ) cg@2079: (TabItem cg@2100: label: 'Classes' cg@2100: createNewBuilder: false cg@2100: translateLabel: true cg@2100: minorKey: classesSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Extensions' cg@2100: minorKey: extensionsSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Prerequisites' cg@2100: minorKey: prerequisitesSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Compilation' cg@2100: minorKey: compilationSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Startup' cg@2100: minorKey: startupSpec cg@2100: ) cg@2078: ) cg@2100: cg@2078: collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ] cg@2078: cg@2078: "Created: / 05-09-2006 / 16:24:48 / cg" cg@2079: "Modified: / 06-09-2006 / 18:44:34 / cg" cg@2078: ! cg@2078: cg@2078: tabListForLibrary cg@2078: "This resource specification was automatically generated cg@2078: by the TabListEditor of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the TabListEditor may not be able to read the specification." cg@2078: cg@2078: " cg@2078: TabListEditor new openOnClass: self andSelector:#tabList cg@2078: " cg@2078: cg@2078: cg@2078: cg@2078: ^ #( cg@2078: (TabItem cg@2100: label: 'Description' cg@2100: minorKey: descriptionSpec cg@2100: ) cg@2079: (TabItem cg@2100: label: 'Classes' cg@2100: createNewBuilder: false cg@2100: translateLabel: true cg@2100: minorKey: classesSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Extensions' cg@2100: minorKey: extensionsSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Prerequisites' cg@2100: minorKey: prerequisitesSpec cg@2100: ) cg@2078: (TabItem cg@2100: label: 'Compilation' cg@2100: minorKey: compilationSpec cg@2100: ) cg@2078: ) cg@2100: cg@2078: collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ] cg@2078: cg@2078: "Created: / 05-09-2006 / 16:24:52 / cg" cg@2079: "Modified: / 06-09-2006 / 18:44:38 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor class methodsFor:'menu specs'! cg@2078: cg@2078: classListMenu cg@2078: "This resource specification was automatically generated cg@2078: by the MenuEditor of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the MenuEditor may not be able to read the specification." cg@2078: cg@2078: " cg@2082: MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classListMenu cg@2082: (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor classListMenu)) startUp cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(Menu cg@2100: ( cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Generate' cg@2100: itemValue: menuGenerateClassList cg@2100: translateLabel: true cg@2100: ) cg@2100: (MenuItem cg@2100: label: '-' cg@2100: ) cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Add...' cg@2100: itemValue: menuAddClass cg@2100: translateLabel: true cg@2100: ) cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Remove...' cg@2100: itemValue: menuRemoveClass cg@2100: translateLabel: true cg@2100: ) cg@2100: ) cg@2100: nil cg@2100: nil cg@2078: ) cg@2078: ! cg@2078: cg@2078: extensionsListMenu cg@2078: "This resource specification was automatically generated cg@2078: by the MenuEditor of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the MenuEditor may not be able to read the specification." cg@2078: cg@2078: " cg@2082: MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsListMenu cg@2082: (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor extensionsListMenu)) startUp cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(Menu cg@2100: ( cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Generate' cg@2100: itemValue: menuGenerateExtensionsList cg@2100: translateLabel: true cg@2100: ) cg@2100: (MenuItem cg@2100: label: '-' cg@2100: ) cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Add...' cg@2100: itemValue: menuAddExtension cg@2100: translateLabel: true cg@2100: ) cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Remove...' cg@2100: itemValue: menuRemoveExtension cg@2100: translateLabel: true cg@2100: ) cg@2100: ) cg@2100: nil cg@2100: nil cg@2078: ) cg@2078: ! cg@2078: cg@2078: mainMenu cg@2078: "This resource specification was automatically generated cg@2078: by the MenuEditor of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the MenuEditor may not be able to read the specification." cg@2078: cg@2078: " cg@2082: MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#mainMenu cg@2082: (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor mainMenu)) startUp cg@2078: " cg@2078: cg@2078: cg@2078: cg@3523: ^ cg@2078: #(Menu cg@3523: ( cg@3523: (MenuItem cg@3523: label: 'File' cg@3523: translateLabel: true cg@3523: submenu: cg@3523: (Menu cg@3523: ( cg@3523: (MenuItem cg@3523: label: 'New Library' cg@3523: itemValue: menuNewLibraryDefinition cg@3523: translateLabel: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'New Application' cg@3523: itemValue: menuNewApplicationDefinition cg@3523: translateLabel: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: '-' cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'Open...' cg@3523: itemValue: menuOpen cg@3523: translateLabel: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: '-' cg@3523: ) cg@3523: (MenuItem cg@3523: enabled: hasDefinitionClassHolder cg@3523: label: 'Save' cg@3523: itemValue: menuSave cg@3523: translateLabel: true cg@3523: ) cg@3523: (MenuItem cg@3523: enabled: hasDefinitionClassHolder cg@3523: label: 'Save As...' cg@3523: itemValue: menuSaveAs cg@3523: translateLabel: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: '-' cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'Exit' cg@3523: itemValue: closeRequest cg@3523: translateLabel: true cg@3523: ) cg@3523: ) cg@3523: nil cg@3523: nil cg@3523: ) cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'Definition' cg@3523: translateLabel: true cg@3523: submenu: cg@3523: (Menu cg@3523: ( cg@3523: (MenuItem cg@3523: enabled: hasDefinitionClassHolder cg@3523: label: 'Generate Definitions' cg@3523: itemValue: menuGenerateProjectDefinitions cg@3523: translateLabel: true cg@3523: ) cg@3523: ) cg@3523: nil cg@3523: nil cg@3523: ) cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'Classes' cg@3523: translateLabel: true cg@3523: isVisible: classesMenuVisibleHolder cg@3523: submenuChannel: classListMenu cg@3523: keepLinkedMenu: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'Extensions' cg@3523: translateLabel: true cg@3523: isVisible: extensionsMenuVisibleHolder cg@3523: submenuChannel: extensionsListMenu cg@3523: keepLinkedMenu: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'Prerequisites' cg@3523: translateLabel: true cg@3523: isVisible: prerequisitesMenuVisibleHolder cg@3523: submenuChannel: prerequisitesListMenu cg@3523: keepLinkedMenu: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'MENU_Help' cg@3523: translateLabel: true cg@3523: startGroup: conditionalRight cg@3523: submenu: cg@3523: (Menu cg@3523: ( cg@3523: (MenuItem cg@3523: label: 'Documentation' cg@3523: itemValue: openDocumentation cg@3523: translateLabel: true cg@3523: ) cg@3523: (MenuItem cg@3523: label: '-' cg@3523: ) cg@3523: (MenuItem cg@3523: label: 'About this Application...' cg@3523: itemValue: openAboutThisApplication cg@3523: translateLabel: true cg@3523: ) cg@3523: ) cg@3523: nil cg@3523: nil cg@3523: ) cg@3523: ) cg@3523: ) cg@3523: nil cg@3523: nil cg@2078: ) cg@2078: ! cg@2078: cg@2078: prerequisitesListMenu cg@2078: "This resource specification was automatically generated cg@2078: by the MenuEditor of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the MenuEditor may not be able to read the specification." cg@2078: cg@2078: " cg@2082: MenuEditor new openOnClass:Tools::ProjectDefinitionEditor andSelector:#prerequisitesListMenu cg@2082: (Menu new fromLiteralArrayEncoding:(Tools::ProjectDefinitionEditor prerequisitesListMenu)) startUp cg@2078: " cg@2078: cg@2078: cg@2078: cg@2100: ^ cg@2078: #(Menu cg@2100: ( cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Generate' cg@2100: itemValue: menuGeneratePrerequisitesList cg@2100: translateLabel: true cg@2100: ) cg@2100: (MenuItem cg@2100: label: '-' cg@2100: ) cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Add...' cg@2100: itemValue: menuAddPrerequisite cg@2100: translateLabel: true cg@2100: ) cg@2100: (MenuItem cg@2100: enabled: hasDefinitionClassHolder cg@2100: label: 'Remove...' cg@2100: itemValue: menuRemovePrerequisite cg@2100: translateLabel: true cg@2100: ) cg@2100: ) cg@2100: nil cg@2100: nil cg@2078: ) cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor class methodsFor:'tableColumns specs'! cg@2078: cg@2078: classesTableColumns cg@2078: "This resource specification was automatically generated cg@2078: by the DataSetBuilder of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the DataSetBuilder may not be able to read the specification." cg@2078: cg@2078: " cg@2079: DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesTableColumns cg@2078: " cg@2078: cg@2078: cg@2078: cg@2078: ^#( cg@2078: (DataSetColumnSpec cg@3523: label: 'Class' cg@3523: labelAlignment: left cg@3523: labelButtonType: Button cg@3523: model: className cg@3523: canSelect: false cg@2078: ) cg@2078: (DataSetColumnSpec cg@3523: label: 'Auto' cg@3523: labelButtonType: Button cg@3523: editorType: CheckToggle cg@3523: rendererType: CheckToggle cg@3523: model: autoloaded cg@2078: ) cg@2078: (DataSetColumnSpec cg@3523: label: 'Win32' cg@3523: labelButtonType: Button cg@3523: editorType: CheckToggle cg@3523: rendererType: CheckToggle cg@3523: model: win32 cg@2078: ) cg@2078: (DataSetColumnSpec cg@3523: label: 'Unix' cg@3523: labelButtonType: Button cg@3523: editorType: CheckToggle cg@3523: rendererType: CheckToggle cg@3523: model: unix cg@2078: ) cg@2078: ) cg@3523: cg@2078: ! cg@2078: cg@2078: extensionsTableColumns cg@2078: "This resource specification was automatically generated cg@2078: by the DataSetBuilder of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the DataSetBuilder may not be able to read the specification." cg@2078: cg@2078: " cg@2079: DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsTableColumns cg@2078: " cg@2078: cg@2078: cg@2078: cg@2078: ^#( cg@2078: (DataSetColumnSpec cg@2100: label: 'Class' cg@2100: labelAlignment: left cg@2100: labelButtonType: Button cg@2100: model: className cg@2100: canSelect: false cg@2078: ) cg@2078: (DataSetColumnSpec cg@2100: label: 'Selector' cg@2100: labelAlignment: left cg@2100: labelButtonType: Button cg@2100: model: selector cg@2100: canSelect: false cg@2078: ) cg@2078: ) cg@2100: cg@2078: ! cg@2078: cg@2078: prerequisitesTableColumns cg@2078: "This resource specification was automatically generated cg@2078: by the DataSetBuilder of ST/X." cg@2078: cg@2078: "Do not manually edit this!! If it is corrupted, cg@2078: the DataSetBuilder may not be able to read the specification." cg@2078: cg@2078: " cg@2080: DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#prerequisitesTableColumns cg@2078: " cg@2078: cg@2078: cg@2078: cg@2078: ^#( cg@2078: (DataSetColumnSpec cg@2100: label: 'Package' cg@2100: labelAlignment: left cg@2100: labelButtonType: Button cg@2100: model: package cg@2078: ) cg@2078: ) cg@2100: cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'accessing'! cg@2078: cg@2078: definitionClass cg@2078: ^ definitionClass cg@2078: cg@2078: "Created: / 04-09-2006 / 16:30:09 / cg" cg@2078: ! cg@2078: cg@2078: definitionClass:aClass cg@2078: definitionClass := aClass. cg@2082: self refetchDefinitionValues. cg@2078: cg@2078: "Created: / 04-09-2006 / 16:30:18 / cg" cg@2082: "Modified: / 07-09-2006 / 12:26:57 / cg" cg@2080: ! cg@2080: cg@2080: specClass:aClass cg@2080: super specClass:aClass. cg@2080: self definitionClass:aClass theNonMetaclass. cg@2080: cg@2080: "Created: / 06-09-2006 / 19:24:10 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'aspects'! cg@2078: cg@2121: ccOptimizationFlagList cg@2121: ^ #( cg@3523: '-O' cg@3523: '-g' cg@2121: ) cg@2121: cg@2121: "Created: / 15-10-2006 / 15:14:39 / cg" cg@2121: ! cg@2121: cg@2121: ccOptimizationFlagsHolder cg@2121: ccOptimizationFlagsHolder isNil ifTrue:[ cg@3523: ccOptimizationFlagsHolder := ValueHolder new. cg@2121: ]. cg@2121: ^ ccOptimizationFlagsHolder cg@2121: cg@2121: "Created: / 15-10-2006 / 15:13:14 / cg" cg@2121: ! cg@2121: cg@2081: classListHolder cg@2081: classListHolder isNil ifTrue:[ cg@2100: classListHolder := #() asValue. cg@2078: ]. cg@2081: ^ classListHolder. cg@2078: cg@2081: "Created: / 07-09-2006 / 11:34:35 / cg" cg@2078: ! cg@2078: cg@2078: classesTableColumns cg@2078: classesTableColumns isNil ifTrue:[ cg@2100: classesTableColumns := self class classesTableColumns asValue. cg@2078: ]. cg@2078: ^ classesTableColumns. cg@2078: cg@2078: "Modified: / 04-09-2006 / 17:58:09 / cg" cg@2078: ! cg@2078: cg@2078: companyNameHolder cg@2078: companyNameHolder isNil ifTrue:[ cg@2100: companyNameHolder := ValueHolder new. cg@2078: ]. cg@2078: ^ companyNameHolder. cg@2078: cg@2078: "Created: / 04-09-2006 / 17:58:02 / cg" cg@2078: ! cg@2078: cg@2078: descriptionHolder cg@2078: descriptionHolder isNil ifTrue:[ cg@2100: descriptionHolder := ValueHolder new. cg@2078: ]. cg@2078: ^ descriptionHolder. cg@2078: cg@2078: "Modified: / 04-09-2006 / 17:58:15 / cg" cg@2078: ! cg@2078: cg@2121: documentExtensionsListStringHolder cg@2121: documentExtensionsListStringHolder isNil ifTrue:[ cg@3523: documentExtensionsListStringHolder := '' asValue. cg@2121: ]. cg@2121: ^ documentExtensionsListStringHolder. cg@2121: cg@2121: "Created: / 15-10-2006 / 14:32:29 / cg" cg@2121: ! cg@2121: cg@2081: extensionsListHolder cg@2081: extensionsListHolder isNil ifTrue:[ cg@2100: extensionsListHolder := #() asValue. cg@2079: ]. cg@2081: ^ extensionsListHolder. cg@2079: cg@2081: "Created: / 07-09-2006 / 11:34:50 / cg" cg@2079: ! cg@2079: cg@2078: fileDescriptionHolder cg@2078: fileDescriptionHolder isNil ifTrue:[ cg@2100: fileDescriptionHolder := ValueHolder new. cg@2078: ]. cg@2078: ^ fileDescriptionHolder. cg@2078: cg@2078: "Modified: / 04-09-2006 / 17:58:19 / cg" cg@2078: ! cg@2078: cg@2078: fileMajorVersionNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: fileMajorVersionNrHolder isNil ifTrue:[ cg@2100: fileMajorVersionNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ fileMajorVersionNrHolder addDependent:self. cg@2078: "/ fileMajorVersionNrHolder onChangeSend:#fileMajorVersionNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ fileMajorVersionNrHolder. cg@2078: ! cg@2078: cg@2078: fileMinorVersionNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: fileMinorVersionNrHolder isNil ifTrue:[ cg@2100: fileMinorVersionNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ fileMinorVersionNrHolder addDependent:self. cg@2078: "/ fileMinorVersionNrHolder onChangeSend:#fileMinorVersionNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ fileMinorVersionNrHolder. cg@2078: ! cg@2078: cg@2078: fileReleaseNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: fileReleaseNrHolder isNil ifTrue:[ cg@2100: fileReleaseNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ fileReleaseNrHolder addDependent:self. cg@2078: "/ fileReleaseNrHolder onChangeSend:#fileReleaseNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ fileReleaseNrHolder. cg@2078: ! cg@2078: cg@2078: fileRevisionNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: fileRevisionNrHolder isNil ifTrue:[ cg@2100: fileRevisionNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ fileRevisionNrHolder addDependent:self. cg@2078: "/ fileRevisionNrHolder onChangeSend:#fileRevisionNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ fileRevisionNrHolder. cg@2078: ! cg@2078: cg@2100: hasConsoleHolder cg@2100: hasConsoleHolder isNil ifTrue:[ cg@3523: hasConsoleHolder := false asValue cg@2100: ]. cg@2100: ^ hasConsoleHolder. cg@2100: cg@2100: "Created: / 20-09-2006 / 14:39:18 / cg" cg@2100: ! cg@2100: cg@2078: iconFileNameHolder cg@2078: iconFileNameHolder isNil ifTrue:[ cg@2100: iconFileNameHolder := ValueHolder new. cg@2078: ]. cg@2078: ^ iconFileNameHolder. cg@2078: cg@2078: "Created: / 04-09-2006 / 18:01:22 / cg" cg@2078: ! cg@2078: cg@2078: isApplicationDefinitionHolder cg@2078: isApplicationDefinitionHolder isNil ifTrue:[ cg@2100: isApplicationDefinitionHolder := false asValue cg@2078: ]. cg@2078: ^ isApplicationDefinitionHolder. cg@2078: cg@2078: "Created: / 04-09-2006 / 19:22:47 / cg" cg@2078: ! cg@2078: cg@2100: isGUIApplicationHolder cg@2100: ^ BlockValue forLogicalNot:self isNonGUIApplicationHolder cg@2100: cg@2100: "Created: / 20-09-2006 / 14:38:32 / cg" cg@2100: ! cg@2100: cg@2078: isNonGUIApplicationHolder cg@2078: isNonGUIApplicationHolder isNil ifTrue:[ cg@3523: isNonGUIApplicationHolder := false asValue. cg@3523: isNonGUIApplicationHolder addDependent:self. cg@2078: ]. cg@2078: ^ isNonGUIApplicationHolder. cg@2078: cg@2078: "Created: / 05-09-2006 / 13:34:31 / cg" cg@2121: "Modified: / 15-10-2006 / 14:00:03 / cg" cg@2078: ! cg@2078: cg@2078: legalCopyrightHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: legalCopyrightHolder isNil ifTrue:[ cg@2100: legalCopyrightHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ legalCopyrightHolder addDependent:self. cg@2078: "/ legalCopyrightHolder onChangeSend:#legalCopyrightHolderChanged to:self. cg@2078: ]. cg@2078: ^ legalCopyrightHolder. cg@2078: ! cg@2078: cg@2078: majorVersionNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: majorVersionNrHolder isNil ifTrue:[ cg@2100: majorVersionNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ majorVersionNrHolder addDependent:self. cg@2078: "/ majorVersionNrHolder onChangeSend:#majorVersionNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ majorVersionNrHolder. cg@2078: ! cg@2078: cg@2078: minorVersionNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: minorVersionNrHolder isNil ifTrue:[ cg@2100: minorVersionNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ minorVersionNrHolder addDependent:self. cg@2078: "/ minorVersionNrHolder onChangeSend:#minorVersionNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ minorVersionNrHolder. cg@2078: ! cg@2078: cg@2081: prerequisitesListHolder cg@2081: prerequisitesListHolder isNil ifTrue:[ cg@2100: prerequisitesListHolder := #() asValue. cg@2081: ]. cg@2081: ^ prerequisitesListHolder. cg@2081: cg@2081: "Created: / 07-09-2006 / 11:35:03 / cg" cg@2081: ! cg@2081: cg@2078: productNameHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: productNameHolder isNil ifTrue:[ cg@2100: productNameHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ productNameHolder addDependent:self. cg@2078: "/ productNameHolder onChangeSend:#productNameHolderChanged to:self. cg@2078: ]. cg@2078: ^ productNameHolder. cg@2078: ! cg@2078: cg@2078: releaseNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: releaseNrHolder isNil ifTrue:[ cg@2100: releaseNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ releaseNrHolder addDependent:self. cg@2078: "/ releaseNrHolder onChangeSend:#releaseNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ releaseNrHolder. cg@2078: ! cg@2078: cg@2078: revisionNrHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: revisionNrHolder isNil ifTrue:[ cg@2100: revisionNrHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ revisionNrHolder addDependent:self. cg@2078: "/ revisionNrHolder onChangeSend:#revisionNrHolderChanged to:self. cg@2078: ]. cg@2078: ^ revisionNrHolder. cg@2078: ! cg@2078: cg@2078: selectedClassIndexHolder cg@2078: "automatically generated by UIPainter ..." cg@2078: cg@2078: "*** the code below creates a default model when invoked." cg@2078: "*** (which may not be the one you wanted)" cg@2078: "*** Please change as required and accept it in the browser." cg@2078: "*** (and replace this comment by something more useful ;-)" cg@2078: cg@2078: selectedClassIndexHolder isNil ifTrue:[ cg@2100: selectedClassIndexHolder := ValueHolder new. cg@2078: "/ if your app needs to be notified of changes, uncomment one of the lines below: cg@2078: "/ selectedClassIndexHolder addDependent:self. cg@2078: "/ selectedClassIndexHolder onChangeSend:#selectedClassIndexHolderChanged to:self. cg@2078: ]. cg@2078: ^ selectedClassIndexHolder. cg@2078: ! cg@2078: cg@2121: shownHasConsoleHolder cg@2121: shownHasConsoleHolder isNil ifTrue:[ cg@3523: shownHasConsoleHolder := IndirectValue for:self hasConsoleHolder. cg@2121: ]. cg@2121: ^ shownHasConsoleHolder cg@2121: cg@2121: "Created: / 15-10-2006 / 13:59:01 / cg" cg@2121: ! cg@2121: cg@2121: shownHasConsoleValue cg@3523: ^ BlockValue cg@3523: with:[:m1 :m2 | self isGUIApplicationHolder value not cg@3523: or:[ self hasConsoleHolder value] ] cg@3523: argument:(self hasConsoleHolder) cg@3523: argument:(self isGUIApplicationHolder). cg@2121: cg@2121: "Created: / 15-10-2006 / 13:54:16 / cg" cg@2121: ! cg@2121: cg@2078: startSinglethreadedHolder cg@2078: startSinglethreadedHolder isNil ifTrue:[ cg@2100: startSinglethreadedHolder := false asValue. cg@2078: ]. cg@2078: ^ startSinglethreadedHolder. cg@2078: cg@2078: "Created: / 05-09-2006 / 13:34:54 / cg" cg@2078: ! cg@2078: cg@2079: startupClassNameHolder cg@2079: startupClassNameHolder isNil ifTrue:[ cg@2100: startupClassNameHolder := '' asValue. cg@2078: ]. cg@2079: ^ startupClassNameHolder. cg@2078: cg@2079: "Created: / 06-09-2006 / 18:41:52 / cg" cg@2078: ! cg@2078: cg@2078: startupSelectorHolder cg@2078: startupSelectorHolder isNil ifTrue:[ cg@2100: startupSelectorHolder := '' asValue. cg@2078: ]. cg@2078: ^ startupSelectorHolder. cg@2078: cg@2078: "Created: / 05-09-2006 / 13:34:20 / cg" cg@2078: ! cg@2078: cg@2121: stcOptimizationFlagList cg@2121: ^ #( cg@3523: '+optSpace' cg@3523: '+optSpace2' cg@3523: '+optSpace3' cg@3523: '+optInline' cg@3523: '-optInline' cg@3523: '-inlineNew' cg@3523: '-inlineNot' cg@2121: ) cg@2121: cg@2121: "Created: / 15-10-2006 / 15:14:29 / cg" cg@2121: ! cg@2121: cg@2121: stcOptimizationFlagsHolder cg@2121: stcOptimizationFlagsHolder isNil ifTrue:[ cg@3523: stcOptimizationFlagsHolder := ValueHolder new. cg@2121: ]. cg@2121: ^ stcOptimizationFlagsHolder cg@2121: cg@2121: "Modified: / 15-10-2006 / 15:13:10 / cg" cg@2121: ! cg@2121: cg@2078: tabList cg@2078: "Generated by the TabListEditor" cg@2078: cg@2078: |list| cg@2078: cg@2078: (list := builder bindingAt:#tabList) isNil ifTrue:[ cg@2100: builder aspectAt:#tabList put:(list := self class tabListForApplication asValue). cg@2078: ]. cg@2078: ^ list cg@2078: cg@2079: "Modified: / 06-09-2006 / 17:58:08 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'aspects-menu'! cg@2078: cg@2078: classesMenuVisibleHolder cg@2078: ^ builder booleanValueAspectFor:#'classesMenuVisibleHolder' cg@2078: cg@2078: "Modified: / 03-09-2006 / 10:57:00 / cg" cg@2078: ! cg@2078: cg@2078: extensionsMenuVisibleHolder cg@2078: ^ builder booleanValueAspectFor:#'extensionsMenuVisibleHolder' cg@2078: cg@2078: "Created: / 05-09-2006 / 13:03:16 / cg" cg@2078: ! cg@2078: cg@2082: hasDefinitionClass cg@2082: ^ definitionClass notNil cg@2082: cg@2082: "Created: / 07-09-2006 / 12:29:10 / cg" cg@2082: ! cg@2082: cg@2082: hasDefinitionClassHolder cg@2082: ^ [ self hasDefinitionClass ] cg@2082: cg@2082: "Created: / 07-09-2006 / 12:29:22 / cg" cg@2082: ! cg@2082: cg@2078: prerequisitesMenuVisibleHolder cg@2078: ^ builder booleanValueAspectFor:#'prerequisitesMenuVisibleHolder' cg@2078: cg@2078: "Created: / 05-09-2006 / 13:26:45 / cg" cg@2078: ! cg@2078: cg@2078: selectedTabIndexHolder cg@2078: |h| cg@2078: cg@2078: h := builder valueAspectFor:#'selectedTabIndexHolder' initialValue:nil. cg@2078: h addDependent:self. cg@2078: ^ h cg@2078: cg@2078: "Created: / 03-09-2006 / 10:58:05 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'change & update'! cg@2078: cg@2078: fetchClassListEntries cg@2078: |entries| cg@2078: cg@2078: entries := OrderedCollection new. cg@2100: definitionClass cg@3523: classNamesAndAttributesDo:[:className :attributes | cg@3523: |entry| cg@2078: cg@3523: entry := ClassListEntry new. cg@3523: entry cg@3523: className:className cg@3523: autoloaded:(attributes includes:#autoload) cg@3523: win32:(attributes includes:#win32) cg@3523: unix:(attributes includes:#unix). cg@3523: entries add:entry. cg@3523: ]. cg@2146: entries sort:[:a :b | a className < b className]. cg@2078: ^ entries. cg@2078: cg@2078: "Created: / 05-09-2006 / 12:31:26 / cg" cg@2146: "Modified: / 21-11-2006 / 18:04:35 / cg" cg@2078: ! cg@2078: cg@2079: fetchExtensionsListEntries cg@2079: |entries| cg@2079: cg@2079: entries := OrderedCollection new. cg@2100: definitionClass cg@2100: extensionMethodNames pairWiseDo:[:className :selector | cg@2100: |entry| cg@2079: cg@2100: entry := ExtensionsListEntry new. cg@2100: entry className:className selector:selector. cg@2100: entries add:entry. cg@2100: ]. cg@2079: cg@2079: ^ entries. cg@2079: cg@2079: "Created: / 06-09-2006 / 18:45:15 / cg" cg@2079: ! cg@2079: cg@2081: fetchPrerequisitesListEntries cg@2081: |entries| cg@2081: cg@2081: entries := OrderedCollection new. cg@2100: definitionClass cg@2100: preRequisites do:[:packageName | cg@2100: |entry| cg@2081: cg@2100: entry := PrerequisitesListEntry new. cg@2100: entry package:packageName. cg@2100: entries add:entry. cg@2100: ]. cg@2081: cg@2081: ^ entries. cg@2081: cg@2081: "Created: / 06-09-2006 / 18:45:15 / cg" cg@2082: "Modified: / 07-09-2006 / 12:36:21 / cg" cg@2081: ! cg@2081: cg@2078: fetchValues cg@2082: |definitionClass isApplicationDefinition startupClassName startupSelector| cg@2078: cg@2078: definitionClass := self definitionClass. cg@2078: definitionClass isNil ifTrue:[^ self ]. cg@2078: cg@2078: isApplicationDefinition := definitionClass isApplicationDefinition. cg@2078: cg@2078: self isApplicationDefinitionHolder value:isApplicationDefinition. cg@2111: self isNonGUIApplicationHolder value:(isApplicationDefinition and:[definitionClass isGUIApplication not]). cg@2111: self hasConsoleHolder value:(isApplicationDefinition and:[definitionClass isConsoleApplication]). cg@2111: self startSinglethreadedHolder value:(isApplicationDefinition and:[definitionClass isSingleThreadedApplication]). cg@2100: cg@2078: isApplicationDefinition ifTrue:[ cg@3523: startupClassName := definitionClass name. cg@3523: startupSelector := #start. cg@2082: cg@3523: Error handle:[:ex | ] do:[ startupClassName := definitionClass startupClassName]. cg@3523: Error handle:[:ex | ] do:[ startupSelector := definitionClass startupSelector]. cg@3523: self startupClassNameHolder value:startupClassName. cg@3523: self startupSelectorHolder value:startupSelector. cg@2082: cg@3523: self iconFileNameHolder value:(definitionClass applicationIconFileName). cg@3523: self tabList value:(self class tabListForApplication). cg@3523: self documentExtensionsListStringHolder value:(definitionClass documentExtensions asStringWith:';'). cg@2078: ] ifFalse:[ cg@3523: self tabList value:(self class tabListForLibrary). cg@2078: ]. cg@2078: cg@2078: self companyNameHolder value:(definitionClass companyName). cg@2078: self descriptionHolder value:(definitionClass description). cg@2078: self legalCopyrightHolder value:(definitionClass legalCopyright). cg@2078: self productNameHolder value:(definitionClass productName). cg@2078: self majorVersionNrHolder value:(definitionClass majorVersionNr asInteger). cg@2078: self minorVersionNrHolder value:(definitionClass minorVersionNr asInteger). cg@2078: self revisionNrHolder value:(definitionClass revisionNr asInteger). cg@2078: self releaseNrHolder value:(definitionClass releaseNr asInteger). cg@2078: cg@2078: self fileDescriptionHolder value:(definitionClass fileDescription). cg@2078: self fileMajorVersionNrHolder value:(definitionClass fileMajorVersionNr asInteger). cg@2078: self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger). cg@2078: self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger). cg@2078: self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger). cg@2078: cg@2081: self classListHolder value:(self fetchClassListEntries). cg@2081: self extensionsListHolder value:(self fetchExtensionsListEntries). cg@2081: self prerequisitesListHolder value:(self fetchPrerequisitesListEntries). cg@2078: cg@2100: self window notNil ifTrue:[ cg@3523: self window cg@3523: label:(isApplicationDefinition cg@3523: ifTrue:'Application' cg@3523: ifFalse:'Library' ) cg@3523: , ' Definition: ',definitionClass name. cg@2100: ]. cg@2078: cg@2078: "Created: / 04-09-2006 / 16:34:39 / cg" cg@2121: "Modified: / 15-10-2006 / 14:32:45 / cg" cg@2082: ! cg@2082: cg@2082: refetchDefinitionValues cg@2082: self isApplicationDefinitionHolder value:( definitionClass isApplicationDefinition ). cg@2082: self fetchValues. cg@2082: cg@2082: "Created: / 07-09-2006 / 12:26:54 / cg" cg@2078: ! cg@2078: cg@2078: update:something with:parameter from:changedObject cg@2078: changedObject == self selectedTabIndexHolder ifTrue:[ cg@3523: self updateMenuVisibility. cg@3523: ^ self. cg@2121: ]. cg@2121: changedObject == self isNonGUIApplicationHolder ifTrue:[ cg@3523: changedObject value ifTrue:[ cg@3523: "/ a NON-GUI application - always has a console cg@3523: self shownHasConsoleHolder valueHolder:true cg@3523: ] ifFalse:[ cg@3523: "/ a GUI application - sometimes has a console cg@3523: self shownHasConsoleHolder valueHolder:(self hasConsoleHolder) cg@3523: ]. cg@3523: ^ self. cg@2078: ]. cg@2078: ^ super update:something with:parameter from:changedObject cg@2078: cg@2078: "Created: / 03-09-2006 / 10:59:42 / cg" cg@2121: "Modified: / 15-10-2006 / 14:08:23 / cg" cg@2078: ! cg@2078: cg@2078: updateMenuVisibility cg@2078: self classesMenuVisibleHolder value:(self hasClassesTabSelected). cg@2078: self extensionsMenuVisibleHolder value:(self hasExtensionsTabSelected). cg@2078: self prerequisitesMenuVisibleHolder value:(self hasPrerequisitesTabSelected). cg@2078: cg@2078: "Created: / 03-09-2006 / 11:01:48 / cg" cg@2078: "Modified: / 05-09-2006 / 13:27:10 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'initialization & release'! cg@2078: cg@2078: closeRequest cg@2078: (self hasUnsavedChanges) ifTrue:[ cg@2100: (self confirm:(resources string:'Close without saving ?')) ifFalse:[ cg@2100: ^ self cg@2100: ] cg@2078: ]. cg@2078: cg@2078: ^ super closeRequest cg@2078: cg@2078: "Modified: / 03-09-2006 / 10:53:14 / cg" cg@2078: ! cg@2078: cg@2121: flagHolderBuilt:aComboBox cg@2121: aComboBox menuSelectAction:[:txt | cg@3523: self updateFlagsIn:aComboBox from:txt cg@2121: ]. cg@2121: cg@2121: "Created: / 15-10-2006 / 15:11:50 / cg" cg@2121: ! cg@2121: cg@2078: postBuildWith:aBuilder cg@2078: super postBuildWith:aBuilder. cg@2078: self selectedTabIndexHolder value:1. cg@2078: self updateMenuVisibility. cg@2078: self fetchValues. cg@2078: cg@2078: "Modified: / 04-09-2006 / 16:28:09 / cg" cg@2078: ! cg@2078: cg@2078: postOpenWith:aBuilder cg@2078: "This is a hook method generated by the Browser. cg@2078: It will be invoked right after the applications window has been opened. cg@2078: Add any app-specific actions here (starting background processes etc.). cg@2078: See also #postBuildWith:, which is invoked before opening." cg@2078: cg@2078: "/ add any code here ... cg@2078: cg@2078: ^ super postOpenWith:aBuilder cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'menu actions'! cg@2078: cg@2121: editNew:definitionClass cg@2121: |className class newPackage| cg@2121: cg@2121: self hasUnsavedChanges ifTrue:[ cg@3523: self halt. cg@2121: ]. cg@2121: className := Dialog cg@3523: requestClassName:'Name of new Definition class' cg@3523: okLabel:'Create' cg@3523: initialAnswer:'private_myProject'. cg@2121: className isEmptyOrNil ifTrue:[^ self]. cg@2121: cg@2121: class := Smalltalk classNamed:className. cg@2121: class notNil ifTrue:[ cg@3523: (class isLibraryDefinition == (definitionClass == LibraryDefinition)) ifFalse:[ cg@3523: Dialog warn:(resources cg@3523: string:'A class named "%1" already exists as %2.' cg@3523: with:className allBold cg@3523: with:(class isLibraryDefinition cg@3523: ifTrue:'Library' cg@3523: ifFalse:'Application')). cg@3523: ^ self cg@3523: ]. cg@3523: Dialog warn:(resources cg@3523: string:'A class named "%1" already exists. Editing the existing definition.' cg@3523: with:className allBold). cg@2121: ] ifFalse:[ cg@3523: newPackage := className copy replaceAll:$_ with:$/. cg@3523: newPackage replaceAll:$/ with:$:. cg@3523: class := definitionClass newNamed:className package:newPackage. cg@2121: ]. cg@2121: self definitionClass:class. cg@2121: cg@2121: "Created: / 15-10-2006 / 14:50:15 / cg" cg@2121: ! cg@2121: cg@2082: menuGenerateProjectDefinitions cg@2082: |action| cg@2080: cg@2082: action := [:generator :defClass | cg@2100: defClass theNonMetaclass cg@2100: forEachMethodsCodeToCompileDo: cg@2100: [:code :category | cg@2100: generator cg@2100: compile:code cg@2100: forClass:defClass theMetaclass cg@2100: inCategory:category. cg@2100: ] cg@2100: ignoreOldDefinition:true cg@2100: ]. cg@2080: cg@2082: masterApplication notNil ifTrue:[ cg@2100: masterApplication cg@2100: generateUndoableChange:'Generate Project Definitions' cg@2100: overClasses:(Array with:self definitionClass) cg@2100: via:action. cg@2082: ] ifFalse:[ cg@2100: action value:Compiler value:self definitionClass cg@2082: ]. cg@2082: cg@2082: self refetchDefinitionValues cg@2082: cg@2082: "Created: / 07-09-2006 / 12:26:22 / cg" cg@2080: ! cg@2080: cg@2078: menuNew cg@2078: "This method was generated by the Browser. cg@2078: It will be invoked when the menu-item 'new' is selected." cg@2078: cg@2078: "/ change below and add any actions as required here ... cg@2078: self warn:'no action for ''new'' available.'. cg@2078: ! cg@2078: cg@2121: menuNewApplicationDefinition cg@2121: self editNew:ApplicationDefinition cg@2121: cg@2121: "Created: / 15-10-2006 / 14:49:53 / cg" cg@2121: ! cg@2121: cg@2121: menuNewLibraryDefinition cg@2121: self editNew:LibraryDefinition cg@2121: cg@2121: "Created: / 15-10-2006 / 14:49:46 / cg" cg@2121: ! cg@2121: cg@2078: menuOpen cg@2081: |projectID class answer| cg@2078: cg@2081: projectID := Dialog requestProject:'Project' initialAnswer:'' suggestions:nil. cg@2081: class := ProjectDefinition definitionClassForPackage:projectID. cg@2081: class isNil ifTrue:[ cg@2100: answer := Dialog cg@2100: confirmWithCancel:(resources string:'No Projectdefinition class exists for "%1".\\Create ?' with:projectID allBold) cg@2100: labels:(resources array:#('Cancel' 'Create Library' 'Create Application' )) cg@2100: values:#(nil LibraryDefinition ApplicationDefinition) cg@2100: default:2 cg@2100: boxLabel:(resources string:'Create Projectdefinition'). cg@2100: answer isNil ifTrue:[^ self]. cg@2081: ]. cg@2081: answer == #LibraryDefinition ifTrue:[ cg@2100: class := LibraryDefinition definitionClassForPackage:projectID createIfAbsent:true cg@2081: ] ifFalse:[ cg@2100: class := ApplicationDefinition definitionClassForPackage:projectID createIfAbsent:true cg@2081: ]. cg@2081: self definitionClass:class. cg@2081: cg@2081: "Modified: / 07-09-2006 / 12:19:58 / cg" cg@2078: ! cg@2078: cg@2080: menuRemoveClass cg@2080: |classListHolder| cg@2080: cg@2081: classListHolder := self classListHolder. cg@2080: classListHolder value removeIndex:(self selectedClassIndexHolder value). cg@2080: classListHolder changed. cg@2080: cg@2080: "Created: / 06-09-2006 / 21:31:05 / cg" cg@2081: "Modified: / 07-09-2006 / 11:35:44 / cg" cg@2080: ! cg@2080: cg@2078: menuSave cg@2078: self menuSaveAs:definitionClass name cg@2078: cg@2078: "Modified: / 05-09-2006 / 13:48:27 / cg" cg@2078: ! cg@2078: cg@2078: menuSaveAs cg@2078: |className class newPackage| cg@2078: cg@2100: className := Dialog cg@3523: requestClassName:'Name of new Definition class' cg@3523: okLabel:'Create' cg@3523: initialAnswer:'private_myProject'. cg@2078: className isEmptyOrNil ifTrue:[^ self]. cg@2078: class := Smalltalk classNamed:className. cg@2078: class notNil ifTrue:[ cg@3523: Dialog warn:(resources cg@3523: string:'A class named %1 already exists' cg@3523: with:className). cg@3523: ^ self. cg@2078: ]. cg@2078: newPackage := className copy replaceAll:$_ with:$/. cg@3523: newPackage replaceAll:$/ with:$:. cg@2078: class := ApplicationDefinition newNamed:className package:newPackage. cg@2078: self menuSaveAs:class. cg@2078: cg@2121: "Modified: / 15-10-2006 / 14:47:53 / cg" cg@2078: ! cg@2078: cg@2078: menuSaveAs:aClassName cg@2078: self halt. cg@2078: cg@2078: "Created: / 05-09-2006 / 13:48:03 / cg" cg@2078: ! cg@2078: cg@2078: openAboutThisApplication cg@2078: "This method was generated by the Browser. cg@2078: It will be invoked when the menu-item 'help-about' is selected." cg@2078: cg@2078: "/ could open a customized aboutBox here ... cg@2078: super openAboutThisApplication cg@2078: ! cg@2078: cg@2078: openDocumentation cg@2078: "This method was generated by the Browser. cg@2078: It will be invoked when the menu-item 'help-documentation' is selected." cg@2078: cg@2078: "/ change below as required ... cg@2078: cg@2078: "/ to open an HTML viewer on some document (under 'doc/online//' ): cg@2078: HTMLDocumentView openFullOnDocumentationFile:'TOP.html'. cg@2078: cg@2078: "/ add application-specific help files under the 'doc/online//help/appName' cg@2078: "/ directory, and open a viewer with: cg@2078: "/ HTMLDocumentView openFullOnDocumentationFile:'help//TOP.html'. cg@2121: ! cg@2121: cg@2121: updateFlagsIn:aComboBox from:flag cg@2121: |s flags base negation| cg@2121: cg@2121: s := aComboBox editor contents. cg@2121: flags := s asCollectionOfWords. cg@2121: (flags includes:flag) ifFalse:[ cg@3523: base := (flag copyFrom:2). cg@3523: negation := (flag startsWith:'+') cg@3523: ifTrue:[ ('-',base) ] cg@3523: ifFalse:[ ('+',base) ]. cg@3523: flags remove:negation ifAbsent:[]. cg@3523: flags add:flag. cg@3523: aComboBox editor contents:(flags asStringWith:' '). cg@2121: ]. cg@2121: cg@2121: "Created: / 15-10-2006 / 15:35:53 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor methodsFor:'queries'! cg@2078: cg@2078: hasClassesTabSelected cg@2080: ^ self selectedTabIndex == 2 cg@2078: cg@2078: "Created: / 03-09-2006 / 11:00:39 / cg" cg@2080: "Modified: / 06-09-2006 / 21:20:21 / cg" cg@2078: ! cg@2078: cg@2078: hasExtensionsTabSelected cg@2080: ^ self selectedTabIndex == 3 cg@2078: cg@2078: "Created: / 05-09-2006 / 13:02:26 / cg" cg@2080: "Modified: / 06-09-2006 / 21:20:25 / cg" cg@2078: ! cg@2078: cg@2078: hasPrerequisitesTabSelected cg@2080: ^ self selectedTabIndex == 4 cg@2078: cg@2078: "Created: / 05-09-2006 / 13:27:16 / cg" cg@2080: "Modified: / 06-09-2006 / 21:20:33 / cg" cg@2078: ! cg@2078: cg@2078: hasUnsavedChanges cg@2078: ^ false cg@2078: cg@2078: "Created: / 03-09-2006 / 10:53:05 / cg" cg@2078: ! cg@2078: cg@2080: selectedClass cg@2080: |item| cg@2080: cg@2081: item := self classListHolder value at:(self selectedClassIndexHolder value). cg@2080: self halt. cg@2080: cg@2080: "Created: / 06-09-2006 / 21:32:20 / cg" cg@2081: "Modified: / 07-09-2006 / 11:35:48 / cg" cg@2080: ! cg@2080: cg@2078: selectedTabIndex cg@2078: ^ self selectedTabIndexHolder value cg@2078: cg@2078: "Created: / 03-09-2006 / 11:00:48 / cg" cg@2078: ! ! cg@2078: cg@2078: !ProjectDefinitionEditor::ClassListEntry methodsFor:'accessing'! cg@2078: cg@2078: autoloaded cg@2078: ^ autoloaded cg@2078: ! cg@2078: cg@2146: autoloaded:aBoolean cg@2146: autoloaded := aBoolean. cg@2146: cg@2146: "Modified: / 21-11-2006 / 18:05:26 / cg" cg@2078: ! cg@2078: cg@2078: className cg@2078: ^ className cg@2078: ! cg@2078: cg@2078: className:something cg@2078: className := something. cg@2078: ! cg@2078: cg@2100: className:classNameArg autoloaded:autoloadedArg win32:win32Arg unix:unixArg cg@2078: className := classNameArg. cg@2078: autoloaded := autoloadedArg. cg@2078: win32 := win32Arg. cg@2078: unix := unixArg. cg@2078: ! cg@2078: cg@2078: unix cg@2078: ^ unix cg@2078: ! cg@2078: cg@2146: unix:aBoolean cg@2146: unix := aBoolean. cg@2146: cg@2146: "Modified: / 21-11-2006 / 18:05:32 / cg" cg@2078: ! cg@2078: cg@2078: win32 cg@2078: ^ win32 cg@2078: ! cg@2078: cg@2146: win32:aBoolean cg@2146: win32 := aBoolean. cg@2146: cg@2146: "Modified: / 21-11-2006 / 18:05:35 / cg" cg@2078: ! ! cg@2078: cg@2079: !ProjectDefinitionEditor::ExtensionsListEntry methodsFor:'accessing'! cg@2079: cg@2079: className cg@2079: ^ className cg@2079: ! cg@2079: cg@2100: className:classNameArg selector:selectorArg cg@2079: className := classNameArg. cg@2079: selector := selectorArg. cg@2079: ! cg@2079: cg@2079: selector cg@2079: ^ selector cg@2079: ! ! cg@2079: cg@2081: !ProjectDefinitionEditor::PrerequisitesListEntry methodsFor:'accessing'! cg@2081: cg@2081: package cg@2081: ^ package cg@2081: cg@2081: "Created: / 07-09-2006 / 12:23:17 / cg" cg@2081: ! cg@2081: cg@2081: package:something cg@2081: package := something. cg@2081: cg@2081: "Created: / 07-09-2006 / 12:23:19 / cg" cg@2081: ! ! cg@2081: cg@2078: !ProjectDefinitionEditor class methodsFor:'documentation'! cg@2078: cg@2078: version cg@2078: ^ '$Header$' cg@2666: ! cg@2666: cg@2666: version_CVS cg@2666: ^ '$Header$' cg@2078: ! !