--- a/Tools__NewClassWizardDialog.st Tue Oct 11 16:09:04 2016 +0200
+++ b/Tools__NewClassWizardDialog.st Tue Oct 11 17:20:25 2016 +0200
@@ -21,7 +21,8 @@
createUpdateMethodHolder createInitializerHolder
createInitialGUICodeHolder classInstVarNamesHolder
classVarNamesHolder nameSpaceHolder categoryHolder
- stereotypeHolder'
+ stereotypeHolder isCreatingClassHolder listOfSuperclassesHolder
+ canDisableTemplateCreationHolder'
classVariableNames:'LastLanguage LastSuperclass LastPackage LastNamespace
LastCategory'
poolDictionaries:''
@@ -136,7 +137,7 @@
'Open a dialog for namespace selection'
#package
-'Package into which this class should be placed.\Packages are units for deployment\(separately compiled & deployable libraries and applications)'
+'Packages are units for deployment\(separately compiled & deployable libraries and applications).\For class creation, choose the package into which this class should be placed.\For package creation, define the packageID of the new package.\ID must be of the form: "<module>:<path>", for example: "myname:demos/myFirstDemoProgram"'
#project
'Project-ID (aka package) into which this class should be placed'
@@ -314,55 +315,66 @@
translateLabel: true
)
(LabelSpec
- label: 'Class Creation Wizard'
+ label: 'Class/Package Creation Wizard'
name: 'Label11'
layout: (LayoutFrame 100 0 10 0 390 0 50 0)
translateLabel: true
)
(LabelSpec
- label: 'Programming Language:'
- name: 'Label9'
- layout: (LayoutFrame 7 0 90 0 301 0 112 0)
- activeHelpKey: programmingLanguage
- translateLabel: true
- adjust: right
- )
- (ComboListSpec
- name: 'ComboList1'
- layout: (LayoutFrame 308 0 90 0 -32 1 112 0)
- activeHelpKey: programmingLanguage
- model: languageHolder
- comboList: listOfLanguages
- useIndex: true
- )
- (LabelSpec
label: 'Stereotype:'
name: 'Label13'
- layout: (LayoutFrame 10 0 143 0 180 0 165 0)
+ layout: (LayoutFrame 10 0 91 0 180 0 113 0)
activeHelpKey: stereotype
translateLabel: true
adjust: right
)
(ComboListSpec
name: 'ComboList3'
- layout: (LayoutFrame 190 0 142 0 -32 1 164 0)
+ layout: (LayoutFrame 190 0 91 0 -32 1 113 0)
activeHelpKey: stereotype
model: stereotypeHolder
comboList: listOfStereotypes
useIndex: true
)
(LabelSpec
+ label: 'Programming Language:'
+ name: 'Label9'
+ layout: (LayoutFrame 7 0 126 0 301 0 148 0)
+ activeHelpKey: programmingLanguage
+ visibilityChannel: isCreatingClassHolder
+ translateLabel: true
+ adjust: right
+ )
+ (ComboListSpec
+ name: 'ComboList1'
+ layout: (LayoutFrame 308 0 126 0 -32 1 148 0)
+ activeHelpKey: programmingLanguage
+ visibilityChannel: isCreatingClassHolder
+ model: languageHolder
+ comboList: listOfLanguages
+ useIndex: true
+ )
+ (LabelSpec
label: 'Class Name:'
name: 'Label1'
layout: (LayoutFrame 10 0 172 0 180 0 194 0)
activeHelpKey: className
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
+ (LabelSpec
+ label: '*'
+ name: 'Label14'
+ layout: (LayoutFrame 180 0 173 0 190 0 195 0)
+ visibilityChannel: isCreatingClassHolder
+ translateLabel: true
+ )
(InputFieldSpec
name: 'EntryField1'
layout: (LayoutFrame 190 0 172 0 -32 1 194 0)
activeHelpKey: className
+ visibilityChannel: isCreatingClassHolder
model: classNameHolder
acceptOnReturn: true
acceptOnTab: true
@@ -370,16 +382,11 @@
acceptOnPointerLeave: true
)
(LabelSpec
- label: '*'
- name: 'Label14'
- layout: (LayoutFrame 180 0 173 0 190 0 195 0)
- translateLabel: true
- )
- (LabelSpec
label: 'Superclass:'
name: 'Label2'
layout: (LayoutFrame 10 0 202 0 180 0 224 0)
activeHelpKey: superclass
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
@@ -387,15 +394,17 @@
name: 'ComboBox1'
layout: (LayoutFrame 190 0 202 0 -32 1 224 0)
activeHelpKey: superclass
+ visibilityChannel: isCreatingClassHolder
model: superclassNameHolder
acceptOnLostFocus: true
- comboList: listOfSuperclasses
+ comboList: listOfSuperclassesHolder
useIndex: false
)
(LabelSpec
label: '*'
name: 'Label15'
layout: (LayoutFrame 180 0 202 0 190 0 224 0)
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
)
(ActionButtonSpec
@@ -403,6 +412,7 @@
name: 'Button1'
layout: (LayoutFrame -22 1 202 0 -2 1 224 0)
activeHelpKey: chooseSuperclass
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
model: openSuperClassChooser
)
@@ -414,6 +424,13 @@
translateLabel: true
adjust: right
)
+ (LabelSpec
+ label: '*'
+ name: 'Label16'
+ layout: (LayoutFrame 180 0 245 0 190 0 267 0)
+ visibilityChannel: isCreatingPackageHolder
+ translateLabel: true
+ )
(ComboBoxSpec
name: 'ComboBox2'
layout: (LayoutFrame 190 0 242 0 -32 1 264 0)
@@ -438,6 +455,7 @@
name: 'Label4'
layout: (LayoutFrame 10 0 272 0 180 0 294 0)
activeHelpKey: namespace
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
@@ -445,6 +463,7 @@
name: 'ComboList2'
layout: (LayoutFrame 190 0 272 0 -32 1 294 0)
activeHelpKey: namespace
+ visibilityChannel: isCreatingClassHolder
model: nameSpaceHolder
comboList: listOfNamespaces
)
@@ -453,6 +472,7 @@
name: 'Button5'
layout: (LayoutFrame -22 1 272 0 -2 1 294 0)
activeHelpKey: namespaceChooser
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
model: openNamespaceChooser
)
@@ -461,6 +481,7 @@
name: 'Label12'
layout: (LayoutFrame 10 0 302 0 180 0 324 0)
activeHelpKey: category
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
@@ -468,6 +489,7 @@
name: 'ComboBox3'
layout: (LayoutFrame 190 0 302 0 -32 1 324 0)
activeHelpKey: category
+ visibilityChannel: isCreatingClassHolder
model: categoryHolder
acceptOnLostFocus: true
comboList: listOfCategories
@@ -477,6 +499,7 @@
name: 'Button6'
layout: (LayoutFrame -22 1 302 0 -2 1 324 0)
activeHelpKey: categoryChooser
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
model: openCategoryChooser
)
@@ -485,6 +508,7 @@
name: 'Label5'
layout: (LayoutFrame 10 0 342 0 180 0 364 0)
activeHelpKey: instanceVariableNames
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
@@ -492,6 +516,7 @@
name: 'EntryField4'
layout: (LayoutFrame 190 0 342 0 -32 1 364 0)
activeHelpKey: instanceVariableNames
+ visibilityChannel: isCreatingClassHolder
model: instVarNamesHolder
acceptOnReturn: true
acceptOnTab: true
@@ -503,6 +528,7 @@
name: 'Label6'
layout: (LayoutFrame 10 0 372 0 180 0 394 0)
activeHelpKey: classVariableNames
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
@@ -510,6 +536,7 @@
name: 'EntryField5'
layout: (LayoutFrame 190 0 372 0 -32 1 394 0)
activeHelpKey: classVariableNames
+ visibilityChannel: isCreatingClassHolder
model: classVarNamesHolder
acceptOnReturn: true
acceptOnTab: true
@@ -521,6 +548,7 @@
name: 'Label7'
layout: (LayoutFrame 10 0 402 0 180 0 424 0)
activeHelpKey: classInstVariableNames
+ visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
@@ -528,6 +556,7 @@
name: 'EntryField6'
layout: (LayoutFrame 190 0 402 0 -32 1 424 0)
activeHelpKey: classInstVariableNames
+ visibilityChannel: isCreatingClassHolder
model: classInstVarNamesHolder
acceptOnReturn: true
acceptOnTab: true
@@ -546,6 +575,7 @@
name: 'CheckBox1'
layout: (LayoutFrame 120 0 442 0 280 0 464 0)
activeHelpKey: createAccessors
+ visibilityChannel: isCreatingClassHolder
model: createAccessorsHolder
translateLabel: true
)
@@ -554,6 +584,7 @@
name: 'CheckBox6'
layout: (LayoutFrame 310 0 442 0 -36 1 464 0)
activeHelpKey: createInitialGUICode
+ enableChannel: canDisableTemplateCreationHolder
model: createInitialGUICodeHolder
translateLabel: true
)
@@ -562,6 +593,7 @@
name: 'CheckBox2'
layout: (LayoutFrame 120 0 472 0 0 1 494 0)
activeHelpKey: createInitializer
+ visibilityChannel: isCreatingClassHolder
model: createInitializerHolder
translateLabel: true
)
@@ -570,6 +602,7 @@
name: 'CheckBox5'
layout: (LayoutFrame 120 0 502 0 0 1 524 0)
activeHelpKey: createUpdateMethod
+ visibilityChannel: isCreatingClassHolder
model: createUpdateMethodHolder
translateLabel: true
)
@@ -578,6 +611,7 @@
name: 'CheckBox3'
layout: (LayoutFrame 120 0 532 0 0 1 554 0)
activeHelpKey: createRequiredMethods
+ visibilityChannel: isCreatingClassHolder
model: createRequiredMethodsHolder
translateLabel: true
)
@@ -756,34 +790,43 @@
!NewClassWizardDialog methodsFor:'actions'!
doAccept
+ self isCreatingPackageHolder value ifFalse:[
+ self doAcceptForNewClass ifFalse:[^ self].
+ ] ifTrue:[
+ self doAcceptForNewPackage ifFalse:[^ self].
+ ].
+ super doAccept.
+!
+
+doAcceptForNewClass
|newClassName superclassName superclass package answer|
newClassName := self classNameHolder value.
newClassName isEmptyOrNil ifTrue:[
- Dialog warn:'No Classname entered'.
- ^ self.
+ self warn:('No Classname entered').
+ ^ false.
].
newClassName isValidSmalltalkIdentifier ifFalse:[
- Dialog warn:'No valid Classname entered (must be alphaNumeric)'.
- ^ self.
+ self warn:'No valid Classname entered (must be alphaNumeric)'.
+ ^ false.
].
newClassName first isUppercase ifFalse:[
- Dialog warn:'No valid Classname entered (first Character must be uppercase)'.
- ^ self.
+ self warn:'No valid Classname entered (first Character must be uppercase)'.
+ ^ false.
].
superclassName := self superclassNameHolder value.
superclass := Smalltalk classNamed:superclassName.
superclass isNil ifTrue:[
(superclassName knownAsSymbol and:[Smalltalk includesKey:superclassName asSymbol]) ifFalse:[
- Dialog warn:'No such Superclass'.
- ^ self.
+ self warn:'No such Superclass'.
+ ^ false.
].
(Smalltalk at:superclassName asSymbol) isBehavior ifFalse:[
- Dialog warn:('"%1" refers to a global which is not a class (%2)'
- bindWith:superclassName
- with:superclass className).
- ^ self.
+ self warn:'"%1" refers to a global which is not a class (%2)'
+ with:superclassName
+ with:superclass className.
+ ^ false.
].
].
@@ -791,9 +834,9 @@
package notEmptyOrNil ifTrue:[
(package asPackageId module isEmptyOrNil
or:[ package asPackageId directory isEmptyOrNil ]) ifTrue:[
- Dialog warn:('The packageID "%1" must be of the form "module:directory" (for the source repository management)'
- bindWith:package).
- ^ self.
+ self warn:'The packageID "%1" must be of the form "module:directory" (for the source repository management)'
+ with:package.
+ ^ false.
].
(ProjectDefinition definitionClassForPackage:package) isNil ifTrue:[
@@ -808,7 +851,7 @@
values:#(guiApplicationType #nonGuiApplicationType #libraryType)
lines:nil cancel:false.
- answer == false ifTrue:[^ self].
+ answer == false ifTrue:[^ false].
ProjectDefinition
definitionClassForPackage:package
@@ -834,12 +877,55 @@
LastPackage := packageHolder value.
LastLanguage := self listOfLanguages at:(languageHolder value).
- super doAccept.
+ ^ true
"Modified: / 30-01-2011 / 09:33:28 / cg"
"Modified (comment): / 27-01-2012 / 14:53:02 / cg"
!
+doAcceptForNewPackage
+ |package projectType|
+
+ package := self packageHolder value.
+ package isEmptyOrNil ifTrue:[
+ self warn:'Missing packageID'.
+ ^ false.
+ ].
+
+ (package asPackageId module isEmptyOrNil
+ or:[ package asPackageId directory isEmptyOrNil ]) ifTrue:[
+ self warn:'The packageID "%1" must be of the form "module:directory" (for the source repository management)'
+ with:package.
+ ^ false.
+ ].
+
+ (ProjectDefinition definitionClassForPackage:package) notNil ifTrue:[
+ self warn:'Package already exists'.
+ ^ false.
+ ].
+ self stereotypeSymbol == #GUIProject ifTrue:[
+ projectType := ProjectDefinition guiApplicationType
+ ] ifFalse:[
+ self stereotypeSymbol == #NonGUIProject ifTrue:[
+ projectType := ProjectDefinition nonGuiApplicationType
+ ] ifFalse:[
+ self stereotypeSymbol == #LibraryProject ifTrue:[
+ projectType := ProjectDefinition libraryType
+ ] ifFalse:[
+ self warn:'oops - what kind of package is this'.
+ ^ false.
+ ]
+ ].
+ ].
+ ProjectDefinition
+ definitionClassForPackage:package
+ projectType:projectType
+ createIfAbsent:true.
+
+ self doCancel. "/ hack - for now.
+ ^ false.
+!
+
doCancel
self closeRequest.
!
@@ -929,11 +1015,24 @@
!
stereotypeChanged
- |stereoType|
+ |stereoTypeSymbol|
- stereoType := self listOfStereotypes at:(self stereotypeHolder value).
-
- stereoType = '<none>' ifTrue:[
+ self listOfSuperclassesHolder value:self listOfSuperclasses.
+
+ stereoTypeSymbol := self stereotypeSymbol.
+
+ (stereoTypeSymbol = #'GUIProject'
+ or:[ stereoTypeSymbol = #'NonGUIProject'
+ or:[ stereoTypeSymbol = #'LibraryProject' ]]) ifTrue:[
+ self isCreatingClassHolder value:false.
+ self canDisableTemplateCreationHolder value:false.
+ self createInitialGUICodeHolder value:true.
+ ] ifFalse:[
+ self isCreatingClassHolder value:true.
+ self canDisableTemplateCreationHolder value:true.
+ ].
+
+ stereoTypeSymbol = nil ifTrue:[
self createInitializerHolder value:true.
self createPrintMethodHolder value:false.
self createAccessorsHolder value:true.
@@ -941,26 +1040,26 @@
self createUpdateMethodHolder value:false.
].
- stereoType = 'Data Object' ifTrue:[
+ stereoTypeSymbol = #'DataObject' ifTrue:[
self superclassNameHolder value:'Model'.
self createAccessorsHolder value:true.
self createInitialGUICodeHolder value:false.
self createUpdateMethodHolder value:false.
].
-"/ stereoType = 'Enumeration' ifTrue:[
+"/ stereoTypeSymbol = #'Enumeration' ifTrue:[
"/ self superclassNameHolder value:'Enumeration'.
"/ self createInitializerHolder value:true.
"/ self createAccessorsHolder value:false.
"/ self createInitialGUICodeHolder value:false.
"/ ].
- stereoType = 'GUIApplication' ifTrue:[
+ stereoTypeSymbol = #'GUIApplication' ifTrue:[
self superclassNameHolder value:'ApplicationModel'.
self createInitializerHolder value:false.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:true.
].
- stereoType = 'SharedPool' ifTrue:[
+ stereoTypeSymbol = #'SharedPool' ifTrue:[
self superclassNameHolder value:'SharedPool'.
self createAccessorsHolder value:false.
self createInitializerHolder value:true.
@@ -968,7 +1067,7 @@
self createInitialGUICodeHolder value:false.
self createUpdateMethodHolder value:false.
].
- (stereoType startsWith: 'Startup') ifTrue:[
+ (stereoTypeSymbol = #'StartupClass') ifTrue:[
self superclassNameHolder value:'StandaloneStartup'.
self createAccessorsHolder value:false.
self createInitializerHolder value:true.
@@ -976,7 +1075,7 @@
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:false.
].
- stereoType = 'TestCase' ifTrue:[
+ stereoTypeSymbol = #'TestCase' ifTrue:[
self superclassNameHolder value:'TestCase'.
self createAccessorsHolder value:false.
self createInitializerHolder value:false.
@@ -984,7 +1083,7 @@
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:false.
].
- stereoType = 'WebService' ifTrue:[
+ stereoTypeSymbol = #'WebService' ifTrue:[
self superclassNameHolder value:'HTTPService'.
self createAccessorsHolder value:false.
self createInitializerHolder value:false.
@@ -992,7 +1091,7 @@
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:false.
].
- stereoType = 'Widget' ifTrue:[
+ stereoTypeSymbol = #'Widget' ifTrue:[
self superclassNameHolder value:'View'.
self createInitializerHolder value:false.
self createPrintMethodHolder value:false.
@@ -1001,10 +1100,30 @@
].
"Modified: / 27-01-2012 / 14:47:20 / cg"
+!
+
+stereotypeSymbol
+ |stereoTypeIndex stereoTypeSpec stereoTypeSymbol|
+
+ stereoTypeIndex := self stereotypeHolder value.
+ stereoTypeIndex isNil ifTrue:[^ nil].
+
+ stereoTypeSpec := self stereotypeSpec at:stereoTypeIndex.
+ stereoTypeSymbol := stereoTypeSpec first.
+ ^ stereoTypeSymbol
! !
!NewClassWizardDialog methodsFor:'aspects'!
+canDisableTemplateCreationHolder
+ <resource: #uiAspect>
+
+ canDisableTemplateCreationHolder isNil ifTrue:[
+ canDisableTemplateCreationHolder := true asValue.
+ ].
+ ^ canDisableTemplateCreationHolder.
+!
+
categoryHolder
<resource: #uiAspect>
@@ -1032,6 +1151,12 @@
^ classNameHolder.
!
+classNameVisibleHolder
+ <resource: #uiAspect>
+
+ ^ self isCreatingClassHolder
+!
+
classVarNamesHolder
<resource: #uiAspect>
@@ -1128,6 +1253,19 @@
^ instVarNamesHolder.
!
+isCreatingClassHolder
+ <resource: #uiAspect>
+
+ isCreatingClassHolder isNil ifTrue:[
+ isCreatingClassHolder := true asValue
+ ].
+ ^ isCreatingClassHolder.
+!
+
+isCreatingPackageHolder
+ ^ BlockValue forLogicalNot:self isCreatingClassHolder.
+!
+
languageHolder
<resource: #uiAspect>
@@ -1164,51 +1302,101 @@
^ Smalltalk allPackageIDs copy sort
!
+listOfStereotypeSymbols
+ "program readable list"
+ ^ self stereotypeSpec collect:[:each | each isNil ifTrue:[nil] ifFalse:[each first]].
+!
+
listOfStereotypes
- ^ #(
- '<none>'
-"/ ConsoleApplication
- 'Data Object'
-"/ Enumeration
- GUIApplication
- SharedPool
- TestCase
- 'StartupClass (main entry for standalone apps)'
- WebService
- Widget
- )
-
- "Modified: / 27-01-2012 / 14:46:39 / cg"
+ "human readable list"
+ ^ self stereotypeSpec collect:[:each | each isNil ifTrue:[nil] ifFalse:[each second]].
!
listOfSuperclasses
<resource: #uiAspect>
- |l superClassName|
+ |l superClassName
+ stereoTypeSymbol more
+ includeObject includeModel includeApplicationModel includeView
+ includeStandaloneStartup|
+ stereoTypeSymbol := self stereotypeSymbol.
+
+ includeObject := includeModel := includeApplicationModel := includeView := true.
+ includeStandaloneStartup := false.
+
+ stereoTypeSymbol = #'DataObject' ifTrue:[
+ includeApplicationModel := includeView := false.
+ ].
+ stereoTypeSymbol = #'Enumeration' ifTrue:[
+ includeModel := includeApplicationModel := includeView := false.
+ ].
+ stereoTypeSymbol = #'GUIApplication' ifTrue:[
+ includeModel := includeView := includeObject := false.
+ ].
+ stereoTypeSymbol = #'ConsoleProgram' ifTrue:[
+ includeModel := includeApplicationModel := includeView := includeObject := false.
+ includeStandaloneStartup := true.
+ ].
+ stereoTypeSymbol = #'SharedPool' ifTrue:[
+ includeModel := includeApplicationModel := includeView := includeObject := false.
+ ].
+ (stereoTypeSymbol = #'StartupClass') ifTrue:[
+ includeModel := includeApplicationModel := includeView := includeObject := false.
+ includeStandaloneStartup := true.
+ ].
+ stereoTypeSymbol = #'TestCase' ifTrue:[
+ includeModel := includeApplicationModel := includeView := includeObject := false.
+ ].
+ stereoTypeSymbol = #'WebService' ifTrue:[
+ includeModel := includeApplicationModel := includeView := includeObject := false.
+ ].
+ stereoTypeSymbol = #'Widget' ifTrue:[
+ includeModel := includeApplicationModel := includeObject := false.
+ ].
+
l := OrderedCollection new.
- (superClassName := self superclassNameHolder value) notNil ifTrue:[
- l add:superClassName.
- ].
- superClassName ~= 'Object' ifTrue:[
+ (includeObject and:[superClassName ~= 'Object']) ifTrue:[
l add:'Object'
].
- superClassName ~= 'Model' ifTrue:[
+ (includeModel and:[superClassName ~= 'Model']) ifTrue:[
l add:'Model'
].
- superClassName ~= 'View' ifTrue:[
+ (includeView and:[superClassName ~= 'View']) ifTrue:[
l add:'View'
].
- superClassName ~= 'ApplicationModel' ifTrue:[
+ (includeApplicationModel and:[superClassName ~= 'ApplicationModel']) ifTrue:[
l add:'ApplicationModel'
].
- l add:'-'.
- l addAll:(SystemBrowser visitedClassNamesHistory).
+
+ includeStandaloneStartup ifTrue:[
+ superClassName ~= 'StandaloneStartup' ifTrue:[
+ l add:'StandaloneStartup'
+ ].
+ superClassName ~= 'StandaloneStartupHeadless' ifTrue:[
+ l add:'StandaloneStartupHeadless'
+ ].
+ ].
+
+ more := UserPreferences systemBrowserClass visitedClassNamesHistory.
+ more notEmptyOrNil ifTrue:[
+ l add:'-'.
+ l addAll:more.
+ ].
^ l
"Created: / 30-01-2011 / 10:34:44 / cg"
!
+listOfSuperclassesHolder
+ <resource: #uiAspect>
+
+ listOfSuperclassesHolder isNil ifTrue:[
+ listOfSuperclassesHolder := self listOfSuperclasses asValue.
+ ].
+ ^ listOfSuperclassesHolder.
+!
+
nameSpaceHolder
<resource: #uiAspect>
@@ -1245,11 +1433,32 @@
^ stereotypeHolder.
!
+stereotypeSpec
+ ^ #(
+ ( nil '<none>' )
+ ( DataObject 'Data Object' )
+"/ ( Enumeration Enumeration )
+ ( GUIApplication 'GUI Application')
+ ( ConsoleProgram 'Console Program')
+ ( SharedPool 'Shared Pool')
+ ( TestCase TestCase )
+ ( WebService 'Web Service' )
+ ( Widget Widget)
+ ( StartupClass 'Startup Class (main entry for standalone apps)' )
+ nil
+ ( GUIProject 'GUI Project')
+ ( NonGUIProject 'Non-GUI Project')
+ ( LibraryProject 'Library Project')
+ )
+
+ "Modified: / 27-01-2012 / 14:46:39 / cg"
+!
+
superclassNameHolder
<resource: #uiAspect>
superclassNameHolder isNil ifTrue:[
- superclassNameHolder := (LastSuperclass ? 'Object') asValue.
+ superclassNameHolder := (LastSuperclass ? ''"'Object'") asValue.
].
^ superclassNameHolder.