Tools__MethodRewriter.st
author Claus Gittinger <cg@exept.de>
Sun, 01 Feb 2015 14:17:11 +0100
changeset 15150 940d37c7d3ac
parent 14388 8f404d61e5c8
child 15200 9e2705b68633
permissions -rw-r--r--
class: Tools::ChangeList fixed the following redraw bug in ModelListView (which is already fixed in SelectionInListView): if a colored item is shown with selection, the color attribute should be removed (or relaxed), to avoid drawing the label invisible. I.e. if the text color is blue or grey, and the selection bg is blue. we should draw white-on-blue, instead of blue/grey on blue. For this to work, the info whether drawing a selection must be passed down through the renderer to the item's draw routine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
     1
"
10097
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
     4
10097
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     6
 obtaining a copy of this software and associated documentation
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     7
 files (the 'Software'), to deal in the Software without
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     8
 restriction, including without limitation the rights to use,
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    10
 copies of the Software, and to permit persons to whom the
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    11
 Software is furnished to do so, subject to the following
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    12
 conditions:
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    13
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    14
 The above copyright notice and this permission notice shall be
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    15
 included in all copies or substantial portions of the Software.
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    16
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    25
"
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    26
"{ Package: 'stx:libtool' }"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
    27
a93e501c8632 initial checkin
fm
parents:
diff changeset
    28
"{ NameSpace: Tools }"
a93e501c8632 initial checkin
fm
parents:
diff changeset
    29
a93e501c8632 initial checkin
fm
parents:
diff changeset
    30
ApplicationModel subclass:#MethodRewriter
10170
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
    31
	instanceVariableNames:'replaceTextView methods classes searchTextView
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
    32
		actionInProgresHolder infoHolder progressHolder
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
    33
		templateSearchPatternHolder templateReplacePatternHolder
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
    34
		selectedTemplateIndex templates selectedTabIndex
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
    35
		selectedClassesHolder'
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
    36
	classVariableNames:''
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
    37
	poolDictionaries:''
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
    38
	category:'Interface-MethodRewriter'
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
    39
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
    40
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    41
!MethodRewriter class methodsFor:'documentation'!
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    42
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    43
copyright
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    44
"
10097
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    45
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    46
 Copyright (c) 2009-2010 eXept Software AG
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    47
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    48
 Permission is hereby granted, free of charge, to any person
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    49
 obtaining a copy of this software and associated documentation
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    50
 files (the 'Software'), to deal in the Software without
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    51
 restriction, including without limitation the rights to use,
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    52
 copy, modify, merge, publish, distribute, sublicense, and/or sell
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    53
 copies of the Software, and to permit persons to whom the
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    54
 Software is furnished to do so, subject to the following
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    55
 conditions:
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    56
10097
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    57
 The above copyright notice and this permission notice shall be
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    58
 included in all copies or substantial portions of the Software.
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    59
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    60
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    61
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    62
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    63
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    64
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    65
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    66
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
10ce33707e4f class definition
Claus Gittinger <cg@exept.de>
parents: 9988
diff changeset
    67
 OTHER DEALINGS IN THE SOFTWARE.
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    68
"
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
    69
! !
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
    70
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
    71
!MethodRewriter class methodsFor:'example templates'!
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
    72
a93e501c8632 initial checkin
fm
parents:
diff changeset
    73
templateReplaceAtIfAbsentByAtAifAbsentPut
a93e501c8632 initial checkin
fm
parents:
diff changeset
    74
a93e501c8632 initial checkin
fm
parents:
diff changeset
    75
    ^Array 
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
    76
        with:('Replace ','Dictionary>>#at:ifAbsent:'allBold,' by ','#at:ifAbsentPut:' allBold)
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
    77
with: '``@dictionary
a93e501c8632 initial checkin
fm
parents:
diff changeset
    78
    at: ``@key
a93e501c8632 initial checkin
fm
parents:
diff changeset
    79
    ifAbsent:
a93e501c8632 initial checkin
fm
parents:
diff changeset
    80
        [| `@temps |
a93e501c8632 initial checkin
fm
parents:
diff changeset
    81
        `@.statements.
a93e501c8632 initial checkin
fm
parents:
diff changeset
    82
        ``@dictionary at: ``@key put: ``@object]'
a93e501c8632 initial checkin
fm
parents:
diff changeset
    83
with:'``@dictionary
a93e501c8632 initial checkin
fm
parents:
diff changeset
    84
    at: ``@key
a93e501c8632 initial checkin
fm
parents:
diff changeset
    85
    ifAbsentPut:
a93e501c8632 initial checkin
fm
parents:
diff changeset
    86
        [| `@temps |
a93e501c8632 initial checkin
fm
parents:
diff changeset
    87
        `@.statements.
a93e501c8632 initial checkin
fm
parents:
diff changeset
    88
        ``@object]'
a93e501c8632 initial checkin
fm
parents:
diff changeset
    89
a93e501c8632 initial checkin
fm
parents:
diff changeset
    90
    "Created: / 12-12-2007 / 11:08:01 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
    91
    "Modified: / 17-02-2008 / 08:35:17 / janfrog"
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
    92
    "Modified: / 04-07-2011 / 17:41:21 / cg"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
    93
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
    94
10140
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
    95
templateReplaceIfNilByIsNilIfTrue
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
    96
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
    97
    ^Array 
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
    98
        with:('Replace ','ifNil:' allBold,' by ','isNil ifTrue:' allBold)
10153
c8677bcfda56 changed:
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
    99
        with: '``@receiver ifNil: ``@block'
c8677bcfda56 changed:
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
   100
        with: '``@receiver isNil ifTrue: ``@block'
10140
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
   101
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
   102
    "Created: / 04-07-2011 / 19:25:06 / cg"
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
   103
!
2df2dde55877 added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents: 10128
diff changeset
   104
10111
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   105
templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   106
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   107
    ^Array 
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
   108
        with:('Replace ','isNilOrEmptyCollection' allBold,' by ','isEmptyOrNil' allBold)
10153
c8677bcfda56 changed:
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
   109
        with: '``@receiver isNilOrEmptyCollection'
c8677bcfda56 changed:
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
   110
        with: '``@receiver isEmptyOrNil'''
10111
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   111
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   112
    "Created: / 03-07-2011 / 21:59:47 / cg"
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   113
!
97f2db2aca32 added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 10110
diff changeset
   114
10128
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   115
templateReplaceSelfHaltBySelfBreakPoint
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   116
    |initials|
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   117
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   118
    initials := OperatingSystem getLoginName.
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   119
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   120
    ^Array 
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   121
        with:('Replace ','self halt' allBold,' by ','self breakPoint: #' allBold ,initials)
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   122
        with: 'self halt'
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   123
        with: 'self breakPoint: #',initials
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   124
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   125
    "Modified: / 17-02-2008 / 08:35:09 / janfrog"
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   126
    "Created: / 04-07-2011 / 17:43:46 / cg"
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   127
!
4bd98e161a68 added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents: 10126
diff changeset
   128
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   129
templateReplaceSelfHaltBySelfError
a93e501c8632 initial checkin
fm
parents:
diff changeset
   130
a93e501c8632 initial checkin
fm
parents:
diff changeset
   131
    ^Array 
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
   132
        with:('Replace ','self halt'allBold,' by ','self error:''was: self halt''' allBold)
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   133
        with: 'self halt'
13160
31e3fbda8ec5 class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents: 11724
diff changeset
   134
        with: 'self error:''was: self halt'''
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   135
a93e501c8632 initial checkin
fm
parents:
diff changeset
   136
    "Created: / 12-12-2007 / 11:29:51 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   137
    "Modified: / 17-02-2008 / 08:35:09 / janfrog"
10126
4cf3c68412a7 templates
Claus Gittinger <cg@exept.de>
parents: 10112
diff changeset
   138
    "Modified: / 04-07-2011 / 17:41:33 / cg"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   139
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   140
a93e501c8632 initial checkin
fm
parents:
diff changeset
   141
templates
a93e501c8632 initial checkin
fm
parents:
diff changeset
   142
a93e501c8632 initial checkin
fm
parents:
diff changeset
   143
    |templateSelectors|
a93e501c8632 initial checkin
fm
parents:
diff changeset
   144
a93e501c8632 initial checkin
fm
parents:
diff changeset
   145
    templateSelectors := 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   146
        (self class selectors select:[:e|(e startsWith:'template') 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   147
            and:[e ~= #templates and:[e ~= #templatesSpec]]]).
a93e501c8632 initial checkin
fm
parents:
diff changeset
   148
    ^templateSelectors 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   149
        collect:[:e|self perform:e]
a93e501c8632 initial checkin
fm
parents:
diff changeset
   150
a93e501c8632 initial checkin
fm
parents:
diff changeset
   151
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   152
        self templates
a93e501c8632 initial checkin
fm
parents:
diff changeset
   153
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   154
a93e501c8632 initial checkin
fm
parents:
diff changeset
   155
    "Created: / 12-12-2007 / 11:03:32 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   156
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   157
a93e501c8632 initial checkin
fm
parents:
diff changeset
   158
!MethodRewriter class methodsFor:'interface specs'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   159
a93e501c8632 initial checkin
fm
parents:
diff changeset
   160
classesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   161
    "This resource specification was automatically generated
a93e501c8632 initial checkin
fm
parents:
diff changeset
   162
     by the UIPainter of ST/X."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   163
a93e501c8632 initial checkin
fm
parents:
diff changeset
   164
    "Do not manually edit this!! If it is corrupted,
a93e501c8632 initial checkin
fm
parents:
diff changeset
   165
     the UIPainter may not be able to read the specification."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   166
a93e501c8632 initial checkin
fm
parents:
diff changeset
   167
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   168
     UIPainter new openOnClass:Tools::MethodRewriter andSelector:#classesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   169
     Tools::MethodRewriter new openInterface:#classesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   170
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   171
a93e501c8632 initial checkin
fm
parents:
diff changeset
   172
    <resource: #canvas>
a93e501c8632 initial checkin
fm
parents:
diff changeset
   173
a93e501c8632 initial checkin
fm
parents:
diff changeset
   174
    ^ 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   175
     #(FullSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   176
        name: classesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   177
        window: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   178
       (WindowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   179
          label: 'Classes'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   180
          name: 'Classes'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   181
          min: (Point 10 10)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   182
          bounds: (Rectangle 0 0 300 300)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   183
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   184
        component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   185
       (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   186
          collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   187
           (LabelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   188
              label: 'Hint: drag''n''drop classes from browser'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   189
              name: 'HintLabel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   190
              layout: (LayoutFrame 0 0 0 0 0 1 30 0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   191
              translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   192
              adjust: left
a93e501c8632 initial checkin
fm
parents:
diff changeset
   193
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   194
           (SelectionInListModelViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   195
              name: 'ClassesList'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   196
              layout: (LayoutFrame 0 0 30 0 0 1 -30 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   197
              model: selectedClassesHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   198
              hasHorizontalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   199
              hasVerticalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   200
              listModel: classes
a93e501c8632 initial checkin
fm
parents:
diff changeset
   201
              multipleSelectOk: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   202
              useIndex: false
a93e501c8632 initial checkin
fm
parents:
diff changeset
   203
              highlightMode: line
a93e501c8632 initial checkin
fm
parents:
diff changeset
   204
              properties: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   205
             (PropertyListDictionary
a93e501c8632 initial checkin
fm
parents:
diff changeset
   206
                dragArgument: nil
a93e501c8632 initial checkin
fm
parents:
diff changeset
   207
                dropArgument: nil
a93e501c8632 initial checkin
fm
parents:
diff changeset
   208
                canDropSelector: canDropClasses:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   209
                dropSelector: doDropClasses:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   210
              )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   211
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   212
           (ActionButtonSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   213
              label: 'Remove selected classes'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   214
              name: 'RemoveClassesButton'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   215
              layout: (LayoutFrame 5 0 -25 1 -5 1 -5 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   216
              translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   217
              model: removeSeletedClassesAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   218
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   219
           )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   220
         
a93e501c8632 initial checkin
fm
parents:
diff changeset
   221
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   222
      )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   223
a93e501c8632 initial checkin
fm
parents:
diff changeset
   224
    "Modified: / 12-12-2007 / 12:07:17 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   225
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   226
a93e501c8632 initial checkin
fm
parents:
diff changeset
   227
searchAndReplaceSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   228
    "This resource specification was automatically generated
a93e501c8632 initial checkin
fm
parents:
diff changeset
   229
     by the UIPainter of ST/X."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   230
a93e501c8632 initial checkin
fm
parents:
diff changeset
   231
    "Do not manually edit this!! If it is corrupted,
a93e501c8632 initial checkin
fm
parents:
diff changeset
   232
     the UIPainter may not be able to read the specification."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   233
a93e501c8632 initial checkin
fm
parents:
diff changeset
   234
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   235
     UIPainter new openOnClass:Tools::MethodRewriter andSelector:#searchAndReplaceSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   236
     Tools::MethodRewriter new openInterface:#searchAndReplaceSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   237
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   238
a93e501c8632 initial checkin
fm
parents:
diff changeset
   239
    <resource: #canvas>
a93e501c8632 initial checkin
fm
parents:
diff changeset
   240
a93e501c8632 initial checkin
fm
parents:
diff changeset
   241
    ^ 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   242
     #(FullSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   243
        name: searchAndReplaceSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   244
        window: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   245
       (WindowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   246
          label: 'Method Rewriter'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   247
          name: 'Method Rewriter'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   248
          min: (Point 10 10)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   249
          bounds: (Rectangle 0 0 418 294)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   250
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   251
        component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   252
       (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   253
          collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   254
           (VariableVerticalPanelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   255
              name: 'FindAndReplacePanel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   256
              layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   257
              showHandle: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   258
              snapMode: both
a93e501c8632 initial checkin
fm
parents:
diff changeset
   259
              component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   260
             (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   261
                collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   262
                 (ViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   263
                    name: 'FindBox'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   264
                    component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   265
                   (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   266
                      collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   267
                       (LabelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   268
                          label: 'Find:'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   269
                          name: 'FindLabel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   270
                          layout: (LayoutFrame 0 0 0 0 0 1 20 0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   271
                          translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   272
                          adjust: left
a93e501c8632 initial checkin
fm
parents:
diff changeset
   273
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   274
                       (TextEditorSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   275
                          name: 'FindText'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   276
                          layout: (LayoutFrame 0 0 20 0 0 1 0 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   277
                          hasHorizontalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   278
                          hasVerticalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   279
                          postBuildCallback: postBuildFindTextView:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   280
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   281
                       )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   282
                     
a93e501c8632 initial checkin
fm
parents:
diff changeset
   283
                    )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   284
                  )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   285
                 (ViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   286
                    name: 'ReplaceBox'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   287
                    component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   288
                   (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   289
                      collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   290
                       (LabelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   291
                          label: 'Replace with:'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   292
                          name: 'ReplaceLabel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   293
                          layout: (LayoutFrame 0 0 0 0 0 1 20 0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   294
                          translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   295
                          adjust: left
a93e501c8632 initial checkin
fm
parents:
diff changeset
   296
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   297
                       (TextEditorSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   298
                          name: 'ReplaceText'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   299
                          layout: (LayoutFrame 0 0 20 0 0 1 0 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   300
                          hasHorizontalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   301
                          hasVerticalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   302
                          postBuildCallback: postBuildReplaceTextView:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   303
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   304
                       )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   305
                     
a93e501c8632 initial checkin
fm
parents:
diff changeset
   306
                    )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   307
                  )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   308
                 )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   309
               
a93e501c8632 initial checkin
fm
parents:
diff changeset
   310
              )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   311
              handles: (Any 0.5 1.0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   312
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   313
           (LabelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   314
              label: 'Enjoy'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   315
              name: 'InfoLabel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   316
              layout: (LayoutFrame 5 0 -25 1 205 0 -5 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   317
              visibilityChannel: actionInProgresHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   318
              translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   319
              labelChannel: infoHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   320
              adjust: left
a93e501c8632 initial checkin
fm
parents:
diff changeset
   321
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   322
           (ProgressIndicatorSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   323
              name: 'ProgressIndicator'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   324
              layout: (LayoutFrame 210 0 -25 1 -215 1 -5 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   325
              visibilityChannel: actionInProgresHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   326
              model: progressHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   327
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   328
           (ActionButtonSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   329
              label: 'Search'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   330
              name: 'SearchButton'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   331
              layout: (LayoutFrame -210 1 -25 1 -110 1 -5 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   332
              translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   333
              model: doSearchAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   334
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   335
           (ActionButtonSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   336
              label: 'Rewrite'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   337
              name: 'RewriteButton'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   338
              layout: (LayoutFrame -105 1 -25 1 -5 1 -5 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   339
              translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   340
              model: doRewriteAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   341
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   342
           )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   343
         
a93e501c8632 initial checkin
fm
parents:
diff changeset
   344
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   345
      )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   346
a93e501c8632 initial checkin
fm
parents:
diff changeset
   347
    "Modified: / 12-12-2007 / 11:15:58 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   348
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   349
a93e501c8632 initial checkin
fm
parents:
diff changeset
   350
templatesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   351
    "This resource specification was automatically generated
a93e501c8632 initial checkin
fm
parents:
diff changeset
   352
     by the UIPainter of ST/X."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   353
a93e501c8632 initial checkin
fm
parents:
diff changeset
   354
    "Do not manually edit this!! If it is corrupted,
a93e501c8632 initial checkin
fm
parents:
diff changeset
   355
     the UIPainter may not be able to read the specification."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   356
a93e501c8632 initial checkin
fm
parents:
diff changeset
   357
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   358
     UIPainter new openOnClass:Tools::MethodRewriter andSelector:#templatesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   359
     Tools::MethodRewriter new openInterface:#templatesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   360
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   361
a93e501c8632 initial checkin
fm
parents:
diff changeset
   362
    <resource: #canvas>
a93e501c8632 initial checkin
fm
parents:
diff changeset
   363
a93e501c8632 initial checkin
fm
parents:
diff changeset
   364
    ^ 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   365
     #(FullSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   366
        name: templatesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   367
        window: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   368
       (WindowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   369
          label: 'Method Rewriter'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   370
          name: 'Method Rewriter'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   371
          min: (Point 10 10)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   372
          bounds: (Rectangle 0 0 472 354)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   373
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   374
        component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   375
       (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   376
          collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   377
           (VariableVerticalPanelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   378
              name: 'FindAndReplacePanel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   379
              layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   380
              showHandle: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   381
              snapMode: both
a93e501c8632 initial checkin
fm
parents:
diff changeset
   382
              component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   383
             (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   384
                collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   385
                 (SelectionInListModelViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   386
                    name: 'SelectionInListModelView1'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   387
                    model: selectedTemplateIndex
a93e501c8632 initial checkin
fm
parents:
diff changeset
   388
                    hasHorizontalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   389
                    hasVerticalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   390
                    listModel: templateNameList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   391
                    highlightMode: line
a93e501c8632 initial checkin
fm
parents:
diff changeset
   392
                  )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   393
                 (ViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   394
                    name: 'FindBox'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   395
                    component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   396
                   (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   397
                      collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   398
                       (LabelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   399
                          label: 'Find:'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   400
                          name: 'FindLabel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   401
                          layout: (LayoutFrame 0 0 0 0 0 1 20 0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   402
                          translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   403
                          adjust: left
a93e501c8632 initial checkin
fm
parents:
diff changeset
   404
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   405
                       (TextEditorSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   406
                          name: 'FindText'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   407
                          layout: (LayoutFrame 0 0 20 0 0 1 0 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   408
                          model: templateSearchPatternHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   409
                          hasHorizontalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   410
                          hasVerticalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   411
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   412
                       )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   413
                     
a93e501c8632 initial checkin
fm
parents:
diff changeset
   414
                    )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   415
                  )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   416
                 (ViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   417
                    name: 'ReplaceBox'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   418
                    component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   419
                   (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   420
                      collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   421
                       (LabelSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   422
                          label: 'Replace with:'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   423
                          name: 'ReplaceLabel'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   424
                          layout: (LayoutFrame 0 0 0 0 0 1 20 0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   425
                          translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   426
                          adjust: left
a93e501c8632 initial checkin
fm
parents:
diff changeset
   427
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   428
                       (TextEditorSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   429
                          name: 'ReplaceText'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   430
                          layout: (LayoutFrame 0 0 20 0 0 1 0 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   431
                          model: templateReplacePatternHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   432
                          hasHorizontalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   433
                          hasVerticalScrollBar: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   434
                        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   435
                       )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   436
                     
a93e501c8632 initial checkin
fm
parents:
diff changeset
   437
                    )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   438
                  )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   439
                 )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   440
               
a93e501c8632 initial checkin
fm
parents:
diff changeset
   441
              )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   442
              handles: (Any 0.2 0.6 1.0)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   443
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   444
           (ActionButtonSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   445
              label: 'Use as template'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   446
              name: 'UseAsTemplateButton'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   447
              layout: (LayoutFrame 0 0 -25 1 -5 1 -5 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   448
              translateLabel: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   449
              model: useAsTemplateAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   450
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   451
           )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   452
         
a93e501c8632 initial checkin
fm
parents:
diff changeset
   453
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   454
      )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   455
a93e501c8632 initial checkin
fm
parents:
diff changeset
   456
    "Modified: / 12-12-2007 / 11:23:34 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   457
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   458
a93e501c8632 initial checkin
fm
parents:
diff changeset
   459
windowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   460
    "This resource specification was automatically generated
a93e501c8632 initial checkin
fm
parents:
diff changeset
   461
     by the UIPainter of ST/X."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   462
a93e501c8632 initial checkin
fm
parents:
diff changeset
   463
    "Do not manually edit this!! If it is corrupted,
a93e501c8632 initial checkin
fm
parents:
diff changeset
   464
     the UIPainter may not be able to read the specification."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   465
a93e501c8632 initial checkin
fm
parents:
diff changeset
   466
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   467
     UIPainter new openOnClass:Tools::MethodRewriter andSelector:#windowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   468
     Tools::MethodRewriter new openInterface:#windowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   469
     Tools::MethodRewriter open
a93e501c8632 initial checkin
fm
parents:
diff changeset
   470
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   471
a93e501c8632 initial checkin
fm
parents:
diff changeset
   472
    <resource: #canvas>
a93e501c8632 initial checkin
fm
parents:
diff changeset
   473
a93e501c8632 initial checkin
fm
parents:
diff changeset
   474
    ^ 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   475
     #(FullSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   476
        name: windowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   477
        window: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   478
       (WindowSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   479
          label: 'Method Rewriter'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   480
          name: 'Method Rewriter'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   481
          min: (Point 10 10)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   482
          bounds: (Rectangle 0 0 658 490)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   483
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   484
        component: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   485
       (SpecCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   486
          collection: (
a93e501c8632 initial checkin
fm
parents:
diff changeset
   487
           (NoteBookViewSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   488
              name: 'NoteBook'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   489
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
a93e501c8632 initial checkin
fm
parents:
diff changeset
   490
              model: selectedTabIndex
a93e501c8632 initial checkin
fm
parents:
diff changeset
   491
              menu: tabList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   492
              useIndex: true
a93e501c8632 initial checkin
fm
parents:
diff changeset
   493
              fitLastRow: false
a93e501c8632 initial checkin
fm
parents:
diff changeset
   494
            )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   495
           )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   496
         
a93e501c8632 initial checkin
fm
parents:
diff changeset
   497
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   498
      )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   499
a93e501c8632 initial checkin
fm
parents:
diff changeset
   500
    "Modified: / 12-12-2007 / 11:39:31 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   501
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   502
a93e501c8632 initial checkin
fm
parents:
diff changeset
   503
!MethodRewriter class methodsFor:'list specs'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   504
a93e501c8632 initial checkin
fm
parents:
diff changeset
   505
tabList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   506
    "This resource specification was automatically generated
a93e501c8632 initial checkin
fm
parents:
diff changeset
   507
     by the TabListEditor of ST/X."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   508
a93e501c8632 initial checkin
fm
parents:
diff changeset
   509
    "Do not manually edit this!! If it is corrupted,
a93e501c8632 initial checkin
fm
parents:
diff changeset
   510
     the TabListEditor may not be able to read the specification."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   511
a93e501c8632 initial checkin
fm
parents:
diff changeset
   512
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   513
     TabListEditor new openOnClass: self andSelector:#tabList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   514
    "
a93e501c8632 initial checkin
fm
parents:
diff changeset
   515
a93e501c8632 initial checkin
fm
parents:
diff changeset
   516
    <resource: #tabList>
a93e501c8632 initial checkin
fm
parents:
diff changeset
   517
a93e501c8632 initial checkin
fm
parents:
diff changeset
   518
    ^     #(
a93e501c8632 initial checkin
fm
parents:
diff changeset
   519
       (TabItem
a93e501c8632 initial checkin
fm
parents:
diff changeset
   520
          label: 'Search and Replace'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   521
          createNewBuilder: false
a93e501c8632 initial checkin
fm
parents:
diff changeset
   522
          minorKey: searchAndReplaceSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   523
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   524
       (TabItem
a93e501c8632 initial checkin
fm
parents:
diff changeset
   525
          label: 'Classes'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   526
          createNewBuilder: false
a93e501c8632 initial checkin
fm
parents:
diff changeset
   527
          minorKey: classesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   528
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   529
       (TabItem
a93e501c8632 initial checkin
fm
parents:
diff changeset
   530
          label: 'Templates'
a93e501c8632 initial checkin
fm
parents:
diff changeset
   531
          createNewBuilder: false
a93e501c8632 initial checkin
fm
parents:
diff changeset
   532
          minorKey: templatesSpec
a93e501c8632 initial checkin
fm
parents:
diff changeset
   533
        )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   534
       )
a93e501c8632 initial checkin
fm
parents:
diff changeset
   535
     
a93e501c8632 initial checkin
fm
parents:
diff changeset
   536
      collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
a93e501c8632 initial checkin
fm
parents:
diff changeset
   537
a93e501c8632 initial checkin
fm
parents:
diff changeset
   538
    "Modified: / 12-12-2007 / 11:21:27 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   539
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   540
a93e501c8632 initial checkin
fm
parents:
diff changeset
   541
!MethodRewriter methodsFor:'accessing'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   542
a93e501c8632 initial checkin
fm
parents:
diff changeset
   543
actionInProgress: aBoolean
a93e501c8632 initial checkin
fm
parents:
diff changeset
   544
a93e501c8632 initial checkin
fm
parents:
diff changeset
   545
    ^self actionInProgresHolder value: aBoolean
a93e501c8632 initial checkin
fm
parents:
diff changeset
   546
a93e501c8632 initial checkin
fm
parents:
diff changeset
   547
    "Created: / 12-12-2007 / 10:06:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   548
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   549
a93e501c8632 initial checkin
fm
parents:
diff changeset
   550
classes
a93e501c8632 initial checkin
fm
parents:
diff changeset
   551
    ^ classes ifNil:[classes := List new]
a93e501c8632 initial checkin
fm
parents:
diff changeset
   552
a93e501c8632 initial checkin
fm
parents:
diff changeset
   553
    "Created: / 20-07-2007 / 16:31:18 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   554
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   555
a93e501c8632 initial checkin
fm
parents:
diff changeset
   556
classes: aCollection
a93e501c8632 initial checkin
fm
parents:
diff changeset
   557
    classes := (aCollection collect:[:cls|cls theNonMetaclass]) asList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   558
a93e501c8632 initial checkin
fm
parents:
diff changeset
   559
    "Created: / 20-07-2007 / 16:31:18 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   560
    "Modified: / 12-12-2007 / 09:47:01 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   561
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   562
a93e501c8632 initial checkin
fm
parents:
diff changeset
   563
info: aString
a93e501c8632 initial checkin
fm
parents:
diff changeset
   564
a93e501c8632 initial checkin
fm
parents:
diff changeset
   565
    self infoHolder value: aString
a93e501c8632 initial checkin
fm
parents:
diff changeset
   566
a93e501c8632 initial checkin
fm
parents:
diff changeset
   567
    "Created: / 12-12-2007 / 10:00:50 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   568
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   569
a93e501c8632 initial checkin
fm
parents:
diff changeset
   570
progress: anInteger
a93e501c8632 initial checkin
fm
parents:
diff changeset
   571
a93e501c8632 initial checkin
fm
parents:
diff changeset
   572
    self progressHolder value: anInteger
a93e501c8632 initial checkin
fm
parents:
diff changeset
   573
a93e501c8632 initial checkin
fm
parents:
diff changeset
   574
    "Created: / 12-12-2007 / 10:01:03 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   575
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   576
a93e501c8632 initial checkin
fm
parents:
diff changeset
   577
replacePattern
a93e501c8632 initial checkin
fm
parents:
diff changeset
   578
    ^ replaceTextView contents trimSeparators
a93e501c8632 initial checkin
fm
parents:
diff changeset
   579
a93e501c8632 initial checkin
fm
parents:
diff changeset
   580
    "Created: / 21-07-2007 / 06:29:22 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   581
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   582
a93e501c8632 initial checkin
fm
parents:
diff changeset
   583
replacePattern: pattern
a93e501c8632 initial checkin
fm
parents:
diff changeset
   584
    ^ replaceTextView contents: pattern trimSeparators
a93e501c8632 initial checkin
fm
parents:
diff changeset
   585
a93e501c8632 initial checkin
fm
parents:
diff changeset
   586
    "Created: / 12-12-2007 / 11:38:22 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   587
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   588
a93e501c8632 initial checkin
fm
parents:
diff changeset
   589
searchPattern
a93e501c8632 initial checkin
fm
parents:
diff changeset
   590
    ^ searchTextView contents trimSeparators
a93e501c8632 initial checkin
fm
parents:
diff changeset
   591
a93e501c8632 initial checkin
fm
parents:
diff changeset
   592
    "Created: / 20-07-2007 / 16:51:49 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   593
    "Modified: / 21-07-2007 / 06:29:29 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   594
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   595
a93e501c8632 initial checkin
fm
parents:
diff changeset
   596
searchPattern: pattern
a93e501c8632 initial checkin
fm
parents:
diff changeset
   597
    ^ searchTextView contents: pattern trimSeparators
a93e501c8632 initial checkin
fm
parents:
diff changeset
   598
a93e501c8632 initial checkin
fm
parents:
diff changeset
   599
    "Created: / 12-12-2007 / 11:38:12 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   600
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   601
a93e501c8632 initial checkin
fm
parents:
diff changeset
   602
selectedClasses
a93e501c8632 initial checkin
fm
parents:
diff changeset
   603
a93e501c8632 initial checkin
fm
parents:
diff changeset
   604
    ^self selectedClassesHolder value
a93e501c8632 initial checkin
fm
parents:
diff changeset
   605
a93e501c8632 initial checkin
fm
parents:
diff changeset
   606
    "Created: / 12-12-2007 / 12:02:03 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   607
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   608
a93e501c8632 initial checkin
fm
parents:
diff changeset
   609
selectedTemplate
a93e501c8632 initial checkin
fm
parents:
diff changeset
   610
a93e501c8632 initial checkin
fm
parents:
diff changeset
   611
    ^self templates at:self selectedTemplateIndex value
a93e501c8632 initial checkin
fm
parents:
diff changeset
   612
a93e501c8632 initial checkin
fm
parents:
diff changeset
   613
    "Created: / 12-12-2007 / 11:20:32 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   614
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   615
a93e501c8632 initial checkin
fm
parents:
diff changeset
   616
templates
a93e501c8632 initial checkin
fm
parents:
diff changeset
   617
    templates isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   618
        templates := self class templates.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   619
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   620
    ^ templates
a93e501c8632 initial checkin
fm
parents:
diff changeset
   621
a93e501c8632 initial checkin
fm
parents:
diff changeset
   622
    "Created: / 12-12-2007 / 11:17:55 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   623
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   624
a93e501c8632 initial checkin
fm
parents:
diff changeset
   625
!MethodRewriter methodsFor:'actions'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   626
a93e501c8632 initial checkin
fm
parents:
diff changeset
   627
doRewrite
10170
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   628
    | methodsMatching anyChange compositeChangeCollector |
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   629
10170
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   630
    compositeChangeCollector := CompositeRefactoryChange new.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   631
    compositeChangeCollector name:'Rewrite Change'.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   632
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   633
    anyChange := false.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   634
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   635
    methodsMatching := self methodsMatching.
10458
9cba7e8d69f1 changed: #doRewrite
Claus Gittinger <cg@exept.de>
parents: 10385
diff changeset
   636
    methodsMatching isEmptyOrNil ifTrue:[^Dialog warn:'No methods matching'].
10170
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   637
    methodsMatching do:[:mth|
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   638
        | newTree change |
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   639
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   640
        newTree := ParseTreeRewriter new
10385
70d8ce47a6fd comment/format in: #doRewrite
Claus Gittinger <cg@exept.de>
parents: 10170
diff changeset
   641
                    replace: self searchPattern 
70d8ce47a6fd comment/format in: #doRewrite
Claus Gittinger <cg@exept.de>
parents: 10170
diff changeset
   642
                    with: self replacePattern;
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   643
                    executeTree: mth parseTree;
a93e501c8632 initial checkin
fm
parents:
diff changeset
   644
                    tree.
10170
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   645
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   646
        change := InteractiveAddMethodChange compile:(newTree formattedCode) in:mth mclass classified:mth category.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   647
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   648
        "/ collect in order to have only one change in the undo-list (instead of many)
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   649
        compositeChangeCollector addChange:change.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   650
        anyChange := true.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   651
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   652
"/        mth mclass 
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   653
"/            compile: newTree formattedCode
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   654
"/            classified: mth category
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   655
    ].
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   656
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   657
    anyChange ifTrue:[
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   658
        RefactoryChangeManager performChange:compositeChangeCollector.
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
   659
    ].
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   660
a93e501c8632 initial checkin
fm
parents:
diff changeset
   661
    "Created: / 20-07-2007 / 16:03:47 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   662
    "Modified: / 21-07-2007 / 06:55:42 / janfrog"
10458
9cba7e8d69f1 changed: #doRewrite
Claus Gittinger <cg@exept.de>
parents: 10385
diff changeset
   663
    "Modified: / 04-08-2011 / 19:05:25 / cg"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   664
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   665
13822
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   666
doRewrite: methodsMatching
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   667
    | changes compositeChangeCollector |
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   668
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   669
    changes := ChangeSet new name:'Rewrite Changes'.    
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   670
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   671
    methodsMatching isEmptyOrNil ifTrue:[^Dialog warn:'No methods matching'].
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   672
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   673
    self withMethods: methodsMatching do:[:mth|
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   674
        | newTree newSource change |
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   675
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   676
        newTree := ParseTreeSourceRewriter new
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   677
                    replace: self searchPattern 
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   678
                    with: self replacePattern;
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   679
                    executeTree: mth parseTree;
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   680
                    tree.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   681
14388
8f404d61e5c8 class: Tools::MethodRewriter
Stefan Vogel <sv@exept.de>
parents: 13822
diff changeset
   682
        change := InteractiveAddMethodChange compile: newTree newSource in:mth mclass classified:mth category.
13822
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   683
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   684
        "/ collect in order to have only one change in the undo-list (instead of many)
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   685
        changes add: change.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   686
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   687
"/        mth mclass 
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   688
"/            compile: newTree formattedCode
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   689
"/            classified: mth category
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   690
    ].
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   691
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   692
    changes isEmpty ifTrue:[ ^ self ].
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   693
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   694
    "/Let the user to inspect and confirm changes...."
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   695
    changes := ChangeSetBrowser2 confirmChanges: changes.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   696
    changes isEmpty ifTrue:[ ^ self ].
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   697
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   698
    "/Perform the refactoring..."
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   699
    compositeChangeCollector := CompositeRefactoryChange new.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   700
    compositeChangeCollector name:'Rewrite Change'.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   701
    compositeChangeCollector changes: changes.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   702
    RefactoryChangeManager performChange:compositeChangeCollector.
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   703
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   704
    "Created: / 20-07-2007 / 16:03:47 / janfrog"
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   705
    "Modified: / 21-07-2007 / 06:55:42 / janfrog"
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   706
    "Modified: / 04-08-2011 / 19:05:25 / cg"
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   707
    "Created: / 22-03-2012 / 18:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   708
!
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   709
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   710
doRewriteAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   711
13822
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   712
    self doSearch: self searchPattern withResultDo: [:methodsMatching|
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   713
        self doRewrite:  methodsMatching
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   714
    ].
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   715
a93e501c8632 initial checkin
fm
parents:
diff changeset
   716
    "Created: / 12-12-2007 / 11:14:19 / janfrog"
13822
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
   717
    "Modified: / 22-03-2012 / 18:23:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   718
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   719
a93e501c8632 initial checkin
fm
parents:
diff changeset
   720
doSearch
a93e501c8632 initial checkin
fm
parents:
diff changeset
   721
    |methods|
a93e501c8632 initial checkin
fm
parents:
diff changeset
   722
a93e501c8632 initial checkin
fm
parents:
diff changeset
   723
    methods := self methodsMatching.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   724
    methods isEmpty 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   725
        ifTrue:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   726
            [Dialog warn:'Nothing found']
a93e501c8632 initial checkin
fm
parents:
diff changeset
   727
        ifFalse:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   728
            [self showMethods:methods
a93e501c8632 initial checkin
fm
parents:
diff changeset
   729
                  title:'Methods matching ' , self searchPattern]
a93e501c8632 initial checkin
fm
parents:
diff changeset
   730
a93e501c8632 initial checkin
fm
parents:
diff changeset
   731
    "Created: / 20-07-2007 / 16:08:08 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   732
    "Modified: / 21-07-2007 / 06:51:58 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   733
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   734
a93e501c8632 initial checkin
fm
parents:
diff changeset
   735
doSearchAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   736
a93e501c8632 initial checkin
fm
parents:
diff changeset
   737
   self 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   738
        doSearch: self searchPattern 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   739
        withResultDo: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   740
            [:matchingMethods|
a93e501c8632 initial checkin
fm
parents:
diff changeset
   741
            matchingMethods isEmpty
a93e501c8632 initial checkin
fm
parents:
diff changeset
   742
                ifTrue:[Dialog warn:'No methods found']
a93e501c8632 initial checkin
fm
parents:
diff changeset
   743
                ifFalse:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   744
                    [self
a93e501c8632 initial checkin
fm
parents:
diff changeset
   745
                        showMethods: matchingMethods asArray
a93e501c8632 initial checkin
fm
parents:
diff changeset
   746
                        title: 'Methods matching ', self searchPattern]]
a93e501c8632 initial checkin
fm
parents:
diff changeset
   747
a93e501c8632 initial checkin
fm
parents:
diff changeset
   748
    "Created: / 12-12-2007 / 11:14:25 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   749
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   750
a93e501c8632 initial checkin
fm
parents:
diff changeset
   751
removeSeletedClassesAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   752
a93e501c8632 initial checkin
fm
parents:
diff changeset
   753
    self classes removeAll: self selectedClasses
a93e501c8632 initial checkin
fm
parents:
diff changeset
   754
a93e501c8632 initial checkin
fm
parents:
diff changeset
   755
    "Created: / 12-12-2007 / 12:05:15 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   756
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   757
a93e501c8632 initial checkin
fm
parents:
diff changeset
   758
useAsTemplateAction
a93e501c8632 initial checkin
fm
parents:
diff changeset
   759
a93e501c8632 initial checkin
fm
parents:
diff changeset
   760
    self searchPattern: self templateSearchPatternHolder value.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   761
    self replacePattern: self templateReplacePatternHolder value.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   762
    self selectedTabIndex value:1
a93e501c8632 initial checkin
fm
parents:
diff changeset
   763
a93e501c8632 initial checkin
fm
parents:
diff changeset
   764
    "Created: / 12-12-2007 / 11:14:15 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   765
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   766
a93e501c8632 initial checkin
fm
parents:
diff changeset
   767
!MethodRewriter methodsFor:'aspects'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   768
a93e501c8632 initial checkin
fm
parents:
diff changeset
   769
actionInProgresHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   770
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   771
a93e501c8632 initial checkin
fm
parents:
diff changeset
   772
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   773
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   774
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   775
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   777
    actionInProgresHolder isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   778
        actionInProgresHolder := true asValue.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   779
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   780
"/       actionInProgresHolder addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   781
"/       actionInProgresHolder onChangeSend:#actionInProgresHolderChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   782
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   783
    ^ actionInProgresHolder.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   784
a93e501c8632 initial checkin
fm
parents:
diff changeset
   785
    "Created: / 12-12-2007 / 10:00:05 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   786
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   787
a93e501c8632 initial checkin
fm
parents:
diff changeset
   788
infoHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   789
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   790
a93e501c8632 initial checkin
fm
parents:
diff changeset
   791
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   792
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   793
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   794
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   795
a93e501c8632 initial checkin
fm
parents:
diff changeset
   796
    infoHolder isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   797
        infoHolder := 'Really cool tool!!' asValue.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   798
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   799
"/       infoHolder addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   800
"/       infoHolder onChangeSend:#infoHolderChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   801
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   802
    ^ infoHolder.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   803
a93e501c8632 initial checkin
fm
parents:
diff changeset
   804
    "Created: / 12-12-2007 / 10:00:05 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   805
    "Modified: / 12-12-2007 / 11:40:17 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   806
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   807
a93e501c8632 initial checkin
fm
parents:
diff changeset
   808
progressHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   809
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   810
a93e501c8632 initial checkin
fm
parents:
diff changeset
   811
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   812
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   813
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   814
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   815
a93e501c8632 initial checkin
fm
parents:
diff changeset
   816
    progressHolder isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   817
        progressHolder := 0 asValue
a93e501c8632 initial checkin
fm
parents:
diff changeset
   818
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   819
"/       progressHolder addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   820
"/       progressHolder onChangeSend:#progressHolderChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   821
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   822
    ^ progressHolder.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   823
a93e501c8632 initial checkin
fm
parents:
diff changeset
   824
    "Created: / 12-12-2007 / 10:00:05 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   825
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   826
a93e501c8632 initial checkin
fm
parents:
diff changeset
   827
selectedClassesHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   828
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   829
a93e501c8632 initial checkin
fm
parents:
diff changeset
   830
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   831
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   832
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   833
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   834
a93e501c8632 initial checkin
fm
parents:
diff changeset
   835
    selectedClassesHolder isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   836
        selectedClassesHolder := ValueHolder new.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   837
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   838
"/       selectedClassesHolder addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   839
"/       selectedClassesHolder onChangeSend:#selectedClassesHolderChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   840
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   841
    ^ selectedClassesHolder.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   842
a93e501c8632 initial checkin
fm
parents:
diff changeset
   843
    "Created: / 12-12-2007 / 12:01:40 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   844
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   845
a93e501c8632 initial checkin
fm
parents:
diff changeset
   846
selectedTabIndex
a93e501c8632 initial checkin
fm
parents:
diff changeset
   847
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   848
a93e501c8632 initial checkin
fm
parents:
diff changeset
   849
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   850
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   851
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   852
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   853
a93e501c8632 initial checkin
fm
parents:
diff changeset
   854
    selectedTabIndex isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   855
        selectedTabIndex := ValueHolder new.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   856
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   857
"/       selectedTabIndex addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   858
"/       selectedTabIndex onChangeSend:#selectedTabIndexChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   859
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   860
    ^ selectedTabIndex.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   861
a93e501c8632 initial checkin
fm
parents:
diff changeset
   862
    "Created: / 12-12-2007 / 11:39:29 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   863
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   864
a93e501c8632 initial checkin
fm
parents:
diff changeset
   865
selectedTemplateIndex
a93e501c8632 initial checkin
fm
parents:
diff changeset
   866
a93e501c8632 initial checkin
fm
parents:
diff changeset
   867
    selectedTemplateIndex isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   868
        selectedTemplateIndex := ValueHolder new.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   869
        selectedTemplateIndex onChangeSend:#selectedTemplateIndexChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   870
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   871
    ^ selectedTemplateIndex.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   872
a93e501c8632 initial checkin
fm
parents:
diff changeset
   873
    "Created: / 12-12-2007 / 11:17:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   874
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   875
a93e501c8632 initial checkin
fm
parents:
diff changeset
   876
tabList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   877
    "Generated by the TabListEditor"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   878
a93e501c8632 initial checkin
fm
parents:
diff changeset
   879
    |list|
a93e501c8632 initial checkin
fm
parents:
diff changeset
   880
a93e501c8632 initial checkin
fm
parents:
diff changeset
   881
    (list := builder bindingAt:#tabList) isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   882
        builder aspectAt:#tabList put:(list := self class tabList).
a93e501c8632 initial checkin
fm
parents:
diff changeset
   883
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   884
    ^ list
a93e501c8632 initial checkin
fm
parents:
diff changeset
   885
a93e501c8632 initial checkin
fm
parents:
diff changeset
   886
    "Created: / 20-07-2007 / 16:54:27 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   887
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   888
a93e501c8632 initial checkin
fm
parents:
diff changeset
   889
templateNameList
a93e501c8632 initial checkin
fm
parents:
diff changeset
   890
a93e501c8632 initial checkin
fm
parents:
diff changeset
   891
    ^self templates collect:[:tmpl|tmpl first]
a93e501c8632 initial checkin
fm
parents:
diff changeset
   892
a93e501c8632 initial checkin
fm
parents:
diff changeset
   893
    "Created: / 12-12-2007 / 11:17:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   894
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   895
a93e501c8632 initial checkin
fm
parents:
diff changeset
   896
templateReplacePatternHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   897
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   898
a93e501c8632 initial checkin
fm
parents:
diff changeset
   899
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   900
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   901
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   902
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   903
a93e501c8632 initial checkin
fm
parents:
diff changeset
   904
    templateReplacePatternHolder isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   905
        templateReplacePatternHolder := '' asValue.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   906
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   907
"/       templateReplacePatternHolder addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   908
"/       templateReplacePatternHolder onChangeSend:#templateReplacePatternHolderChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   909
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   910
    ^ templateReplacePatternHolder.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   911
a93e501c8632 initial checkin
fm
parents:
diff changeset
   912
    "Created: / 12-12-2007 / 11:17:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   913
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   914
a93e501c8632 initial checkin
fm
parents:
diff changeset
   915
templateSearchPatternHolder
a93e501c8632 initial checkin
fm
parents:
diff changeset
   916
    "automatically generated by UIPainter ..."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   917
a93e501c8632 initial checkin
fm
parents:
diff changeset
   918
    "*** the code below creates a default model when invoked."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   919
    "*** (which may not be the one you wanted)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   920
    "*** Please change as required and accept it in the browser."
a93e501c8632 initial checkin
fm
parents:
diff changeset
   921
    "*** (and replace this comment by something more useful ;-)"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   922
a93e501c8632 initial checkin
fm
parents:
diff changeset
   923
    templateSearchPatternHolder isNil ifTrue:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
   924
        templateSearchPatternHolder := '' asValue.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   925
"/ if your app needs to be notified of changes, uncomment one of the lines below:
a93e501c8632 initial checkin
fm
parents:
diff changeset
   926
"/       templateSearchPatternHolder addDependent:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   927
"/       templateSearchPatternHolder onChangeSend:#templateSearchPatternHolderChanged to:self.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   928
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   929
    ^ templateSearchPatternHolder.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   930
a93e501c8632 initial checkin
fm
parents:
diff changeset
   931
    "Created: / 12-12-2007 / 11:17:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   932
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   933
a93e501c8632 initial checkin
fm
parents:
diff changeset
   934
!MethodRewriter methodsFor:'change & update'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   935
a93e501c8632 initial checkin
fm
parents:
diff changeset
   936
selectedTemplateIndexChanged
a93e501c8632 initial checkin
fm
parents:
diff changeset
   937
a93e501c8632 initial checkin
fm
parents:
diff changeset
   938
    self templateSearchPatternHolder value: self selectedTemplate second.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   939
    self templateReplacePatternHolder value: self selectedTemplate third.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   940
a93e501c8632 initial checkin
fm
parents:
diff changeset
   941
    "Created: / 12-12-2007 / 11:20:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   942
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   943
a93e501c8632 initial checkin
fm
parents:
diff changeset
   944
!MethodRewriter methodsFor:'drag & drop'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   945
a93e501c8632 initial checkin
fm
parents:
diff changeset
   946
canDropClasses: dropContext
a93e501c8632 initial checkin
fm
parents:
diff changeset
   947
11724
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   948
    ^dropContext dropObjects allSatisfy: [:obj|obj isClassObject or:[obj isMethodObject]]
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   949
a93e501c8632 initial checkin
fm
parents:
diff changeset
   950
    "Created: / 20-07-2007 / 16:58:13 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   951
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   952
a93e501c8632 initial checkin
fm
parents:
diff changeset
   953
doDropClasses: dropContext
a93e501c8632 initial checkin
fm
parents:
diff changeset
   954
a93e501c8632 initial checkin
fm
parents:
diff changeset
   955
    | newClasses |
a93e501c8632 initial checkin
fm
parents:
diff changeset
   956
    newClasses := dropContext dropObjects 
11724
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   957
                    select:[:obj|obj isClassObject or:[obj isMethodObject]].
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   958
    newClasses := newClasses    
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   959
                    collect:[:obj| |clsOrMethod| 
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   960
                        clsOrMethod := obj theObject.
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   961
                        clsOrMethod isMethod ifTrue:[clsOrMethod containingClass] ifFalse:[clsOrMethod]
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   962
                    ] as:IdentitySet.
75877297ad00 changed:
Stefan Vogel <sv@exept.de>
parents: 10458
diff changeset
   963
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   964
    newClasses := newClasses reject:[:cls|self classes includes:cls].
a93e501c8632 initial checkin
fm
parents:
diff changeset
   965
    self classes 
a93e501c8632 initial checkin
fm
parents:
diff changeset
   966
        addAll: newClasses;
a93e501c8632 initial checkin
fm
parents:
diff changeset
   967
        changed:#content
a93e501c8632 initial checkin
fm
parents:
diff changeset
   968
a93e501c8632 initial checkin
fm
parents:
diff changeset
   969
    "Created: / 20-07-2007 / 16:58:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   970
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   971
a93e501c8632 initial checkin
fm
parents:
diff changeset
   972
!MethodRewriter methodsFor:'hooks'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   973
a93e501c8632 initial checkin
fm
parents:
diff changeset
   974
postBuildFindTextView: scrollableView
a93e501c8632 initial checkin
fm
parents:
diff changeset
   975
a93e501c8632 initial checkin
fm
parents:
diff changeset
   976
    searchTextView := scrollableView scrolledView
a93e501c8632 initial checkin
fm
parents:
diff changeset
   977
a93e501c8632 initial checkin
fm
parents:
diff changeset
   978
    "Created: / 20-07-2007 / 15:55:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   979
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   980
a93e501c8632 initial checkin
fm
parents:
diff changeset
   981
postBuildReplaceTextView: scrollableView
a93e501c8632 initial checkin
fm
parents:
diff changeset
   982
a93e501c8632 initial checkin
fm
parents:
diff changeset
   983
    replaceTextView := scrollableView scrolledView
a93e501c8632 initial checkin
fm
parents:
diff changeset
   984
a93e501c8632 initial checkin
fm
parents:
diff changeset
   985
    "Created: / 20-07-2007 / 15:55:29 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
   986
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
   987
a93e501c8632 initial checkin
fm
parents:
diff changeset
   988
!MethodRewriter methodsFor:'private'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
   989
a93e501c8632 initial checkin
fm
parents:
diff changeset
   990
doSearch: pattern withResultDo: block
a93e501c8632 initial checkin
fm
parents:
diff changeset
   991
a93e501c8632 initial checkin
fm
parents:
diff changeset
   992
    | matchingMethods |
a93e501c8632 initial checkin
fm
parents:
diff changeset
   993
    matchingMethods := Set new.
a93e501c8632 initial checkin
fm
parents:
diff changeset
   994
    self
a93e501c8632 initial checkin
fm
parents:
diff changeset
   995
        withMethodsDo:
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
   996
            [:mth| | tree |
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
   997
            tree := mth parseTree.
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
   998
            tree ifNil:[self breakPoint: #jv] ifNotNil:[
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
   999
            (ParseTreeSearcher new)
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1000
                matches:self searchPattern do:[:aNode :answer | matchingMethods add:mth ];
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
  1001
               executeTree: tree]
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
  1002
            ]
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1003
        finallyDo: 
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1004
            [block value: matchingMethods]
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1005
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1006
    "Created: / 12-12-2007 / 10:34:50 / janfrog"
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
  1007
    "Modified: / 07-04-2011 / 22:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1008
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1009
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1010
methods
14388
8f404d61e5c8 class: Tools::MethodRewriter
Stefan Vogel <sv@exept.de>
parents: 13822
diff changeset
  1011
    methods notEmptyOrNil ifTrue:[^ methods].
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1012
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1013
    ^self methodsFor: classes
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1014
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1015
    "Modified: / 21-07-2007 / 06:24:07 / janfrog"
10170
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1016
    "Modified: / 05-07-2011 / 14:50:43 / cg"
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1017
!
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1018
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1019
methods:aCollection
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1020
    methods := aCollection
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1021
3239c0b672eb allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents: 10153
diff changeset
  1022
    "Created: / 05-07-2011 / 14:50:52 / cg"
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1023
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1024
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1025
methodsFor: aColletion
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1026
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1027
    ^classes 
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1028
        inject: Set new
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1029
        into:
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1030
            [:methods :cls|
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1031
            methods
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1032
                addAll: cls methodDictionary values;
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1033
                addAll: cls class methodDictionary values;
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1034
                yourself]
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1035
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1036
    "Created: / 21-07-2007 / 06:25:42 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1037
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1038
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1039
methodsMatching
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1040
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1041
    ^self methodsMatching: self searchPattern
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1042
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1043
    "Created: / 21-07-2007 / 06:26:44 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1044
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1045
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1046
methodsMatching: searchPattern
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1047
    |matchingMethods|
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1048
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1049
    matchingMethods := OrderedCollection new.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1050
    self methods do:[:mth | 
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1051
        (ParseTreeSearcher new)
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1052
            matches:searchPattern do:[:aNode :answer | matchingMethods add:mth ];
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1053
            executeTree:mth parseTree.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1054
    ].
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1055
    ^ matchingMethods
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1056
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1057
    "Created: / 21-07-2007 / 06:26:19 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1058
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1059
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1060
showMethods: methods title: title
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1061
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1062
    NewSystemBrowser 
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1063
                browseMethods:methods
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1064
                title:title
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1065
                sort:true
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1066
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1067
    "Created: / 21-07-2007 / 06:51:36 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1068
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1069
13822
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1070
withMethods: givenMethods do: methodBlock 
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1071
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1072
    ^self withMethods: givenMethods do: methodBlock finallyDo: []
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1073
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1074
    "Created: / 22-03-2012 / 18:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1075
!
643504d309fd merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13160
diff changeset
  1076
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1077
withMethods: methods do: methodBlock finallyDo: finallyBlock
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1078
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1079
    [
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1080
        self actionInProgress: true.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1081
        methods asArray keysAndValuesDo:
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1082
            [:idx :mth|
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1083
            self info: mth selector storeString.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1084
            methodBlock value: mth.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1085
            self progress: ((100 / methods size) * idx) rounded].
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1086
        finallyBlock value
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1087
    ] ensure:[
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1088
        "/self actionInProgress: false.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1089
        self progress: 0.
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1090
        self info: ''
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1091
    ]
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1092
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1093
    "Created: / 12-12-2007 / 10:32:16 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1094
!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1095
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1096
withMethodsDo: methodBlock finallyDo: finallyBlock
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1097
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1098
   ^self 
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1099
        withMethods: self methods asArray
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1100
        do: methodBlock
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1101
        finallyDo: finallyBlock
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1102
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1103
    "Modified: / 12-12-2007 / 10:32:48 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1104
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1105
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1106
!MethodRewriter methodsFor:'testing method'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1107
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1108
testXXX
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1109
    self halt:'Was halt'
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1110
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1111
    "Created: / 21-07-2007 / 07:55:24 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1112
    "Modified: / 12-12-2007 / 10:45:20 / janfrog"
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1113
! !
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1114
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1115
!MethodRewriter class methodsFor:'documentation'!
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1116
8803
59babd0302b3 changed: #version_SVN
fm
parents: 8776
diff changeset
  1117
version_CVS
14388
8f404d61e5c8 class: Tools::MethodRewriter
Stefan Vogel <sv@exept.de>
parents: 13822
diff changeset
  1118
    ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.19 2014-05-23 08:09:07 stefan Exp $'
9988
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
  1119
!
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
  1120
bd2d92fdf9a3 initial checking
Claus Gittinger <cg@exept.de>
parents: 8817
diff changeset
  1121
version_SVN
14388
8f404d61e5c8 class: Tools::MethodRewriter
Stefan Vogel <sv@exept.de>
parents: 13822
diff changeset
  1122
    ^ '$Id: Tools__MethodRewriter.st,v 1.19 2014-05-23 08:09:07 stefan Exp $'
8776
a93e501c8632 initial checkin
fm
parents:
diff changeset
  1123
! !
13160
31e3fbda8ec5 class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents: 11724
diff changeset
  1124