CodeGeneratorTool.st
author Claus Gittinger <cg@exept.de>
Sun, 01 Feb 2015 14:17:11 +0100
changeset 15150 940d37c7d3ac
parent 15085 dac5a348dd09
child 15323 05da4f69e8df
permissions -rw-r--r--
class: Tools::ChangeList fixed the following redraw bug in ModelListView (which is already fixed in SelectionInListView): if a colored item is shown with selection, the color attribute should be removed (or relaxed), to avoid drawing the label invisible. I.e. if the text color is blue or grey, and the selection bg is blue. we should draw white-on-blue, instead of blue/grey on blue. For this to work, the info whether drawing a selection must be passed down through the renderer to the item's draw routine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5141
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     1
"
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     2
 COPYRIGHT (c) 2002 by eXept Software AG
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     3
              All Rights Reserved
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     4
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     5
 This software is furnished under a license and may be used
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     6
 only in accordance with the terms of that license and with the
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
     9
 other person.  No title to or ownership of the software is
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    10
 hereby transferred.
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    11
"
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
15085
dac5a348dd09 class: CodeGeneratorTool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14966
diff changeset
    14
"{ NameSpace: Smalltalk }"
dac5a348dd09 class: CodeGeneratorTool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14966
diff changeset
    15
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
Object subclass:#CodeGeneratorTool
9757
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
    17
	instanceVariableNames:'compositeChangeCollector compositeChangeNesting userPreferences
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
    18
		generateComments confirmChanges targetClass'
9757
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
    19
	classVariableNames:'GenerateCommentsForGetters GenerateCommentsForSetters
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
    20
		CopyrightTemplate'
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
    21
	poolDictionaries:''
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
    22
	category:'Interface-Browsers'
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
3719
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    25
!CodeGeneratorTool class methodsFor:'documentation'!
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    26
5141
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    27
copyright
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    28
"
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    29
 COPYRIGHT (c) 2002 by eXept Software AG
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    30
              All Rights Reserved
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    31
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    32
 This software is furnished under a license and may be used
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    33
 only in accordance with the terms of that license and with the
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    35
 be provided or otherwise made available to, or used by, any
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    36
 other person.  No title to or ownership of the software is
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    37
 hereby transferred.
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    38
"
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    39
!
ffd2a0198999 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5124
diff changeset
    40
3719
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    41
documentation
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    42
"
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
    43
    This utility class contains various code generation facilites;
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
    44
    these were extracted from the old and newBrowser.
6791
6559c9ebb561 Keep method argument names when generating required methods
Stefan Vogel <sv@exept.de>
parents: 6718
diff changeset
    45
    There is probably more to come...
3719
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    46
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
    47
    Note: being refactored into separate per-language generators
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
    48
3719
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    49
    [author:]
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    50
        Claus Gittiner
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    51
"
d7f6eb94a693 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3716
diff changeset
    52
! !
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
    54
!CodeGeneratorTool class methodsFor:'instance creation'!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
    55
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
    56
new
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
    57
    ^ self basicNew initialize.
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
    58
! !
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
    59
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!CodeGeneratorTool class methodsFor:'code generation'!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
createAccessMethodsFor:aCollectionOfVarNames in:aClass withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
    63
    "create accessors in aClass"
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
    64
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
    65
    ^ self new 
6313
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    66
        createAccessMethodsFor:aCollectionOfVarNames 
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    67
        in:aClass 
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    68
        withChange:withChange 
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    69
        asValueHolder:asValueHolder 
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    70
        readersOnly:readersOnly 
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    71
        writersOnly:writersOnly
4444
6b077945517c generate instvar accessors with lazy-init
Claus Gittinger <cg@exept.de>
parents: 4351
diff changeset
    72
!
6b077945517c generate instvar accessors with lazy-init
Claus Gittinger <cg@exept.de>
parents: 4351
diff changeset
    73
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
createApplicationCodeFor:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    "create an empty application framework"
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
    77
    ^ self new createApplicationCodeFor:aClass
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
3804
d2bc07d678f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3800
diff changeset
    80
createClassResponsibleProtocolFor:aClass
d2bc07d678f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3800
diff changeset
    81
    "create stubs for the required protocol"
d2bc07d678f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3800
diff changeset
    82
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
    83
    ^ self new createClassResponsibleProtocolFor:aClass
3804
d2bc07d678f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3800
diff changeset
    84
!
d2bc07d678f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3800
diff changeset
    85
5124
487a63f34ac0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5013
diff changeset
    86
createClassTypeTestMethodsIn:aClass forClasses:subClasses
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
    87
    "create a #isXXX test methods (I'm tired of typing)"
4351
cc4739c4797b create test methods
Claus Gittinger <cg@exept.de>
parents: 4108
diff changeset
    88
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
    89
    ^ self new createClassTypeTestMethodsIn:aClass forClasses:subClasses
4351
cc4739c4797b create test methods
Claus Gittinger <cg@exept.de>
parents: 4108
diff changeset
    90
!
cc4739c4797b create test methods
Claus Gittinger <cg@exept.de>
parents: 4108
diff changeset
    91
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
createDocumentationMethodsFor:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    "create empty documentation methods"
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
    95
    ^ self new createDocumentationMethodsFor:aClass
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
6313
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    98
createEnumTypeCodeFor:aClass
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
    99
    ^ self new createEnumTypeCodeFor:aClass
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
   100
!
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
   101
9125
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
   102
createInitializationMethodIn:aClass
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
   103
    "create a #initialize methods (I'm tired of typing)"
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
   104
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
   105
    ^ self new createInitializationMethodIn:aClass
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
   106
!
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
   107
6718
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   108
createInitializedInstanceCreationMethodsIn:aClass
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   109
    "create a #new and #initialize methods (I'm tired of typing)"
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
6718
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   111
    ^ self new createInitializedInstanceCreationMethodsIn:aClass
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   112
!
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   113
13627
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
   114
createIsAbstractMethodIn:aClass
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
   115
    "create a #isABstract query method (I'm tired of typing)"
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
   116
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
   117
    ^ self new createIsAbstractMethodIn:aClass
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
   118
!
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
   119
6718
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   120
createParametrizedInstanceCreationMethodsNamed:selector in:aClass
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   121
    "create a #selector instance creation method (I'm tired of typing)"
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   122
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
   123
    ^ self new createParametrizedInstanceCreationMethodsNamed:selector in:aClass
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
8344
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
   126
createRedefinedInstanceCreationMethodsIn:aClass
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
   127
    "create a redefined #new method"
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
   128
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
   129
    ^ self new createRedefinedInstanceCreationMethodsIn:aClass
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
   130
!
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
   131
9757
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   132
createSingletonPatternInstanceCreationMethodsIn:aClass usingVariable:varName
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   133
    "create redefined #new method for singleton pattern"
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   134
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   135
    ^ self new createSingletonPatternInstanceCreationMethodsIn:aClass usingVariable:varName
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   136
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   137
    "Created: / 10-02-2011 / 16:32:43 / cg"
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   138
!
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
   139
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   140
createStandaloneStartupCodeFor:aClass
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   141
    "create an empty console application framework"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   142
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   143
    ^ self new createStandaloneStartupCodeFor:aClass
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   144
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   145
    "Created: / 19-08-2011 / 01:58:57 / cg"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   146
!
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
   147
9081
d59a59877121 changed: #createStartupCodeFor:forStartOf:
fm
parents: 9054
diff changeset
   148
createStartupCodeFor:aClass forStartOf:anApplicationClassOrNil
9049
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
   149
    "create standAloneStartup code"
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
   150
9081
d59a59877121 changed: #createStartupCodeFor:forStartOf:
fm
parents: 9054
diff changeset
   151
    ^ self new createStartupCodeFor:aClass forStartOf:anApplicationClassOrNil
9049
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
   152
!
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
   153
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
createTestCaseSampleCodeFor:aClass
4590
2447e35a81d4 testCase stub code
Claus Gittinger <cg@exept.de>
parents: 4512
diff changeset
   155
    "create an (almost) empty testCase class"
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   157
    ^ self new createTestCaseSampleCodeFor:aClass
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
createVisitorMethodsIn:visitedClass andVisitorClass:visitorClass
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   161
    "create acceptVisitor: in visitedClass and acceptXXX in visitorClass. (I'm tired of typing)"
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   163
    ^ self new createVisitorMethodsIn:visitedClass andVisitorClass:visitorClass
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
   166
createWebApplicationCodeFor:aClass
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
   167
    "create an empty webApplication framework"
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
   168
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
   169
    ^ self new createWebApplicationCodeFor:aClass
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
   170
!
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
   171
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   172
createWebServiceCodeFor:aClass
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   173
    "create an empty webService framework"
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   174
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   175
    ^ self new createWebServiceCodeFor:aClass
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   176
!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   177
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   178
createWidgetCodeFor:aClass
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   179
    "create usually required widget code (redraw, model update, event handling)"
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   180
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   181
    ^ self new createWidgetCodeFor:aClass
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   182
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   183
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
initialMenuSpecMethodSourceForApplications
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   185
    "return code for a menuSpec with typical stuff in it"
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   187
    self subclassResponsibility
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   188
!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   189
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   190
initialPageMenuSpecMethodSourceForWebApplications
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   191
    "return code for a menuSpec with typical stuff in it"
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   192
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   193
    self subclassResponsibility
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   194
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   195
    "
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   196
     SmalltalkCodeGeneratorTool initialPageMenuSpecMethodSourceForWebApplications
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   197
    "
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   198
!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   199
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   200
initialPageSpecMethodSourceForWebApplications
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   201
    "return an empty pageSpec"
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   202
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   203
    self subclassResponsibility
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   204
!
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   205
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   206
initialToolbarMenuSpecMethodSource
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   207
    "return a menuSpec with typical stuff in it"
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   208
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   209
    self subclassResponsibility
9054
Claus Gittinger <cg@exept.de>
parents: 9053
diff changeset
   210
Claus Gittinger <cg@exept.de>
parents: 9053
diff changeset
   211
    "
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   212
     SmalltalkCodeGenerator initialToolbarMenuSpecMethodSource
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   213
    "
9054
Claus Gittinger <cg@exept.de>
parents: 9053
diff changeset
   214
!
Claus Gittinger <cg@exept.de>
parents: 9053
diff changeset
   215
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
initialWindowSpecMethodSourceForApplications
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   217
    "return an empty windowSpec with an initial menubar in it"
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   218
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   219
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    "
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   222
     SmalltalkCodeGeneraotTool initialWindowSpecMethodSourceForApplications
9054
Claus Gittinger <cg@exept.de>
parents: 9053
diff changeset
   223
    "
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
initialWindowSpecMethodSourceForDialogs
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   227
    "return an empty windowSpec for dialogs"
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   228
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   229
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    "
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   232
     SmalltalkCodeGeneraotTool initialWindowSpecMethodSourceForDialogs
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    "
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
! !
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   236
!CodeGeneratorTool class methodsFor:'code generation-basic'!
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   237
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   238
createAccessMethodsFor:aCollectionOfVarNames in:aClass withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   239
    "workhorse for creating access methods for instvars."
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
   240
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   241
    ^ self new 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   242
        createAccessMethodsFor:aCollectionOfVarNames in:aClass withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   243
! !
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   244
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   245
!CodeGeneratorTool class methodsFor:'code generation-individual methods'!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   246
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   247
createAcceptVisitorMethod:selector in:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   248
    "create an acceptVisitor: method
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   249
     (I'm tired of typing)"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   250
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   251
    ^ self new createAcceptVisitorMethod:selector in:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   252
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   253
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   254
createAcceptVisitorMethodIn:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   255
    "create an acceptVisitor: method
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   256
     (I'm tired of typing)"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   257
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   258
    ^ self new createAcceptVisitorMethodIn:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   259
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   260
12877
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
   261
createAspectMethodFor:anAspectSymbol in:aClass
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
   262
    "create an aspect method."
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
   263
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
   264
    ^ self new createAspectMethodFor:anAspectSymbol in:aClass
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
   265
!
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
   266
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   267
createCopyrightMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   268
    "add copyright method containing your/your companies
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   269
     copyright template but only if not already present.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   270
     this is only added, if specified in the 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   271
     COPYRIGHT_TEMPLATE_FILE resources."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   272
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   273
    ^ self new createCopyrightMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   274
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   275
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   276
createDocumentationMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   277
    "add documentation method containing doc template
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   278
     but only if not already present."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   279
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   280
    ^ self new createDocumentationMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   281
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   282
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   283
createExamplesMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   284
    "add examples method containing examples template
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   285
     but only if not already present."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   286
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   287
    ^ self new createExamplesMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   288
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   289
11842
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   290
createFalseReturnMethodFor:aSelector category:cat in:aClass
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   291
    "add a ^ false method;
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   292
     but only if not already present."
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   293
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   294
    ^ self new createFalseReturnMethodFor:aSelector category:cat in:aClass
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   295
!
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
   296
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   297
createImageSpecMethodFor:anImage comment:comment in:aClass selector:sel
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   298
    ^ self new createImageSpecMethodFor:anImage comment:comment in:aClass selector:sel
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   299
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   300
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   301
createInitialHistoryMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   302
    "add history method containing created-entry
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   303
     but only if not already present."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   304
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   305
    ^ self new createInitialHistoryMethodFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   306
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   307
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   308
createInstanceCreationMethodWithSetupFor:selector category:category in:aMetaClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   309
    "add an inst-creation method"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   310
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   311
    ^ self new createInstanceCreationMethodWithSetupFor:selector category:category in:aMetaClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   312
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   313
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   314
createMultiSetterMethodFor:aCollectionOfVarNames in:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   315
    "create a multi-setter method for instvars."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   316
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   317
    ^ self new createMultiSetterMethodFor:aCollectionOfVarNames in:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   318
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   319
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   320
createSubclassResponsibilityMethodFor:aSelector category:cat in:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   321
    "add a subclassResponsibility method;
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   322
     but only if not already present."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   323
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   324
    ^ self new createSubclassResponsibilityMethodFor:aSelector category:cat in:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   325
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   326
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   327
createUpdateMethodIn:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   328
    "create an update:with:from:-method
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   329
     (I'm tired of typing)"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   330
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   331
    ^ self new createUpdateMethodIn:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   332
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   333
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   334
createVersionMethodFor:aClass
11758
531b78e53e8f comment/format in: #createVersionMethodFor:
Claus Gittinger <cg@exept.de>
parents: 11718
diff changeset
   335
    "add a version method containing RCS template
531b78e53e8f comment/format in: #createVersionMethodFor:
Claus Gittinger <cg@exept.de>
parents: 11718
diff changeset
   336
     but only if not already present and it's not a private class."
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   337
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   338
    ^ self new createVersionMethodFor:aClass
11758
531b78e53e8f comment/format in: #createVersionMethodFor:
Claus Gittinger <cg@exept.de>
parents: 11718
diff changeset
   339
531b78e53e8f comment/format in: #createVersionMethodFor:
Claus Gittinger <cg@exept.de>
parents: 11718
diff changeset
   340
    "Modified (comment): / 21-08-2012 / 11:55:15 / cg"
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   341
! !
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   342
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   343
!CodeGeneratorTool class methodsFor:'code generation-menus'!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   344
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   345
createActionMethodFor:aSelector in:aClass category:aCategory redefine:redefine
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   346
    self subclassResponsibility
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   347
!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   348
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   349
createAspectMethodFor:aSelector in:aClass category:aCategory redefine:redefine
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   350
    self subclassResponsibility
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   351
! !
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   352
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   353
!CodeGeneratorTool class methodsFor:'compilation'!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   354
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   355
compile:theCode forClass:aClass inCategory:cat 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   356
    "install some code for a class.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   357
     If refactory browser stuff is avaliable the refactory tools are used to support undo"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   358
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   359
    ^ self new compile:theCode forClass:aClass inCategory:cat
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   360
! !
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   361
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   362
!CodeGeneratorTool class methodsFor:'defaults'!
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   363
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   364
copyrightTemplate
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   365
    "return the contents of COPYRIGHT_TEMPLATE_FILE resources
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   366
     or a standard template"
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   367
14425
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   368
    |fn copyrightHolder|
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   369
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   370
    CopyrightTemplate notNil ifTrue:[^ CopyrightTemplate].
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   371
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   372
    fn := SystemBrowser classResources at:#'COPYRIGHT_TEMPLATE_FILE' default:nil.
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   373
    fn notNil ifTrue:[
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   374
        fn := fn asFilename.
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   375
        fn exists ifTrue:[
8488
bb2810d17bd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8344
diff changeset
   376
            ^ fn contentsAsString.
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   377
        ].
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   378
    ].
14425
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   379
    (OperatingSystem getDomainName endsWith:'exept.de') ifTrue:[
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   380
        copyrightHolder := 'eXept Sofware AG'.
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   381
    ] ifFalse:[
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   382
        copyrightHolder := '>>your company<<'.
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   383
    ].
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   384
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   385
    ^ ' COPYRIGHT (c) %1 by %2
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   386
              All Rights Reserved
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   387
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   388
 This software is furnished under a license and may be used
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   389
 only in accordance with the terms of that license and with the
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   390
 inclusion of the above copyright notice.   This software may not
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   391
 be provided or otherwise made available to, or used by, any
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   392
 other person.  No title to or ownership of the software is
14425
47fb1e0c33a9 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 13817
diff changeset
   393
 hereby transferred.' bindWith:'%1' with:copyrightHolder.
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   394
!
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   395
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   396
copyrightTemplate:aString
8488
bb2810d17bd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8344
diff changeset
   397
    "set the COPYRIGHT_TEMPLATE_FILE"
bb2810d17bd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8344
diff changeset
   398
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   399
    CopyrightTemplate := aString.
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   400
! !
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
   401
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   402
!CodeGeneratorTool class methodsFor:'interface specs'!
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   403
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   404
initialMenuSpecForApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   405
    "return a menuSpec with typical stuff in it"
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   406
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   407
    "This resource specification was automatically generated by the CodeGeneratorTool."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   408
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   409
    "Do not manually edit this!! If it is corrupted,
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   410
     the MenuEditor may not be able to read the specification."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   411
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   412
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   413
     MenuEditor new openOnClass:self andSelector:#initialMenuSpecForApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   414
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   415
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   416
    <resource: #menu>
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   417
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   418
    ^ #(#Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   419
           #(
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   420
             #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   421
                #label: 'File'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   422
                #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   423
                #submenu: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   424
                 #(#Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   425
                     #(
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   426
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   427
                          #label: 'New'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   428
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   429
                          #value: #menuNew
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   430
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   431
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   432
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   433
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   434
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   435
                          #label: 'Open...'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   436
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   437
                          #value: #menuOpen
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   438
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   439
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   440
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   441
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   442
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   443
                          #label: 'Save'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   444
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   445
                          #value: #menuSave
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   446
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   447
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   448
                          #label: 'Save As...'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   449
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   450
                          #value: #menuSaveAs
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   451
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   452
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   453
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   454
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   455
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   456
                          #label: 'Exit'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   457
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   458
                          #value: #closeRequest
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   459
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   460
                    ) nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   461
                    nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   462
                )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   463
            )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   464
             #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   465
                #label: 'Help'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   466
                #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   467
                #startGroup: #right
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   468
                #submenu: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   469
                 #(#Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   470
                     #(
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   471
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   472
                          #label: 'Documentation'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   473
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   474
                          #value: #openDocumentation
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   475
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   476
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   477
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   478
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   479
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   480
                          #label: 'About this Application...'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   481
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   482
                          #value: #openAboutThisApplication
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   483
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   484
                    ) nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   485
                    nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   486
                )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   487
            )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   488
          ) nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   489
          nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   490
      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   491
!
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   492
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   493
initialPageMenuSpecForWebApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   494
    "return a menuSpec with typical stuff in it"
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   495
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   496
    "This resource specification was automatically generated by the CodeGeneratorTool."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   497
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   498
    "Do not manually edit this!! If it is corrupted,
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   499
     the MenuEditor may not be able to read the specification."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   500
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   501
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   502
     MenuEditor new openOnClass:self andSelector:#initialPageMenuSpecForWebApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   503
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   504
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   505
    <resource: #menu>
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   506
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   507
    ^ #(#Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   508
           #(
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   509
             #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   510
                #label: 'File'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   511
                #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   512
                #submenu: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   513
                 #(#Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   514
                     #(
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   515
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   516
                          #label: 'New'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   517
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   518
                          #value: #menuNew
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   519
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   520
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   521
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   522
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   523
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   524
                          #label: 'Open...'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   525
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   526
                          #value: #menuOpen
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   527
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   528
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   529
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   530
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   531
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   532
                          #label: 'Save'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   533
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   534
                          #value: #menuSave
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   535
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   536
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   537
                          #label: 'Save As...'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   538
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   539
                          #value: #menuSaveAs
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   540
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   541
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   542
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   543
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   544
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   545
                          #label: 'Exit'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   546
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   547
                          #value: #closeRequest
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   548
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   549
                    ) nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   550
                    nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   551
                )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   552
            )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   553
             #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   554
                #label: 'Help'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   555
                #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   556
                #startGroup: #right
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   557
                #submenu: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   558
                 #(#Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   559
                     #(
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   560
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   561
                          #label: 'Documentation'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   562
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   563
                          #value: #openDocumentation
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   564
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   565
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   566
                          #label: '-'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   567
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   568
                       #(#MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   569
                          #label: 'About this Application...'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   570
                          #translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   571
                          #value: #openAboutThisApplication
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   572
                      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   573
                    ) nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   574
                    nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   575
                )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   576
            )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   577
          ) nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   578
          nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   579
      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   580
!
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   581
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   582
initialPageSpecForWebApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   583
    "Do not manually edit this!! If it is corrupted,
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   584
     the UIPainter may not be able to read the specification."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   585
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   586
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   587
     UIPainter new openOnClass:self andSelector:#initialPageSpecForWebApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   588
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   589
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   590
    <resource: #canvas>
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   591
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   592
    ^ #(#FullSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   593
          #window: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   594
           #(#WindowSpec
10319
c374ffaf0ec3 changed: #initialPageSpecForWebApplications
Claus Gittinger <cg@exept.de>
parents: 10284
diff changeset
   595
              #name: '%1'
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   596
              #layout: #(#LayoutFrame 204 0 162 0 503 0 461 0)
10319
c374ffaf0ec3 changed: #initialPageSpecForWebApplications
Claus Gittinger <cg@exept.de>
parents: 10284
diff changeset
   597
              #label: '%1'
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   598
              #min: #(#Point 10 10)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   599
              #max: #(#Point 1024 768)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   600
              #bounds: #(#Rectangle 204 162 504 462)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   601
              #menu: #pageMenu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   602
              #usePreferredExtent: false
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   603
          )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   604
          #component: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   605
           #(#SpecCollection
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   606
              #collection: #()
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   607
          )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   608
      )
10319
c374ffaf0ec3 changed: #initialPageSpecForWebApplications
Claus Gittinger <cg@exept.de>
parents: 10284
diff changeset
   609
c374ffaf0ec3 changed: #initialPageSpecForWebApplications
Claus Gittinger <cg@exept.de>
parents: 10284
diff changeset
   610
    "Modified: / 14-07-2011 / 16:44:20 / cg"
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   611
!
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   612
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   613
initialToolbarMenuSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   614
    "This resource specification was automatically generated
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   615
     by the MenuEditor of ST/X."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   616
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   617
    "Do not manually edit this!! If it is corrupted,
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   618
     the MenuEditor may not be able to read the specification."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   619
11041
4b9586c63c4a changed: #initialToolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 10594
diff changeset
   620
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   621
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   622
     MenuEditor new openOnClass:CodeGeneratorTool andSelector:#initialToolbarMenuSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   623
     (Menu new fromLiteralArrayEncoding:(CodeGeneratorTool initialToolbarMenuSpec)) startUp
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   624
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   625
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   626
    <resource: #menu>
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   627
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   628
    ^ 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   629
     #(Menu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   630
        (
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   631
         (MenuItem
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   632
            label: 'Reload'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   633
            itemValue: menuReload
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   634
            translateLabel: true
11041
4b9586c63c4a changed: #initialToolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 10594
diff changeset
   635
            isButton: true
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   636
            labelImage: (ResourceRetriever ToolbarIconLibrary reload24x24Icon)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   637
          )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   638
         )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   639
        nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   640
        nil
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   641
      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   642
!
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   643
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   644
initialWindowSpecForApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   645
    "This resource specification was automatically generated
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   646
     by the UIPainter of ST/X."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   647
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   648
    "Do not manually edit this!! If it is corrupted,
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   649
     the UIPainter may not be able to read the specification."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   650
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   651
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   652
     UIPainter new openOnClass:CodeGeneratorTool andSelector:#initialWindowSpecForApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   653
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   654
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   655
    <resource: #canvas>
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   656
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   657
    ^ 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   658
     #(FullSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   659
        name: initialWindowSpecForApplications
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   660
        window: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   661
       (WindowSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   662
          label: '%1'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   663
          name: '%1'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   664
          min: (Point 10 10)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   665
          bounds: (Rectangle 0 0 300 300)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   666
          menu: mainMenu
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   667
        )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   668
        component: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   669
       (SpecCollection
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   670
          collection: (
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   671
           (LabelSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   672
              label: 'Hello World'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   673
              name: 'Label1'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   674
              layout: (LayoutFrame 0 0.0 60 0 0 1.0 219 0)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   675
              translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   676
            )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   677
           )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   678
         
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   679
        )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   680
      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   681
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   682
    "Modified: / 07-05-2010 / 14:21:48 / cg"
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   683
!
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   684
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   685
initialWindowSpecForApplications2
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   686
    "This resource specification was automatically generated
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   687
     by the UIPainter of ST/X."
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   688
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   689
    "Do not manually edit this!! If it is corrupted,
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   690
     the UIPainter may not be able to read the specification."
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   691
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   692
    "
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   693
     UIPainter new openOnClass:CodeGeneratorTool andSelector:#initialWindowSpecForApplications2
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   694
    "
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   695
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   696
    <resource: #canvas>
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   697
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   698
    ^ 
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   699
     #(FullSpec
9100
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   700
        name: initialWindowSpecForApplications2
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   701
        window: 
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   702
       (WindowSpec
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   703
          label: '%1'
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   704
          name: '%1'
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   705
          min: (Point 10 10)
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   706
          bounds: (Rectangle 0 0 300 300)
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   707
          menu: mainMenu
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   708
        )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   709
        component: 
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   710
       (SpecCollection
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   711
          collection: (
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   712
           (MenuPanelSpec
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   713
              name: 'ToolBar1'
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   714
              layout: (LayoutFrame 0 0.0 0 0 0 1.0 36 0)
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   715
              menu: toolbarMenu
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   716
              textDefault: true
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   717
            )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   718
           (ViewSpec
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   719
              name: 'Box1'
9100
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   720
              layout: (LayoutFrame 1 0 36 0 0 1 -26 1)
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   721
              level: 1
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   722
              component: 
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   723
             (SpecCollection
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   724
                collection: (
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   725
                 (LabelSpec
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   726
                    label: 'Hello World'
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   727
                    name: 'Contents'
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   728
                    layout: (LayoutFrame 0 0 0 0 0 1 0 1)
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   729
                    translateLabel: true
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   730
                  )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   731
                 )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   732
               
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   733
              )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   734
            )
9100
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   735
           (ViewSpec
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   736
              name: 'Box2'
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   737
              layout: (LayoutFrame 0 0 -26 1 0 1 0 1)
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   738
              level: 1
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   739
              component: 
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   740
             (SpecCollection
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   741
                collection: (
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   742
                 (LabelSpec
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   743
                    label: 'InfoLabel'
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   744
                    name: 'Label2'
9261
5d817a638b5d changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9236
diff changeset
   745
                    layout: (LayoutFrame 0 0 -26 1 -1 1 0 1)
9100
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   746
                    level: -1
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   747
                    translateLabel: true
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   748
                    labelChannel: infoLabelHolder
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   749
                    adjust: left
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   750
                  )
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   751
                 )
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   752
               
885eaa429d6f changed: #initialWindowSpecForApplications2
Claus Gittinger <cg@exept.de>
parents: 9099
diff changeset
   753
              )
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   754
            )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   755
           )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   756
         
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   757
        )
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   758
      )
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   759
!
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   760
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   761
initialWindowSpecForDialogs
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   762
    "This resource specification was automatically generated
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   763
     by the UIPainter of ST/X."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   764
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   765
    "Do not manually edit this!! If it is corrupted,
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   766
     the UIPainter may not be able to read the specification."
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   767
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   768
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   769
     UIPainter new openOnClass:CodeGeneratorTool andSelector:#initialWindowSpecForDialogs
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   770
    "
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   771
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   772
    <resource: #canvas>
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   773
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   774
    ^ 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   775
     #(FullSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   776
        name: initialWindowSpecForDialogs
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   777
        window: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   778
       (WindowSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   779
          label: '%1'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   780
          name: '%1'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   781
          min: (Point 10 10)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   782
          bounds: (Rectangle 0 0 300 300)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   783
        )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   784
        component: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   785
       (SpecCollection
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   786
          collection: (
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   787
           (HorizontalPanelViewSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   788
              name: 'buttonPanel'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   789
              layout: (LayoutFrame 0 0.0 -40 1 0 1.0 0 1.0)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   790
              horizontalLayout: spreadSpaceMax
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   791
              verticalLayout: center
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   792
              horizontalSpace: 3
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   793
              verticalSpace: 3
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   794
              reverseOrderIfOKAtLeft: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   795
              component: 
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   796
             (SpecCollection
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   797
                collection: (
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   798
                 (ActionButtonSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   799
                    label: 'Cancel'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   800
                    name: 'cancelButton'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   801
                    translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   802
                    tabable: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   803
                    model: cancel
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   804
                    extent: (Point 125 22)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   805
                  )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   806
                 (ActionButtonSpec
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   807
                    label: 'OK'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   808
                    name: 'okButton'
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   809
                    translateLabel: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   810
                    tabable: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   811
                    model: accept
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   812
                    isDefault: true
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   813
                    extent: (Point 125 22)
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   814
                  )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   815
                 )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   816
               
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   817
              )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   818
            )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   819
           )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   820
         
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   821
        )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   822
      )
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   823
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   824
    "Modified: / 07-05-2010 / 14:21:55 / cg"
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   825
! !
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   826
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   827
!CodeGeneratorTool class methodsFor:'private'!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   828
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   829
canUseRefactoringSupport
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   830
    "check if refactory browser stuff is avaliable"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   831
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   832
     ^ RefactoryChangeManager notNil 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   833
    and:[RefactoryChangeManager isLoaded
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   834
    and:[UserPreferences current useRefactoringSupport]]
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   835
!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   836
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
   837
methodNameTemplateFor:aSelector
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
   838
    self subclassResponsibility
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   839
! !
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   840
14702
bdad8f638ac6 Marked CodeGeneratorTool as abstract
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14701
diff changeset
   841
!CodeGeneratorTool class methodsFor:'testing'!
bdad8f638ac6 Marked CodeGeneratorTool as abstract
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14701
diff changeset
   842
bdad8f638ac6 Marked CodeGeneratorTool as abstract
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14701
diff changeset
   843
isAbstract
bdad8f638ac6 Marked CodeGeneratorTool as abstract
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14701
diff changeset
   844
    ^ self == CodeGeneratorTool
bdad8f638ac6 Marked CodeGeneratorTool as abstract
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14701
diff changeset
   845
! !
bdad8f638ac6 Marked CodeGeneratorTool as abstract
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14701
diff changeset
   846
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   847
!CodeGeneratorTool class methodsFor:'utilities'!
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   848
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   849
missingRequiredProtocolFor:aClass
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   850
    "return the missing required protocol; 
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   851
     that is the set of selectors which send #subclassResponsibility in a superclass and 
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   852
     have no implementation in aClass or in any class between aClass and that superclass"
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   853
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   854
    |requiredSelectors implementedSelectors|
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   855
14966
bf1928739b12 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 14702
diff changeset
   856
    aClass isAbstract ifTrue:[
bf1928739b12 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 14702
diff changeset
   857
        "abstract classes are not responsible for methods to be defined in subclasses"    
15085
dac5a348dd09 class: CodeGeneratorTool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14966
diff changeset
   858
        ^ #().
14966
bf1928739b12 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 14702
diff changeset
   859
    ].
bf1928739b12 class: CodeGeneratorTool
Stefan Vogel <sv@exept.de>
parents: 14702
diff changeset
   860
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   861
    requiredSelectors := IdentitySet new.
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   862
    implementedSelectors := IdentitySet withAll:(aClass methodDictionary keys).
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   863
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   864
    aClass allSuperclassesDo:[:eachSuperClass |
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   865
        eachSuperClass methodDictionary keysAndValuesDo:[:eachSelector :eachMethod |
10553
7ff71943e4b4 changed: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 10466
diff changeset
   866
            (eachMethod sends:#subclassResponsibility or:#subclassResponsibility:) ifTrue:[
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   867
                (implementedSelectors includes:eachSelector) ifFalse:[
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   868
                    requiredSelectors add:eachSelector.
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   869
                ]
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   870
            ] ifFalse:[
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   871
                (requiredSelectors includes:eachSelector) ifFalse:[
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   872
                    implementedSelectors add:eachSelector.
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   873
                ].
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   874
            ].
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   875
        ]
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   876
    ].
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   877
    ^ requiredSelectors
10553
7ff71943e4b4 changed: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 10466
diff changeset
   878
7ff71943e4b4 changed: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 10466
diff changeset
   879
    "Modified: / 08-08-2011 / 18:44:58 / cg"
15085
dac5a348dd09 class: CodeGeneratorTool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14966
diff changeset
   880
    "Modified: / 10-01-2015 / 06:46:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   881
! !
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
   882
10466
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
   883
!CodeGeneratorTool methodsFor:'bulk changes'!
5759
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   884
5763
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
   885
addChange:aChange
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
   886
    compositeChangeCollector addChange:aChange
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
   887
!
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
   888
5759
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   889
executeCollectedChangesNamed:name
10466
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
   890
    "if both the compositeChangeCollector and I myself think, that it should be confirmed,
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
   891
     the let user do it - I am not sure, if the heuristics here is useful;
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
   892
     it might be better to let the generator decide (for example, if it does high-impact
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
   893
     changes, as opposed to simple ones)"
10256
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
   894
5759
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   895
    compositeChangeCollector notNil ifTrue:[
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   896
        compositeChangeNesting := compositeChangeNesting - 1.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   897
        compositeChangeNesting == 0 ifTrue:[
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   898
            compositeChangeCollector name:name.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   899
            compositeChangeCollector changesSize == 0 ifTrue:[
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   900
                self information:'Nothing generated.'.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   901
            ] ifFalse:[
13817
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
   902
                "JV@2012-04-04: Here used to be a code for confirming changes.
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
   903
                 The has moved to RefactoryChangeManager so all refactorings
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
   904
                 are also subject to confirmation (is enabled in UserPreferences)"
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
   905
                RefactoryChangeManager instance performChange: compositeChangeCollector
5759
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   906
            ].
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   907
            compositeChangeCollector := nil.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   908
        ]
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   909
    ]
10284
8cbf4cd11c2f changed: #executeCollectedChangesNamed: fix in change confirmation code
vrany
parents: 10256
diff changeset
   910
13817
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
   911
    "Modified (comment): / 04-08-2011 / 17:30:27 / cg"
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
   912
    "Modified (format): / 04-04-2012 / 16:35:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5759
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   913
!
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   914
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   915
startCollectChanges
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   916
    (self canUseRefactoringSupport) ifTrue:[
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   917
        compositeChangeCollector isNil ifTrue:[
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   918
            compositeChangeCollector := CompositeRefactoryChange new.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   919
            compositeChangeNesting := 0.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   920
        ].
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   921
        compositeChangeNesting := compositeChangeNesting + 1.
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   922
    ]
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   923
! !
b6cea74440db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5758
diff changeset
   924
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   925
!CodeGeneratorTool methodsFor:'code generation'!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   926
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   927
createAccessMethodsFor:aCollectionOfVarNames in:aClass withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   928
    "create accessors in aClass"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   929
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   930
    self
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   931
        createAccessMethodsFor:aCollectionOfVarNames 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   932
        in:aClass 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   933
        withChange:withChange 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   934
        asValueHolder:asValueHolder 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   935
        readersOnly:readersOnly 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   936
        writersOnly:writersOnly 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   937
        lazyInitialization:false
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   938
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   939
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   940
createApplicationCodeFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   941
    "create an empty application framework"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   942
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   943
    |nonMetaClass metaClass className txt isDialog 
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
   944
     categoryForMenuActionsMethods compileTemplateAction|
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   945
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   946
    self startCollectChanges.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   947
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
   948
    categoryForMenuActionsMethods := userPreferences categoryForMenuActionsMethods.
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   949
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   950
    nonMetaClass := aClass theNonMetaclass.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   951
    metaClass := aClass theMetaclass.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   952
    className := nonMetaClass name.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   953
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   954
    isDialog := (nonMetaClass isSubclassOf:SimpleDialog).
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   955
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   956
    "/ add a windowSpec method for an empty applicationWindow,
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   957
    "/ with a menuPanel.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   958
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   959
    (metaClass includesSelector:#windowSpec) ifFalse:[
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   960
        isDialog ifTrue:[
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   961
            txt := self class initialWindowSpecMethodSourceForDialogs.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   962
        ] ifFalse:[
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   963
            txt := self class initialWindowSpecMethodSourceForApplications.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   964
        ].
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   965
        self
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   966
            compile:(txt bindWith:className)
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   967
            forClass:metaClass 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   968
            inCategory:'interface specs'.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   969
    ].
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   970
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   971
    compileTemplateAction := 
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   972
        [:selector :category |
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   973
            (nonMetaClass includesSelector:selector) ifFalse:[
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   974
                |codeTemplateSelector|
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   975
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   976
                codeTemplateSelector := ('codeFor_',(selector upTo:$:)) asSymbol.
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   977
                txt := self perform:codeTemplateSelector.
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   978
                self
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   979
                    compile:txt
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   980
                    forClass:nonMetaClass 
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   981
                    inCategory:(category = '*' ifTrue:categoryForMenuActionsMethods ifFalse:category).
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   982
            ]
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   983
        ].
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   984
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   985
    #(
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   986
        #'postBuildWith:'   'initialization & release'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   987
        #'postOpenWith:'    'initialization & release'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   988
    ) pairWiseDo:compileTemplateAction.
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
   989
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   990
    isDialog ifFalse:[
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   991
        "/ add a topMenu method 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   992
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   993
        (metaClass includesSelector:#mainMenu) ifFalse:[
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   994
            txt := self class initialMenuSpecMethodSourceForApplications.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   995
            self
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   996
                compile:(txt bindWith:className)
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   997
                forClass:metaClass 
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   998
                inCategory:'menu specs'.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
   999
        ].
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1000
        (metaClass includesSelector:#toolbarMenu) ifFalse:[
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1001
            txt := self class initialToolbarMenuSpecMethodSource.
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1002
            self
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1003
                compile:(txt bindWith:className)
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1004
                forClass:metaClass 
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1005
                inCategory:'menu specs'.
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1006
        ].
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1007
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1008
        #(
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1009
            #'hasUnsavedChanges'        'private queries'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1010
            #'closeRequest'             'initialization & release'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1011
            #'closeDownViews'           'initialization & release'
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1012
            #'menuReload'               '*'
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1013
            #'menuSaveAs'               '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1014
            #'menuNew'                  '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1015
            #'menuOpen'                 '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1016
            #'menuSave'                 '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1017
            #'doSaveAs'                 '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1018
            #'openDocumentation'        '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1019
            #'openAboutThisApplication' '*'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1020
        ) pairWiseDo:compileTemplateAction.
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1021
    ].
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1022
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1023
    isDialog ifTrue:[
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1024
        #(
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1025
            #'closeAccept'      'user actions'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1026
        ) pairWiseDo:compileTemplateAction.
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1027
    ].
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1028
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1029
    self executeCollectedChangesNamed:('Add Application Code for ' , className).
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1030
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1031
    "Modified: / 27-10-2006 / 10:21:58 / cg"
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1032
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1033
8987
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1034
createClassInitializeMethodIn:aClass
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1035
    "create a #initialize method on the class side (I'm tired of typing)"
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1036
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1037
    self subclassResponsibility
8987
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1038
!
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1039
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1040
createClassResponsibleProtocolFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1041
    "create stubs for the required protocol"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1042
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1043
    |nonMetaClass metaClass className|
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1044
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1045
    nonMetaClass := aClass theNonMetaclass.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1046
    metaClass := aClass theMetaclass.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1047
    className := nonMetaClass name.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1048
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1049
    self startCollectChanges.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1050
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1051
    self privCreateClassResponsibleProtocolFor:nonMetaClass.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1052
    self privCreateClassResponsibleProtocolFor:metaClass.
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1053
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1054
    self executeCollectedChangesNamed:('Add Required Protocol to ' , className).
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1055
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1056
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1057
createClassTypeTestMethodsIn:aClass forClasses:subClasses
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1058
    "create a #isXXX test methods (I'm tired of typing)"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1059
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1060
    self subclassResponsibility
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1061
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1062
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1063
createDocumentationMethodsFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1064
    "create empty documentation methods"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1065
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1066
    |nonMetaClass metaClass className|
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1067
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1068
    nonMetaClass := aClass theNonMetaclass.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1069
    metaClass := aClass theMetaclass.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1070
    className := nonMetaClass name.
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1071
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1072
    self startCollectChanges.
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1073
8890
69b74f5776fb changed:
fm
parents: 8773
diff changeset
  1074
"/    self createVersionMethodFor:metaClass.
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1075
    self createCopyrightMethodFor:metaClass.
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1076
    self createDocumentationMethodFor:metaClass.
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1077
    self createExamplesMethodFor:metaClass.
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1078
    "/ self createInitialHistoryMethodFor:metaClass.
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1079
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1080
    self executeCollectedChangesNamed:('Add Documentation to ' , className).
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1081
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1082
6313
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
  1083
createEnumTypeCodeFor:aClass
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1084
    self subclassResponsibility
6313
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
  1085
!
e73b5d2d07f9 enumType generator
Claus Gittinger <cg@exept.de>
parents: 6159
diff changeset
  1086
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1087
createExamplesMethodForViewClass:aClass
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1088
    "create an examples method"
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1089
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1090
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1091
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1092
9125
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1093
createInitializationMethodIn:aClass
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1094
    "create a #initialize methods (I'm tired of typing)"
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1095
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1096
    self subclassResponsibility
9125
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1097
!
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1098
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1099
createInitializedInstanceCreationMethodsIn:aClass
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1100
    "create a #new and #initialize methods (I'm tired of typing)"
aaacd37a90b0 added: #createInitializationMethodIn:
Claus Gittinger <cg@exept.de>
parents: 9100
diff changeset
  1101
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1102
    self subclassResponsibility
6718
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
  1103
!
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
  1104
13627
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
  1105
createIsAbstractMethodIn:aClass
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
  1106
    "create a #isAbstract query method (I'm tired of typing)"
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
  1107
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
  1108
    self subclassResponsibility
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
  1109
!
b3b067256572 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13590
diff changeset
  1110
6718
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
  1111
createParametrizedInstanceCreationMethodsNamed:selector in:aClass
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
  1112
    "create a #selector instance creation method (I'm tired of typing)"
d6e9cae51834 more generators;
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
  1113
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1114
    self subclassResponsibility
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1115
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1116
7470
12c6eb575d88 pool code generation
Claus Gittinger <cg@exept.de>
parents: 7085
diff changeset
  1117
createPoolInitializationCodeFor:aClass
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1118
    self subclassResponsibility
7470
12c6eb575d88 pool code generation
Claus Gittinger <cg@exept.de>
parents: 7085
diff changeset
  1119
!
12c6eb575d88 pool code generation
Claus Gittinger <cg@exept.de>
parents: 7085
diff changeset
  1120
8344
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
  1121
createRedefinedInstanceCreationMethodsIn:aClass
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
  1122
    "create a redefined #new methods"
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
  1123
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1124
    self subclassResponsibility
8344
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
  1125
!
efda36a55d02 changed #createRedefinedInstanceCreationMethodsIn:
Claus Gittinger <cg@exept.de>
parents: 8258
diff changeset
  1126
9757
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1127
createSingletonPatternInstanceCreationMethodsIn:aClass usingVariable:varName
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1128
    "create redefined #new methods for a singleton pattern"
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1129
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1130
    self subclassResponsibility
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1131
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1132
    "Created: / 10-02-2011 / 16:32:36 / cg"
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1133
!
3530070667d5 added: #classMenuGenerateSingletonPatternInstanceCreationMethods
Claus Gittinger <cg@exept.de>
parents: 9705
diff changeset
  1134
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1135
createStandaloneStartupCodeFor:aClass
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1136
    "create an empty console application framework"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1137
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1138
    |metaClass nonMetaclass className txt|
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1139
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1140
    targetClass := aClass.
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1141
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1142
    self startCollectChanges.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1143
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1144
    metaClass := aClass theMetaclass.
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1145
    nonMetaclass := aClass theNonMetaclass.
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1146
    className := nonMetaclass name.
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1147
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1148
    (metaClass includesSelector:#applicationRegistryPath) ifFalse:[
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1149
        txt := self codeFor_standAloneApplicationRegistryPathFor:nonMetaclass.
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1150
        self
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1151
            compile:(txt bindWith:className)
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1152
            forClass:metaClass 
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1153
            inCategory:'constants & defaults'.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1154
    ].
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1155
    (metaClass includesSelector:#applicationUUID) ifFalse:[
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1156
        txt := self codeFor_standAloneApplicationUUID.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1157
        self
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1158
            compile:(txt bindWith:className)
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1159
            forClass:metaClass 
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1160
            inCategory:'constants & defaults'.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1161
    ].
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1162
    (metaClass includesSelector:#usage) ifFalse:[
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1163
        txt := self codeFor_standAloneUsage.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1164
        self
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1165
            compile:(txt bindWith:className)
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1166
            forClass:metaClass 
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1167
            inCategory:'startup'.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1168
    ].
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1169
    (metaClass includesSelector:#'main:') ifFalse:[
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1170
        txt := self codeFor_standAloneMain.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1171
        self
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1172
            compile:(txt bindWith:className)
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1173
            forClass:metaClass 
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1174
            inCategory:'startup'.
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1175
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1176
        (metaClass includesSelector:#'realMain:') ifFalse:[
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1177
            txt := self codeFor_standAloneRealMainMethodFor:nonMetaclass.
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1178
            self
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1179
                compile:(txt bindWith:className)
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1180
                forClass:metaClass 
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1181
                inCategory:'startup'.
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1182
        ].
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1183
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1184
    ].
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1185
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1186
    self executeCollectedChangesNamed:('Add StandaloneStartup Code for ' , className).
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1187
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1188
    "Created: / 19-08-2011 / 02:01:31 / cg"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1189
!
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1190
5953
bf6cdc968a53 *** empty log message ***
ca
parents: 5817
diff changeset
  1191
createStandardPrintOnMethodIn:aClass
bf6cdc968a53 *** empty log message ***
ca
parents: 5817
diff changeset
  1192
    "create a #printOn: method (I'm tired of typing)"
bf6cdc968a53 *** empty log message ***
ca
parents: 5817
diff changeset
  1193
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1194
    self subclassResponsibility
5953
bf6cdc968a53 *** empty log message ***
ca
parents: 5817
diff changeset
  1195
!
bf6cdc968a53 *** empty log message ***
ca
parents: 5817
diff changeset
  1196
9081
d59a59877121 changed: #createStartupCodeFor:forStartOf:
fm
parents: 9054
diff changeset
  1197
createStartupCodeFor:aClass forStartOf:anApplicationClassOrNil
9049
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
  1198
    "create startup code (main)"
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
  1199
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1200
    self subclassResponsibility
9049
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
  1201
!
9a2003a4fef3 added: #createStartupCodeFor:forStartOf:
Claus Gittinger <cg@exept.de>
parents: 9044
diff changeset
  1202
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1203
createTestCaseSampleCodeFor:aClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1204
    "create an (almost) empty testCase class"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1205
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1206
    self subclassResponsibility
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1207
!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1208
10256
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1209
createVisitorMethodsIn:visitedClass andCompilerClass:visitorClass
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1210
    "   
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1211
        This is much like createVisitorMethodsIn:andVisitorClass:,
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1212
        but generates 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1213
            acceptVisitor:forEffect:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1214
            and
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1215
            visit<NODE>:forEffect:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1216
        in visit* methods.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1217
    "
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1218
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1219
    |sel superSel |
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1220
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1221
    self assert:( visitedClass isMeta not ).
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1222
    self assert:( visitorClass isMeta not ).
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1223
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1224
    self startCollectChanges.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1225
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1226
    sel := ('visit' , visitedClass nameWithoutPrefix , ':').
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1227
    superSel := ('visit' , visitedClass superclass nameWithoutPrefix , ':').
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1228
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1229
    (visitedClass includesSelector:#acceptVisitor:forEffect:) ifFalse:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1230
        [self addChange:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1231
            (CodeGenerator new
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1232
                class: visitedClass;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1233
                protocol: 'visiting';
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1234
                source: ('acceptVisitor: visitor forEffect: effect
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1235
    "Double dispatch back to the visitor, passing my type encoded in
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1236
     the selector (visitor pattern) and given effect"
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1237
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1238
    "stub code automatically generated - please change if required"
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1239
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1240
    ^visitor `@sel: self forEffect: effect');
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1241
                replace: '`@sel:' with: sel asSymbol;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1242
                change)
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1243
        ].
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1244
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1245
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1246
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1247
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1248
    (visitorClass includesSelector:(sel, 'forEffect:') asSymbol) ifFalse:[
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1249
        self addChange:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1250
            (CodeGenerator new
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1251
                class: visitorClass;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1252
                protocol: 'visiting';
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1253
                source: ('`@sel: anObject forEffect: effect
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1254
    "dispatched back from the visited object (visitor pattern)"
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1255
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1256
    ^ self `@superSel: anObject forEffect: effect');
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1257
                replace: '`@sel:' with: sel asSymbol;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1258
                replace: '`@superSel:' with: superSel asSymbol;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1259
                change)
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1260
    ].
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1261
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1262
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1263
    (visitorClass includesSelector:#'visit:') ifFalse:[
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1264
        self 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1265
            compile:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1266
('visit:anObject 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1267
    "visit anObject (visitor pattern).
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1268
     The object should call back one of my visitXXXX methods."
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1269
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1270
    ^ anObject acceptVisitor:self
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1271
')
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1272
            forClass:visitorClass 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1273
            inCategory:'visiting'.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1274
    ].
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1275
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1276
    self executeCollectedChangesNamed:('Create Compiler Visiting Methods').
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1277
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1278
    "Created: / 20-03-2010 / 10:49:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1279
!
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1280
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1281
createVisitorMethodsIn:visitedClass andVisitorClass2:visitorClass
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1282
    "   
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1283
        This is much like createVisitorMethodsIn:andVisitorClass:,
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1284
        but generates 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1285
            self visitSuperclass: anObject
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1286
        in visit* methods.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1287
    "
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1288
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1289
    |sel superSel |
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1290
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1291
    self assert:( visitedClass isMeta not ).
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1292
    self assert:( visitorClass isMeta not ).
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1293
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1294
    self startCollectChanges.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1295
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1296
    sel := ('visit' , visitedClass nameWithoutPrefix , ':').
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1297
    superSel := ('visit' , visitedClass superclass nameWithoutPrefix , ':').
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1298
    self createAcceptVisitorMethod:sel in:visitedClass.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1299
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1300
    (visitorClass includesSelector:sel) ifFalse:[
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1301
        self addChange:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1302
            (CodeGenerator new
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1303
                class: visitorClass;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1304
                protocol: 'visiting';
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1305
                source: ('`@sel: anObject 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1306
    "dispatched back from the visited %2-object (visitor pattern)"
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1307
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1308
    ^ self `@superSel: anObject');
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1309
                replace: '`@sel:' with: sel asSymbol;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1310
                replace: '`@superSel:' with: superSel asSymbol;
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1311
                change)
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1312
    ].
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1313
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1314
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1315
    (visitorClass includesSelector:#'visit:') ifFalse:[
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1316
        self 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1317
            compile:
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1318
('visit:anObject 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1319
    "visit anObject (visitor pattern).
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1320
     The object should call back one of my visitXXXX methods."
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1321
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1322
    ^ anObject acceptVisitor:self
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1323
')
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1324
            forClass:visitorClass 
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1325
            inCategory:'visiting'.
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1326
    ].
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1327
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1328
    self executeCollectedChangesNamed:('Add Visitor Pattern').
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1329
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1330
    "Created: / 07-07-2009 / 19:53:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1331
!
2245bfc373bb Merged with JV's branch
vrany
parents: 9757
diff changeset
  1332
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1333
createVisitorMethodsIn:visitedClass andVisitorClass:visitorClass
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1334
    "create acceptVisitor: in visitedClass and acceptXXX in visitorClass. (I'm tired of typing)"
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1335
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1336
    self subclassResponsibility
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1337
!
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1338
13817
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
  1339
createVisitorMethodsIn:arg1 andVisitorClass:arg2 withParameter:arg3 withSuper:arg4 
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
  1340
    "raise an error: must be redefined in concrete subclass(es)"
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
  1341
    
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
  1342
    ^ self subclassResponsibility
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
  1343
!
92a5c6e81647 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13627
diff changeset
  1344
6050
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1345
createWebApplicationCodeFor:aClass
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1346
    "create an empty webApplication framework"
300b21c10c71 *** empty log message ***
ca
parents: 5953
diff changeset
  1347
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1348
    self subclassResponsibility
7973
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
  1349
!
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
  1350
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
  1351
createWebServiceCodeFor:aClass
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
  1352
    "create an empty webService framework"
7fb67608aa3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7967
diff changeset
  1353
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1354
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1355
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1356
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1357
createWidgetCodeFor:aClass
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1358
    "create usually required widget code (redraw, model update, event handling)"
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1359
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1360
    self subclassResponsibility
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1361
! !
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1362
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1363
!CodeGeneratorTool methodsFor:'code generation-basic'!
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1364
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1365
createAccessMethodsFor:aCollectionOfVarNames in:aClass withChange:withChange asValueHolder:asValueHolder readersOnly:readersOnly writersOnly:writersOnly lazyInitialization:lazyInitialization
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1366
    "workhorse for creating access methods for instvars."
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1367
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1368
    self subclassResponsibility
5763
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
  1369
!
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
  1370
7615
d059ea04b8f7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7545
diff changeset
  1371
createCollectionAccessMethodsFor:aCollectionOfVarNames in:aClass withChange:withChange
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1372
    self subclassResponsibility
7615
d059ea04b8f7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7545
diff changeset
  1373
!
d059ea04b8f7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7545
diff changeset
  1374
13409
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1375
createGetterFor:aVarName in:aClass 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1376
    self 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1377
        createAccessMethodsFor:{ aVarName} in:aClass 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1378
        withChange:false asValueHolder:false readersOnly:true writersOnly:false 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1379
        lazyInitialization:false
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1380
!
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1381
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1382
createSetterFor:aVarName in:aClass 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1383
    self 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1384
        createAccessMethodsFor:{ aVarName} in:aClass 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1385
        withChange:false asValueHolder:false readersOnly:false writersOnly:true 
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1386
        lazyInitialization:false
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1387
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1388
    "
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1389
    
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1390
    "
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1391
!
22ce583309d6 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 12877
diff changeset
  1392
5763
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
  1393
createValueHoldersFor:aCollectionOfVarNames in:aClass lazyInitialization:lazyInitialization
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
  1394
    "workhorse for creating access methods for instvars."
8cce359fd150 add valueHolder
Claus Gittinger <cg@exept.de>
parents: 5759
diff changeset
  1395
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1396
    self subclassResponsibility
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1397
! !
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1398
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1399
!CodeGeneratorTool methodsFor:'code generation-individual methods'!
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1400
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1401
createAcceptVisitorMethod:selector in:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1402
    "create an acceptVisitor: method
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1403
     (I'm tired of typing)"
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1404
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1405
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1406
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1407
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1408
createAcceptVisitorMethodIn:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1409
    "create an acceptVisitor: method
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1410
     (I'm tired of typing)"
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1411
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1412
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1413
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1414
12877
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1415
createAspectMethodFor:anAspectSymbol in:aClass
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1416
    "create an aspect method."
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1417
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1418
    self subclassResponsibility
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1419
!
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1420
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1421
createCopyrightMethodFor:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1422
    "add copyright method containing your/your companies
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1423
     copyright template but only if not already present.
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1424
     this is only added, if specified in the 
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1425
     COPYRIGHT_TEMPLATE_FILE resources."
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1426
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1427
    |fn copyRightText|
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1428
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1429
    (aClass includesSelector:#copyright) ifFalse:[
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1430
        fn := SystemBrowser classResources at:#'COPYRIGHT_TEMPLATE_FILE' default:nil.
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1431
        fn notNil ifTrue:[
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1432
            fn := fn asFilename.
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1433
            fn exists ifTrue:[
8488
bb2810d17bd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8344
diff changeset
  1434
                copyRightText := fn contentsAsString.
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1435
                self createCopyrightMethodFor:copyRightText for:aClass
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1436
            ]
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1437
        ].
8258
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1438
    ].
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1439
!
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1440
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1441
createCopyrightMethodFor:copyRightText for:aClass
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1442
    "add copyright method containing text,
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1443
     but only if not already present."
77eecb901a6a copyrights
Claus Gittinger <cg@exept.de>
parents: 7973
diff changeset
  1444
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1445
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1446
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1447
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1448
createDocumentationMethodFor:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1449
    "add documentation method containing doc template
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1450
     but only if not already present."
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1451
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1452
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1453
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1454
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1455
createExamplesMethodFor:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1456
    "add examples method containing examples template
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1457
     but only if not already present."
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1458
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1459
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1460
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1461
11842
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1462
createFalseReturnMethodFor:aSelector category:cat in:aClass
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1463
    "add a ^false method;
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1464
     but only if not already present."
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1465
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1466
    self subclassResponsibility
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1467
!
70180ac9f3bf +generate false return method
Claus Gittinger <cg@exept.de>
parents: 11758
diff changeset
  1468
3822
4e9f2f69875f code generation for icons moved from ImageEditor
Claus Gittinger <cg@exept.de>
parents: 3804
diff changeset
  1469
createImageSpecMethodFor:anImage comment:comment in:aClass selector:sel
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1470
    self subclassResponsibility
3822
4e9f2f69875f code generation for icons moved from ImageEditor
Claus Gittinger <cg@exept.de>
parents: 3804
diff changeset
  1471
!
4e9f2f69875f code generation for icons moved from ImageEditor
Claus Gittinger <cg@exept.de>
parents: 3804
diff changeset
  1472
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1473
createInitialHistoryMethodFor:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1474
    "add history method containing created-entry
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1475
     but only if not already present."
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1476
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1477
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1478
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1479
4512
117fa43d16eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4444
diff changeset
  1480
createInstanceCreationMethodWithSetupFor:selector category:category in:aMetaClass
117fa43d16eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4444
diff changeset
  1481
    "add an inst-creation method"
117fa43d16eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4444
diff changeset
  1482
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1483
    self subclassResponsibility
4512
117fa43d16eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4444
diff changeset
  1484
!
117fa43d16eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4444
diff changeset
  1485
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1486
createMultiSetterMethodFor:aCollectionOfVarNames in:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1487
    "create a multi-setter method for instvars."
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1488
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1489
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1490
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1491
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1492
createShouldImplementMethodFor:aSelector category:cat in:aClass
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1493
    "add a shouldImplement method;
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1494
     but only if not already present."
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1495
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1496
    self subclassResponsibility
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1497
!
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1498
3800
a5c75c369855 added generateSubclassResponsibility
Claus Gittinger <cg@exept.de>
parents: 3719
diff changeset
  1499
createSubclassResponsibilityMethodFor:aSelector category:cat in:aClass
a5c75c369855 added generateSubclassResponsibility
Claus Gittinger <cg@exept.de>
parents: 3719
diff changeset
  1500
    "add a subclassResponsibility method;
a5c75c369855 added generateSubclassResponsibility
Claus Gittinger <cg@exept.de>
parents: 3719
diff changeset
  1501
     but only if not already present."
a5c75c369855 added generateSubclassResponsibility
Claus Gittinger <cg@exept.de>
parents: 3719
diff changeset
  1502
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1503
    self subclassResponsibility
3800
a5c75c369855 added generateSubclassResponsibility
Claus Gittinger <cg@exept.de>
parents: 3719
diff changeset
  1504
!
a5c75c369855 added generateSubclassResponsibility
Claus Gittinger <cg@exept.de>
parents: 3719
diff changeset
  1505
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1506
createUpdateMethodIn:aClass
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1507
    "create an update:with:from:-method
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1508
     (I'm tired of typing)"
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1509
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1510
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1511
!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1512
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1513
createVersionMethodFor:aClass
8890
69b74f5776fb changed:
fm
parents: 8773
diff changeset
  1514
    <resource: #obsolete>
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1515
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1516
    "add version method containing RCS template
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1517
     but only if not already present and its not a private class."
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1518
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1519
    self subclassResponsibility
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1520
! !
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1521
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1522
!CodeGeneratorTool methodsFor:'code templates'!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1523
8987
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1524
codeFor_classInitialize
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1525
    self subclassResponsibility
8987
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1526
!
Claus Gittinger <cg@exept.de>
parents: 8890
diff changeset
  1527
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1528
codeFor_closeAccept
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1529
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1530
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1531
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1532
codeFor_closeDownViews
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1533
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1534
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1535
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1536
codeFor_closeRequest
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1537
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1538
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1539
    "Created: / 27-10-2006 / 10:01:06 / cg"
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1540
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1541
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1542
codeFor_doSaveAs
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1543
    ^ self codeFor_emptyMenuActionCodeFor:#doSaveAs menuItem:'save/saveAs'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1544
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1545
    "Created: / 27-10-2006 / 10:22:06 / cg"
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1546
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1547
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1548
codeFor_emptyMenuActionCodeFor:selector menuItem:item
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1549
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1550
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1551
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1552
codeFor_hasUnsavedChanges
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1553
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1554
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1555
    "Created: / 27-10-2006 / 10:00:36 / cg"
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1556
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1557
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1558
codeFor_menuNew
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1559
    ^ self codeFor_emptyMenuActionCodeFor:#menuNew menuItem:'new'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1560
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1561
    "Created: / 27-10-2006 / 10:17:08 / cg"
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1562
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1563
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1564
codeFor_menuOpen
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1565
    ^ self codeFor_emptyMenuActionCodeFor:#menuOpen menuItem:'open'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1566
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1567
    "Created: / 27-10-2006 / 10:17:18 / cg"
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1568
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1569
9099
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1570
codeFor_menuReload
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1571
    ^ self codeFor_emptyMenuActionCodeFor:#menuReload menuItem:'reload'
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1572
!
2729600bb93c include toolbar for new apps
Claus Gittinger <cg@exept.de>
parents: 9081
diff changeset
  1573
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1574
codeFor_menuSave
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1575
    ^ self codeFor_emptyMenuActionCodeFor:#menuSave menuItem:'save'
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1576
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1577
    "Created: / 27-10-2006 / 10:17:25 / cg"
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1578
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1579
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1580
codeFor_menuSaveAs
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1581
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1582
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1583
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1584
codeFor_openAboutThisApplication
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1585
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1586
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1587
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1588
codeFor_openDocumentation
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1589
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1590
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1591
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1592
codeFor_postBuildWith
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1593
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1594
!
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1595
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1596
codeFor_postOpenWith
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1597
    self subclassResponsibility
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1598
!
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1599
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1600
codeFor_shouldImplementFor:selector inClass:aClass
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1601
    "used in the 'generate required protocol' to generate a shouldImplement-sending
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1602
     method for each subclassClassresponsibility method above aClass."
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1603
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1604
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1605
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1606
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1607
codeFor_standAloneApplicationRegistryPath
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1608
    ^ self codeFor_standAloneApplicationRegistryPathFor:nil
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1609
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1610
    "Created: / 19-08-2011 / 02:13:14 / cg"
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1611
!
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1612
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1613
codeFor_standAloneApplicationRegistryPathFor:aClass
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1614
    self subclassResponsibility
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1615
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1616
    "Created: / 21-01-2012 / 11:23:47 / cg"
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1617
!
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1618
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1619
codeFor_standAloneApplicationUUID
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1620
    self subclassResponsibility
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1621
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1622
    "Created: / 19-08-2011 / 02:12:51 / cg"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1623
!
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1624
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1625
codeFor_standAloneMain
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1626
    self subclassResponsibility
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1627
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1628
    "Created: / 19-08-2011 / 02:12:44 / cg"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1629
!
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1630
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1631
codeFor_standAloneRealMainMethodFor:aClass
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1632
    self subclassResponsibility
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1633
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1634
    "Created: / 21-01-2012 / 12:28:45 / cg"
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1635
!
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1636
10592
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1637
codeFor_standAloneUsage
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1638
    self subclassResponsibility
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1639
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1640
    "Created: / 19-08-2011 / 02:21:52 / cg"
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1641
!
e16f6793b096 standalone code
Claus Gittinger <cg@exept.de>
parents: 10553
diff changeset
  1642
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1643
code_forWidget_buttonPress
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1644
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1645
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1646
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1647
code_forWidget_initialize
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1648
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1649
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1650
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1651
code_forWidget_keyPress
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1652
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1653
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1654
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1655
code_forWidget_redraw
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1656
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1657
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1658
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1659
code_forWidget_sizeChanged
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1660
    self subclassResponsibility
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1661
!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1662
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1663
code_forWidget_update
9705
3c29845b149d reorganized/refactored into language specific and
Claus Gittinger <cg@exept.de>
parents: 9503
diff changeset
  1664
    self subclassResponsibility
7480
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1665
! !
33930379ab27 code cleanup; more application code generation
Claus Gittinger <cg@exept.de>
parents: 7470
diff changeset
  1666
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1667
!CodeGeneratorTool methodsFor:'compilation'!
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1668
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1669
compile:theCode forClass:aClass inCategory:cat 
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1670
    "install some code for a class.
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1671
     If refactory browser stuff is avaliable the refactory tools are used to support undo"
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1672
7037
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1673
    self
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1674
        compile:theCode forClass:aClass inCategory:cat 
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1675
        skipIfSame:true
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1676
!
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1677
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1678
compile:theCode forClass:aClass inCategory:categoryOrNil skipIfSame:skipIfSame 
7037
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1679
    "install some code for a class.
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1680
     If refactory browser stuff is avaliable the refactory tools are used to support undo"
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1681
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1682
    |change compiler selector oldMethod isSame category|
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1683
7037
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1684
    isSame := false.
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1685
    category := categoryOrNil ? (Compiler defaultMethodCategory).
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1686
7037
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1687
    skipIfSame ifTrue:[
14701
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1688
        "JV: Do not use class's compilerClass, it may differ from
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1689
         the compiler of this generator's language. For instance,
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1690
         when compiling Smalltalk extension to Java or JavaScript class.
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1691
         So, use proper compiler for language the receiver is generator for,
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1692
         i.e., Compiler for SmalltalkCodeGenerator, JavaScriptCompiler for
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1693
         JavaScriptCodeGenerator..."
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1694
        compiler := self compilerClass new.
7037
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1695
        compiler parseMethod:theCode in:aClass ignoreErrors:true ignoreWarnings:true.
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1696
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1697
        selector := compiler selector.
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1698
        selector notNil ifTrue:[
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1699
            oldMethod := aClass compiledMethodAt:selector.
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1700
            isSame := (oldMethod notNil and:[oldMethod source = theCode]).
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1701
            isSame ifTrue:[^ self ].
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1702
            oldMethod notNil ifTrue:[
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1703
                category := categoryOrNil ? (oldMethod category).
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1704
            ].
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1705
        ].
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1706
    ].
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1707
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1708
    self canUseRefactoringSupport ifFalse:[
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1709
        "/ compile immediately
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1710
        aClass compile:theCode classified:category.
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1711
        ^ self.
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1712
    ].
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1713
13590
131ee5ed5402 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 13409
diff changeset
  1714
    change := InteractiveAddMethodChange compile:(theCode asString) in:aClass classified:category.
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1715
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1716
    "/ if collecting, add to changes (to be executed as one change at the end,
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1717
    "/ in order to have only one change in the undo-list (instead of many)
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1718
    compositeChangeCollector notNil ifTrue:[
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1719
        compositeChangeCollector addChange:change
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1720
    ] ifFalse:[
7037
ec9705009031 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6993
diff changeset
  1721
        RefactoryChangeManager performChange:change.
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1722
    ]
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1723
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1724
    "Modified: / 21-08-2006 / 18:39:06 / cg"
11170
37e2d07378b9 class definition
Claus Gittinger <cg@exept.de>
parents: 11041
diff changeset
  1725
    "Modified (format): / 21-01-2012 / 10:40:59 / cg"
14701
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1726
    "Modified (format): / 05-08-2014 / 21:06:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1727
!
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1728
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1729
compilerClass
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1730
    "Return a real compiler classto use to compile code"
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1731
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1732
    ^ self subclassResponsibility
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1733
a10c86eb7b9c Fixes in CodeGeneatorTool for to handle properly mixed-language classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14425
diff changeset
  1734
    "Created: / 05-08-2014 / 21:01:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6938
6cf52649971c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6937
diff changeset
  1735
! !
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1736
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1737
!CodeGeneratorTool methodsFor:'initialization'!
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1738
10466
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1739
confirmChanges
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1740
    "if true, let user confirm complicated changes; if false, just do it"
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1741
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1742
    ^ confirmChanges ? true
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1743
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1744
    "Created: / 04-08-2011 / 17:31:45 / cg"
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1745
!
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1746
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1747
confirmChanges:aBoolean
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1748
    "if true, let user confirm complicated changes; if false, just do it"
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1749
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1750
    confirmChanges := aBoolean
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1751
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1752
    "Created: / 04-08-2011 / 17:26:47 / cg"
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1753
!
4b42e5a1f395 added a hook to turn off confirmations
Claus Gittinger <cg@exept.de>
parents: 10319
diff changeset
  1754
8572
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1755
initialize
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1756
    userPreferences := UserPreferences current.
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1757
    generateComments := userPreferences generateComments.
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1758
! !
beebdd1ee40e initial widget code
Claus Gittinger <cg@exept.de>
parents: 8488
diff changeset
  1759
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1760
!CodeGeneratorTool methodsFor:'private'!
4108
19af32811dfd Generate minimal protocol classes for metaclass.
Stefan Vogel <sv@exept.de>
parents: 3823
diff changeset
  1761
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1762
canUseRefactoringSupport
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1763
    "check if refactory browser stuff is avaliable"
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1764
5758
8f88193a4a93 collect changes
Claus Gittinger <cg@exept.de>
parents: 5756
diff changeset
  1765
     ^ self class canUseRefactoringSupport
5013
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1766
!
0f2c39fc6e8c comments; allow for comments to be suppressed
Claus Gittinger <cg@exept.de>
parents: 4926
diff changeset
  1767
4108
19af32811dfd Generate minimal protocol classes for metaclass.
Stefan Vogel <sv@exept.de>
parents: 3823
diff changeset
  1768
privCreateClassResponsibleProtocolFor:aClass
6791
6559c9ebb561 Keep method argument names when generating required methods
Stefan Vogel <sv@exept.de>
parents: 6718
diff changeset
  1769
    "create stubs for the required protocol.
6559c9ebb561 Keep method argument names when generating required methods
Stefan Vogel <sv@exept.de>
parents: 6718
diff changeset
  1770
     aClass may be a a MetaClass or a non-MetaClass"
4108
19af32811dfd Generate minimal protocol classes for metaclass.
Stefan Vogel <sv@exept.de>
parents: 3823
diff changeset
  1771
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1772
    |requiredProtocol|
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1773
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1774
    requiredProtocol := self class missingRequiredProtocolFor:aClass.
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1775
    requiredProtocol do:[:eachSelector |
9025
124489bab860 added: #codeForShouldImplementFor:inClass:
Claus Gittinger <cg@exept.de>
parents: 9022
diff changeset
  1776
        |code implClass|
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1777
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1778
        implClass := aClass whichClassImplements:eachSelector.
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1779
        implClass == Object ifFalse:[
9027
f2edc1bca4de added: #codeFor_shouldImplementFor:inClass:
Claus Gittinger <cg@exept.de>
parents: 9025
diff changeset
  1780
            code := self codeFor_shouldImplementFor:eachSelector inClass:aClass.
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1781
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1782
            self 
9025
124489bab860 added: #codeForShouldImplementFor:inClass:
Claus Gittinger <cg@exept.de>
parents: 9022
diff changeset
  1783
                compile:code
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1784
                forClass:aClass 
9025
124489bab860 added: #codeForShouldImplementFor:inClass:
Claus Gittinger <cg@exept.de>
parents: 9022
diff changeset
  1785
                inCategory:(implClass compiledMethodAt:eachSelector) category.
9022
676088a17690 added: #missingRequiredProtocolFor:
Claus Gittinger <cg@exept.de>
parents: 8987
diff changeset
  1786
        ]
4108
19af32811dfd Generate minimal protocol classes for metaclass.
Stefan Vogel <sv@exept.de>
parents: 3823
diff changeset
  1787
    ].
19af32811dfd Generate minimal protocol classes for metaclass.
Stefan Vogel <sv@exept.de>
parents: 3823
diff changeset
  1788
! !
19af32811dfd Generate minimal protocol classes for metaclass.
Stefan Vogel <sv@exept.de>
parents: 3823
diff changeset
  1789
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1790
!CodeGeneratorTool class methodsFor:'documentation'!
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1791
10594
362f9b437426 changed: #createStandaloneStartupCodeFor:
Claus Gittinger <cg@exept.de>
parents: 10592
diff changeset
  1792
version
15085
dac5a348dd09 class: CodeGeneratorTool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14966
diff changeset
  1793
    ^ '$Header: /cvs/stx/stx/libtool/CodeGeneratorTool.st,v 1.110 2015-01-10 06:43:36 vrany Exp $'
10594
362f9b437426 changed: #createStandaloneStartupCodeFor:
Claus Gittinger <cg@exept.de>
parents: 10592
diff changeset
  1794
!
362f9b437426 changed: #createStandaloneStartupCodeFor:
Claus Gittinger <cg@exept.de>
parents: 10592
diff changeset
  1795
8890
69b74f5776fb changed:
fm
parents: 8773
diff changeset
  1796
version_CVS
15085
dac5a348dd09 class: CodeGeneratorTool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14966
diff changeset
  1797
    ^ '$Header: /cvs/stx/stx/libtool/CodeGeneratorTool.st,v 1.110 2015-01-10 06:43:36 vrany Exp $'
3712
293c44b3c910 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1798
! !
12877
56aee4c5bb78 class: CodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 11842
diff changeset
  1799