extensions.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Sun, 05 Oct 2014 13:02:03 +0200
changeset 684 07bbc12ffdd6
parent 681 34c671a3cf59
child 685 bc7798e413f6
permissions -rw-r--r--
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator move CustomSourceCodeBuilder methods to Refactory-Model and test those methods
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"!
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     3
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     4
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     5
allClassVarNames
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     6
    | variableNames |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     7
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     8
    variableNames := self allClassVariableNames.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
     9
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    10
    variableNames isNil ifTrue: [ 
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    11
        ^ #()
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    12
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    13
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    14
    ^ variableNames
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    15
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    16
    "Created: / 01-06-2014 / 23:40:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    17
    "Modified: / 20-09-2014 / 19:26:24 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    18
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    19
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    20
!RBAbstractClass methodsFor:'enumerating'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    21
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    22
allSuperclassesDo: aBlock
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    23
    | superclass |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    24
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    25
    superclass := self superclass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    26
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    27
    superclass isNil ifFalse: [ 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    28
        superclass withAllSuperclassesDo: aBlock
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    29
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    30
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    31
    "Created: / 21-04-2014 / 19:15:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    32
    "Modified: / 04-10-2014 / 22:35:33 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    33
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    34
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    35
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    36
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    37
instVarNames
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    38
    "Returns instance variable names - STX compatibility"
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    39
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    40
    ^ self instanceVariableNames
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    41
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    42
    "Created: / 29-05-2014 / 23:46:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    43
    "Modified: / 24-09-2014 / 20:36:44 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    44
    "Modified (comment): / 30-09-2014 / 19:30:18 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    45
! !
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    46
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    47
!RBAbstractClass methodsFor:'accessing'!
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    48
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    49
instVarNames: aCollectionOfStrings 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    50
    "Set instance variable names - STX compatibility"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    51
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    52
    self instanceVariableNames: aCollectionOfStrings
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    53
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    54
    "Created: / 30-09-2014 / 19:30:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    55
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    56
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    57
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    58
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    59
methodDictionary
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    60
    "Stub method, returns real class MethodDictionary, although full MethodDictionary
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    61
    implementation would be better here."
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    62
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    63
    | methodDictionary |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    64
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    65
    methodDictionary := MethodDictionary new.
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    66
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    67
    self realClass isNil ifFalse: [
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    68
        self realClass methodDictionary do: [ :method | 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    69
            methodDictionary := methodDictionary 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    70
                at: method selector asSymbol 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    71
                putOrAppend: (RBMethod 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    72
                    for: self 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    73
                    fromMethod: method 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    74
                    andSelector: method selector asSymbol)
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    75
        ].
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    76
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    77
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    78
    removedMethods isNil ifFalse: [
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    79
        removedMethods do: [ :removedMethod | 
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    80
            | method |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    81
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    82
            method := methodDictionary at: removedMethod selector asSymbol ifAbsent: [ nil ].  
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    83
            method isNil ifFalse: [
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    84
                methodDictionary := methodDictionary removeKeyAndCompress: removedMethod selector asSymbol.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    85
            ]
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    86
        ]
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    87
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    88
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    89
    newMethods isNil ifFalse: [
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    90
        newMethods do: [ :newMethod |
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    91
            methodDictionary := methodDictionary at: newMethod selector asSymbol putOrAppend: newMethod.
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    92
        ]
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    93
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    94
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    95
    ^ methodDictionary
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    96
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    97
    "Created: / 28-09-2014 / 22:57:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    98
    "Modified: / 02-10-2014 / 21:11:23 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    99
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   100
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   101
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   102
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   103
nameWithoutPrefix
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   104
    "see ClassDescription >> nameWithoutPrefix"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   105
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   106
    ^ (Smalltalk at: #Class) nameWithoutPrefix: name
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   107
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   108
    "Created: / 03-08-2014 / 23:29:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   109
    "Modified: / 20-09-2014 / 19:21:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   110
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   111
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   112
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   113
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   114
superclassName: aName
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   115
    "Assign superclass by its name"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   116
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   117
    self superclass: (self model classNamed: aName asSymbol)
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   118
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   119
    "Created: / 28-09-2014 / 22:53:46 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   120
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   121
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   122
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   123
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   124
theMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   125
    "alias for theMetaClass - STX compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   126
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   127
    ^ self theMetaClass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   128
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   129
    "Created: / 26-09-2014 / 16:26:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   130
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   131
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   132
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   133
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   134
theNonMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   135
    "alias for theNonMetaClass - STX compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   136
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   137
    ^ self theNonMetaClass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   138
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   139
    "Created: / 26-09-2014 / 16:36:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   140
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   141
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   142
!RBAbstractClass methodsFor:'enumerating'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   143
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   144
withAllSuperclassesDo:aBlock
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   145
    "evaluate aBlock for the class and all of its superclasses"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   146
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   147
    aBlock value:self.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   148
    self allSuperclassesDo:aBlock
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   149
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   150
    "Created: / 29-09-2014 / 22:48:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   151
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   152
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   153
!RBClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   154
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   155
compile
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   156
    "Updates class definition in the namespace along with code changes"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   157
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   158
    model defineClass: self definitionString.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   159
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   160
    "Created: / 25-09-2014 / 22:31:44 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   161
    "Modified: / 25-09-2014 / 23:36:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   162
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   163
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   164
!RBClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   165
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   166
theNonMetaClass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   167
    "alias for theNonMetaclass - squeak compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   168
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   169
    ^ self theNonMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   170
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   171
    "Created: / 26-09-2014 / 16:50:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   172
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   173
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   174
!RBMetaclass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   175
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   176
theMetaClass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   177
    "alias for metaclass - sqeak compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   178
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   179
    ^ self metaclass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   180
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   181
    "Created: / 26-09-2014 / 21:32:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   182
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   183
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   184
!RBMetaclass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   185
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   186
theMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   187
    "alias for metaclass - STX compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   188
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   189
    ^ self metaclass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   190
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   191
    "Created: / 26-09-2014 / 21:28:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   192
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   193
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   194
!RBMethod methodsFor:'queries'!
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   195
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   196
sends:selectorSymbol1 or:selectorSymbol2
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   197
    "Returns true, if this method contains a message-send
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   198
     to either selectorSymbol1 or selectorSymbol2.
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   199
     ( non-optimized version of Message>>sends:or: )"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   200
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   201
    ^ (self sendsSelector: selectorSymbol1) or: [ self sendsSelector: selectorSymbol2 ]
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   202
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   203
    "Created: / 04-10-2014 / 00:01:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   204
! !
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   205
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   208
classMenuExtensionCustomGenerators:aMenu 
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    <menuextension: #classMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   210
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    | item  index  perspective  context |
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    item := MenuItem label:(resources string:'Generate - Custom').
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    perspective := CustomPerspective classPerspective.
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   215
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   216
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   217
                    state:self navigationState.
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context ].
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    index ~~ 0 ifTrue:[
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
        aMenu addItem:item beforeIndex:index + 1.
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    ] ifFalse:[
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
        aMenu addItem:item.
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    ].
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   226
    "Created: / 26-08-2014 / 10:21:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   227
! !
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   228
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   229
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   230
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   231
codeViewMenuExtensionCustomRefactorings:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   232
    <menuextension: #codeViewMenu>
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   233
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   234
    | item  index  perspective  context |
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   235
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   236
    item := MenuItem label:(resources string:'Refactor - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   237
    perspective := CustomPerspective methodPerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   238
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   239
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   240
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   241
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomRefactoring ] ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   242
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Refactor' ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   243
    index ~~ 0 ifTrue:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   244
        aMenu addItem:item beforeIndex:index + 1.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   245
    ] ifFalse:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   246
        aMenu addItem:item.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   247
    ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   248
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   249
    "Created: / 26-08-2014 / 22:44:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   250
! !
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   251
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   252
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   253
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   254
selectorMenuExtensionCustomGenerators:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   255
    <menuextension: #selectorMenu>
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   256
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   257
    | item  index  perspective  context |
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   258
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   259
    item := MenuItem label:(resources string:'Generate - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   260
    perspective := CustomPerspective methodPerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   261
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   262
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   263
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   264
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomCodeGenerator ] ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   265
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   266
    index ~~ 0 ifTrue:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   267
        aMenu addItem:item beforeIndex:index + 1.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   268
    ] ifFalse:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   269
        aMenu addItem:item.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   270
    ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   271
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   272
    "Created: / 26-08-2014 / 10:18:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   273
! !
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   274
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   275
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   276
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   277
selectorMenuExtensionCustomRefactorings:aMenu 
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   278
    <menuextension: #selectorMenu>
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   279
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   280
    | item  index  perspective  context |
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   281
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   282
    item := MenuItem label:(resources string:'Refactor - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   283
    perspective := CustomPerspective methodPerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   284
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   285
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   286
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   287
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomRefactoring ] ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   288
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Refactor' ].
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   289
    index ~~ 0 ifTrue:[
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   290
        aMenu addItem:item beforeIndex:index + 1.
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   291
    ] ifFalse:[
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   292
        aMenu addItem:item.
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   293
    ].
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   294
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   295
    "Created: / 24-08-2014 / 15:23:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   296
    "Modified: / 26-08-2014 / 10:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   297
! !
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   298
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   299
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   300
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   301
variablesMenuExtensionCustomGenerators:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   302
    <menuextension: #variablesMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   303
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   304
    | item  index  perspective  context |
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   305
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   306
    item := MenuItem label:(resources string:'Generate - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   307
    perspective := CustomPerspective instanceVariablePerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   308
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   309
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   310
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   311
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   312
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   313
    index ~~ 0 ifTrue:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   314
        aMenu addItem:item beforeIndex:index + 1.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   315
    ] ifFalse:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   316
        aMenu addItem:item.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   317
    ].
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   318
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   319
    "Created: / 26-08-2014 / 10:21:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
! !
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
!jn_refactoring_custom class methodsFor:'documentation'!
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
extensionsVersion_HG
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
    ^ '$Changeset: <not expanded> $'
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
! !