#BUGFIX by cg
class: Tools::NavigationState
changed: #editModeAutoIndentHolder (send #autoIndentHolder instead of #autoIndent)
"{ Encoding: utf8 }"
"
COPYRIGHT (c) 2009 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
"{ Package: 'stx:libtool' }"
"{ NameSpace: Tools }"
SimpleDialog subclass:#NewClassWizardDialog
instanceVariableNames:'compilerProviderBlock createdClass languageHolder indexType
packageHolder classNameHolder instVarNamesHolder openClassChooser
superclassNameHolder createRequiredMethodsHolder
createPrintMethodHolder createAccessorsHolder
createUpdateMethodHolder createInitializerHolder
createInitialGUICodeHolder classInstVarNamesHolder
classVarNamesHolder nameSpaceHolder categoryHolder
stereotypeHolder isCreatingClassHolder listOfSuperclassesHolder
canDisableTemplateCreationHolder indexTypeHolder
createClassInitializerMethodHolder'
classVariableNames:'LastLanguage LastSuperclass LastPackage LastNamespace
LastCategory'
poolDictionaries:''
category:'Interface-Browsers-New'
!
!NewClassWizardDialog class methodsFor:'documentation'!
copyright
"
COPYRIGHT (c) 2009 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
!
documentation
"
documentation to be added.
[author:]
cg (cg@CG-PC)
[instance variables:]
[class variables:]
[see also:]
"
!
examples
"
Starting the application:
[exBegin]
Tools::NewClassDialog open
[exEnd]
more examples to be added:
[exBegin]
... add code fragment for
... executable example here ...
[exEnd]
"
! !
!NewClassWizardDialog class methodsFor:'help specs'!
helpSpec
"This resource specification was automatically generated
by the UIHelpTool of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIHelpTool may not be able to read the specification."
"
UIHelpTool openOnClass:Tools::NewClassDialog
"
<resource: #help>
^ super helpSpec addPairsFrom:#(
#chooseSuperclass
'Open a dialog for superclass selection'
#classInstVariableNames
'Special: instance variables of the CLASS object (separated by blanks)'
#stereotype
'Some often used class creation templates'
#className
'The name of the new class (without namespace prefix)'
#classVariableNames
'Special: class variables (separated by blanks)'
#createAccessors
'Create getters and setters for all instance variables'
#createInitializer
'Generate template code for initialized instances'
#createPrintMethod
'Create an initial print method template'
#createRequiredMethods
'Create all methods which have been declared as required by a superclass (subclass responsibility)'
#createUpdateMethod
'Create an initial update method template'
#createInitialGUICode
'Create initial template code (mostly useful for applications)'
#indexType
'Instances will have indexed instance variables'
#instanceVariableNames
'Instance variables (separated by spaces)'
#namespace
'Optional namespace in which this class is to be created (default: Smalltalk).\Notice: namespaces are used to avoid name conflicts, not for organization\(that is what categries are for)'
#namespaceChooser
'Open a dialog for namespace selection'
#package
'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'
#category
'Category into which the new class should be organized (in the browser)'
#categoryChooser
'Open a dialog for category selection'
#packageChooser
'Open a dialog for package selection'
#programmingLanguage
'Programming Language to use for code in this class'
#superclass
'Superclass of the new class'
)
"Modified: / 27-01-2012 / 14:41:44 / cg"
"Modified: / 22-09-2018 / 16:06:18 / Claus Gittinger"
! !
!NewClassWizardDialog class methodsFor:'image specs'!
wizardIcon
<resource: #image>
"This resource specification was automatically generated
by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the ImageEditor may not be able to read the specification."
"
self wizardIcon inspect
ImageEditor openOnClass:self andSelector:#wizardIcon
Icon flushCachedIcons"
^ Icon constantNamed:'Tools::NewClassDialog class wizardIcon'
ifAbsentPut:[
(Depth8Image new)
width:80;
height:80;
photometric:(#palette);
bitsPerSample:(#[ 8 ]);
samplesPerPixel:(1);
bits:(ByteArray
fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@_IX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M8@@@@@@@@@@@@@@@BVU@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NC^3 @@@@@@@@@@@@@@@IYT% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L/K2 @@@@@@@@@@@@@@%%ITZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@C,;N/^7,?+:N0@;N0@@@@@@@B-T%QT% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M3(:>_''
9.[&9.[''9>_Z7P@@@@@@@J5BT%Q(2P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C^4=O(9.[&9^W%9.[''4=+Z
9.0@@@@@2DIRZF!!>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CS4>[%9]7\7M7]7];S4=L@@@@@@@CHSIOH
UF!!T@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;N_&9]7\7M3[7]7^7]7(7P@@@@@@@@ALT%ITZG2V@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C(9.[]7M/]7]/(;^3]7.#,@@@@@@@@@D1@P%ITZEQR@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N#&9^W\7MO&6._,7-7^:N0@@@@@@@@@YTABT%QT_$H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C,9>#-9-/\3M;Z6=/\7];(@@@@@@@@@@A%PDARUEQ>%$H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@N#&9^#[6=/M4=+[6=7]9>$@@@@@@@@@@FU@PDIRUL"VZIX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@C,:N[]7M3[6=OL7M3\7];N3>$@@@@@@@@@]4A@PEIT2\"-P%H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N3''9-7\6=/[
6,3]7M3]9-[_@@@@@@@@@@A7PDA@T%JV_*5TI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4=;%7M3[6=/[4>[\7];''@@@@
@@@@@@@@@G\:PDABT%Q(ZL!!<T @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:MOS4=3\6>_Z6-. S6C&:N$@@@@@@@@@@@@@]3)L
N$ART%QT2N5@+P@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:MOS9]3];^#''6-,#N=;(@@@@@@@@@@@@@@BMN$1%PDIRUF"V;V!!R
@@@@@@@@@@@@@@@@@@@@@@C 50@@@@@@@@@@@@@@@@@@@@@@@@@@@@C(9=;]6=/-;]3[60YN#0@@@@@@@@@@@@@@@H42_C)@PEIR%$NV;RQB@L#H@@@@@@@@
@@@@@@@@@K2<@@@@8N$@@@@@@@@@@@@@@@@@@@@@@N3''9-7[6.[]7]/\GYQM@@@@@@@@@@@@@@@@#SI(N$A@P%JV;^7-$4ARZEI@PFT@@@@@@@@@@@@@-[VH
-]__70@@@@@@@@@@@@@@@@@@@@@@;N_&7M/[6=+[7M6N$T8@@@@@@@@@@@@@@@BMKT!!%PDABT&"/2J?-%"QR_EI@N''0@@@@@@@@@@NF5''[WP5=__@@@@@@@@
@@@@@@@@@@@@@@C,9>[\6=/[6-/\7\IO$P@@@@@@@@@@@@@@@H4-N#(:PDABUIY>%.7HP%I<P$@:$0@@@@@@@@@@1I*]-]CW6N$@@@@@@@@@@@@@@@@@@@@@
@N3&9-3[6=+[7M7^:@ZU+@@@@@@@@@@@@@A%L!! 2RC(:PDAR%*=(;Z=<%%I@PIL@@@@@@@@@@@B^!!I&66ND@@@@@@@@@@@@@@@@@@@@@@@@@;N[T3-/[6-3\
7-;,A$=N@@@@@@@@@@B-C0 WFCI_N#)@PDI<+YZV%%IBPDBS@@@@@@@@@@@@ZE.@ 0@@@@@@@@@@@@@@@@@@@@@@@@@@@@C,9,;J3-+[7M7^:@AOB#2,@@@@
@@@@HQ@OC102L$ :N$AL_IZSZDI@PDA$@@@@@@@@@@@@@M1;RZL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N3&5\+$6=/\7^_(@IPEXW$@@@@@@@@PDA@\HS(:
N$1LYW1<YUI@PDA@PL\@@@@@@@@@@@CH9*0=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;N[&7]3[7M7^:N0@@GKPO@@@@@@@@A@PDA@PGBD9NS$9N$A@PBQA
P0DL1:,@@@@@@@@@+9[-2F @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C,9>[]7M3]3,;,@@CP5;7V50@@@@@@+S$PDA@PDA@SH"H!!HQTV/]]:%+7H*:0@@@@@
@ERV;^/GZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N3''9-7]7]7J2 @@/-CW/[65@@@@@@@@@@CH2C4^FSMX 7M>ZV''P5=[P-,"T%@@@@EQ>;^7H7J)>@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N_&7]7]7-W''@@B>-]^54HP@@@@@@@@@@@@@S$5F[(NZ4G6.0;WP-\R,+IRT@@A>%.7-2ES[*YX@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@:N_^7]7^9> @@N*Z-XV2M@@@@@@@@@@@@@A9$XVC!!I&2-[V=:*OE:^7G%IUTUJ>/_"YBP-*O% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@C(9=O^7-;(;@@@@I6D[0(<@@@@@@@@@@@@@G%9%HR@!!I&Y2^6#-[WH+L"QUIZVP$IBP$IP6''*/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N#''7];^9> @
@@@@@K:DAYE(@@@@@@@@@@@@$VJQ%IVH!!JS-1:?-;^7H17-BP$IBP$IBP''OSPP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:N#''7-;'':P@@@@@@@HLY%S9T
@@@@@@@@@@CHX''&Q%J2++N6T1^7-;\#G^4IBP$IBP%J-#*E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C):N_^9>#,@@@@@@@@@E%&MTK%*G8@@@@@@@@@
XW&Q$YR,2IR,2N7H+J1#N$A@PDA@PDCS\4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N3(9>_'':@@@@@@@@@BJI1D^I^7-;YY(P4IBP6 ?XW!!9^YSG%IFT
+IRT%D,:PDA@PDA@N-I@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N''(9>_(@@@@@@@@@D\''A#0T;^7-;^7H+:>V%%HNM&E9%J2,^YFT$YFTPC)@PDA@
PC(:4#)_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;N#(:N @@@@@@@@@I2\B$QG-7Y[H%%QBP$IBT"D[A0NQ%IQ9XWQ!!$Y@:N#(:N#(:N(&4N*4@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:N#(:P@@@@@@@@@*J@6TON#ST%I@PDA@PDA@PD@ C!!*Q$YE!!S''&Q^#(:N#)%N#*L5U:S@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@C):N#)@@@@@@@@+B(*J#6T7K%@PDA@PDA@PC(:PDA@BW&Q$YE9$YA@N#(:N#)L#[?UL @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@N''(:N0@@@@@@@BKJ"(*B9KS(C(:SC(:N#(:N#(:PD@RG9BP$IBP$C(:N#(:RH6''1*YL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;N'');@@@
@@@@@HEEQTT/N-JHN$1<N#(:N#(:N#(:PC$NAIFP$IA#N#)_@@@@+]Y0N @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:^$@@@@@@@C*[UUUQS@:
4%0:N$!!HSE=7NSD:N''0:PBDOA9BP]S(:S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@LU+UUUUL%3NW'']_$0@@@@A%
LS(2N#(:N#([F6L:L''O\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C,@@@@@@@@/6-+Z6(:"+6MW< @@@@@@J42N#(:N#(:N#$[
NC)56-L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B%_61+Z4">#G\@@@@@@@@@7=>B!!GA\WGFI)N3+9.W@+P@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I=?_7=-!!-H@@@@@@@@@@@CG09"3.K''Z6-/&1:1SP$MT@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-7=?_3G^@@@@@@@@@@@@+TBVPDA@PDIBUEQBP$JV+2Z-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B7_7=?L @@@@@@@@@@@@A%SG1@PDA@%,#H+4IBP&#HI)X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@K>W%9\@@@@@@@@@@@@@@DA<PDA@PDJV2L"-P$H&P*=B_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@:+F0) @@@@@@@@@@@@BVYW1@PDA@P)[H2IYBP&"/%$I(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8^(@@@@@
@@@@@@@@2DA<YYY@PDIB%*>/UC=BUF!!>P%P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BSPFUR
%$A@P$JV+Z=TO$IBP''9BT @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C)%PDA@PDABP)ZV%$H.
O4IBZDIB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B-SFU@PDA@PDIB+YZVP",?P$IRP$H@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G]%T$A@PDA@%*7H%)YBJ#=BP%IBP@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N$1@PDA@PDAR+Z6V_DH''O4A@P$A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E=LN$A@PDA@P%I<_''9TP"\8PDA@PD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:N$A@PDA@PDA@ZG1<ZDH>JR9@PDA@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@C)LN$A@PDA@PDI(ZF!!TP#\)K$A@PDA@2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@:N#(:PDA@PIY@P&!!(ZDIBU4T*PD@:N#*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B-N#(:N#)@PDA@
PDIRUEQTP"Y,UTQ@N#(:N#*V@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#(:N#(:N$A@PDA@P$IRUDIBPW=V
UU(:N$1@N#(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IL:N#(:N#(:PDA@PDABP$IBP"YJ_61U LD9N#(2L,P@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AHN#(:N#(:N$ABPDA@P$IBP$H&(''=?[F1EKH#Z6]KR3U:S2@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BI3[-0NSH:N#(:PDA@PDA@P$IBY.I?_8FJ"9FQ]#H2N#H:%, @@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CHW3(:$-OL3Y-]N#(:PDA@PEB(7NKATYJR$)JU%YVV+Z6-+Z7H2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@N#)_"97L4]J[!!8%3"X:!!6.K#^TJR$)JR%YVU%YZ-+Z6-+\ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@IL:N#(:WX"\.[&:#(=PI"Y''^9JR$)JU%YVV+Z6-+Z6-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+YMLN#)@PDA@P%I;$)JR$)JR%YVU%*6-+Z6-1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N+H2J6-
+Z6-+Z6-+Z6-+Z7F2L#H2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C*2L#H2L#*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@a');
colorMapFromArray:#[ 0 0 0 0 90 210 36 30 50 36 30 130 36 30 140 36 60 80 36 60 100 60 30 140 60 30 180 60 60 180 60 90 100 60 90 130 60 150 220 84 30 80 84 60 180 84 60 210 84 60 220 84 90 130 84 90 210 84 90 220 84 120 210 84 120 220 84 150 220 96 30 220 96 30 255 96 60 50 96 60 140 96 60 210 96 60 220 96 90 100 96 90 130 96 90 140 96 90 210 96 90 220 96 90 255 96 120 140 96 120 255 96 150 220 96 150 255 120 0 80 120 0 100 120 30 80 120 30 100 120 30 130 120 30 140 120 30 255 120 60 140 120 60 180 120 60 210 120 60 220 120 60 255 120 90 50 120 90 80 120 90 100 120 90 140 120 90 180 120 90 210 120 90 220 120 90 255 120 120 100 120 120 130 120 120 140 120 120 210 120 120 220 120 120 255 120 150 220 120 150 255 120 180 255 144 30 80 144 30 100 144 60 50 144 90 130 144 90 255 144 120 140 144 120 180 144 120 220 144 120 255 144 150 130 144 150 140 144 150 180 144 150 210 144 150 220 144 150 255 144 180 220 144 180 255 156 30 100 156 60 100 156 60 130 156 90 50 156 90 130 156 90 180 156 120 140 156 120 180 156 120 210 156 120 220 156 120 255 156 150 100 156 150 140 156 150 180 156 150 210 156 150 220 156 150 255 156 180 210 156 180 220 156 180 255 156 210 255 180 30 80 180 30 100 180 60 100 180 60 130 180 90 50 180 120 100 180 120 140 180 120 180 180 150 130 180 150 140 180 150 180 180 150 210 180 150 220 180 150 255 180 180 140 180 180 180 180 180 210 180 180 220 180 180 255 180 210 220 180 210 255 204 60 100 204 90 50 204 90 140 204 120 50 204 120 80 204 120 100 204 120 130 204 120 140 204 150 100 204 150 130 204 150 140 204 150 180 204 150 210 204 150 220 204 150 255 204 180 130 204 180 140 204 180 180 204 180 210 204 180 220 204 180 255 204 210 210 204 210 220 204 210 255 216 60 100 216 120 0 216 120 100 216 120 130 216 150 50 216 150 100 216 150 130 216 150 140 216 150 180 216 180 50 216 180 100 216 180 130 216 180 140 216 180 180 216 180 210 216 180 220 216 180 255 216 210 130 216 210 140 216 210 180 216 210 210 216 210 220 216 210 255 216 240 220 216 240 255 240 60 100 240 90 130 240 120 130 240 150 0 240 150 80 240 150 130 240 150 140 240 150 180 240 180 30 240 180 50 240 180 80 240 180 100 240 180 130 240 180 140 240 180 180 240 180 210 240 210 80 240 210 100 240 210 140 240 210 180 240 210 210 240 210 220 240 210 255 240 240 220 240 240 255 240 255 255 252 90 30 252 120 30 252 150 0 252 150 30 252 150 50 252 150 80 252 150 130 252 180 0 252 180 30 252 180 50 252 180 80 252 180 100 252 180 130 252 180 140 252 180 180 252 210 30 252 210 50 252 210 80 252 210 100 252 210 130 252 210 140 252 210 180 252 210 210 252 210 220 252 240 50 252 240 80 252 240 100 252 240 130 252 240 140 252 240 180 252 240 210 252 240 220 252 240 255 252 255 210 252 255 220 252 255 255 ];
mask:((ImageMask new)
width:80;
height:80;
bits:(ByteArray
fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0@@@@@@@@@@P@L@@@@@@@@@@\@C @@@@@@
@@@C @<@@@@@@@@@O>0O @@@@@@@@_?<C<@@@@@@@@O??0?@@@@@@@@A??0O8@@@@@@@@??<A?@@@@@@@@O??@_8@@@@@@@C??0G>@@@@@@@A??8A?0@@@@@
@@_?>@_>@@@@@@@O??0G?0@@@@@@C??8A?<@@@@@@@??8@_? @@@@@@??>@G?<@@B@@@G??@A??@@A @@A?? @_?;@@X0@@_?8@G??>@G<@@G?>@A???0C?@
@A?? @_??<@?0@@_?<@O??>@O0@@G??@O???@G @@A?=8G???@C0@@@_?^A???0A8@@@G?3 _??>@>@@@A?9<G???0_ @@@_<?@O??<_8@@@C?O0@???O>@@
@@?3<@O???? @@@O<_@C????8@@@C>C8@????<@@@@? _@O????@@@@O8C>@????0@@@C<A??????<@@@@_@_??????@@@@G0G??????0@@@@<A??????8@@
@@O@??????<@@@@C0O??????@@@@@<C?????G @@@@FA????? @@@@@@ _?!!??8@@@@@@HG?0_?>@@@@@@@A?0G?? @@@@@@@_0A??8@@@@@@@G8@???@@@@
@@@A<@O??0@@@@@@@^@C??<@@@@@@@G A???@@@@@@@@0@???0@@@@@@@@@O??<@@@@@@@@@C???@@@@@@@@@A???0@@@@@@@@@_??<@@@@@@@@@G???@@@@
@@@@@C???0@@@@@@@@A???<@@@@@@@@@_??? @@@@@@@@O???8@@@@@@@@O????@@@@@@@@G????0@@@@@@@C????>@@@@@@@A?????<@@@@@@A?????>@@@
@@@A?????? @@@@@@G?????0@@@@@@@_????8@@@@@@@@????<@@@@@@@@@_??<@@@@@@@@@@A?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b');
yourself);
yourself
]
! !
!NewClassWizardDialog class methodsFor:'interface specs'!
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:Tools::NewClassWizardDialog andSelector:#windowSpec
Tools::NewClassWizardDialog new openInterface:#windowSpec
Tools::NewClassWizardDialog open
"
<resource: #canvas>
^
#(FullSpec
name: windowSpec
uuid: '9a1f999e-be6f-11e8-b6ed-b8f6b1108e05'
window:
(WindowSpec
label: 'Class Creation Wizard'
name: 'Class Creation Wizard'
uuid: 'f1a8929c-be47-11e8-b6ed-b8f6b1108e05'
min: (Point 10 10)
bounds: (Rectangle 0 0 592 639)
)
component:
(SpecCollection
collection: (
(LabelSpec
label: 'wizardIcon'
name: 'Label10'
layout: (LayoutFrame 0 0 0 0 100 0 90 0)
uuid: 'f1a89490-be47-11e8-b6ed-b8f6b1108e05'
hasCharacterOrientedLabel: false
translateLabel: true
)
(LabelSpec
label: 'Class/Package Creation Wizard'
name: 'Label11'
layout: (LayoutFrame 100 0 10 0 390 0 50 0)
uuid: 'f1a89634-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
)
(LabelSpec
label: 'Stereotype:'
name: 'Label13'
layout: (LayoutFrame 10 0 91 0 180 0 117 0)
activeHelpKey: stereotype
uuid: 'f1a89724-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
adjust: right
)
(ComboListSpec
name: 'ComboList3'
layout: (LayoutFrame 190 0 91 0 -32 1 117 0)
activeHelpKey: stereotype
uuid: 'f1a89814-be47-11e8-b6ed-b8f6b1108e05'
model: stereotypeHolder
comboList: listOfStereotypes
useIndex: true
)
(LabelSpec
label: 'Programming Language:'
name: 'Label9'
layout: (LayoutFrame 7 0 126 0 301 0 152 0)
activeHelpKey: programmingLanguage
uuid: 'f1a8be7a-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(ComboListSpec
name: 'ComboList1'
layout: (LayoutFrame 308 0 126 0 -32 1 152 0)
activeHelpKey: programmingLanguage
uuid: 'f1a8bf92-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: languageHolder
comboList: listOfLanguages
useIndex: true
)
(LabelSpec
label: 'Class Name:'
name: 'Label1'
layout: (LayoutFrame 10 0 172 0 180 0 198 0)
activeHelpKey: className
uuid: 'f1a8c064-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(LabelSpec
label: '*'
name: 'Label14'
layout: (LayoutFrame 180 0 173 0 190 0 195 0)
uuid: 'f1a8c1a4-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
)
(InputFieldSpec
name: 'EntryField1'
layout: (LayoutFrame 190 0 172 0 -32 1 198 0)
activeHelpKey: className
uuid: 'f1a8c294-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: classNameHolder
acceptOnReturn: true
acceptOnTab: true
acceptOnLostFocus: true
acceptOnPointerLeave: true
)
(LabelSpec
label: 'Superclass:'
name: 'Label2'
layout: (LayoutFrame 10 0 202 0 180 0 228 0)
activeHelpKey: superclass
uuid: 'f1a8c4ec-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(LabelSpec
label: '*'
name: 'Label15'
layout: (LayoutFrame 180 0 202 0 190 0 224 0)
uuid: 'f1a8c5dc-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
)
(ComboBoxSpec
name: 'ComboBox1'
layout: (LayoutFrame 190 0 202 0 -32 1 228 0)
activeHelpKey: superclass
uuid: 'f1a8c6b8-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: superclassNameHolder
acceptOnLostFocus: true
comboList: listOfSuperclassesHolder
useIndex: false
)
(ActionButtonSpec
label: '...'
name: 'Button1'
layout: (LayoutFrame -22 1 202 0 -2 1 228 0)
activeHelpKey: chooseSuperclass
uuid: 'f1a8c866-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
model: openSuperClassChooser
)
(LabelSpec
label: 'Package ID:'
name: 'Label3'
layout: (LayoutFrame 10 0 242 0 180 0 268 0)
activeHelpKey: package
uuid: 'f1a8c9f6-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
adjust: right
)
(LabelSpec
label: '*'
name: 'Label16'
layout: (LayoutFrame 180 0 245 0 190 0 267 0)
uuid: 'f1a8cae6-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingPackageHolder
translateLabel: true
)
(ComboBoxSpec
name: 'ComboBox2'
layout: (LayoutFrame 190 0 242 0 -32 1 268 0)
activeHelpKey: package
uuid: 'f1a8cbb8-be47-11e8-b6ed-b8f6b1108e05'
model: packageHolder
acceptOnReturn: true
acceptOnTab: true
acceptOnLostFocus: true
acceptOnPointerLeave: true
comboList: listOfPackages
)
(ActionButtonSpec
label: '...'
name: 'Button4'
layout: (LayoutFrame -22 1 242 0 -2 1 268 0)
activeHelpKey: packageChooser
uuid: 'f1a8cd3e-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
model: openPackageChooser
)
(LabelSpec
label: 'Namespace:'
name: 'Label4'
layout: (LayoutFrame 10 0 272 0 180 0 298 0)
activeHelpKey: namespace
uuid: 'f1a8ce60-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(ComboListSpec
name: 'ComboList2'
layout: (LayoutFrame 190 0 272 0 -32 1 298 0)
activeHelpKey: namespace
uuid: 'f1a8cffa-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: nameSpaceHolder
comboList: listOfNamespaces
)
(ActionButtonSpec
label: '...'
name: 'Button5'
layout: (LayoutFrame -22 1 272 0 -2 1 298 0)
activeHelpKey: namespaceChooser
uuid: 'f1a8d0ea-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
model: openNamespaceChooser
)
(LabelSpec
label: 'Category:'
name: 'Label12'
layout: (LayoutFrame 10 0 302 0 180 0 328 0)
activeHelpKey: category
uuid: 'f1a8d266-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(ComboBoxSpec
name: 'ComboBox3'
layout: (LayoutFrame 190 0 302 0 -32 1 328 0)
activeHelpKey: category
uuid: 'f1a8d34c-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: categoryHolder
acceptOnLostFocus: true
comboList: listOfCategories
)
(ActionButtonSpec
label: '...'
name: 'Button6'
layout: (LayoutFrame -22 1 302 0 -2 1 328 0)
activeHelpKey: categoryChooser
uuid: 'f1a8d4c8-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
model: openCategoryChooser
)
(LabelSpec
label: 'Instance Variables:'
name: 'Label5'
layout: (LayoutFrame 10 0 342 0 180 0 368 0)
activeHelpKey: instanceVariableNames
uuid: 'f1a8d5e0-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(InputFieldSpec
name: 'EntryField4'
layout: (LayoutFrame 190 0 342 0 -32 1 368 0)
activeHelpKey: instanceVariableNames
uuid: 'f1a8d6bc-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: instVarNamesHolder
acceptOnReturn: true
acceptOnTab: true
acceptOnLostFocus: true
acceptOnPointerLeave: true
)
(LabelSpec
label: 'Indexed:'
name: 'Label17'
layout: (LayoutFrame 10 0 372 0 180 0 398 0)
activeHelpKey: indexType
uuid: 'f1a8d89c-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(ComboListSpec
name: 'ComboList4'
layout: (LayoutFrame 190 0 372 0 -32 1 398 0)
activeHelpKey: indexType
uuid: 'f1a8da04-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: indexTypeHolder
comboList: indexTypeNameList
useIndex: true
)
(LabelSpec
label: 'Class Variables:'
name: 'Label6'
layout: (LayoutFrame 10 0 402 0 180 0 428 0)
activeHelpKey: classVariableNames
uuid: 'f1a8dcca-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(InputFieldSpec
name: 'EntryField5'
layout: (LayoutFrame 190 0 402 0 -32 1 428 0)
activeHelpKey: classVariableNames
uuid: 'f1a8dea0-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: classVarNamesHolder
acceptOnReturn: true
acceptOnTab: true
acceptOnLostFocus: true
acceptOnPointerLeave: true
)
(LabelSpec
label: 'Class InstVars:'
name: 'Label7'
layout: (LayoutFrame 10 0 432 0 180 0 458 0)
activeHelpKey: classInstVariableNames
uuid: 'f1a8e260-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
translateLabel: true
adjust: right
)
(InputFieldSpec
name: 'EntryField6'
layout: (LayoutFrame 190 0 432 0 -32 1 458 0)
activeHelpKey: classInstVariableNames
uuid: 'f1a8e3e6-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: classInstVarNamesHolder
acceptOnReturn: true
acceptOnTab: true
acceptOnLostFocus: true
acceptOnPointerLeave: true
)
(LabelSpec
label: 'Create:'
name: 'Label8'
layout: (LayoutFrame 10 0 472 0 110 0 494 0)
uuid: 'f1a8e56c-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
adjust: right
)
(CheckBoxSpec
label: 'Initial Template Code'
name: 'CheckBox6'
layout: (LayoutFrame 120 0 472 0 312 0 494 0)
activeHelpKey: createInitialGUICode
uuid: 'f1a8e79c-be47-11e8-b6ed-b8f6b1108e05'
enableChannel: canDisableTemplateCreationHolder
model: createInitialGUICodeHolder
translateLabel: true
)
(CheckBoxSpec
label: 'Initializer'
name: 'CheckBox2'
layout: (LayoutFrame 120 0 497 0 -280 1 519 0)
activeHelpKey: createInitializer
uuid: 'f1a8e88c-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: createInitializerHolder
translateLabel: true
)
(CheckBoxSpec
label: 'Accessors'
name: 'CheckBox1'
layout: (LayoutFrame 310 0 497 0 0 1 519 0)
activeHelpKey: createAccessors
uuid: 'f1a8e666-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: createAccessorsHolder
translateLabel: true
)
(CheckBoxSpec
label: 'Update Method'
name: 'CheckBox5'
layout: (LayoutFrame 120 0 522 0 -280 1 544 0)
activeHelpKey: createUpdateMethod
uuid: 'f1a8e968-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: createUpdateMethodHolder
translateLabel: true
)
(CheckBoxSpec
label: 'Print Method'
name: 'CheckBox4'
layout: (LayoutFrame 310 0 522 0 0 1 544 0)
activeHelpKey: createPrintMethod
uuid: 'f1a8eb20-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: false
model: createPrintMethodHolder
translateLabel: true
)
(CheckBoxSpec
label: 'Class Initializer'
name: 'CheckBox7'
layout: (LayoutFrame 120 0 547 0 0 1 569 0)
activeHelpKey: createRequiredMethods
uuid: 'f1a8ea44-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: createClassInitializerMethodHolder
translateLabel: true
)
(CheckBoxSpec
label: 'Required Methods (Subclass responsibilities)'
name: 'CheckBox3'
layout: (LayoutFrame 120 0 572 0 0 1 594 0)
activeHelpKey: createRequiredMethods
uuid: 'f1a8ea44-be47-11e8-b6ed-b8f6b1108e05'
visibilityChannel: isCreatingClassHolder
model: createRequiredMethodsHolder
translateLabel: true
)
(HorizontalPanelViewSpec
name: 'HorizontalPanel1'
layout: (LayoutFrame 0 0 -36 1 0 1 0 1)
uuid: 'f1a8ebfc-be47-11e8-b6ed-b8f6b1108e05'
horizontalLayout: center
verticalLayout: center
horizontalSpace: 3
verticalSpace: 3
reverseOrderIfOKAtLeft: true
component:
(SpecCollection
collection: (
(ActionButtonSpec
label: 'Cancel'
name: 'Button3'
uuid: 'f1a8edd2-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
model: doCancel
extent: (Point 125 26)
)
(ActionButtonSpec
label: 'OK'
name: 'Button2'
uuid: 'f1a8ef08-be47-11e8-b6ed-b8f6b1108e05'
translateLabel: true
model: doAccept
extent: (Point 125 26)
)
)
)
)
)
)
)
! !
!NewClassWizardDialog methodsFor:'accessing'!
compilerProviderBlock:aBlock
"/ see NewSystemBrowser on how to use this
compilerProviderBlock := aBlock.
!
createdClass
^ createdClass
!
language
|languageName languageClass|
languageName := self listOfLanguages at:(languageHolder value).
languageClass := ProgrammingLanguage allSubclasses
detect:[:l | l instance name = languageName]
ifNone:[ SmalltalkLanguage].
^ languageClass instance
"Created: / 30-01-2011 / 09:35:19 / cg"
"Modified: / 30-01-2011 / 10:40:35 / cg"
! !
!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:[
self warn:('No Classname entered').
^ false.
].
newClassName isValidSmalltalkIdentifier ifFalse:[
self warn:'No valid Classname entered (must be alphaNumeric)'.
^ false.
].
newClassName isLowercaseFirst ifTrue:[
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:[
self warn:'No such Superclass'.
^ false.
].
(Smalltalk at:superclassName asSymbol) isBehavior ifFalse:[
self warn:'"%1" refers to a global which is not a class (%2)'
with:superclassName
with:superclass className.
^ false.
].
].
package := self packageHolder value.
package notEmptyOrNil ifTrue:[
(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) isNil ifTrue:[
answer := Dialog
choose:('Create a new ProjectDefinition for "%1" ?
This can also be done later.
Create the definition as:
' bindWith:package)
fromList:nil values:nil
buttons:#('GUI Application' 'non-GUI Application' 'Library')
values:#(guiApplicationType #nonGuiApplicationType #libraryType)
lines:nil cancel:false.
answer == false ifTrue:[^ false].
ProjectDefinition
definitionClassForPackage:package
projectType: (ProjectDefinition perform:answer)
createIfAbsent:true.
].
].
"/ done in caller (for undo handling...)
"/ createdClass :=
"/ superclass
"/ subclass: newClassName asSymbol
"/ instanceVariableNames: instVarNamesHolder value
"/ classVariableNames: classVarNamesHolder value
"/ poolDictionaries: ' '
"/ category: '* as yet uncategorized *'.
"/
"/ classInstVarNamesHolder value notEmptyOrNil ifTrue:[
"/ createdClass class instanceVariableNames: classInstVarNamesHolder value
"/ ].
LastSuperclass := superclassName.
LastCategory := categoryHolder value.
LastPackage := packageHolder value.
LastLanguage := self listOfLanguages at:(languageHolder value).
^ true
"Modified: / 22-06-2017 / 06:55:24 / cg"
"Modified: / 22-09-2018 / 15:50:30 / Claus Gittinger"
!
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.
!
openCategoryChooser
|category|
category := Dialog
choose:(resources string:'Select a Category')
fromList:(Smalltalk allClassCategories asSortedCollection)
lines:15.
category isNil ifTrue:[^ self].
self categoryHolder value:category.
!
openNamespaceChooser
"(mis)use the browser's namespace dialog"
|browser namespaceString existing|
(browser := masterApplication) isNil ifTrue:[
browser := Tools::NewSystemBrowser basicNew
].
namespaceString := browser
askForNameSpace:(resources string:'Select or Enter a Namespace')
title:(resources string:'Namespace selection')
initialText:'Smalltalk'.
namespaceString isNil ifTrue:[^ self].
existing := Smalltalk classNamed:namespaceString.
(existing notNil and:[existing isNameSpace]) ifTrue:[
"/ exists
] ifFalse:[
(existing notNil) ifTrue:[
Dialog warn:('"%1" is already defined, but not a namespace' bindWith:namespaceString).
^ self
].
].
Class withoutUpdatingChangesDo:[
NameSpace name:namespaceString.
].
self nameSpaceHolder value:namespaceString.
"Modified: / 19-08-2011 / 01:00:52 / cg"
!
openPackageChooser
"(mis)use the browser's package dialog"
|browser package|
(browser := masterApplication) isNil ifTrue:[
browser := Tools::NewSystemBrowser basicNew
].
package := browser askForProject:(resources string:'Select or Enter a Package-ID').
package isNil ifTrue:[^ self].
self packageHolder value:package.
!
openSuperClassChooser
"(mis)use the browser's class dialog"
|browser class classValid classNameOrNil|
(browser := masterApplication) isNil ifTrue:[
browser := Tools::NewSystemBrowser basicNew
].
classValid := false.
[ classValid ] whileFalse:[
classNameOrNil := browser
askForClassToSearch:nil
single:true
msgTail:(resources string:'Select a Class')
resources:nil
thenDo:nil.
classNameOrNil isNil ifTrue:[^ self].
class := Smalltalk classNamed:classNameOrNil.
classValid := class notNil
].
self superclassNameHolder value:class name.
!
stereotypeChanged
|stereoTypeSymbol|
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 isNil ifTrue:[
self createInitializerHolder value:true.
self createPrintMethodHolder value:false.
self createAccessorsHolder value:true.
self createInitialGUICodeHolder value:false.
self createUpdateMethodHolder value:false.
].
stereoTypeSymbol = #'DataObject' ifTrue:[
self superclassNameHolder value:'Model'.
self createAccessorsHolder value:true.
self createInitialGUICodeHolder value:false.
self createUpdateMethodHolder value:false.
].
"/ stereoTypeSymbol = #'Enumeration' ifTrue:[
"/ self superclassNameHolder value:'Enumeration'.
"/ self createInitializerHolder value:true.
"/ self createAccessorsHolder value:false.
"/ self createInitialGUICodeHolder value:false.
"/ ].
stereoTypeSymbol = #'GUIApplication' ifTrue:[
self superclassNameHolder value:'ApplicationModel'.
self createInitializerHolder value:false.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:true.
].
stereoTypeSymbol = #'SharedPool' ifTrue:[
self superclassNameHolder value:'SharedPool'.
self createAccessorsHolder value:false.
self createInitializerHolder value:true.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:false.
self createUpdateMethodHolder value:false.
].
(stereoTypeSymbol = #'StartupClass') ifTrue:[
self superclassNameHolder value:'StandaloneStartup'.
self createAccessorsHolder value:false.
self createInitializerHolder value:true.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:false.
].
stereoTypeSymbol = #'TestCase' ifTrue:[
self superclassNameHolder value:'TestCase'.
self createAccessorsHolder value:false.
self createInitializerHolder value:false.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:false.
].
stereoTypeSymbol = #'WebService' ifTrue:[
self superclassNameHolder value:'HTTPService'.
self createAccessorsHolder value:false.
self createInitializerHolder value:false.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:true.
self createUpdateMethodHolder value:false.
].
stereoTypeSymbol = #'Widget' ifTrue:[
self superclassNameHolder value:'View'.
self createInitializerHolder value:false.
self createPrintMethodHolder value:false.
self createInitialGUICodeHolder value:false.
self createUpdateMethodHolder value:true.
].
"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>
categoryHolder isNil ifTrue:[
categoryHolder := LastCategory asValue.
].
^ categoryHolder.
!
classInstVarNamesHolder
<resource: #uiAspect>
classInstVarNamesHolder isNil ifTrue:[
classInstVarNamesHolder := ValueHolder new.
].
^ classInstVarNamesHolder.
!
classNameHolder
<resource: #uiAspect>
classNameHolder isNil ifTrue:[
classNameHolder := ValueHolder new.
].
^ classNameHolder.
!
classNameVisibleHolder
<resource: #uiAspect>
^ self isCreatingClassHolder
!
classVarNamesHolder
<resource: #uiAspect>
classVarNamesHolder isNil ifTrue:[
classVarNamesHolder := ValueHolder new.
].
^ classVarNamesHolder.
!
createAccessors
^ self createAccessorsHolder value
!
createAccessorsHolder
<resource: #uiAspect>
createAccessorsHolder isNil ifTrue:[
createAccessorsHolder := true asValue.
].
^ createAccessorsHolder.
!
createClassInitializerMethod
^ self createClassInitializerMethodHolder value
"Created: / 22-09-2018 / 15:59:19 / Claus Gittinger"
!
createClassInitializerMethodHolder
<resource: #uiAspect>
createClassInitializerMethodHolder isNil ifTrue:[
createClassInitializerMethodHolder := true asValue.
].
^ createClassInitializerMethodHolder.
"Created: / 22-09-2018 / 15:58:58 / Claus Gittinger"
!
createInitialGUICode
^ self createInitialGUICodeHolder value
!
createInitialGUICodeHolder
<resource: #uiAspect>
createInitialGUICodeHolder isNil ifTrue:[
createInitialGUICodeHolder := true asValue.
].
^ createInitialGUICodeHolder.
!
createInitializer
^ self createInitializerHolder value
!
createInitializerHolder
<resource: #uiAspect>
createInitializerHolder isNil ifTrue:[
createInitializerHolder := true asValue.
].
^ createInitializerHolder.
!
createPrintMethod
^ self createPrintMethodHolder value
!
createPrintMethodHolder
<resource: #uiAspect>
createPrintMethodHolder isNil ifTrue:[
createPrintMethodHolder := true asValue.
].
^ createPrintMethodHolder.
!
createRequiredMethods
^ self createRequiredMethodsHolder value
!
createRequiredMethodsHolder
<resource: #uiAspect>
createRequiredMethodsHolder isNil ifTrue:[
createRequiredMethodsHolder := true asValue.
].
^ createRequiredMethodsHolder.
!
createUpdateMethod
^ self createUpdateMethodHolder value
!
createUpdateMethodHolder
<resource: #uiAspect>
createUpdateMethodHolder isNil ifTrue:[
createUpdateMethodHolder := true asValue.
].
^ createUpdateMethodHolder.
!
indexType
^ (self indexTypeList at:(self indexTypeHolder value)) at:2
"Created: / 22-09-2018 / 13:04:40 / Claus Gittinger"
!
indexTypeHolder
<resource: #uiAspect>
indexTypeHolder isNil ifTrue:[
indexTypeHolder := 1 asValue.
"/ indexTypeHolder onChangeSend:#indexTypeChanged to:self.
].
^ indexTypeHolder.
"Created: / 22-09-2018 / 10:46:29 / Claus Gittinger"
!
indexTypeList
<resource: #uiAspect>
^ #(
"/ variable words pointers
('Not Indexed' false false false)
('Pointers' #pointer false true)
('Bytes' #byte false false)
('16bit Unsigned Integers' #word true false)
('16bit Signed Integers' #signedWord false false)
('32bit Unsigned Integers' #long false false)
('32bit Signed Integers' #signedLong false false)
('64bit Unsigned Integers' #longLong false false)
('64bit Signed Integers' #signedLongLong false false)
('Floats' #float false false)
('Doubles' #double false false)
)
"Created: / 22-09-2018 / 11:03:31 / Claus Gittinger"
"Modified: / 22-09-2018 / 15:36:55 / Claus Gittinger"
!
indexTypeNameList
<resource: #uiAspect>
^ self indexTypeList collectColumn:1
"Created: / 22-09-2018 / 11:16:31 / Claus Gittinger"
"Modified: / 22-09-2018 / 12:54:03 / Claus Gittinger"
!
instVarNamesHolder
<resource: #uiAspect>
instVarNamesHolder isNil ifTrue:[
instVarNamesHolder := ValueHolder new.
].
^ instVarNamesHolder.
!
isCreatingClassHolder
<resource: #uiAspect>
isCreatingClassHolder isNil ifTrue:[
isCreatingClassHolder := true asValue
].
^ isCreatingClassHolder.
!
isCreatingPackageHolder
^ BlockValue forLogicalNot:self isCreatingClassHolder.
!
languageHolder
<resource: #uiAspect>
|idx|
languageHolder isNil ifTrue:[
(self listOfLanguages size == 1) ifTrue:[
idx := 1.
] ifFalse:[
idx := self listOfLanguages indexOf:(LastLanguage ? 'Smalltalk').
].
languageHolder := idx asValue.
].
^ languageHolder.
!
listOfCategories
^ Smalltalk allClassCategories asNewOrderedCollection sort
!
listOfLanguages
^ ProgrammingLanguage allSubclasses collect:[:l | l instance name].
!
listOfNamespaces
^ ((NameSpace allNameSpacesIn:Smalltalk)
asOrderedCollection
collect:[:ns | ns name])
sort
!
listOfPackages
^ Smalltalk allPackageIDs copy sort
!
listOfStereotypeSymbols
"program readable list"
^ self stereotypeSpec collect:[:each | each isNil ifTrue:[nil] ifFalse:[each first]].
!
listOfStereotypes
"human readable list"
^ self stereotypeSpec collect:[:each | each isNil ifTrue:[nil] ifFalse:[each second]].
!
listOfSuperclasses
<resource: #uiAspect>
|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.
(includeObject and:[superClassName ~= 'Object']) ifTrue:[
l add:'Object'
].
(includeModel and:[superClassName ~= 'Model']) ifTrue:[
l add:'Model'
].
(includeView and:[superClassName ~= 'View']) ifTrue:[
l add:'View'
].
(includeApplicationModel and:[superClassName ~= 'ApplicationModel']) ifTrue:[
l add:'ApplicationModel'
].
includeStandaloneStartup ifTrue:[
superClassName ~= 'StandaloneStartup' ifTrue:[
l add:'StandaloneStartup'
].
superClassName ~= 'StandaloneStartupHeadless' ifTrue:[
l add:'StandaloneStartupHeadless'
].
].
more := SystemBrowser default visitedClassNamesHistory.
more notEmptyOrNil ifTrue:[
l add:'-'.
l addAll:more.
].
^ l
"Created: / 30-01-2011 / 10:34:44 / cg"
"Modified: / 01-09-2017 / 14:22:51 / cg"
!
listOfSuperclassesHolder
<resource: #uiAspect>
listOfSuperclassesHolder isNil ifTrue:[
listOfSuperclassesHolder := self listOfSuperclasses asValue.
].
^ listOfSuperclassesHolder.
!
nameSpaceHolder
<resource: #uiAspect>
nameSpaceHolder isNil ifTrue:[
nameSpaceHolder := ValueHolder new.
"/ nameSpaceHolder addDependent:self.
"/ nameSpaceHolder onChangeSend:#nameSpaceHolderChanged to:self.
].
^ nameSpaceHolder.
!
packageHolder
<resource: #uiAspect>
packageHolder isNil ifTrue:[
packageHolder := (LastPackage ? nil "PackageId noProjectID") asValue.
].
^ packageHolder.
!
recentlyVisitedClasses
<resource: #uiAspect>
^ SystemBrowser visitedClassNamesHistory
!
stereotypeHolder
<resource: #uiAspect>
stereotypeHolder isNil ifTrue:[
stereotypeHolder := ValueHolder new.
stereotypeHolder onChangeSend:#stereotypeChanged to:self.
].
^ 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.
"Modified: / 27-01-2012 / 14:49:43 / cg"
"Modified: / 22-09-2018 / 15:49:52 / Claus Gittinger"
! !
!NewClassWizardDialog class methodsFor:'documentation'!
version_CVS
^ '$Header$'
! !