extensions.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 30 Sep 2014 19:20:08 +0100
changeset 682 4496a137b756
parent 649 6f80d672cb35
parent 681 34c671a3cf59
child 685 bc7798e413f6
permissions -rw-r--r--
Merged 8cb03501c7cb and 34c671a3cf59
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
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
    27
    (superclass isNil and: [ self name = #Object ]) 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
    28
        self isMeta 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
    29
            superclass := Object 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
    30
        ] 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
    31
            superclass := Object
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
    32
        ]
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
    superclass 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
    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
    "Created: / 21-04-2014 / 19:15:49 / 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
    38
    "Modified: / 29-09-2014 / 23:08:10 / 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
    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
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
!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
    42
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
instVarNames
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
    44
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
    45
    ^ 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
    46
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
    47
    "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
    48
    "Modified: / 24-09-2014 / 20:36: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
    49
! !
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
    50
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
    51
!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
    52
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
    53
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
    54
    "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
    55
    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
    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
    | 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
    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
    self realClass 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
    60
        methodDictionary := MethodDictionary new
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
    ] 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
    62
        methodDictionary := self realClass methodDictionary deepCopy
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
    ].
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
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
    65
    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
    66
        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
    67
            | 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
    68
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
    69
            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
    70
            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
    71
                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
    72
            ]
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
    73
        ]
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
    74
    ].
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
    75
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
    newMethods 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
    77
        newMethods do: [ :newMethod | 
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
            | 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
    79
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 := Method new.
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
            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
    82
                selector: newMethod 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
    83
                protocol: newMethod category asString;
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
                source: newMethod source.
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
            methodDictionary at: newMethod selector asSymbol put: 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
    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
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
    90
    ^ 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
    91
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
    "Created: / 28-09-2014 / 22:57:28 / 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
    93
    "Modified: / 29-09-2014 / 22:43:30 / 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
    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
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
!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
    97
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
    98
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
    99
    "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
   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
    ^ (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
   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
    "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
   104
    "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
   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
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
!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
   108
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
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
   110
    "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
   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
    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
   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
    "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
   115
! !
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
!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
   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
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
   120
    "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
   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
    ^ 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
   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
    "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
   125
! !
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
!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
   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
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
   130
    "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
   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
    ^ 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
   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
    "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
   135
! !
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
!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
   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
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
   140
    "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
   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
    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
   143
    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
   144
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
    "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
   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
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
!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
   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
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
   151
    "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
   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
    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
   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
    "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
   156
    "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
   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
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
!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
   160
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
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
   162
    "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
   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
    ^ 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
   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
    "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
   167
! !
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
!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
   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
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
   172
    "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
   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
    ^ 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
   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
    "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
   177
! !
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
!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
   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
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
   182
    "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
   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
    ^ 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
   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
    "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
   187
! !
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
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
   189
!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
   190
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   191
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
   192
    <menuextension: #classMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   193
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
   194
    | 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
   195
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    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
   197
    perspective := CustomPerspective classPerspective.
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   198
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   199
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   200
                    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
   201
    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
   202
    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
   203
    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
   204
        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
   205
    ] 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
   206
        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
   207
    ].
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   209
    "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
   210
! !
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   211
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   212
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   213
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   214
codeViewMenuExtensionCustomRefactorings:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   215
    <menuextension: #codeViewMenu>
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   216
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   217
    | item  index  perspective  context |
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   218
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   219
    item := MenuItem label:(resources string:'Refactor - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   220
    perspective := CustomPerspective methodPerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   221
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   222
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   223
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   224
    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
   225
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Refactor' ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   226
    index ~~ 0 ifTrue:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   227
        aMenu addItem:item beforeIndex:index + 1.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   228
    ] ifFalse:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   229
        aMenu addItem:item.
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
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   232
    "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
   233
! !
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   234
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   235
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   236
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   237
selectorMenuExtensionCustomGenerators:aMenu 
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   238
    <menuextension: #selectorMenuCompareGenerateDebugSlice>
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   239
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   240
    | item  index  perspective  context |
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   241
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   242
    item := MenuItem label:(resources string:'Generate - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   243
    perspective := CustomPerspective methodPerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   244
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   245
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   246
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   247
    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
   248
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   249
    index ~~ 0 ifTrue:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   250
        aMenu addItem:item beforeIndex:index + 1.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   251
    ] ifFalse:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   252
        aMenu addItem:item.
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
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   255
    "Created: / 26-08-2014 / 10:18:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   256
    "Modified: / 05-09-2014 / 11:28:05 / 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
   257
! !
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   258
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   259
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   260
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   261
selectorMenuExtensionCustomRefactorings:aMenu 
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   262
    <menuextension: #selectorMenuCompareGenerateDebugSlice>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   263
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   264
    | item  index  perspective  context |
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   265
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   266
    item := MenuItem label:(resources string:'Refactor - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   267
    perspective := CustomPerspective methodPerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   268
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   269
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   270
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   271
    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
   272
    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
   273
    index ~~ 0 ifTrue:[
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   274
        aMenu addItem:item beforeIndex:index + 1.
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   275
    ] ifFalse:[
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   276
        aMenu addItem:item.
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   277
    ].
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   278
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   279
    "Created: / 24-08-2014 / 15:23:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   280
    "Modified: / 05-09-2014 / 11:28:09 / 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
   281
! !
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   282
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   283
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   284
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   285
variablesMenuExtensionCustomGenerators:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   286
    <menuextension: #variablesMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   287
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   288
    | item  index  perspective  context |
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   289
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   290
    item := MenuItem label:(resources string:'Generate - Custom').
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   291
    perspective := CustomPerspective instanceVariablePerspective.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   292
    context := CustomBrowserContext 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   293
                    perspective:perspective
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   294
                    state:self navigationState.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   295
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   296
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   297
    index ~~ 0 ifTrue:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   298
        aMenu addItem:item beforeIndex:index + 1.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   299
    ] ifFalse:[
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   300
        aMenu addItem:item.
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   301
    ].
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   302
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   303
    "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
   304
! !
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
!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
   307
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
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
   309
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
    ^ '$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
   311
! !