CustomCodeGenerator.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Tue, 13 May 2014 22:41:19 +0200
changeset 546 7402ead9f354
parent 544 4d9dfb9b35a1
child 556 107e4a470e73
permissions -rw-r--r--
fix error when nothing is generated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     2
500
8c2b58d6b2d5 Code reogranization, Defined CustomContext & basic API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
     3
CustomCodeGeneratorOrRefactoring subclass:#CustomCodeGenerator
543
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
     4
	instanceVariableNames:'builder dialog'
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     5
	classVariableNames:''
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     6
	poolDictionaries:''
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     7
	category:'Interface-Refactoring-Custom'
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     8
!
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
     9
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    10
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    11
!CustomCodeGenerator class methodsFor:'instance creation'!
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    12
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    13
new
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    14
    "return an initialized instance"
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    15
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    16
    ^ self basicNew initialize.
531
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    17
!
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    18
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    19
subGeneratorOf: aCodeGenerator
544
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    20
    | codeGenerator nestingCount |
531
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    21
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    22
    codeGenerator := self new.
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    23
    codeGenerator builder: aCodeGenerator builder.
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    24
    codeGenerator compositeChangeCollector: aCodeGenerator compositeChangeCollector.
544
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    25
    nestingCount := aCodeGenerator compositeChangeNesting.
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    26
    nestingCount isNil ifTrue: [ 
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    27
        nestingCount := 0 
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    28
    ].  
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    29
    codeGenerator compositeChangeNesting: (1 + nestingCount).
531
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    30
    ^ codeGenerator
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    31
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    32
    "Created: / 19-04-2014 / 10:15:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
544
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    33
    "Modified: / 11-05-2014 / 14:08:23 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    34
! !
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    35
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 504
diff changeset
    36
!CustomCodeGenerator class methodsFor:'testing'!
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    37
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 504
diff changeset
    38
isAbstract
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 504
diff changeset
    39
    ^ self == CustomCodeGenerator
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    40
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 504
diff changeset
    41
    "Created: / 26-01-2014 / 21:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    42
! !
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    43
531
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    44
!CustomCodeGenerator methodsFor:'accessing'!
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    45
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    46
builder
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    47
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    48
    ^ builder
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    49
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    50
    "Created: / 19-04-2014 / 10:16:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    51
!
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    52
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    53
builder: aBuilder
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    54
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    55
    builder := aBuilder
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    56
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    57
    "Created: / 19-04-2014 / 09:17:03 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    58
!
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    59
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    60
compositeChangeCollector
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    61
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    62
    ^ compositeChangeCollector
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    63
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    64
    "Created: / 19-04-2014 / 10:18:06 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    65
!
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    66
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    67
compositeChangeCollector: aCompositeChangeCollector
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    68
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    69
    compositeChangeCollector := aCompositeChangeCollector
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    70
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
    71
    "Created: / 19-04-2014 / 10:18:23 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
544
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    72
!
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    73
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    74
compositeChangeNesting
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    75
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    76
    ^ compositeChangeNesting
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    77
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    78
    "Created: / 11-05-2014 / 14:01:23 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    79
!
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    80
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    81
compositeChangeNesting: aNumber
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    82
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    83
    compositeChangeNesting := aNumber
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    84
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    85
    "Created: / 11-05-2014 / 14:01:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    86
!
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    87
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    88
dialog
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    89
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    90
    ^ dialog
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    91
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    92
    "Created: / 11-05-2014 / 00:27:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    93
!
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    94
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    95
dialog: aDialog
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    96
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    97
    dialog := aDialog
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    98
4d9dfb9b35a1 add CustomDialogMock for testing purposes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 543
diff changeset
    99
    "Created: / 11-05-2014 / 00:27:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
531
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
   100
! !
0f5089968f96 generator which generates a code generator class made with usage of subclassResponsibilityGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 525
diff changeset
   101
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   102
!CustomCodeGenerator methodsFor:'code generation'!
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   103
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   104
addBuilderChanges
546
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   105
    | change |
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   106
546
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   107
    change := builder change.
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   108
    change notNil ifTrue: [
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   109
        self addChange: change 
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   110
    ]
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   111
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   112
    "Created: / 10-04-2014 / 23:26:12 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
546
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   113
    "Modified: / 13-05-2014 / 22:10:40 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   114
!
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   115
523
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   116
createClass: definitionString
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   117
    "Create a new class defined by `definitionString`. 
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   118
    `definitionString` is something like:
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   119
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   120
    CustomCodeGeneratorOrRefactoring subclass:#CustomCodeGenerator
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   121
        instanceVariableNames:'sourcesInBuildProcess'
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   122
        classVariableNames:''
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   123
        poolDictionaries:''
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   124
        category:'Interface-Refactoring-Custom'     
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   125
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   126
    "
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   127
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   128
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   129
    | classChange  |
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   130
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   131
    classChange := InteractiveAddClassChange definition: definitionString.
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   132
    self addChange: classChange.
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   133
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   134
    "Created: / 03-04-2014 / 10:27:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   135
! !
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   136
514
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   137
!CustomCodeGenerator methodsFor:'executing'!
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   138
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   139
buildInContext: aCustomContext
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   140
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   141
    self subclassResponsibility
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   142
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   143
    "Created: / 18-03-2014 / 22:52:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   144
!
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   145
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   146
executeChangesInContext: aCustomContext changesName: aName
514
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   147
520
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   148
    self executeCollectedChangesNamed: aName.
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   149
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   150
    "Created: / 10-04-2014 / 23:26:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
520
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   151
!
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   152
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   153
executeInContext: aCustomContext
534
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   154
    | wg executor |
520
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   155
534
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   156
    wg := WindowGroup activeGroup.
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   157
    wg notNil ifTrue:[
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   158
        executor := [:whatToDo | wg withWaitCursorDo: [ whatToDo value ] ]
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   159
    ] ifFalse:[
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   160
        executor := [:whatToDo | whatToDo value ]
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   161
    ].
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   162
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   163
    executor value:[
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   164
        self startCollectChanges.       
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   165
        self buildInContext: aCustomContext.
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   166
        self addBuilderChanges.
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   167
        self executeChangesInContext: aCustomContext changesName: ('Add ', self class description).
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   168
    ]
514
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   169
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   170
    "Created: / 19-03-2014 / 18:45:26 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
523
afbbedbfceb8 sync with jv changes
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 520
diff changeset
   171
    "Modified: / 03-04-2014 / 11:04:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
534
f89b11cd6fa5 CustomContext made as abstract class with 2 implementations: Browser and Sub generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 531
diff changeset
   172
    "Modified: / 26-04-2014 / 16:15:19 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
514
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   173
! !
6e7758b695c5 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 512
diff changeset
   174
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   175
!CustomCodeGenerator methodsFor:'initialization'!
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   176
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   177
initialize
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   178
546
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   179
    super initialize.
543
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   180
    self setupBuilder.
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   181
    self setupDialog
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   182
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   183
    "Created: / 17-03-2014 / 22:27:32 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
546
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   184
    "Modified: / 12-05-2014 / 23:30:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   185
!
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   186
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   187
setupBuilder
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   188
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   189
    builder := CustomSourceCodeBuilder new.
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   190
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   191
    "Created: / 10-04-2014 / 23:12:17 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
543
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   192
!
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   193
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   194
setupDialog
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   195
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   196
    dialog := CustomDialog new.
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   197
385fd9a2aa38 delegate dialogs to custom class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   198
    "Created: / 10-05-2014 / 15:38:34 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   199
! !
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 506
diff changeset
   200
520
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   201
!CustomCodeGenerator methodsFor:'private'!
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   202
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   203
addSource: source
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   204
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   205
    source sourceExists ifFalse: [
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   206
        self addChange: (source change).
520
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   207
    ]
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   208
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   209
    "Created: / 01-04-2014 / 21:53:54 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 523
diff changeset
   210
    "Modified: / 10-04-2014 / 23:07:53 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
520
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   211
! !
f9f2052d141a first draft - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 518
diff changeset
   212
546
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   213
!CustomCodeGenerator methodsFor:'user interaction & notifications'!
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   214
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   215
information: aString
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   216
    "Much like Object >> information:, but with TestCase support"
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   217
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   218
    dialog information: aString
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   219
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   220
    "Created: / 13-05-2014 / 22:25:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   221
! !
7402ead9f354 fix error when nothing is generated
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 544
diff changeset
   222
464
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   223
!CustomCodeGenerator class methodsFor:'documentation'!
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   224
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   225
version_HG
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   226
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   227
    ^ '$Changeset: <not expanded> $'
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   228
! !
2f2f44408f2c - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   229