author | Claus Gittinger <cg@exept.de> |
Mon, 15 Jul 2019 18:53:35 +0200 | |
changeset 18903 | b0d007a5e683 |
parent 18662 | 06a102f5afb9 |
child 19069 | 58ee3a7b7b94 |
permissions | -rw-r--r-- |
17883 | 1 |
"{ Encoding: utf8 }" |
2 |
||
9988 | 3 |
" |
10097 | 4 |
Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague |
5 |
Copyright (c) 2009-2010 eXept Software AG |
|
9988 | 6 |
|
10097 | 7 |
Permission is hereby granted, free of charge, to any person |
8 |
obtaining a copy of this software and associated documentation |
|
9 |
files (the 'Software'), to deal in the Software without |
|
10 |
restriction, including without limitation the rights to use, |
|
11 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
12 |
copies of the Software, and to permit persons to whom the |
|
13 |
Software is furnished to do so, subject to the following |
|
14 |
conditions: |
|
15 |
||
16 |
The above copyright notice and this permission notice shall be |
|
17 |
included in all copies or substantial portions of the Software. |
|
18 |
||
19 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
|
20 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
21 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
22 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
23 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
24 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
25 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
26 |
OTHER DEALINGS IN THE SOFTWARE. |
|
9988 | 27 |
" |
28 |
"{ Package: 'stx:libtool' }" |
|
8776 | 29 |
|
30 |
"{ NameSpace: Tools }" |
|
31 |
||
32 |
ApplicationModel subclass:#MethodRewriter |
|
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
33 |
instanceVariableNames:'replaceTextView methods classes packages searchTextView |
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
34 |
actionInProgressHolder infoHolder progressHolder |
10170
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
35 |
templateSearchPatternHolder templateReplacePatternHolder |
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
36 |
selectedTemplateIndex templates selectedTabIndex |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
37 |
selectedClassesHolder selectedRuleIndex rules |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
38 |
ruleReplacePatternHolder ruleSearchPatternHolder |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
39 |
ruleSearchAndReplacePatternHolder ruleForRewriteOrNilForAdHoc |
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
40 |
adHocFindAndReplaceVisibleHolder ruleNameHolder |
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
41 |
isMethodPatternHolder classesInfoTextHolder |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
42 |
cachedMethodsFromClasses' |
10126 | 43 |
classVariableNames:'' |
44 |
poolDictionaries:'' |
|
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
45 |
category:'Interface-Tools' |
8776 | 46 |
! |
47 |
||
9988 | 48 |
!MethodRewriter class methodsFor:'documentation'! |
49 |
||
50 |
copyright |
|
51 |
" |
|
10097 | 52 |
Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague |
53 |
Copyright (c) 2009-2010 eXept Software AG |
|
54 |
||
55 |
Permission is hereby granted, free of charge, to any person |
|
56 |
obtaining a copy of this software and associated documentation |
|
57 |
files (the 'Software'), to deal in the Software without |
|
58 |
restriction, including without limitation the rights to use, |
|
59 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
60 |
copies of the Software, and to permit persons to whom the |
|
61 |
Software is furnished to do so, subject to the following |
|
62 |
conditions: |
|
9988 | 63 |
|
10097 | 64 |
The above copyright notice and this permission notice shall be |
65 |
included in all copies or substantial portions of the Software. |
|
66 |
||
67 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
|
68 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
69 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
70 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
71 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
72 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
73 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
74 |
OTHER DEALINGS IN THE SOFTWARE. |
|
9988 | 75 |
" |
76 |
! ! |
|
8776 | 77 |
|
10126 | 78 |
!MethodRewriter class methodsFor:'example templates'! |
8776 | 79 |
|
80 |
templateReplaceAtIfAbsentByAtAifAbsentPut |
|
18150 | 81 |
"automagically added to templates because my name starts with 'template'" |
82 |
||
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
83 |
^Array |
18150 | 84 |
with:('Replace ','Dictionary>>#at:ifAbsent:'allBold,' by ','#at:ifAbsentPut:' allBold) |
8776 | 85 |
with: '``@dictionary |
86 |
at: ``@key |
|
87 |
ifAbsent: |
|
18150 | 88 |
[| `@temps | |
89 |
`@.statements. |
|
90 |
``@dictionary at: ``@key put: ``@object]' |
|
8776 | 91 |
with:'``@dictionary |
92 |
at: ``@key |
|
93 |
ifAbsentPut: |
|
18150 | 94 |
[| `@temps | |
95 |
`@.statements. |
|
96 |
``@object]' |
|
8776 | 97 |
|
98 |
"Created: / 12-12-2007 / 11:08:01 / janfrog" |
|
99 |
"Modified: / 17-02-2008 / 08:35:17 / janfrog" |
|
10126 | 100 |
"Modified: / 04-07-2011 / 17:41:21 / cg" |
18150 | 101 |
"Modified: / 24-05-2018 / 14:07:19 / Claus Gittinger" |
102 |
! |
|
103 |
||
104 |
templateReplaceErrorMayProceedByProceedableError |
|
105 |
"automagically added to templates because my name starts with 'template'" |
|
106 |
||
107 |
^Array |
|
108 |
with:('Replace ','error:mayProceed:' allBold,' by ','proceedableArror:' allBold) |
|
109 |
with: '``@receiver error: ``@msg mayProceed: true' |
|
110 |
with: '``@receiver proceedableError: ``@msg' |
|
111 |
||
112 |
"Created: / 24-05-2018 / 14:09:18 / Claus Gittinger" |
|
8776 | 113 |
! |
114 |
||
10140
2df2dde55877
added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents:
10128
diff
changeset
|
115 |
templateReplaceIfNilByIsNilIfTrue |
18150 | 116 |
"automagically added to templates because my name starts with 'template'" |
10140
2df2dde55877
added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents:
10128
diff
changeset
|
117 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
118 |
^Array |
18150 | 119 |
with:('Replace ','ifNil:' allBold,' by ','isNil ifTrue:' allBold) |
120 |
with: '``@receiver ifNil: ``@block' |
|
121 |
with: '``@receiver isNil ifTrue: ``@block' |
|
10140
2df2dde55877
added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents:
10128
diff
changeset
|
122 |
|
2df2dde55877
added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents:
10128
diff
changeset
|
123 |
"Created: / 04-07-2011 / 19:25:06 / cg" |
18150 | 124 |
"Modified (comment): / 24-05-2018 / 14:07:23 / Claus Gittinger" |
10140
2df2dde55877
added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents:
10128
diff
changeset
|
125 |
! |
2df2dde55877
added: #templateReplaceIfNilByIsNilIfTrue
Claus Gittinger <cg@exept.de>
parents:
10128
diff
changeset
|
126 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
127 |
templateReplaceIfNotNilByNotNilIfTrue |
18150 | 128 |
"automagically added to templates because my name starts with 'template'" |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
129 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
130 |
^Array |
18150 | 131 |
with:('Replace ','ifNotNil:' allBold,' by ','notNil ifTrue:' allBold) |
132 |
with: '``@receiver ifNotNil: ``@block' |
|
133 |
with: '``@receiver notNil ifTrue: ``@block' |
|
134 |
||
135 |
"Modified (comment): / 24-05-2018 / 14:07:26 / Claus Gittinger" |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
136 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
137 |
|
10111
97f2db2aca32
added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents:
10110
diff
changeset
|
138 |
templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil |
18150 | 139 |
"automagically added to templates because my name starts with 'template'" |
10111
97f2db2aca32
added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents:
10110
diff
changeset
|
140 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
141 |
^Array |
18150 | 142 |
with:('Replace ','isNilOrEmptyCollection' allBold,' by ','isEmptyOrNil' allBold) |
143 |
with: '``@receiver isNilOrEmptyCollection' |
|
144 |
with: '``@receiver isEmptyOrNil''' |
|
10111
97f2db2aca32
added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents:
10110
diff
changeset
|
145 |
|
97f2db2aca32
added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents:
10110
diff
changeset
|
146 |
"Created: / 03-07-2011 / 21:59:47 / cg" |
18150 | 147 |
"Modified (comment): / 24-05-2018 / 14:07:29 / Claus Gittinger" |
10111
97f2db2aca32
added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents:
10110
diff
changeset
|
148 |
! |
97f2db2aca32
added: #templateReplaceIsNilOrEmptyCollectionByIsEmptyOrNil
Claus Gittinger <cg@exept.de>
parents:
10110
diff
changeset
|
149 |
|
10128
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
150 |
templateReplaceSelfHaltBySelfBreakPoint |
18150 | 151 |
"automagically added to templates because my name starts with 'template'" |
152 |
||
10128
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
153 |
|initials| |
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
154 |
|
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
155 |
initials := OperatingSystem getLoginName. |
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
156 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
157 |
^Array |
18150 | 158 |
with:('Replace ','self halt' allBold,' by ','self breakPoint: #' allBold ,initials) |
159 |
with: 'self halt' |
|
160 |
with: 'self breakPoint: #',initials |
|
10128
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
161 |
|
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
162 |
"Modified: / 17-02-2008 / 08:35:09 / janfrog" |
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
163 |
"Created: / 04-07-2011 / 17:43:46 / cg" |
18150 | 164 |
"Modified (comment): / 24-05-2018 / 14:07:33 / Claus Gittinger" |
10128
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
165 |
! |
4bd98e161a68
added: #templateReplaceSelfHaltBySelfBreakPoint
Claus Gittinger <cg@exept.de>
parents:
10126
diff
changeset
|
166 |
|
8776 | 167 |
templateReplaceSelfHaltBySelfError |
18150 | 168 |
"automagically added to templates because my name starts with 'template'" |
8776 | 169 |
|
18150 | 170 |
^ { |
171 |
('Replace ','self halt'allBold,' by ','self error:''was: self halt''' allBold) . |
|
172 |
'self halt' . |
|
173 |
'self error:''was: self halt''' |
|
174 |
} |
|
8776 | 175 |
|
176 |
"Created: / 12-12-2007 / 11:29:51 / janfrog" |
|
177 |
"Modified: / 17-02-2008 / 08:35:09 / janfrog" |
|
10126 | 178 |
"Modified: / 04-07-2011 / 17:41:33 / cg" |
18150 | 179 |
"Modified (comment): / 24-05-2018 / 14:07:39 / Claus Gittinger" |
8776 | 180 |
! |
181 |
||
182 |
templates |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
183 |
"finds all methods here, which start with 'template'" |
8776 | 184 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
185 |
|templateSelectors templatesHere| |
8776 | 186 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
187 |
templateSelectors := |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
188 |
(self class selectors select:[:e|(e startsWith:'template') |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
189 |
and:[e ~= #templates and:[e ~= #templatesSpec]]]). |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
190 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
191 |
templatesHere := templateSelectors collect:[:e| (self perform:e) copyWith:nil ]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
192 |
templatesHere := templatesHere sort:[:a :b | a first < b first]. |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
193 |
^ templatesHere |
8776 | 194 |
|
195 |
" |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
196 |
self templates |
8776 | 197 |
" |
198 |
||
199 |
"Created: / 12-12-2007 / 11:03:32 / janfrog" |
|
200 |
! ! |
|
201 |
||
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
202 |
!MethodRewriter class methodsFor:'help specs'! |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
203 |
|
17883 | 204 |
helpSpec |
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
205 |
"This resource specification was automatically generated |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
206 |
by the UIHelpTool of ST/X." |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
207 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
208 |
"Do not manually edit this!! If it is corrupted, |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
209 |
the UIHelpTool may not be able to read the specification." |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
210 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
211 |
" |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
212 |
UIHelpTool openOnClass:Tools::MethodRewriter |
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
213 |
" |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
214 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
215 |
<resource: #help> |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
216 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
217 |
^ super helpSpec addPairsFrom:#( |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
218 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
219 |
#isMethodPattern |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
220 |
'The patterns are applied to the method''s whole source (including selector)\as opposed to the code''s syntax tree nodes.\(read the pattern help on this)' |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
221 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
222 |
#doSearchAction |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
223 |
'Searches for matching methods and opens a browser on those.' |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
224 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
225 |
#doReplaceAction |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
226 |
'Searches for matching methods, generates the new code and presents a list of changes.\This list allows for inspection and individual selection of changes to be applied' |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
227 |
|
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
228 |
) |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
229 |
! ! |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
230 |
|
8776 | 231 |
!MethodRewriter class methodsFor:'interface specs'! |
232 |
||
233 |
classesSpec |
|
234 |
"This resource specification was automatically generated |
|
235 |
by the UIPainter of ST/X." |
|
236 |
||
237 |
"Do not manually edit this!! If it is corrupted, |
|
238 |
the UIPainter may not be able to read the specification." |
|
239 |
||
240 |
" |
|
241 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#classesSpec |
|
242 |
Tools::MethodRewriter new openInterface:#classesSpec |
|
243 |
" |
|
244 |
||
245 |
<resource: #canvas> |
|
246 |
||
17004 | 247 |
^ |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
248 |
#(FullSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
249 |
name: classesSpec |
18150 | 250 |
uuid: '72b95e6e-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 251 |
window: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
252 |
(WindowSpec |
17004 | 253 |
label: 'Classes' |
254 |
name: 'Classes' |
|
18150 | 255 |
uuid: '72b9613e-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 256 |
min: (Point 10 10) |
257 |
bounds: (Rectangle 0 0 300 300) |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
258 |
) |
17004 | 259 |
component: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
260 |
(SpecCollection |
17004 | 261 |
collection: ( |
262 |
(LabelSpec |
|
263 |
label: 'Hint: drag''n''drop classes, methods or packages from browser' |
|
264 |
name: 'HintLabel' |
|
265 |
layout: (LayoutFrame 0 0 0 0 0 1 30 0) |
|
18150 | 266 |
uuid: '72b96378-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 267 |
translateLabel: true |
268 |
adjust: left |
|
269 |
) |
|
270 |
(SelectionInListModelViewSpec |
|
271 |
name: 'ClassesList' |
|
272 |
layout: (LayoutFrame 0 0 30 0 0 1 -60 1) |
|
18150 | 273 |
uuid: '72b9653a-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 274 |
model: selectedClassesHolder |
275 |
hasHorizontalScrollBar: true |
|
276 |
hasVerticalScrollBar: true |
|
277 |
listModel: classes |
|
278 |
multipleSelectOk: true |
|
279 |
useIndex: false |
|
280 |
highlightMode: line |
|
281 |
properties: |
|
282 |
(PropertyListDictionary |
|
283 |
canDropSelector: canDropClasses: |
|
284 |
dropArgument: nil |
|
285 |
dropSelector: doDropClasses: |
|
286 |
dragArgument: nil |
|
287 |
) |
|
288 |
) |
|
289 |
(LabelSpec |
|
290 |
name: 'ClassInfoLabel' |
|
291 |
layout: (LayoutFrame 0 0 -60 1 0 1 -34 1) |
|
18150 | 292 |
uuid: '72b96896-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 293 |
translateLabel: true |
294 |
labelChannel: classesInfoTextHolder |
|
295 |
adjust: left |
|
296 |
) |
|
297 |
(HorizontalPanelViewSpec |
|
298 |
name: 'HorizontalPanel1' |
|
18150 | 299 |
layout: (LayoutFrame 0 0 -34 1 -16 1 0 1) |
300 |
uuid: '72b969b8-5f4f-11e8-a964-b8f6b1108e05' |
|
17004 | 301 |
horizontalLayout: center |
302 |
verticalLayout: center |
|
303 |
horizontalSpace: 3 |
|
304 |
verticalSpace: 3 |
|
305 |
component: |
|
306 |
(SpecCollection |
|
307 |
collection: ( |
|
308 |
(ActionButtonSpec |
|
18150 | 309 |
label: 'Add All Packages' |
310 |
name: 'AddAllPackagesButton' |
|
311 |
uuid: '72b96b5c-5f4f-11e8-a964-b8f6b1108e05' |
|
312 |
translateLabel: true |
|
313 |
model: addAllPackagesAction |
|
314 |
useDefaultExtent: true |
|
315 |
) |
|
316 |
(ActionButtonSpec |
|
17004 | 317 |
label: 'Add All Your Packages' |
318 |
name: 'AddAllYourPackagesButton' |
|
18150 | 319 |
uuid: '72b96d14-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 320 |
translateLabel: true |
321 |
model: addAllYourPackagesAction |
|
322 |
useDefaultExtent: true |
|
323 |
) |
|
324 |
(ActionButtonSpec |
|
18150 | 325 |
label: 'Add Package...' |
326 |
name: 'Button1' |
|
327 |
uuid: '72b96e54-5f4f-11e8-a964-b8f6b1108e05' |
|
17004 | 328 |
translateLabel: true |
18150 | 329 |
model: addPackageAction |
17004 | 330 |
useDefaultExtent: true |
331 |
) |
|
332 |
(ActionButtonSpec |
|
333 |
label: 'Remove Selected Classes' |
|
334 |
name: 'RemoveSelectedClassesButton' |
|
18150 | 335 |
uuid: '72b96f8a-5f4f-11e8-a964-b8f6b1108e05' |
17004 | 336 |
translateLabel: true |
337 |
model: removeSeletedClassesAction |
|
338 |
useDefaultExtent: true |
|
339 |
) |
|
340 |
) |
|
341 |
||
342 |
) |
|
343 |
keepSpaceForOSXResizeHandleH: true |
|
344 |
) |
|
345 |
) |
|
346 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
347 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
348 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
349 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
350 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
351 |
howToUseSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
352 |
"This resource specification was automatically generated |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
353 |
by the UIPainter of ST/X." |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
354 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
355 |
"Do not manually edit this!! If it is corrupted, |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
356 |
the UIPainter may not be able to read the specification." |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
357 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
358 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
359 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#howToUseSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
360 |
Tools::MethodRewriter new openInterface:#howToUseSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
361 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
362 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
363 |
<resource: #canvas> |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
364 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
365 |
^ |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
366 |
#(FullSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
367 |
name: howToUseSpec |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
368 |
window: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
369 |
(WindowSpec |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
370 |
label: 'Classes' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
371 |
name: 'Classes' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
372 |
min: (Point 10 10) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
373 |
bounds: (Rectangle 0 0 300 300) |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
374 |
) |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
375 |
component: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
376 |
(SpecCollection |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
377 |
collection: ( |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
378 |
(HTMLViewSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
379 |
name: 'HTMLBrowser1' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
380 |
layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
381 |
model: howToUseRewriteToolURL |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
382 |
hasHorizontalScrollBar: true |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
383 |
hasVerticalScrollBar: true |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
384 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
385 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
386 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
387 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
388 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
389 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
390 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
391 |
rulesSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
392 |
"This resource specification was automatically generated |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
393 |
by the UIPainter of ST/X." |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
394 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
395 |
"Do not manually edit this!! If it is corrupted, |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
396 |
the UIPainter may not be able to read the specification." |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
397 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
398 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
399 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#rulesSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
400 |
Tools::MethodRewriter new openInterface:#rulesSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
401 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
402 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
403 |
<resource: #canvas> |
8776 | 404 |
|
18150 | 405 |
^ |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
406 |
#(FullSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
407 |
name: rulesSpec |
18150 | 408 |
uuid: 'b10d7f06-5f4f-11e8-a964-b8f6b1108e05' |
409 |
window: |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
410 |
(WindowSpec |
18150 | 411 |
label: 'Method Rewriter' |
412 |
name: 'Method Rewriter' |
|
413 |
uuid: 'b10d81c2-5f4f-11e8-a964-b8f6b1108e05' |
|
414 |
min: (Point 10 10) |
|
415 |
bounds: (Rectangle 0 0 472 354) |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
416 |
) |
18150 | 417 |
component: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
418 |
(SpecCollection |
18150 | 419 |
collection: ( |
420 |
(VariableVerticalPanelSpec |
|
421 |
name: 'FindAndReplacePanel' |
|
422 |
layout: (LayoutFrame 0 0 0 0 0 1 -30 1) |
|
423 |
uuid: 'b10d83d4-5f4f-11e8-a964-b8f6b1108e05' |
|
424 |
showHandle: true |
|
425 |
snapMode: both |
|
426 |
component: |
|
427 |
(SpecCollection |
|
428 |
collection: ( |
|
429 |
(SelectionInListModelViewSpec |
|
430 |
name: 'SelectionInListModelView1' |
|
431 |
uuid: 'b10d85b4-5f4f-11e8-a964-b8f6b1108e05' |
|
432 |
model: selectedRuleIndex |
|
433 |
hasHorizontalScrollBar: true |
|
434 |
hasVerticalScrollBar: true |
|
435 |
listModel: ruleNameList |
|
436 |
highlightMode: line |
|
437 |
) |
|
438 |
(ViewSpec |
|
439 |
name: 'ReplaceBox' |
|
440 |
uuid: 'b10d8780-5f4f-11e8-a964-b8f6b1108e05' |
|
441 |
component: |
|
442 |
(SpecCollection |
|
443 |
collection: ( |
|
444 |
(LabelSpec |
|
445 |
label: 'Finds and Replaces With:' |
|
446 |
name: 'ReplaceLabel' |
|
447 |
layout: (LayoutFrame 0 0 0 0 0 1 20 0) |
|
448 |
uuid: 'b10d8834-5f4f-11e8-a964-b8f6b1108e05' |
|
449 |
translateLabel: true |
|
450 |
adjust: left |
|
451 |
) |
|
452 |
(TextEditorSpec |
|
453 |
name: 'ReplaceText' |
|
454 |
layout: (LayoutFrame 0 0 20 0 0 1 0 1) |
|
455 |
uuid: 'b10d897e-5f4f-11e8-a964-b8f6b1108e05' |
|
456 |
model: ruleSearchAndReplacePatternHolder |
|
457 |
hasHorizontalScrollBar: true |
|
458 |
hasVerticalScrollBar: true |
|
459 |
isReadOnly: true |
|
460 |
hasKeyboardFocusInitially: false |
|
461 |
) |
|
462 |
) |
|
463 |
||
464 |
) |
|
465 |
) |
|
466 |
) |
|
467 |
||
468 |
) |
|
469 |
handles: (Any 0.5 1.0) |
|
470 |
) |
|
471 |
(HorizontalPanelViewSpec |
|
472 |
name: 'HorizontalPanel1' |
|
473 |
layout: (LayoutFrame 0 0 -34 1 -16 1 0 1) |
|
474 |
uuid: 'b10d8b0e-5f4f-11e8-a964-b8f6b1108e05' |
|
475 |
horizontalLayout: center |
|
476 |
verticalLayout: center |
|
477 |
horizontalSpace: 3 |
|
478 |
verticalSpace: 3 |
|
479 |
component: |
|
480 |
(SpecCollection |
|
481 |
collection: ( |
|
482 |
(ActionButtonSpec |
|
483 |
label: 'Use Rule' |
|
484 |
name: 'UseAsRuleButton' |
|
485 |
uuid: 'b10d8c62-5f4f-11e8-a964-b8f6b1108e05' |
|
486 |
translateLabel: true |
|
487 |
model: useAsRuleAction |
|
488 |
useDefaultExtent: true |
|
489 |
) |
|
490 |
) |
|
491 |
||
492 |
) |
|
493 |
keepSpaceForOSXResizeHandleH: true |
|
494 |
) |
|
495 |
) |
|
496 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
497 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
498 |
) |
8776 | 499 |
! |
500 |
||
501 |
searchAndReplaceSpec |
|
502 |
"This resource specification was automatically generated |
|
503 |
by the UIPainter of ST/X." |
|
504 |
||
505 |
"Do not manually edit this!! If it is corrupted, |
|
506 |
the UIPainter may not be able to read the specification." |
|
507 |
||
508 |
" |
|
509 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#searchAndReplaceSpec |
|
510 |
Tools::MethodRewriter new openInterface:#searchAndReplaceSpec |
|
511 |
" |
|
512 |
||
513 |
<resource: #canvas> |
|
514 |
||
18150 | 515 |
^ |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
516 |
#(FullSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
517 |
name: searchAndReplaceSpec |
18150 | 518 |
uuid: 'a690463a-5f4f-11e8-a964-b8f6b1108e05' |
519 |
window: |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
520 |
(WindowSpec |
18150 | 521 |
label: 'Method Rewriter' |
522 |
name: 'Method Rewriter' |
|
523 |
uuid: 'a6904932-5f4f-11e8-a964-b8f6b1108e05' |
|
524 |
min: (Point 10 10) |
|
525 |
bounds: (Rectangle 0 0 418 294) |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
526 |
) |
18150 | 527 |
component: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
528 |
(SpecCollection |
18150 | 529 |
collection: ( |
530 |
(ViewSpec |
|
531 |
name: 'MethodPatternBox' |
|
532 |
layout: (LayoutFrame 0 0 0 0 0 1 30 0) |
|
533 |
uuid: 'a6904bd0-5f4f-11e8-a964-b8f6b1108e05' |
|
534 |
component: |
|
535 |
(SpecCollection |
|
536 |
collection: ( |
|
537 |
(CheckBoxSpec |
|
538 |
label: 'Method Pattern' |
|
539 |
name: 'CheckBox1' |
|
540 |
layout: (LayoutFrame 0 0 8 0 136 0 30 0) |
|
541 |
activeHelpKey: isMethodPattern |
|
542 |
uuid: 'a6904d7e-5f4f-11e8-a964-b8f6b1108e05' |
|
543 |
model: isMethodPatternHolder |
|
544 |
translateLabel: true |
|
545 |
) |
|
546 |
) |
|
547 |
||
548 |
) |
|
549 |
) |
|
550 |
(VariableVerticalPanelSpec |
|
551 |
name: 'FindAndReplacePanel' |
|
552 |
layout: (LayoutFrame 0 0 30 0 0 1 -30 1) |
|
553 |
uuid: 'a6904fc2-5f4f-11e8-a964-b8f6b1108e05' |
|
554 |
visibilityChannel: adHocFindAndReplaceVisibleHolder |
|
555 |
showHandle: true |
|
556 |
snapMode: both |
|
557 |
component: |
|
558 |
(SpecCollection |
|
559 |
collection: ( |
|
560 |
(ViewSpec |
|
561 |
name: 'FindBox' |
|
562 |
uuid: 'a690518e-5f4f-11e8-a964-b8f6b1108e05' |
|
563 |
component: |
|
564 |
(SpecCollection |
|
565 |
collection: ( |
|
566 |
(LabelSpec |
|
567 |
label: 'Find:' |
|
568 |
name: 'FindLabel' |
|
569 |
layout: (LayoutFrame 0 0 0 0 0 1 20 0) |
|
570 |
uuid: 'a690529c-5f4f-11e8-a964-b8f6b1108e05' |
|
571 |
translateLabel: true |
|
572 |
adjust: left |
|
573 |
) |
|
574 |
(TextEditorSpec |
|
575 |
name: 'FindText' |
|
576 |
layout: (LayoutFrame 0 0 20 0 0 1 0 1) |
|
577 |
uuid: 'a690547c-5f4f-11e8-a964-b8f6b1108e05' |
|
578 |
hasHorizontalScrollBar: true |
|
579 |
hasVerticalScrollBar: true |
|
580 |
hasKeyboardFocusInitially: false |
|
581 |
postBuildCallback: postBuildFindTextView: |
|
582 |
) |
|
583 |
) |
|
584 |
||
585 |
) |
|
586 |
) |
|
587 |
(ViewSpec |
|
588 |
name: 'ReplaceBox' |
|
589 |
uuid: 'a69056fc-5f4f-11e8-a964-b8f6b1108e05' |
|
590 |
component: |
|
591 |
(SpecCollection |
|
592 |
collection: ( |
|
593 |
(LabelSpec |
|
594 |
label: 'Replace with:' |
|
595 |
name: 'ReplaceLabel' |
|
596 |
layout: (LayoutFrame 0 0 0 0 0 1 20 0) |
|
597 |
uuid: 'a6905814-5f4f-11e8-a964-b8f6b1108e05' |
|
598 |
translateLabel: true |
|
599 |
adjust: left |
|
600 |
) |
|
601 |
(TextEditorSpec |
|
602 |
name: 'ReplaceText' |
|
603 |
layout: (LayoutFrame 0 0 20 0 0 1 0 1) |
|
604 |
uuid: 'a6905986-5f4f-11e8-a964-b8f6b1108e05' |
|
605 |
hasHorizontalScrollBar: true |
|
606 |
hasVerticalScrollBar: true |
|
607 |
hasKeyboardFocusInitially: false |
|
608 |
postBuildCallback: postBuildReplaceTextView: |
|
609 |
) |
|
610 |
) |
|
611 |
||
612 |
) |
|
613 |
) |
|
614 |
) |
|
615 |
||
616 |
) |
|
617 |
handles: (Any 0.5 1.0) |
|
618 |
) |
|
619 |
(ViewSpec |
|
620 |
name: 'ExecuteRuleBox' |
|
621 |
layout: (LayoutFrame 0 0 30 0 0 1 -30 1) |
|
622 |
uuid: 'a6905b66-5f4f-11e8-a964-b8f6b1108e05' |
|
623 |
visibilityChannel: ruleExecutionVisibleHolder |
|
624 |
component: |
|
625 |
(SpecCollection |
|
626 |
collection: ( |
|
627 |
(LabelSpec |
|
628 |
label: 'Rule:' |
|
629 |
name: 'Label2' |
|
630 |
layout: (LayoutFrame 0 0 0 0 100 0 25 0) |
|
631 |
uuid: 'a6905c88-5f4f-11e8-a964-b8f6b1108e05' |
|
632 |
translateLabel: true |
|
633 |
adjust: left |
|
634 |
) |
|
635 |
(LabelSpec |
|
636 |
name: 'Label4' |
|
637 |
layout: (LayoutFrame 100 0 0 0 0 1 25 0) |
|
638 |
uuid: 'a6905de6-5f4f-11e8-a964-b8f6b1108e05' |
|
639 |
translateLabel: true |
|
640 |
labelChannel: ruleNameHolder |
|
641 |
) |
|
642 |
(TextEditorSpec |
|
643 |
name: 'TextEditor1' |
|
644 |
layout: (LayoutFrame 0 0 25 0 0 1 0 1) |
|
645 |
uuid: 'a6905f3a-5f4f-11e8-a964-b8f6b1108e05' |
|
646 |
model: ruleSearchAndReplacePatternHolder |
|
647 |
hasHorizontalScrollBar: true |
|
648 |
hasVerticalScrollBar: true |
|
649 |
isReadOnly: true |
|
650 |
hasKeyboardFocusInitially: false |
|
651 |
) |
|
652 |
) |
|
653 |
||
654 |
) |
|
655 |
) |
|
656 |
(ViewSpec |
|
657 |
name: 'Box1' |
|
658 |
layout: (LayoutFrame 0 0 -34 1 -16 1 0 1) |
|
659 |
uuid: 'a69060f2-5f4f-11e8-a964-b8f6b1108e05' |
|
660 |
component: |
|
661 |
(SpecCollection |
|
662 |
collection: ( |
|
663 |
(LabelSpec |
|
664 |
label: 'Enjoy' |
|
665 |
name: 'Label1' |
|
666 |
layout: (LayoutFrame 5 0 -25 1 255 0 -5 1) |
|
667 |
uuid: 'a6906200-5f4f-11e8-a964-b8f6b1108e05' |
|
668 |
translateLabel: true |
|
669 |
labelChannel: infoHolder |
|
670 |
adjust: left |
|
671 |
) |
|
672 |
(ProgressIndicatorSpec |
|
673 |
name: 'ProgressIndicator1' |
|
674 |
layout: (LayoutFrame 260 0 -25 1 -215 1 -5 1) |
|
675 |
uuid: 'a690637c-5f4f-11e8-a964-b8f6b1108e05' |
|
676 |
model: progressHolder |
|
677 |
) |
|
678 |
(ActionButtonSpec |
|
679 |
label: 'Search' |
|
680 |
name: 'Button2' |
|
681 |
layout: (LayoutFrame -210 1 -28 1 -110 1 -2 1) |
|
682 |
activeHelpKey: doSearchAction |
|
683 |
uuid: 'a6908e10-5f4f-11e8-a964-b8f6b1108e05' |
|
684 |
translateLabel: true |
|
685 |
model: doSearchAction |
|
686 |
) |
|
687 |
(ActionButtonSpec |
|
688 |
label: 'Rewrite...' |
|
689 |
name: 'Button1' |
|
690 |
layout: (LayoutFrame -105 1 -28 1 -5 1 -2 1) |
|
691 |
activeHelpKey: doRewriteAction |
|
692 |
uuid: 'a69090a4-5f4f-11e8-a964-b8f6b1108e05' |
|
693 |
translateLabel: true |
|
694 |
model: doRewriteAction |
|
695 |
) |
|
696 |
) |
|
697 |
||
698 |
) |
|
699 |
keepSpaceForOSXResizeHandleH: true |
|
700 |
) |
|
701 |
) |
|
702 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
703 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
704 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
705 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
706 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
707 |
searchPatternHelpSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
708 |
"This resource specification was automatically generated |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
709 |
by the UIPainter of ST/X." |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
710 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
711 |
"Do not manually edit this!! If it is corrupted, |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
712 |
the UIPainter may not be able to read the specification." |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
713 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
714 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
715 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#searchPatternHelpSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
716 |
Tools::MethodRewriter new openInterface:#searchPatternHelpSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
717 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
718 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
719 |
<resource: #canvas> |
8776 | 720 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
721 |
^ |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
722 |
#(FullSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
723 |
name: searchPatternHelpSpec |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
724 |
window: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
725 |
(WindowSpec |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
726 |
label: 'Classes' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
727 |
name: 'Classes' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
728 |
min: (Point 10 10) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
729 |
bounds: (Rectangle 0 0 300 300) |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
730 |
) |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
731 |
component: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
732 |
(SpecCollection |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
733 |
collection: ( |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
734 |
(HTMLViewSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
735 |
name: 'HTMLBrowser1' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
736 |
layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
737 |
model: searchPatternHelpURL |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
738 |
hasHorizontalScrollBar: true |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
739 |
hasVerticalScrollBar: true |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
740 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
741 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
742 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
743 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
744 |
) |
8776 | 745 |
! |
746 |
||
747 |
templatesSpec |
|
748 |
"This resource specification was automatically generated |
|
749 |
by the UIPainter of ST/X." |
|
750 |
||
751 |
"Do not manually edit this!! If it is corrupted, |
|
752 |
the UIPainter may not be able to read the specification." |
|
753 |
||
754 |
" |
|
755 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#templatesSpec |
|
756 |
Tools::MethodRewriter new openInterface:#templatesSpec |
|
757 |
" |
|
758 |
||
759 |
<resource: #canvas> |
|
760 |
||
18150 | 761 |
^ |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
762 |
#(FullSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
763 |
name: templatesSpec |
18150 | 764 |
uuid: '8df3942e-5f4f-11e8-a964-b8f6b1108e05' |
765 |
window: |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
766 |
(WindowSpec |
18150 | 767 |
label: 'Method Rewriter' |
768 |
name: 'Method Rewriter' |
|
769 |
uuid: '8df3965e-5f4f-11e8-a964-b8f6b1108e05' |
|
770 |
min: (Point 10 10) |
|
771 |
bounds: (Rectangle 0 0 472 354) |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
772 |
) |
18150 | 773 |
component: |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
774 |
(SpecCollection |
18150 | 775 |
collection: ( |
776 |
(VariableVerticalPanelSpec |
|
777 |
name: 'FindAndReplacePanel' |
|
778 |
layout: (LayoutFrame 0 0 0 0 0 1 -30 1) |
|
779 |
uuid: '8df3982a-5f4f-11e8-a964-b8f6b1108e05' |
|
780 |
showHandle: true |
|
781 |
snapMode: both |
|
782 |
component: |
|
783 |
(SpecCollection |
|
784 |
collection: ( |
|
785 |
(SelectionInListModelViewSpec |
|
786 |
name: 'SelectionInListModelView1' |
|
787 |
uuid: '8df399ba-5f4f-11e8-a964-b8f6b1108e05' |
|
788 |
model: selectedTemplateIndex |
|
789 |
hasHorizontalScrollBar: true |
|
790 |
hasVerticalScrollBar: true |
|
791 |
listModel: templateNameList |
|
792 |
highlightMode: line |
|
793 |
) |
|
794 |
(ViewSpec |
|
795 |
name: 'FindBox' |
|
796 |
uuid: '8df39b72-5f4f-11e8-a964-b8f6b1108e05' |
|
797 |
component: |
|
798 |
(SpecCollection |
|
799 |
collection: ( |
|
800 |
(LabelSpec |
|
801 |
label: 'Find:' |
|
802 |
name: 'FindLabel' |
|
803 |
layout: (LayoutFrame 0 0 0 0 0 1 20 0) |
|
804 |
uuid: '8df39c30-5f4f-11e8-a964-b8f6b1108e05' |
|
805 |
translateLabel: true |
|
806 |
adjust: left |
|
807 |
) |
|
808 |
(TextEditorSpec |
|
809 |
name: 'FindText' |
|
810 |
layout: (LayoutFrame 0 0 20 0 0 1 0 1) |
|
811 |
uuid: '8df39d70-5f4f-11e8-a964-b8f6b1108e05' |
|
812 |
enableChannel: templateSearchPatternIsEditable |
|
813 |
model: templateSearchPatternHolder |
|
814 |
hasHorizontalScrollBar: true |
|
815 |
hasVerticalScrollBar: true |
|
816 |
hasKeyboardFocusInitially: false |
|
817 |
) |
|
818 |
) |
|
819 |
||
820 |
) |
|
821 |
) |
|
822 |
(ViewSpec |
|
823 |
name: 'ReplaceBox' |
|
824 |
uuid: '8df39f6e-5f4f-11e8-a964-b8f6b1108e05' |
|
825 |
component: |
|
826 |
(SpecCollection |
|
827 |
collection: ( |
|
828 |
(LabelSpec |
|
829 |
label: 'Replace With:' |
|
830 |
name: 'ReplaceLabel' |
|
831 |
layout: (LayoutFrame 0 0 0 0 0 1 20 0) |
|
832 |
uuid: '8df3a018-5f4f-11e8-a964-b8f6b1108e05' |
|
833 |
translateLabel: true |
|
834 |
adjust: left |
|
835 |
) |
|
836 |
(TextEditorSpec |
|
837 |
name: 'ReplaceText' |
|
838 |
layout: (LayoutFrame 0 0 20 0 0 1 0 1) |
|
839 |
uuid: '8df3a0f4-5f4f-11e8-a964-b8f6b1108e05' |
|
840 |
enableChannel: templateReplacePatternIsEditable |
|
841 |
model: templateReplacePatternHolder |
|
842 |
hasHorizontalScrollBar: true |
|
843 |
hasVerticalScrollBar: true |
|
844 |
hasKeyboardFocusInitially: false |
|
845 |
) |
|
846 |
) |
|
847 |
||
848 |
) |
|
849 |
) |
|
850 |
) |
|
851 |
||
852 |
) |
|
853 |
handles: (Any 0.20000000000000001 0.59999999999999998 1.0) |
|
854 |
) |
|
855 |
(HorizontalPanelViewSpec |
|
856 |
name: 'HorizontalPanel1' |
|
857 |
layout: (LayoutFrame 0 0 -34 1 -16 1 0 1) |
|
858 |
uuid: '8df3a220-5f4f-11e8-a964-b8f6b1108e05' |
|
859 |
horizontalLayout: center |
|
860 |
verticalLayout: center |
|
861 |
horizontalSpace: 3 |
|
862 |
verticalSpace: 3 |
|
863 |
component: |
|
864 |
(SpecCollection |
|
865 |
collection: ( |
|
866 |
(ActionButtonSpec |
|
867 |
label: 'Use as Template' |
|
868 |
name: 'UseAsTemplateButton' |
|
869 |
uuid: '8df3a356-5f4f-11e8-a964-b8f6b1108e05' |
|
870 |
translateLabel: true |
|
871 |
model: useAsTemplateAction |
|
872 |
useDefaultExtent: true |
|
873 |
) |
|
874 |
) |
|
875 |
||
876 |
) |
|
877 |
keepSpaceForOSXResizeHandleH: true |
|
878 |
) |
|
879 |
) |
|
880 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
881 |
) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
882 |
) |
8776 | 883 |
! |
884 |
||
885 |
windowSpec |
|
886 |
"This resource specification was automatically generated |
|
887 |
by the UIPainter of ST/X." |
|
888 |
||
889 |
"Do not manually edit this!! If it is corrupted, |
|
890 |
the UIPainter may not be able to read the specification." |
|
891 |
||
892 |
" |
|
893 |
UIPainter new openOnClass:Tools::MethodRewriter andSelector:#windowSpec |
|
894 |
Tools::MethodRewriter new openInterface:#windowSpec |
|
895 |
Tools::MethodRewriter open |
|
896 |
" |
|
897 |
||
898 |
<resource: #canvas> |
|
899 |
||
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
900 |
^ |
8776 | 901 |
#(FullSpec |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
902 |
name: windowSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
903 |
window: |
8776 | 904 |
(WindowSpec |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
905 |
label: 'Method Rewriter' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
906 |
name: 'Method Rewriter' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
907 |
min: (Point 10 10) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
908 |
bounds: (Rectangle 0 0 658 490) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
909 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
910 |
component: |
8776 | 911 |
(SpecCollection |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
912 |
collection: ( |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
913 |
(NoteBookViewSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
914 |
name: 'NoteBook' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
915 |
layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
916 |
model: selectedTabIndex |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
917 |
menu: tabList |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
918 |
useIndex: true |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
919 |
fitLastRow: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
920 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
921 |
) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
922 |
|
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
923 |
) |
8776 | 924 |
) |
925 |
||
926 |
"Modified: / 12-12-2007 / 11:39:31 / janfrog" |
|
927 |
! ! |
|
928 |
||
929 |
!MethodRewriter class methodsFor:'list specs'! |
|
930 |
||
931 |
tabList |
|
932 |
"This resource specification was automatically generated |
|
933 |
by the TabListEditor of ST/X." |
|
934 |
||
935 |
"Do not manually edit this!! If it is corrupted, |
|
936 |
the TabListEditor may not be able to read the specification." |
|
937 |
||
938 |
" |
|
939 |
TabListEditor new openOnClass: self andSelector:#tabList |
|
940 |
" |
|
941 |
||
942 |
<resource: #tabList> |
|
943 |
||
944 |
^ #( |
|
945 |
(TabItem |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
946 |
label: 'Search and Replace' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
947 |
createNewBuilder: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
948 |
minorKey: searchAndReplaceSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
949 |
) |
8776 | 950 |
(TabItem |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
951 |
label: 'Classes' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
952 |
createNewBuilder: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
953 |
minorKey: classesSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
954 |
) |
8776 | 955 |
(TabItem |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
956 |
label: 'Templates' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
957 |
createNewBuilder: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
958 |
minorKey: templatesSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
959 |
) |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
960 |
(TabItem |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
961 |
label: 'Existing Rules' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
962 |
createNewBuilder: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
963 |
minorKey: rulesSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
964 |
) |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
965 |
(TabItem |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
966 |
label: 'How To Use This Tool' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
967 |
createNewBuilder: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
968 |
minorKey: howToUseSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
969 |
) |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
970 |
(TabItem |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
971 |
label: 'Pattern Info' |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
972 |
createNewBuilder: false |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
973 |
minorKey: searchPatternHelpSpec |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
974 |
) |
8776 | 975 |
) |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
976 |
|
8776 | 977 |
collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ] |
978 |
||
979 |
"Modified: / 12-12-2007 / 11:21:27 / janfrog" |
|
980 |
! ! |
|
981 |
||
982 |
!MethodRewriter methodsFor:'accessing'! |
|
983 |
||
984 |
classes |
|
985 |
^ classes ifNil:[classes := List new] |
|
986 |
||
987 |
"Created: / 20-07-2007 / 16:31:18 / janfrog" |
|
988 |
! |
|
989 |
||
17004 | 990 |
classes:aCollectionOfClasses |
991 |
|answer classesToAdd unloadedClasses| |
|
992 |
||
993 |
classesToAdd := aCollectionOfClasses. |
|
994 |
||
995 |
unloadedClasses := classesToAdd reject:[:cls | cls isLoaded]. |
|
996 |
unloadedClasses notEmpty ifTrue:[ |
|
997 |
answer := Dialog confirmWithCancel:(resources stringWithCRs:'Some classes are unloaded.\\Load them now?'). |
|
998 |
answer isNil ifTrue:[ AbortSignal raise. ]. |
|
999 |
answer == true ifTrue:[ |
|
1000 |
unloadedClasses do:[:each | each autoload]. |
|
1001 |
] ifFalse:[ |
|
1002 |
classesToAdd := classesToAdd select:[:cls | cls isLoaded]. |
|
1003 |
]. |
|
1004 |
]. |
|
1005 |
classesToAdd := (classesToAdd collect:[:cls|cls theNonMetaclass]) |
|
1006 |
asOrderedCollection sortBySelector:#name. |
|
1007 |
||
1008 |
self classes contents:classesToAdd. |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1009 |
self classesChanged |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1010 |
|
8776 | 1011 |
|
1012 |
"Created: / 20-07-2007 / 16:31:18 / janfrog" |
|
1013 |
"Modified: / 12-12-2007 / 09:47:01 / janfrog" |
|
1014 |
! |
|
1015 |
||
1016 |
info: aString |
|
1017 |
||
1018 |
self infoHolder value: aString |
|
1019 |
||
1020 |
"Created: / 12-12-2007 / 10:00:50 / janfrog" |
|
1021 |
! |
|
1022 |
||
1023 |
progress: anInteger |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1024 |
self actionInProgressHolder value:true. |
8776 | 1025 |
self progressHolder value: anInteger |
1026 |
||
1027 |
"Created: / 12-12-2007 / 10:01:03 / janfrog" |
|
1028 |
! |
|
1029 |
||
15203
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1030 |
projects: aCollection |
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1031 |
|allClasses| |
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1032 |
|
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1033 |
allClasses := OrderedCollection new. |
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1034 |
aCollection do:[:eachPackage | |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1035 |
allClasses addAll:(Smalltalk allClassesInPackage:eachPackage) |
15203
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1036 |
]. |
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1037 |
self classes:allClasses. |
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1038 |
! |
68b3c87ad249
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15202
diff
changeset
|
1039 |
|
8776 | 1040 |
replacePattern |
15662
24d56a307758
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15631
diff
changeset
|
1041 |
^ replaceTextView contents withoutSeparators |
8776 | 1042 |
|
1043 |
"Created: / 21-07-2007 / 06:29:22 / janfrog" |
|
1044 |
! |
|
1045 |
||
1046 |
replacePattern: pattern |
|
15662
24d56a307758
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15631
diff
changeset
|
1047 |
^ replaceTextView contents: pattern withoutSeparators |
8776 | 1048 |
|
1049 |
"Created: / 12-12-2007 / 11:38:22 / janfrog" |
|
1050 |
! |
|
1051 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1052 |
ruleTemplate |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1053 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1054 |
^self rules at:self selectedRuleIndex value |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1055 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1056 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1057 |
rules |
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1058 |
RBTransformationRule isNil ifTrue:[ |
16514 | 1059 |
Smalltalk loadPackage:'stx:goodies/refactoryBrowser/lint'. |
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1060 |
]. |
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1061 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1062 |
rules isNil ifTrue:[ |
16514 | 1063 |
|knownRules separator1 separator2 separator3| |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1064 |
|
16514 | 1065 |
"/ construct a pseudo list from existing transformation rules |
1066 |
separator1 := '----------- search for:' withColor:Color grey. |
|
1067 |
separator2 := '----------- replace by:' withColor:Color grey. |
|
1068 |
separator3 := '\=================================================================================\' withCRs withColor:Color grey. |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1069 |
|
16514 | 1070 |
knownRules := OrderedCollection new. |
1071 |
(RBTransformationRule allSubclasses asNewOrderedCollection sort:[:a :b | a basicNew name < b basicNew name]) |
|
1072 |
do:[:each | |
|
1073 |
|rule | |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1074 |
|
16514 | 1075 |
rule := each new. |
1076 |
knownRules add:{ rule . |
|
1077 |
(rule rewriteRule searches |
|
1078 |
collectAll:[:each | |
|
1079 |
{ |
|
1080 |
separator1. |
|
1081 |
each searchString |
|
1082 |
asText backgroundColorizeAllWith:(Color red lightened lightened lightened) . |
|
1083 |
separator2. |
|
1084 |
each replaceString asText |
|
1085 |
asText backgroundColorizeAllWith:(Color green lightened lightened lightened) . |
|
1086 |
separator3 |
|
1087 |
} |
|
1088 |
] |
|
1089 |
) asStringCollection asString. |
|
1090 |
} |
|
1091 |
]. |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1092 |
|
16514 | 1093 |
rules := knownRules |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1094 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1095 |
^ rules |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1096 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1097 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1098 |
self new rules |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1099 |
" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1100 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1101 |
|
8776 | 1102 |
searchPattern |
15662
24d56a307758
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15631
diff
changeset
|
1103 |
^ searchTextView contents withoutSeparators |
8776 | 1104 |
|
1105 |
"Created: / 20-07-2007 / 16:51:49 / janfrog" |
|
1106 |
"Modified: / 21-07-2007 / 06:29:29 / janfrog" |
|
1107 |
! |
|
1108 |
||
1109 |
searchPattern: pattern |
|
15662
24d56a307758
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15631
diff
changeset
|
1110 |
^ searchTextView contents: pattern withoutSeparators |
8776 | 1111 |
|
1112 |
"Created: / 12-12-2007 / 11:38:12 / janfrog" |
|
1113 |
! |
|
1114 |
||
1115 |
selectedClasses |
|
1116 |
||
1117 |
^self selectedClassesHolder value |
|
1118 |
||
1119 |
"Created: / 12-12-2007 / 12:02:03 / janfrog" |
|
1120 |
! |
|
1121 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1122 |
selectedRule |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1123 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1124 |
^self selectedRuleSpec first |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1125 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1126 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1127 |
selectedRuleSpec |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1128 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1129 |
^self rules at:(self selectedRuleIndex value) |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1130 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1131 |
|
8776 | 1132 |
selectedTemplate |
1133 |
||
1134 |
^self templates at:self selectedTemplateIndex value |
|
1135 |
||
1136 |
"Created: / 12-12-2007 / 11:20:32 / janfrog" |
|
1137 |
! |
|
1138 |
||
1139 |
templates |
|
1140 |
templates isNil ifTrue:[ |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1141 |
templates := self class templates. |
8776 | 1142 |
]. |
1143 |
^ templates |
|
1144 |
||
1145 |
"Created: / 12-12-2007 / 11:17:55 / janfrog" |
|
1146 |
! ! |
|
1147 |
||
1148 |
!MethodRewriter methodsFor:'actions'! |
|
1149 |
||
17004 | 1150 |
addAllPackagesAction |
1151 |
|classes| |
|
1152 |
||
1153 |
classes := Smalltalk allClasses. |
|
1154 |
self classes: classes |
|
1155 |
! |
|
1156 |
||
1157 |
addAllYourPackagesAction |
|
1158 |
|classes| |
|
1159 |
||
1160 |
classes := Smalltalk |
|
1161 |
allClassesForWhich:[:cls | |
|
1162 |
cls isNameSpace not |
|
1163 |
and:[ ((cls package ?'') startsWith:'stx:') not] |
|
1164 |
]. |
|
1165 |
self classes: classes |
|
1166 |
! |
|
1167 |
||
18150 | 1168 |
addPackageAction |
1169 |
|packageID| |
|
1170 |
||
1171 |
packageID := Dialog requestProject:'Package to add:' initialAnswer:nil suggestions:nil. |
|
1172 |
packageID notEmptyOrNil ifTrue:[ |
|
1173 |
self classes:(Smalltalk allClassesInPackage:packageID) |
|
1174 |
]. |
|
1175 |
||
1176 |
"Created: / 24-05-2018 / 14:38:18 / Claus Gittinger" |
|
1177 |
! |
|
1178 |
||
13822 | 1179 |
doRewrite: methodsMatching |
1180 |
| changes compositeChangeCollector | |
|
1181 |
||
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1182 |
changes := ChangeSet new name:'Rewrite Changes'. |
13822 | 1183 |
|
18150 | 1184 |
methodsMatching isEmptyOrNil ifTrue:[ |
1185 |
Dialog warn:(resources string:'No methods matching'). |
|
1186 |
^ self. |
|
1187 |
]. |
|
13822 | 1188 |
|
1189 |
self withMethods: methodsMatching do:[:mth| |
|
18150 | 1190 |
| rewriter newTree change | |
13822 | 1191 |
|
18150 | 1192 |
rewriter := ParseTreeSourceRewriter new. |
1193 |
(self isMethodPatternHolder value) ifTrue:[ |
|
1194 |
rewriter replaceMethod: self searchPattern with: self replacePattern |
|
1195 |
] ifFalse:[ |
|
1196 |
rewriter replace: self searchPattern with: self replacePattern |
|
1197 |
]. |
|
1198 |
newTree := rewriter |
|
1199 |
executeTree: mth parseTree; |
|
1200 |
tree. |
|
13822 | 1201 |
|
18150 | 1202 |
change := InteractiveAddMethodChange compile: newTree newSource in:(mth mclass ? mth getMclass) classified:mth category. |
13822 | 1203 |
|
18150 | 1204 |
"/ collect in order to have only one change in the undo-list (instead of many) |
1205 |
changes add: change. |
|
13822 | 1206 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1207 |
"/ mth mclass |
13822 | 1208 |
"/ compile: newTree formattedCode |
1209 |
"/ classified: mth category |
|
1210 |
]. |
|
1211 |
||
1212 |
changes isEmpty ifTrue:[ ^ self ]. |
|
1213 |
||
1214 |
"/Let the user to inspect and confirm changes...." |
|
1215 |
changes := ChangeSetBrowser2 confirmChanges: changes. |
|
1216 |
changes isEmpty ifTrue:[ ^ self ]. |
|
1217 |
||
1218 |
"/Perform the refactoring..." |
|
1219 |
compositeChangeCollector := CompositeRefactoryChange new. |
|
1220 |
compositeChangeCollector name:'Rewrite Change'. |
|
1221 |
compositeChangeCollector changes: changes. |
|
1222 |
RefactoryChangeManager performChange:compositeChangeCollector. |
|
1223 |
||
1224 |
"Created: / 20-07-2007 / 16:03:47 / janfrog" |
|
1225 |
"Modified: / 21-07-2007 / 06:55:42 / janfrog" |
|
1226 |
"Modified: / 04-08-2011 / 19:05:25 / cg" |
|
1227 |
"Created: / 22-03-2012 / 18:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
18150 | 1228 |
"Modified: / 24-05-2018 / 14:24:51 / Claus Gittinger" |
13822 | 1229 |
! |
1230 |
||
8776 | 1231 |
doRewriteAction |
1232 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1233 |
self replacePattern isEmptyOrNil ifTrue:[ |
18150 | 1234 |
(Dialog confirm:(resources stringWithCRs:'No replace-pattern given.\\Proceed to delete that code.') |
1235 |
) ifFalse:[ |
|
18391 | 1236 |
AbortOperationRequest raise |
18150 | 1237 |
]. |
13822 | 1238 |
]. |
8776 | 1239 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1240 |
self |
18150 | 1241 |
doSearchPattern: self searchPattern |
1242 |
withResultDo: [:methodsMatching| |
|
1243 |
self doRewrite: methodsMatching |
|
1244 |
]. |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1245 |
|
8776 | 1246 |
"Created: / 12-12-2007 / 11:14:19 / janfrog" |
13822 | 1247 |
"Modified: / 22-03-2012 / 18:23:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
18150 | 1248 |
"Modified: / 24-05-2018 / 14:35:06 / Claus Gittinger" |
18391 | 1249 |
"Modified: / 18-09-2018 / 12:32:35 / Stefan Vogel" |
8776 | 1250 |
! |
1251 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1252 |
doSearchAction |
18154 | 1253 |
|ruleName searchPattern| |
8776 | 1254 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1255 |
ruleForRewriteOrNilForAdHoc notNil ifTrue:[ |
18150 | 1256 |
ruleName := self selectedRule name. |
1257 |
||
1258 |
self |
|
1259 |
doSearchRule: self selectedRule |
|
1260 |
withResultDo:[:matchingMethods| |
|
18154 | 1261 |
|brwsr searchStrings| |
1262 |
||
18150 | 1263 |
matchingMethods isEmpty |
1264 |
ifTrue:[ |
|
1265 |
Dialog warn:(resources |
|
1266 |
string:'No methods found by rule: "%1"' |
|
1267 |
with:ruleName) |
|
1268 |
] |
|
1269 |
ifFalse:[ |
|
18154 | 1270 |
brwsr := self |
18150 | 1271 |
showMethods: matchingMethods asArray |
1272 |
title: (resources |
|
1273 |
string:'%1 Methods matching rule: "%2"' |
|
1274 |
with:matchingMethods size |
|
18154 | 1275 |
with:ruleName). |
1276 |
searchStrings := self selectedRule rewriteRule searches collect:[:eachSearch | eachSearch searchString]. |
|
1277 |
brwsr autoSearchCodePatterns:searchStrings |
|
1278 |
||
18150 | 1279 |
] |
1280 |
] |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1281 |
] ifFalse:[ |
18154 | 1282 |
searchPattern := self searchPattern. |
1283 |
self |
|
1284 |
doSearchPattern:searchPattern |
|
18150 | 1285 |
withResultDo:[:matchingMethods| |
18154 | 1286 |
|brwsr| |
1287 |
||
18150 | 1288 |
matchingMethods isEmpty |
1289 |
ifTrue:[ |
|
1290 |
Dialog warn:(resources |
|
1291 |
string:'No methods found for search pattern "%1"' |
|
18154 | 1292 |
with:searchPattern) |
18150 | 1293 |
] |
1294 |
ifFalse:[ |
|
18154 | 1295 |
brwsr := self |
1296 |
showMethods:matchingMethods asArray |
|
18150 | 1297 |
title:(resources |
1298 |
string:'%1 Methods matching "%2"' |
|
1299 |
with:matchingMethods size |
|
18154 | 1300 |
with:searchPattern). |
1301 |
self halt. brwsr autoSearchCodePattern:searchPattern |
|
18150 | 1302 |
] |
1303 |
] |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1304 |
] |
8776 | 1305 |
|
1306 |
"Created: / 12-12-2007 / 11:14:25 / janfrog" |
|
18154 | 1307 |
"Modified: / 24-05-2018 / 20:44:46 / Claus Gittinger" |
8776 | 1308 |
! |
1309 |
||
1310 |
removeSeletedClassesAction |
|
17004 | 1311 |
|toRemove| |
8776 | 1312 |
|
17004 | 1313 |
toRemove := self selectedClasses. |
1314 |
toRemove notEmptyOrNil ifTrue:[ |
|
1315 |
self classes removeAll: self selectedClasses. |
|
1316 |
classes changed:#content. |
|
1317 |
self classesChanged. |
|
1318 |
]. |
|
1319 |
||
8776 | 1320 |
"Created: / 12-12-2007 / 12:05:15 / janfrog" |
1321 |
! |
|
1322 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1323 |
useAsRuleAction |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1324 |
self adHocFindAndReplaceVisibleHolder value:false. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1325 |
ruleForRewriteOrNilForAdHoc := self selectedRule. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1326 |
ruleNameHolder value: ruleForRewriteOrNilForAdHoc name. |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1327 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1328 |
self selectedTabIndex value:1 |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1329 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1330 |
|
8776 | 1331 |
useAsTemplateAction |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1332 |
self adHocFindAndReplaceVisibleHolder value:true. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1333 |
ruleForRewriteOrNilForAdHoc := nil. "/ ad hoc |
8776 | 1334 |
self searchPattern: self templateSearchPatternHolder value. |
1335 |
self replacePattern: self templateReplacePatternHolder value. |
|
1336 |
self selectedTabIndex value:1 |
|
1337 |
||
1338 |
"Created: / 12-12-2007 / 11:14:15 / janfrog" |
|
1339 |
! ! |
|
1340 |
||
1341 |
!MethodRewriter methodsFor:'aspects'! |
|
1342 |
||
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1343 |
actionInProgressHolder |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1344 |
actionInProgressHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1345 |
actionInProgressHolder := false asValue. |
8776 | 1346 |
]. |
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1347 |
^ actionInProgressHolder. |
8776 | 1348 |
|
1349 |
"Created: / 12-12-2007 / 10:00:05 / janfrog" |
|
1350 |
! |
|
1351 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1352 |
adHocFindAndReplaceVisibleHolder |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1353 |
adHocFindAndReplaceVisibleHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1354 |
adHocFindAndReplaceVisibleHolder := true asValue. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1355 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1356 |
^ adHocFindAndReplaceVisibleHolder. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1357 |
! |
8776 | 1358 |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1359 |
classesInfoTextHolder |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1360 |
classesInfoTextHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1361 |
classesInfoTextHolder := '' asValue. |
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1362 |
]. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1363 |
^ classesInfoTextHolder. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1364 |
! |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1365 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1366 |
howToUseRewriteToolURL |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1367 |
^ HTMLDocumentFrame documentFileFor:'help/Browser/RewriteToolHelp.html' |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1368 |
! |
8776 | 1369 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1370 |
infoHolder |
8776 | 1371 |
infoHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1372 |
infoHolder := 'Really cool tool!!' asValue. |
8776 | 1373 |
]. |
1374 |
^ infoHolder. |
|
1375 |
||
1376 |
"Created: / 12-12-2007 / 10:00:05 / janfrog" |
|
1377 |
"Modified: / 12-12-2007 / 11:40:17 / janfrog" |
|
1378 |
! |
|
1379 |
||
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1380 |
isMethodPatternHolder |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1381 |
isMethodPatternHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1382 |
isMethodPatternHolder := false asValue |
15630
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1383 |
]. |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1384 |
^ isMethodPatternHolder. |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1385 |
! |
903745e4c780
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15411
diff
changeset
|
1386 |
|
8776 | 1387 |
progressHolder |
1388 |
progressHolder isNil ifTrue:[ |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1389 |
progressHolder := 0 asValue |
8776 | 1390 |
]. |
1391 |
^ progressHolder. |
|
1392 |
||
1393 |
"Created: / 12-12-2007 / 10:00:05 / janfrog" |
|
1394 |
! |
|
1395 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1396 |
ruleExecutionVisibleHolder |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1397 |
^ BlockValue forLogicalNot:self adHocFindAndReplaceVisibleHolder |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1398 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1399 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1400 |
ruleNameHolder |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1401 |
ruleNameHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1402 |
ruleNameHolder := '' asValue. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1403 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1404 |
^ ruleNameHolder. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1405 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1406 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1407 |
ruleNameList |
8776 | 1408 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1409 |
^self rules collect:[:ruleSpec | ruleSpec first name ] |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1410 |
! |
8776 | 1411 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1412 |
ruleSearchAndReplacePatternHolder |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1413 |
ruleSearchAndReplacePatternHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1414 |
ruleSearchAndReplacePatternHolder := '' asValue. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1415 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1416 |
^ ruleSearchAndReplacePatternHolder. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1417 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1418 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1419 |
searchPatternHelpURL |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1420 |
^ HTMLDocumentFrame documentFileFor:'help/Browser/RBSearchPatterns.html' |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1421 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1422 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1423 |
selectedClassesHolder |
8776 | 1424 |
selectedClassesHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1425 |
selectedClassesHolder := ValueHolder new. |
8776 | 1426 |
]. |
1427 |
^ selectedClassesHolder. |
|
1428 |
||
1429 |
"Created: / 12-12-2007 / 12:01:40 / janfrog" |
|
1430 |
! |
|
1431 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1432 |
selectedRuleIndex |
8776 | 1433 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1434 |
selectedRuleIndex isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1435 |
selectedRuleIndex := ValueHolder new. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1436 |
selectedRuleIndex onChangeSend:#selectedRuleIndexChanged to:self. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1437 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1438 |
^ selectedRuleIndex. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1439 |
! |
8776 | 1440 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1441 |
selectedTabIndex |
8776 | 1442 |
selectedTabIndex isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1443 |
selectedTabIndex := ValueHolder new. |
8776 | 1444 |
]. |
1445 |
^ selectedTabIndex. |
|
1446 |
||
1447 |
"Created: / 12-12-2007 / 11:39:29 / janfrog" |
|
1448 |
! |
|
1449 |
||
1450 |
selectedTemplateIndex |
|
1451 |
||
1452 |
selectedTemplateIndex isNil ifTrue:[ |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1453 |
selectedTemplateIndex := ValueHolder new. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1454 |
selectedTemplateIndex onChangeSend:#selectedTemplateIndexChanged to:self. |
8776 | 1455 |
]. |
1456 |
^ selectedTemplateIndex. |
|
1457 |
||
1458 |
"Created: / 12-12-2007 / 11:17:16 / janfrog" |
|
1459 |
! |
|
1460 |
||
1461 |
tabList |
|
1462 |
"Generated by the TabListEditor" |
|
1463 |
||
1464 |
|list| |
|
1465 |
||
1466 |
(list := builder bindingAt:#tabList) isNil ifTrue:[ |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1467 |
builder aspectAt:#tabList put:(list := self class tabList). |
8776 | 1468 |
]. |
1469 |
^ list |
|
1470 |
||
1471 |
"Created: / 20-07-2007 / 16:54:27 / janfrog" |
|
1472 |
! |
|
1473 |
||
1474 |
templateNameList |
|
1475 |
||
1476 |
^self templates collect:[:tmpl|tmpl first] |
|
1477 |
||
1478 |
"Created: / 12-12-2007 / 11:17:16 / janfrog" |
|
1479 |
! |
|
1480 |
||
1481 |
templateReplacePatternHolder |
|
1482 |
templateReplacePatternHolder isNil ifTrue:[ |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1483 |
templateReplacePatternHolder := '' asValue. |
8776 | 1484 |
]. |
1485 |
^ templateReplacePatternHolder. |
|
1486 |
||
1487 |
"Created: / 12-12-2007 / 11:17:16 / janfrog" |
|
1488 |
! |
|
1489 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1490 |
templateReplacePatternIsEditable |
18662 | 1491 |
^ builder valueAspectFor:#templateReplacePatternIsEditable initialValue:true |
8776 | 1492 |
|
18662 | 1493 |
"Modified: / 09-03-2019 / 22:19:41 / Claus Gittinger" |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1494 |
! |
8776 | 1495 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1496 |
templateSearchPatternHolder |
8776 | 1497 |
templateSearchPatternHolder isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1498 |
templateSearchPatternHolder := '' asValue. |
8776 | 1499 |
]. |
1500 |
^ templateSearchPatternHolder. |
|
1501 |
||
1502 |
"Created: / 12-12-2007 / 11:17:16 / janfrog" |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1503 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1504 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1505 |
templateSearchPatternIsEditable |
18662 | 1506 |
^ builder valueAspectFor:#templateSearchPatternIsEditable initialValue:true |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1507 |
|
18662 | 1508 |
"Modified: / 09-03-2019 / 22:19:50 / Claus Gittinger" |
8776 | 1509 |
! ! |
1510 |
||
1511 |
!MethodRewriter methodsFor:'change & update'! |
|
1512 |
||
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1513 |
classesChanged |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1514 |
cachedMethodsFromClasses := nil. "/ flush |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1515 |
methods := nil. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1516 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1517 |
self classesInfoTextHolder |
17004 | 1518 |
value:(((classes size == 1) |
1519 |
ifTrue:['%1 class / %2 method(s)'] |
|
1520 |
ifFalse:['%1 classes / %2 methods']) |
|
1521 |
bindWith:classes size |
|
1522 |
with:self methods size) |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1523 |
! |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1524 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1525 |
selectedRuleIndexChanged |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1526 |
|selectedRuleSpec| |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1527 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1528 |
selectedRuleSpec := self selectedRuleSpec. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1529 |
"/ entries are: |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1530 |
"/ 1) rule |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1531 |
"/ 2) search & replacement pattern |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1532 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1533 |
self ruleSearchAndReplacePatternHolder value: selectedRuleSpec second. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1534 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1535 |
|
8776 | 1536 |
selectedTemplateIndexChanged |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1537 |
|selectedTemplate| |
8776 | 1538 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1539 |
selectedTemplate := self selectedTemplate. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1540 |
"/ entries are: |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1541 |
"/ 1) name |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1542 |
"/ 2) search pattern |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1543 |
"/ 3) replacement pattern |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1544 |
"/ 4) rule or nil; nil for ad-hoc rewrite |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1545 |
selectedTemplate fourth isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1546 |
"/ ad hoc |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1547 |
self templateReplacePatternIsEditable value:true. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1548 |
self templateSearchPatternIsEditable value:true. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1549 |
] ifFalse:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1550 |
"/ existing rule |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1551 |
self templateReplacePatternIsEditable value:false. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1552 |
self templateSearchPatternIsEditable value:false. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1553 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1554 |
self templateSearchPatternHolder value: selectedTemplate second. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1555 |
self templateReplacePatternHolder value: selectedTemplate third. |
8776 | 1556 |
|
1557 |
"Created: / 12-12-2007 / 11:20:16 / janfrog" |
|
1558 |
! ! |
|
1559 |
||
1560 |
!MethodRewriter methodsFor:'drag & drop'! |
|
1561 |
||
1562 |
canDropClasses: dropContext |
|
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1563 |
"I accept classes, methods and packages" |
8776 | 1564 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1565 |
^dropContext dropObjects |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1566 |
allSatisfy: [:obj| |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1567 |
obj isClassObject |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1568 |
or:[ obj isMethodObject |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1569 |
or:[ obj isProjectObject ]]] |
8776 | 1570 |
|
1571 |
"Created: / 20-07-2007 / 16:58:13 / janfrog" |
|
1572 |
! |
|
1573 |
||
1574 |
doDropClasses: dropContext |
|
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1575 |
"I accept classes, methods and packages" |
8776 | 1576 |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1577 |
| droppedProjects droppedClasses newClasses classesAlready| |
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1578 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1579 |
droppedProjects := dropContext dropObjects |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1580 |
select:[:obj| obj isProjectObject] |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1581 |
thenCollect:[:obj | obj theObject]. |
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1582 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1583 |
droppedClasses := dropContext dropObjects |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1584 |
select:[:obj| obj isClassObject or:[obj isMethodObject]] |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1585 |
thenCollect:[:obj| |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1586 |
|clsOrMethod| |
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1587 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1588 |
clsOrMethod := obj theObject. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1589 |
clsOrMethod isMethod ifTrue:[ |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1590 |
clsOrMethod containingClass |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1591 |
] ifFalse:[ |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1592 |
clsOrMethod |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1593 |
] |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1594 |
] as:IdentitySet. |
11724 | 1595 |
|
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1596 |
droppedProjects do:[:eachPackage | |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1597 |
droppedClasses addAll:(Smalltalk allClassesInPackage:eachPackage) |
15202
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1598 |
]. |
31fdbb042c81
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15200
diff
changeset
|
1599 |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1600 |
classesAlready := self classes asSet. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1601 |
newClasses := droppedClasses reject:[:cls | classesAlready includes:cls]. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1602 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1603 |
self classes |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1604 |
addAll: newClasses; |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1605 |
sortBySelector:#name. |
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1606 |
self classesChanged |
8776 | 1607 |
|
1608 |
"Created: / 20-07-2007 / 16:58:16 / janfrog" |
|
1609 |
! ! |
|
1610 |
||
1611 |
!MethodRewriter methodsFor:'hooks'! |
|
1612 |
||
1613 |
postBuildFindTextView: scrollableView |
|
1614 |
||
1615 |
searchTextView := scrollableView scrolledView |
|
1616 |
||
1617 |
"Created: / 20-07-2007 / 15:55:16 / janfrog" |
|
1618 |
! |
|
1619 |
||
1620 |
postBuildReplaceTextView: scrollableView |
|
1621 |
||
1622 |
replaceTextView := scrollableView scrolledView |
|
1623 |
||
1624 |
"Created: / 20-07-2007 / 15:55:29 / janfrog" |
|
1625 |
! ! |
|
1626 |
||
1627 |
!MethodRewriter methodsFor:'private'! |
|
1628 |
||
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1629 |
actionInProgress: aBoolean |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1630 |
|
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1631 |
self actionInProgressHolder value: aBoolean. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1632 |
self windowGroup processEvents. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1633 |
|
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1634 |
"Created: / 12-12-2007 / 10:06:16 / janfrog" |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1635 |
! |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1636 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1637 |
doSearchPattern: pattern withResultDo: block |
8776 | 1638 |
|
18150 | 1639 |
| matchingMethods searcher action addMethod currentMethod| |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1640 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1641 |
pattern isEmptyOrNil ifTrue:[ |
18150 | 1642 |
Dialog warn:'No searchpattern given.'. |
1643 |
AbortSignal raise |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1644 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1645 |
|
8776 | 1646 |
matchingMethods := Set new. |
18150 | 1647 |
"/ addMethod := [:aNode :answer | matchingMethods add:currentMethod ]. |
1648 |
"/ searcher := ParseTreeSearcher new. |
|
1649 |
"/ (self isMethodPatternHolder value) |
|
1650 |
"/ ifTrue:[ |
|
1651 |
"/ action := [searcher matchesMethod:pattern do:addMethod] |
|
1652 |
"/ ] |
|
1653 |
"/ ifFalse:[ |
|
1654 |
"/ action := [searcher matches:pattern do:addMethod] |
|
1655 |
"/ ]. |
|
1656 |
||
8776 | 1657 |
self |
18150 | 1658 |
withMethodsDo:[:mthd| |
1659 |
| tree "searcher" | |
|
1660 |
tree := mthd parseTree. |
|
1661 |
tree |
|
1662 |
ifNil:[ |
|
1663 |
Transcript showCR:'MethodRewriter: parse tree error in ',mthd whoString. |
|
1664 |
self breakPoint: #jv |
|
1665 |
] |
|
1666 |
ifNotNil:[ |
|
1667 |
searcher := ParseTreeSearcher new. |
|
1668 |
(self isMethodPatternHolder value) |
|
1669 |
ifTrue:[ |
|
1670 |
searcher matchesMethod:pattern do:[:aNode :answer | matchingMethods add:mthd ] |
|
1671 |
] |
|
1672 |
ifFalse:[ |
|
1673 |
searcher matches:pattern do:[:aNode :answer | matchingMethods add:mthd ] |
|
1674 |
]. |
|
1675 |
searcher executeTree: tree |
|
1676 |
] |
|
1677 |
] |
|
1678 |
finallyDo:[ |
|
1679 |
block value: matchingMethods |
|
1680 |
] |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1681 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1682 |
"Created: / 12-12-2007 / 10:34:50 / janfrog" |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1683 |
"Modified: / 07-04-2011 / 22:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
18150 | 1684 |
"Modified: / 24-05-2018 / 14:23:01 / Claus Gittinger" |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1685 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1686 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1687 |
doSearchRule: rule withResultDo: block |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1688 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1689 |
| matchingMethods searcher currentMethod| |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1690 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1691 |
rule isNil ifTrue:[ |
17004 | 1692 |
Dialog warn:'No rule selected.'. |
1693 |
AbortSignal raise |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1694 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1695 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1696 |
searcher := ParseTreeSearcher new. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1697 |
rule rewriteRule searches do:[:eachSearch | |
17004 | 1698 |
searcher |
1699 |
matchesTree:eachSearch searchTree |
|
1700 |
do:[:aNode :answer | |
|
1701 |
(eachSearch canMatch: aNode) ifTrue:[ |
|
1702 |
matchingMethods add:currentMethod |
|
1703 |
] |
|
1704 |
] |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1705 |
]. |
17004 | 1706 |
searcher computeQuickSearchStrings. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1707 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1708 |
matchingMethods := Set new. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1709 |
self |
17004 | 1710 |
withMethodsDo:[:mthd| |
1711 |
| tree | |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1712 |
|
17004 | 1713 |
(searcher canQuicklyReject:mthd source) ifFalse:[ |
1714 |
tree := mthd parseTree. |
|
1715 |
tree |
|
1716 |
ifNil:[ |
|
1717 |
Transcript showCR:'MethodRewriter: parse tree error in ',mthd whoString. |
|
1718 |
self breakPoint: #jv |
|
1719 |
] |
|
1720 |
ifNotNil:[ |
|
1721 |
currentMethod := mthd. |
|
1722 |
searcher executeTree: tree |
|
1723 |
] |
|
1724 |
] |
|
1725 |
] |
|
1726 |
finallyDo:[ |
|
1727 |
block value: matchingMethods |
|
1728 |
] |
|
8776 | 1729 |
|
1730 |
"Created: / 12-12-2007 / 10:34:50 / janfrog" |
|
9988 | 1731 |
"Modified: / 07-04-2011 / 22:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
8776 | 1732 |
! |
1733 |
||
1734 |
methods |
|
14388 | 1735 |
methods notEmptyOrNil ifTrue:[^ methods]. |
8776 | 1736 |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1737 |
^self methodsForClasses |
8776 | 1738 |
|
1739 |
"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
|
1740 |
"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
|
1741 |
! |
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
1742 |
|
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
1743 |
methods:aCollection |
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1744 |
"to explicitly set the set of methods to be processed" |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1745 |
|
10170
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
1746 |
methods := aCollection |
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
1747 |
|
3239c0b672eb
allow for individual methods to be rewritten;
Claus Gittinger <cg@exept.de>
parents:
10153
diff
changeset
|
1748 |
"Created: / 05-07-2011 / 14:50:52 / cg" |
8776 | 1749 |
! |
1750 |
||
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1751 |
methodsForClasses |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1752 |
cachedMethodsFromClasses isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1753 |
cachedMethodsFromClasses := |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1754 |
(classes |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1755 |
inject: OrderedCollection new |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1756 |
into:[:methods :cls| |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1757 |
methods |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1758 |
addAll: cls methodDictionary values; |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1759 |
addAll: cls class methodDictionary values; |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1760 |
yourself] |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1761 |
) asArray. |
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1762 |
]. |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1763 |
^ cachedMethodsFromClasses |
8776 | 1764 |
! |
1765 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1766 |
methodsMatchingPattern: searchPattern |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1767 |
|methods matchingMethods| |
8776 | 1768 |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1769 |
searchPattern isEmptyOrNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1770 |
Dialog warn:'No searchpattern given'. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1771 |
AbortSignal raise |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1772 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1773 |
methods := self methodsToSearchOrAbortIfNone. |
8776 | 1774 |
|
1775 |
matchingMethods := OrderedCollection new. |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1776 |
methods do:[:mth | |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1777 |
(ParseTreeSearcher new) |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1778 |
matches:searchPattern do:[:aNode :answer | matchingMethods add:mth ]; |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1779 |
executeTree:mth parseTree. |
8776 | 1780 |
]. |
1781 |
^ matchingMethods |
|
1782 |
||
1783 |
"Created: / 21-07-2007 / 06:26:19 / janfrog" |
|
1784 |
! |
|
1785 |
||
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1786 |
methodsMatchingRule: rule |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1787 |
|methods matchingMethods| |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1788 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1789 |
rule isNil ifTrue:[ |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1790 |
Dialog warn:'No rule given'. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1791 |
AbortSignal raise |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1792 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1793 |
methods := self methodsToSearchOrAbortIfNone. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1794 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1795 |
matchingMethods := OrderedCollection new. |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1796 |
methods do:[:mth | |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1797 |
|searcher| |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1798 |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1799 |
searcher := ParseTreeSearcher new. |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1800 |
rule searches halt. |
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1801 |
"/ matches:searchPattern do:[:aNode :answer | matchingMethods add:mth ]; |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1802 |
"/ executeTree:mth parseTree. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1803 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1804 |
^ matchingMethods |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1805 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1806 |
|
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1807 |
methodsToSearchOrAbortIfNone |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1808 |
(methods := self methods) isEmptyOrNil ifTrue:[ |
18150 | 1809 |
Dialog warn:(resources stringWithCRs:'No methods or classes defined for search.\(go to the classes tab and select some)'). |
1810 |
AbortSignal raise. |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1811 |
]. |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1812 |
^ methods |
18150 | 1813 |
|
1814 |
"Modified: / 24-05-2018 / 14:46:29 / Claus Gittinger" |
|
15200
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1815 |
! |
9e2705b68633
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
14388
diff
changeset
|
1816 |
|
8776 | 1817 |
showMethods: methods title: title |
18150 | 1818 |
"open a browser on matching methods" |
1819 |
||
18154 | 1820 |
^ SystemBrowser default |
18150 | 1821 |
browseMethods:methods |
1822 |
title:title |
|
1823 |
sort:true |
|
8776 | 1824 |
|
1825 |
"Created: / 21-07-2007 / 06:51:36 / janfrog" |
|
18154 | 1826 |
"Modified: / 24-05-2018 / 20:27:46 / Claus Gittinger" |
8776 | 1827 |
! |
1828 |
||
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1829 |
withMethods: givenMethods do: methodBlock |
13822 | 1830 |
|
1831 |
^self withMethods: givenMethods do: methodBlock finallyDo: [] |
|
1832 |
||
1833 |
"Created: / 22-03-2012 / 18:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1834 |
! |
|
1835 |
||
8776 | 1836 |
withMethods: methods do: methodBlock finallyDo: finallyBlock |
1837 |
||
1838 |
[ |
|
17004 | 1839 |
|numMethods| |
1840 |
||
1841 |
numMethods := methods size. |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1842 |
|
17004 | 1843 |
self actionInProgress: true. |
1844 |
self progress: 0. |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1845 |
|
17004 | 1846 |
methods asArray keysAndValuesDo:[:idx :mth| |
1847 |
|mclass| |
|
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1848 |
|
17004 | 1849 |
mclass := mth mclass. |
1850 |
mclass isNil ifTrue:[ |
|
18154 | 1851 |
Transcript showCR:'previously found method is no longer valid in ',mth getMclass printString. |
17004 | 1852 |
] ifFalse:[ |
1853 |
numMethods > 100 ifTrue:[ |
|
1854 |
self info: mclass name. |
|
1855 |
] ifFalse:[ |
|
1856 |
self info: mth selector storeString. |
|
1857 |
]. |
|
1858 |
methodBlock value: mth. |
|
1859 |
self progress: ((100 / methods size) * idx) rounded |
|
1860 |
]. |
|
1861 |
]. |
|
1862 |
finallyBlock value |
|
8776 | 1863 |
] ensure:[ |
17004 | 1864 |
"/self actionInProgress: false. |
1865 |
self progress: 0. |
|
1866 |
self info: '' |
|
8776 | 1867 |
] |
1868 |
||
1869 |
"Created: / 12-12-2007 / 10:32:16 / janfrog" |
|
18154 | 1870 |
"Modified: / 24-05-2018 / 18:23:17 / Claus Gittinger" |
8776 | 1871 |
! |
1872 |
||
1873 |
withMethodsDo: methodBlock finallyDo: finallyBlock |
|
1874 |
||
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1875 |
^self |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1876 |
withMethods: self methodsToSearchOrAbortIfNone asArray |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1877 |
do: methodBlock |
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1878 |
finallyDo: finallyBlock |
8776 | 1879 |
|
1880 |
"Modified: / 12-12-2007 / 10:32:48 / janfrog" |
|
1881 |
! ! |
|
1882 |
||
1883 |
!MethodRewriter methodsFor:'testing method'! |
|
1884 |
||
1885 |
testXXX |
|
1886 |
self halt:'Was halt' |
|
1887 |
||
1888 |
"Created: / 21-07-2007 / 07:55:24 / janfrog" |
|
1889 |
"Modified: / 12-12-2007 / 10:45:20 / janfrog" |
|
1890 |
! ! |
|
1891 |
||
1892 |
!MethodRewriter class methodsFor:'documentation'! |
|
1893 |
||
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1894 |
version |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1895 |
^ '$Header$' |
15631
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1896 |
! |
b034f8b18413
class: Tools::MethodRewriter
Claus Gittinger <cg@exept.de>
parents:
15630
diff
changeset
|
1897 |
|
8803 | 1898 |
version_CVS |
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1899 |
^ '$Header$' |
9988 | 1900 |
! |
1901 |
||
1902 |
version_SVN |
|
15814
2817c7c730c2
applied changeset 15810:9e6f3799b239 jv
Claus Gittinger <cg@exept.de>
parents:
15662
diff
changeset
|
1903 |
^ '$Id$' |
8776 | 1904 |
! ! |
16514 | 1905 |