amber-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/.gitignore +2 -0
  2. data/.rvmrc +4 -0
  3. data/CHANGELOG.md +3 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +96 -0
  6. data/LICENSE +7 -0
  7. data/README.md +13 -0
  8. data/Rakefile +15 -0
  9. data/amber-rails.gemspec +21 -0
  10. data/app/assets/.DS_Store +0 -0
  11. data/app/assets/javascripts/.DS_Store +0 -0
  12. data/app/assets/javascripts/codemirror/codemirror.js +2144 -0
  13. data/app/assets/javascripts/codemirror/overlay.js +51 -0
  14. data/app/assets/javascripts/codemirror/runmode.js +27 -0
  15. data/app/assets/javascripts/codemirror/smalltalk/index.html +56 -0
  16. data/app/assets/javascripts/codemirror/smalltalk/smalltalk.js +134 -0
  17. data/app/assets/javascripts/html5.js +35 -0
  18. data/app/assets/javascripts/jquery.js +8981 -0
  19. data/app/assets/javascripts/jquery.textarea.js +267 -0
  20. data/app/assets/javascripts/jquery.tmpl.js +503 -0
  21. data/app/assets/javascripts/jquery.ui.js +272 -0
  22. data/app/assets/javascripts/json2.js +481 -0
  23. data/app/assets/javascripts/jtalk-development.js.coffee +4 -0
  24. data/app/assets/javascripts/jtalk-todos.js.coffee +4 -0
  25. data/app/assets/javascripts/jtalk.js.coffee +16 -0
  26. data/app/assets/javascripts/jtalk_core/boot.js +466 -0
  27. data/app/assets/javascripts/jtalk_core/st/.DS_Store +0 -0
  28. data/app/assets/javascripts/jtalk_core/st/Benchfib.js +159 -0
  29. data/app/assets/javascripts/jtalk_core/st/Canvas.js +1479 -0
  30. data/app/assets/javascripts/jtalk_core/st/Compiler.js +1587 -0
  31. data/app/assets/javascripts/jtalk_core/st/Examples.js +863 -0
  32. data/app/assets/javascripts/jtalk_core/st/HTML5.js +54 -0
  33. data/app/assets/javascripts/jtalk_core/st/IDE.js +3457 -0
  34. data/app/assets/javascripts/jtalk_core/st/JQuery.js +898 -0
  35. data/app/assets/javascripts/jtalk_core/st/Kernel.js +6761 -0
  36. data/app/assets/javascripts/jtalk_core/st/Parser.js +1655 -0
  37. data/app/assets/javascripts/jtalk_core/st/SUnit.js +1059 -0
  38. data/app/assets/stylesheets/codemirror.css +67 -0
  39. data/app/assets/stylesheets/codemirror_jtalk.css +21 -0
  40. data/app/assets/stylesheets/jtalk.css +369 -0
  41. data/app/assets/stylesheets/sunit.css +65 -0
  42. data/config/routes.rb +10 -0
  43. data/examples/todos/.gitignore +5 -0
  44. data/examples/todos/.rvmrc +4 -0
  45. data/examples/todos/Gemfile +12 -0
  46. data/examples/todos/Gemfile.lock +126 -0
  47. data/examples/todos/README +261 -0
  48. data/examples/todos/Rakefile +15 -0
  49. data/examples/todos/app/assets/images/rails.png +0 -0
  50. data/examples/todos/app/assets/javascripts/application.js.coffee +5 -0
  51. data/examples/todos/app/assets/javascripts/jtalk/Examples.deploy.js +863 -0
  52. data/examples/todos/app/assets/javascripts/jtalk/Examples.js +863 -0
  53. data/examples/todos/app/assets/smalltalk/Examples.st +397 -0
  54. data/examples/todos/app/assets/stylesheets/application.css +8 -0
  55. data/examples/todos/app/assets/stylesheets/jtalk-todos.css +154 -0
  56. data/examples/todos/app/controllers/application_controller.rb +3 -0
  57. data/examples/todos/app/controllers/todos_controller.rb +5 -0
  58. data/examples/todos/app/helpers/application_helper.rb +2 -0
  59. data/examples/todos/app/models/.gitkeep +0 -0
  60. data/examples/todos/app/views/todos/index.html.haml +16 -0
  61. data/examples/todos/config.ru +4 -0
  62. data/examples/todos/config/application.rb +31 -0
  63. data/examples/todos/config/boot.rb +6 -0
  64. data/examples/todos/config/database.yml +25 -0
  65. data/examples/todos/config/environment.rb +5 -0
  66. data/examples/todos/config/environments/development.rb +27 -0
  67. data/examples/todos/config/environments/production.rb +60 -0
  68. data/examples/todos/config/environments/test.rb +42 -0
  69. data/examples/todos/config/initializers/backtrace_silencers.rb +7 -0
  70. data/examples/todos/config/initializers/inflections.rb +10 -0
  71. data/examples/todos/config/initializers/mime_types.rb +5 -0
  72. data/examples/todos/config/initializers/secret_token.rb +7 -0
  73. data/examples/todos/config/initializers/session_store.rb +8 -0
  74. data/examples/todos/config/initializers/wrap_parameters.rb +14 -0
  75. data/examples/todos/config/locales/en.yml +5 -0
  76. data/examples/todos/config/routes.rb +3 -0
  77. data/examples/todos/log/.gitkeep +0 -0
  78. data/examples/todos/public/404.html +26 -0
  79. data/examples/todos/public/422.html +26 -0
  80. data/examples/todos/public/500.html +26 -0
  81. data/examples/todos/public/favicon.ico +0 -0
  82. data/examples/todos/public/robots.txt +5 -0
  83. data/examples/todos/script/rails +6 -0
  84. data/examples/todos/vendor/assets/stylesheets/.gitkeep +0 -0
  85. data/examples/todos/vendor/plugins/.gitkeep +0 -0
  86. data/lib/amber-rails.rb +1 -0
  87. data/lib/amber/rails.rb +30 -0
  88. data/lib/amber/rails/engine.rb +12 -0
  89. data/lib/amber/rails/version.rb +5 -0
  90. metadata +167 -0
@@ -0,0 +1,54 @@
1
+ smalltalk.addClass('LocalStorage', smalltalk.Object, [], 'HTML5');
2
+
3
+ smalltalk.addMethod(
4
+ '_keys',
5
+ smalltalk.method({
6
+ selector: 'keys',
7
+ category: 'not yet classified',
8
+ fn: function (){
9
+ var self=this;
10
+ var numKeys=nil;
11
+ var key=nil;
12
+ var keysArray=nil;
13
+ numKeys=localStorage.length-1;
14
+ keysArray=smalltalk.send(smalltalk.Array, "_new", []);
15
+ smalltalk.send((0), "_to_do_", [numKeys, (function(idx){key=localStorage.key(idx);return smalltalk.send(keysArray, "_add_", [key]);})]);
16
+ return keysArray;
17
+ return self;},
18
+ source: unescape('keys%0A%0A%09%7C%20numKeys%20key%20keysArray%20%7C%0A%09numKeys%20%3A%3D%20%3ClocalStorage.length-1%3E.%0A%09keysArray%20%3A%3D%20Array%20new.%0A%090%20to%3A%20numKeys%20do%3A%20%5B%20%3Aidx%20%7C%0A%09%09key%20%3A%3D%20%3ClocalStorage.key%28idx%29%3E.%0A%09%09keysArray%20add%3A%20key%20%5D.%0A%09%5E%20keysArray.'),
19
+ messageSends: ["new", "to:do:", "add:"],
20
+ referencedClasses: [smalltalk.Array]
21
+ }),
22
+ smalltalk.LocalStorage.klass);
23
+
24
+ smalltalk.addMethod(
25
+ '_at_',
26
+ smalltalk.method({
27
+ selector: 'at:',
28
+ category: 'not yet classified',
29
+ fn: function (keyName){
30
+ var self=this;
31
+ return localStorage[keyName];
32
+ return self;},
33
+ source: unescape('at%3A%20keyName%0A%0A%09%5E%3ClocalStorage%5BkeyName%5D%3E'),
34
+ messageSends: [],
35
+ referencedClasses: []
36
+ }),
37
+ smalltalk.LocalStorage.klass);
38
+
39
+ smalltalk.addMethod(
40
+ '_at_put_',
41
+ smalltalk.method({
42
+ selector: 'at:put:',
43
+ category: 'not yet classified',
44
+ fn: function (keyName, stringValue){
45
+ var self=this;
46
+ localStorage[keyName] = stringValue;
47
+ return self;},
48
+ source: unescape('at%3A%20keyName%20put%3A%20stringValue%0A%0A%09%3ClocalStorage%5BkeyName%5D%20%3D%20stringValue%3E'),
49
+ messageSends: [],
50
+ referencedClasses: []
51
+ }),
52
+ smalltalk.LocalStorage.klass);
53
+
54
+
@@ -0,0 +1,3457 @@
1
+ smalltalk.addClass('TabManager', smalltalk.Widget, ['selectedTab', 'tabs', 'opened', 'ul'], 'IDE');
2
+ smalltalk.addMethod(
3
+ '_tabs',
4
+ smalltalk.method({
5
+ selector: 'tabs',
6
+ category: 'accessing',
7
+ fn: function (){
8
+ var self=this;
9
+ return smalltalk.send(self['@tabs'], "_ifNil_", [(function(){return self['@tabs']=smalltalk.send(smalltalk.Array, "_new", []);})]);
10
+ return self;},
11
+ source: unescape('tabs%0A%20%20%20%20%5Etabs%20ifNil%3A%20%5Btabs%20%3A%3D%20Array%20new%5D'),
12
+ messageSends: ["ifNil:", "new"],
13
+ referencedClasses: [smalltalk.Array]
14
+ }),
15
+ smalltalk.TabManager);
16
+
17
+ smalltalk.addMethod(
18
+ '_updateBodyMargin',
19
+ smalltalk.method({
20
+ selector: 'updateBodyMargin',
21
+ category: 'actions',
22
+ fn: function (){
23
+ var self=this;
24
+ smalltalk.send(self, "_setBodyMargin_", [smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_height", []), "__plus", [(27)])]);
25
+ return self;},
26
+ source: unescape('updateBodyMargin%0A%20%20%20%20self%20setBodyMargin%3A%20%27%23jtalk%27%20asJQuery%20height%20+%2027'),
27
+ messageSends: ["setBodyMargin:", unescape("+"), "height", "asJQuery"],
28
+ referencedClasses: []
29
+ }),
30
+ smalltalk.TabManager);
31
+
32
+ smalltalk.addMethod(
33
+ '_updatePosition',
34
+ smalltalk.method({
35
+ selector: 'updatePosition',
36
+ category: 'actions',
37
+ fn: function (){
38
+ var self=this;
39
+ jQuery('#jtalk').css('top', '').css('bottom', '27px');
40
+ return self;},
41
+ source: unescape('updatePosition%0A%20%20%20%20%3CjQuery%28%27%23jtalk%27%29.css%28%27top%27%2C%20%27%27%29.css%28%27bottom%27%2C%20%2727px%27%29%3E'),
42
+ messageSends: [],
43
+ referencedClasses: []
44
+ }),
45
+ smalltalk.TabManager);
46
+
47
+ smalltalk.addMethod(
48
+ '_removeBodyMargin',
49
+ smalltalk.method({
50
+ selector: 'removeBodyMargin',
51
+ category: 'actions',
52
+ fn: function (){
53
+ var self=this;
54
+ smalltalk.send(self, "_setBodyMargin_", [(0)]);
55
+ return self;},
56
+ source: unescape('removeBodyMargin%0A%20%20%20%20self%20setBodyMargin%3A%200'),
57
+ messageSends: ["setBodyMargin:"],
58
+ referencedClasses: []
59
+ }),
60
+ smalltalk.TabManager);
61
+
62
+ smalltalk.addMethod(
63
+ '_setBodyMargin_',
64
+ smalltalk.method({
65
+ selector: 'setBodyMargin:',
66
+ category: 'actions',
67
+ fn: function (anInteger){
68
+ var self=this;
69
+ smalltalk.send(smalltalk.send(".jtalkBody", "_asJQuery", []), "_cssAt_put_", [unescape("margin-bottom"), smalltalk.send(smalltalk.send(anInteger, "_asString", []), "__comma", ["px"])]);
70
+ return self;},
71
+ source: unescape('setBodyMargin%3A%20anInteger%0A%20%20%20%20%27.jtalkBody%27%20asJQuery%20cssAt%3A%20%27margin-bottom%27%20put%3A%20anInteger%20asString%2C%20%27px%27'),
72
+ messageSends: ["cssAt:put:", "asJQuery", unescape("%2C"), "asString"],
73
+ referencedClasses: []
74
+ }),
75
+ smalltalk.TabManager);
76
+
77
+ smalltalk.addMethod(
78
+ '_onResize_',
79
+ smalltalk.method({
80
+ selector: 'onResize:',
81
+ category: 'actions',
82
+ fn: function (aBlock){
83
+ var self=this;
84
+ jQuery('#jtalk').resizable({
85
+ handles: 'n',
86
+ resize: aBlock,
87
+ minHeight: 230
88
+ });
89
+ return self;},
90
+ source: unescape('onResize%3A%20aBlock%0A%20%20%20%20%3CjQuery%28%27%23jtalk%27%29.resizable%28%7B%0A%09handles%3A%20%27n%27%2C%20%0A%09resize%3A%20aBlock%2C%0A%09minHeight%3A%20230%0A%7D%29%3E'),
91
+ messageSends: [],
92
+ referencedClasses: []
93
+ }),
94
+ smalltalk.TabManager);
95
+
96
+ smalltalk.addMethod(
97
+ '_onWindowResize_',
98
+ smalltalk.method({
99
+ selector: 'onWindowResize:',
100
+ category: 'actions',
101
+ fn: function (aBlock){
102
+ var self=this;
103
+ jQuery(window).resize(aBlock);
104
+ return self;},
105
+ source: unescape('onWindowResize%3A%20aBlock%0A%20%20%20%20%3CjQuery%28window%29.resize%28aBlock%29%3E'),
106
+ messageSends: [],
107
+ referencedClasses: []
108
+ }),
109
+ smalltalk.TabManager);
110
+
111
+ smalltalk.addMethod(
112
+ '_open',
113
+ smalltalk.method({
114
+ selector: 'open',
115
+ category: 'actions',
116
+ fn: function (){
117
+ var self=this;
118
+ smalltalk.send(self['@opened'], "_ifFalse_", [(function(){smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_addClass_", ["jtalkBody"]);smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_show", []);smalltalk.send(smalltalk.send(self['@ul'], "_asJQuery", []), "_show", []);smalltalk.send(self, "_updateBodyMargin", []);smalltalk.send(self['@selectedTab'], "_show", []);return self['@opened']=true;})]);
119
+ return self;},
120
+ source: unescape('open%0A%20%20%20%20opened%20ifFalse%3A%20%5B%0A%09%27body%27%20asJQuery%20addClass%3A%20%27jtalkBody%27.%0A%09%27%23jtalk%27%20asJQuery%20show.%0A%09ul%20asJQuery%20show.%0A%09self%20updateBodyMargin.%0A%09selectedTab%20show.%0A%09opened%20%3A%3D%20true%5D'),
121
+ messageSends: ["ifFalse:", "addClass:", "asJQuery", "show", "updateBodyMargin"],
122
+ referencedClasses: []
123
+ }),
124
+ smalltalk.TabManager);
125
+
126
+ smalltalk.addMethod(
127
+ '_close',
128
+ smalltalk.method({
129
+ selector: 'close',
130
+ category: 'actions',
131
+ fn: function (){
132
+ var self=this;
133
+ smalltalk.send(self['@opened'], "_ifTrue_", [(function(){smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_hide", []);smalltalk.send(smalltalk.send(self['@ul'], "_asJQuery", []), "_hide", []);smalltalk.send(self['@selectedTab'], "_hide", []);smalltalk.send(self, "_removeBodyMargin", []);smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_removeClass_", ["jtalkBody"]);return self['@opened']=false;})]);
134
+ return self;},
135
+ source: unescape('close%0A%20%20%20%20opened%20ifTrue%3A%20%5B%0A%09%27%23jtalk%27%20asJQuery%20hide.%0A%09ul%20asJQuery%20hide.%0A%09selectedTab%20hide.%0A%09self%20removeBodyMargin.%0A%09%27body%27%20asJQuery%20removeClass%3A%20%27jtalkBody%27.%0A%09opened%20%3A%3D%20false%5D'),
136
+ messageSends: ["ifTrue:", "hide", "asJQuery", "removeBodyMargin", "removeClass:"],
137
+ referencedClasses: []
138
+ }),
139
+ smalltalk.TabManager);
140
+
141
+ smalltalk.addMethod(
142
+ '_newBrowserTab',
143
+ smalltalk.method({
144
+ selector: 'newBrowserTab',
145
+ category: 'actions',
146
+ fn: function (){
147
+ var self=this;
148
+ smalltalk.send(smalltalk.Browser, "_open", []);
149
+ return self;},
150
+ source: unescape('newBrowserTab%0A%20%20%20%20Browser%20open'),
151
+ messageSends: ["open"],
152
+ referencedClasses: []
153
+ }),
154
+ smalltalk.TabManager);
155
+
156
+ smalltalk.addMethod(
157
+ '_selectTab_',
158
+ smalltalk.method({
159
+ selector: 'selectTab:',
160
+ category: 'actions',
161
+ fn: function (aWidget){
162
+ var self=this;
163
+ smalltalk.send(self, "_open", []);
164
+ self['@selectedTab']=aWidget;
165
+ smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [(function(each){return smalltalk.send(each, "_hide", []);})]);
166
+ smalltalk.send(aWidget, "_show", []);
167
+ smalltalk.send(self, "_update", []);
168
+ return self;},
169
+ source: unescape('selectTab%3A%20aWidget%0A%20%20%20%20self%20open.%0A%20%20%20%20selectedTab%20%3A%3D%20aWidget.%0A%20%20%20%20self%20tabs%20do%3A%20%5B%3Aeach%20%7C%0A%09each%20hide%5D.%0A%20%20%20%20aWidget%20show.%0A%09%0A%20%20%20%20self%20update'),
170
+ messageSends: ["open", "do:", "tabs", "hide", "show", "update"],
171
+ referencedClasses: []
172
+ }),
173
+ smalltalk.TabManager);
174
+
175
+ smalltalk.addMethod(
176
+ '_closeTab_',
177
+ smalltalk.method({
178
+ selector: 'closeTab:',
179
+ category: 'actions',
180
+ fn: function (aWidget){
181
+ var self=this;
182
+ smalltalk.send(self, "_removeTab_", [aWidget]);
183
+ smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
184
+ smalltalk.send(aWidget, "_remove", []);
185
+ smalltalk.send(self, "_update", []);
186
+ return self;},
187
+ source: unescape('closeTab%3A%20aWidget%0A%20%20%20%20self%20removeTab%3A%20aWidget.%0A%20%20%20%20self%20selectTab%3A%20self%20tabs%20last.%0A%20%20%20%20aWidget%20remove.%0A%20%20%20%20self%20update'),
188
+ messageSends: ["removeTab:", "selectTab:", "last", "tabs", "remove", "update"],
189
+ referencedClasses: []
190
+ }),
191
+ smalltalk.TabManager);
192
+
193
+ smalltalk.addMethod(
194
+ '_addTab_',
195
+ smalltalk.method({
196
+ selector: 'addTab:',
197
+ category: 'adding/Removing',
198
+ fn: function (aWidget){
199
+ var self=this;
200
+ smalltalk.send(smalltalk.send(self, "_tabs", []), "_add_", [aWidget]);
201
+ smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_append_", [aWidget]);
202
+ smalltalk.send(aWidget, "_hide", []);
203
+ return self;},
204
+ source: unescape('addTab%3A%20aWidget%0A%20%20%20%20self%20tabs%20add%3A%20aWidget.%0A%20%20%20%20%27%23jtalk%27%20asJQuery%20append%3A%20aWidget.%0A%20%20%20%20aWidget%20hide'),
205
+ messageSends: ["add:", "tabs", "append:", "asJQuery", "hide"],
206
+ referencedClasses: []
207
+ }),
208
+ smalltalk.TabManager);
209
+
210
+ smalltalk.addMethod(
211
+ '_removeTab_',
212
+ smalltalk.method({
213
+ selector: 'removeTab:',
214
+ category: 'adding/Removing',
215
+ fn: function (aWidget){
216
+ var self=this;
217
+ smalltalk.send(smalltalk.send(self, "_tabs", []), "_remove_", [aWidget]);
218
+ smalltalk.send(self, "_update", []);
219
+ return self;},
220
+ source: unescape('removeTab%3A%20aWidget%0A%20%20%20%20self%20tabs%20remove%3A%20aWidget.%0A%20%20%20%20self%20update'),
221
+ messageSends: ["remove:", "tabs", "update"],
222
+ referencedClasses: []
223
+ }),
224
+ smalltalk.TabManager);
225
+
226
+ smalltalk.addMethod(
227
+ '_initialize',
228
+ smalltalk.method({
229
+ selector: 'initialize',
230
+ category: 'initialization',
231
+ fn: function (){
232
+ var self=this;
233
+ smalltalk.send(self, "_initialize", [], smalltalk.Widget);
234
+ self['@opened']=true;
235
+ (function($rec){smalltalk.send($rec, "_append_", [self]);smalltalk.send($rec, "_append_", [(function(html){return smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["jtalk"]);})]);return smalltalk.send($rec, "_addClass_", ["jtalkBody"]);})(smalltalk.send("body", "_asJQuery", []));
236
+ (function($rec){smalltalk.send($rec, "_addTab_", [smalltalk.send(smalltalk.Transcript, "_current", [])]);return smalltalk.send($rec, "_addTab_", [smalltalk.send(smalltalk.Workspace, "_new", [])]);})(self);
237
+ smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
238
+ (function($rec){smalltalk.send($rec, "_onResize_", [(function(){return (function($rec){smalltalk.send($rec, "_updateBodyMargin", []);return smalltalk.send($rec, "_updatePosition", []);})(self);})]);return smalltalk.send($rec, "_onWindowResize_", [(function(){return smalltalk.send(self, "_updatePosition", []);})]);})(self);
239
+ return self;},
240
+ source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20opened%20%3A%3D%20true.%0A%20%20%20%20%27body%27%20asJQuery%20%0A%09append%3A%20self%3B%0A%09append%3A%20%5B%3Ahtml%20%7C%20html%20div%20id%3A%20%27jtalk%27%5D%3B%0A%09addClass%3A%20%27jtalkBody%27.%0A%20%20%20%20self%20%0A%09addTab%3A%20Transcript%20current%3B%0A%09addTab%3A%20Workspace%20new.%0A%20%20%20%20self%20selectTab%3A%20self%20tabs%20last.%0A%20%20%20%20self%20%0A%09onResize%3A%20%5Bself%20updateBodyMargin%3B%20updatePosition%5D%3B%0A%09onWindowResize%3A%20%5Bself%20updatePosition%5D'),
241
+ messageSends: ["initialize", "append:", "id:", "div", "addClass:", "asJQuery", "addTab:", "current", "new", "selectTab:", "last", "tabs", "onResize:", "updateBodyMargin", "updatePosition", "onWindowResize:"],
242
+ referencedClasses: []
243
+ }),
244
+ smalltalk.TabManager);
245
+
246
+ smalltalk.addMethod(
247
+ '_renderOn_',
248
+ smalltalk.method({
249
+ selector: 'renderOn:',
250
+ category: 'rendering',
251
+ fn: function (html){
252
+ var self=this;
253
+ self['@ul']=(function($rec){smalltalk.send($rec, "_id_", ["jtalkTabs"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", []));
254
+ smalltalk.send(self, "_renderTabs", []);
255
+ return self;},
256
+ source: unescape('renderOn%3A%20html%0A%09ul%20%3A%3D%20html%20ul%0A%09%09id%3A%20%27jtalkTabs%27%3B%0A%09%09yourself.%0A%09self%20renderTabs'),
257
+ messageSends: ["id:", "yourself", "ul", "renderTabs"],
258
+ referencedClasses: []
259
+ }),
260
+ smalltalk.TabManager);
261
+
262
+ smalltalk.addMethod(
263
+ '_renderTabFor_on_',
264
+ smalltalk.method({
265
+ selector: 'renderTabFor:on:',
266
+ category: 'rendering',
267
+ fn: function (aWidget, html){
268
+ var self=this;
269
+ var li=nil;
270
+ li=smalltalk.send(html, "_li", []);
271
+ smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", [aWidget]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);
272
+ smalltalk.send(li, "_with_", [(function(){smalltalk.send(smalltalk.send(aWidget, "_canBeClosed", []), "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_class_", ["close"]);smalltalk.send($rec, "_with_", ["x"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_closeTab_", [aWidget]);})]);})(smalltalk.send(html, "_span", []));})]);return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(aWidget, "_label", [])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", [aWidget]);})]);})(smalltalk.send(html, "_span", []));})]);
273
+ return self;},
274
+ source: unescape('renderTabFor%3A%20aWidget%20on%3A%20html%0A%20%20%20%20%7C%20li%20%7C%0A%20%20%20%20li%20%3A%3D%20html%20li.%0A%20%20%20%20selectedTab%20%3D%20aWidget%20ifTrue%3A%20%5B%0A%09li%20class%3A%20%27selected%27%5D.%0A%20%20%20%20li%20with%3A%20%5B%0A%20%20%20%20%20%20%20%20aWidget%20canBeClosed%20ifTrue%3A%20%5B%0A%09%20%20%20%20html%20span%20%0A%09%09class%3A%20%27close%27%3B%0A%09%09with%3A%20%27x%27%3B%0A%09%09onClick%3A%20%5Bself%20closeTab%3A%20aWidget%5D%5D.%0A%09html%20span%0A%09%20%20%20%20with%3A%20aWidget%20label%3B%0A%09%20%20%20%20onClick%3A%20%5Bself%20selectTab%3A%20aWidget%5D%5D'),
275
+ messageSends: ["li", "ifTrue:", unescape("%3D"), "class:", "with:", "canBeClosed", "onClick:", "closeTab:", "span", "label", "selectTab:"],
276
+ referencedClasses: []
277
+ }),
278
+ smalltalk.TabManager);
279
+
280
+ smalltalk.addMethod(
281
+ '_renderTabs',
282
+ smalltalk.method({
283
+ selector: 'renderTabs',
284
+ category: 'rendering',
285
+ fn: function (){
286
+ var self=this;
287
+ smalltalk.send(self['@ul'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["closeAll"]);smalltalk.send($rec, "_with_", ["x"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_close", []);})]);})(smalltalk.send(html, "_li", []));smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [(function(each){return smalltalk.send(self, "_renderTabFor_on_", [each, html]);})]);return (function($rec){smalltalk.send($rec, "_class_", ["newtab"]);smalltalk.send($rec, "_with_", [unescape("%20+%20")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_newBrowserTab", []);})]);})(smalltalk.send(html, "_li", []));})]);
288
+ return self;},
289
+ source: unescape('renderTabs%0A%09ul%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%20%20%20%20html%20li%20%0A%09%09class%3A%20%27closeAll%27%3B%0A%09%09with%3A%20%27x%27%3B%0A%09%09onClick%3A%20%5Bself%20close%5D.%0A%09%20%20%20%20self%20tabs%20do%3A%20%5B%3Aeach%20%7C%0A%09%09self%20renderTabFor%3A%20each%20on%3A%20html%5D.%0A%09%20%20%20%20html%20li%0A%09%09class%3A%20%27newtab%27%3B%0A%09%09with%3A%20%27%20+%20%27%3B%0A%09%09onClick%3A%20%5Bself%20newBrowserTab%5D%5D'),
290
+ messageSends: ["contents:", "class:", "with:", "onClick:", "close", "li", "do:", "tabs", "renderTabFor:on:", "newBrowserTab"],
291
+ referencedClasses: []
292
+ }),
293
+ smalltalk.TabManager);
294
+
295
+ smalltalk.addMethod(
296
+ '_update',
297
+ smalltalk.method({
298
+ selector: 'update',
299
+ category: 'updating',
300
+ fn: function (){
301
+ var self=this;
302
+ smalltalk.send(self, "_renderTabs", []);
303
+ return self;},
304
+ source: unescape('update%0A%09self%20renderTabs'),
305
+ messageSends: ["renderTabs"],
306
+ referencedClasses: []
307
+ }),
308
+ smalltalk.TabManager);
309
+
310
+
311
+ smalltalk.TabManager.klass.iVarNames = ['current'];
312
+ smalltalk.addMethod(
313
+ '_current',
314
+ smalltalk.method({
315
+ selector: 'current',
316
+ category: 'instance creation',
317
+ fn: function (){
318
+ var self=this;
319
+ return smalltalk.send(self['@current'], "_ifNil_", [(function(){return self['@current']=smalltalk.send(self, "_new", [], smalltalk.Widget.klass);})]);
320
+ return self;},
321
+ source: unescape('current%0A%20%20%20%20%5Ecurrent%20ifNil%3A%20%5Bcurrent%20%3A%3D%20super%20new%5D'),
322
+ messageSends: ["ifNil:", "new"],
323
+ referencedClasses: []
324
+ }),
325
+ smalltalk.TabManager.klass);
326
+
327
+ smalltalk.addMethod(
328
+ '_new',
329
+ smalltalk.method({
330
+ selector: 'new',
331
+ category: 'instance creation',
332
+ fn: function (){
333
+ var self=this;
334
+ smalltalk.send(self, "_shouldNotImplement", []);
335
+ return self;},
336
+ source: unescape('new%0A%20%20%20%20self%20shouldNotImplement'),
337
+ messageSends: ["shouldNotImplement"],
338
+ referencedClasses: []
339
+ }),
340
+ smalltalk.TabManager.klass);
341
+
342
+
343
+ smalltalk.addClass('TabWidget', smalltalk.Widget, ['div'], 'IDE');
344
+ smalltalk.addMethod(
345
+ '_label',
346
+ smalltalk.method({
347
+ selector: 'label',
348
+ category: 'accessing',
349
+ fn: function (){
350
+ var self=this;
351
+ smalltalk.send(self, "_subclassResponsibility", []);
352
+ return self;},
353
+ source: unescape('label%0A%20%20%20%20self%20subclassResponsibility'),
354
+ messageSends: ["subclassResponsibility"],
355
+ referencedClasses: []
356
+ }),
357
+ smalltalk.TabWidget);
358
+
359
+ smalltalk.addMethod(
360
+ '_open',
361
+ smalltalk.method({
362
+ selector: 'open',
363
+ category: 'actions',
364
+ fn: function (){
365
+ var self=this;
366
+ smalltalk.send(smalltalk.send(smalltalk.TabManager, "_current", []), "_addTab_", [self]);
367
+ smalltalk.send(smalltalk.send(smalltalk.TabManager, "_current", []), "_selectTab_", [self]);
368
+ return self;},
369
+ source: unescape('open%0A%20%20%20%20TabManager%20current%20addTab%3A%20self.%0A%20%20%20%20TabManager%20current%20selectTab%3A%20self'),
370
+ messageSends: ["addTab:", "current", "selectTab:"],
371
+ referencedClasses: [smalltalk.TabManager]
372
+ }),
373
+ smalltalk.TabWidget);
374
+
375
+ smalltalk.addMethod(
376
+ '_show',
377
+ smalltalk.method({
378
+ selector: 'show',
379
+ category: 'actions',
380
+ fn: function (){
381
+ var self=this;
382
+ smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_show", []);
383
+ return self;},
384
+ source: unescape('show%0A%09div%20asJQuery%20show'),
385
+ messageSends: ["show", "asJQuery"],
386
+ referencedClasses: []
387
+ }),
388
+ smalltalk.TabWidget);
389
+
390
+ smalltalk.addMethod(
391
+ '_hide',
392
+ smalltalk.method({
393
+ selector: 'hide',
394
+ category: 'actions',
395
+ fn: function (){
396
+ var self=this;
397
+ smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_hide", []);
398
+ return self;},
399
+ source: unescape('hide%0A%09div%20asJQuery%20hide'),
400
+ messageSends: ["hide", "asJQuery"],
401
+ referencedClasses: []
402
+ }),
403
+ smalltalk.TabWidget);
404
+
405
+ smalltalk.addMethod(
406
+ '_remove',
407
+ smalltalk.method({
408
+ selector: 'remove',
409
+ category: 'actions',
410
+ fn: function (){
411
+ var self=this;
412
+ smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_remove", []);
413
+ return self;},
414
+ source: unescape('remove%0A%09div%20asJQuery%20remove'),
415
+ messageSends: ["remove", "asJQuery"],
416
+ referencedClasses: []
417
+ }),
418
+ smalltalk.TabWidget);
419
+
420
+ smalltalk.addMethod(
421
+ '_renderOn_',
422
+ smalltalk.method({
423
+ selector: 'renderOn:',
424
+ category: 'rendering',
425
+ fn: function (html){
426
+ var self=this;
427
+ self['@div']=(function($rec){smalltalk.send($rec, "_class_", ["jtalkTool"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_div", []));
428
+ smalltalk.send(self, "_renderTab", []);
429
+ return self;},
430
+ source: unescape('renderOn%3A%20html%0A%09div%20%3A%3D%20html%20div%0A%09%09class%3A%20%27jtalkTool%27%3B%0A%09%09yourself.%0A%09self%20renderTab'),
431
+ messageSends: ["class:", "yourself", "div", "renderTab"],
432
+ referencedClasses: []
433
+ }),
434
+ smalltalk.TabWidget);
435
+
436
+ smalltalk.addMethod(
437
+ '_renderBoxOn_',
438
+ smalltalk.method({
439
+ selector: 'renderBoxOn:',
440
+ category: 'rendering',
441
+ fn: function (html){
442
+ var self=this;
443
+
444
+ return self;},
445
+ source: unescape('renderBoxOn%3A%20html'),
446
+ messageSends: [],
447
+ referencedClasses: []
448
+ }),
449
+ smalltalk.TabWidget);
450
+
451
+ smalltalk.addMethod(
452
+ '_renderButtonsOn_',
453
+ smalltalk.method({
454
+ selector: 'renderButtonsOn:',
455
+ category: 'rendering',
456
+ fn: function (html){
457
+ var self=this;
458
+
459
+ return self;},
460
+ source: unescape('renderButtonsOn%3A%20html'),
461
+ messageSends: [],
462
+ referencedClasses: []
463
+ }),
464
+ smalltalk.TabWidget);
465
+
466
+ smalltalk.addMethod(
467
+ '_update',
468
+ smalltalk.method({
469
+ selector: 'update',
470
+ category: 'rendering',
471
+ fn: function (){
472
+ var self=this;
473
+ smalltalk.send(self, "_renderTab", []);
474
+ return self;},
475
+ source: unescape('update%0A%09self%20renderTab'),
476
+ messageSends: ["renderTab"],
477
+ referencedClasses: []
478
+ }),
479
+ smalltalk.TabWidget);
480
+
481
+ smalltalk.addMethod(
482
+ '_renderTab',
483
+ smalltalk.method({
484
+ selector: 'renderTab',
485
+ category: 'rendering',
486
+ fn: function (){
487
+ var self=this;
488
+ smalltalk.send(self['@div'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["jt_box"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderBoxOn_", [html]);})]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_class_", ["jt_buttons"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderButtonsOn_", [html]);})]);})(smalltalk.send(html, "_div", []));})]);
489
+ return self;},
490
+ source: unescape('renderTab%0A%09div%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%20%20%20%20html%20div%0A%09%09class%3A%20%27jt_box%27%3B%0A%09%09with%3A%20%5Bself%20renderBoxOn%3A%20html%5D.%0A%09%20%20%20%20html%20div%0A%09%09class%3A%20%27jt_buttons%27%3B%0A%09%09with%3A%20%5Bself%20renderButtonsOn%3A%20html%5D%5D'),
491
+ messageSends: ["contents:", "class:", "with:", "renderBoxOn:", "div", "renderButtonsOn:"],
492
+ referencedClasses: []
493
+ }),
494
+ smalltalk.TabWidget);
495
+
496
+ smalltalk.addMethod(
497
+ '_canBeClosed',
498
+ smalltalk.method({
499
+ selector: 'canBeClosed',
500
+ category: 'testing',
501
+ fn: function (){
502
+ var self=this;
503
+ return false;
504
+ return self;},
505
+ source: unescape('canBeClosed%0A%20%20%20%20%5Efalse'),
506
+ messageSends: [],
507
+ referencedClasses: []
508
+ }),
509
+ smalltalk.TabWidget);
510
+
511
+
512
+ smalltalk.addMethod(
513
+ '_open',
514
+ smalltalk.method({
515
+ selector: 'open',
516
+ category: 'instance creation',
517
+ fn: function (){
518
+ var self=this;
519
+ return smalltalk.send(smalltalk.send(self, "_new", []), "_open", []);
520
+ return self;},
521
+ source: unescape('open%0A%20%20%20%20%5Eself%20new%20open'),
522
+ messageSends: ["open", "new"],
523
+ referencedClasses: []
524
+ }),
525
+ smalltalk.TabWidget.klass);
526
+
527
+
528
+ smalltalk.addClass('Workspace', smalltalk.TabWidget, ['sourceArea'], 'IDE');
529
+ smalltalk.addMethod(
530
+ '_label',
531
+ smalltalk.method({
532
+ selector: 'label',
533
+ category: 'accessing',
534
+ fn: function (){
535
+ var self=this;
536
+ return unescape("%5BWorkspace%5D");
537
+ return self;},
538
+ source: unescape('label%0A%20%20%20%20%5E%27%5BWorkspace%5D%27'),
539
+ messageSends: [],
540
+ referencedClasses: []
541
+ }),
542
+ smalltalk.Workspace);
543
+
544
+ smalltalk.addMethod(
545
+ '_clearWorkspace',
546
+ smalltalk.method({
547
+ selector: 'clearWorkspace',
548
+ category: 'actions',
549
+ fn: function (){
550
+ var self=this;
551
+ smalltalk.send(self['@sourceArea'], "_clear", []);
552
+ return self;},
553
+ source: unescape('clearWorkspace%0A%20%20%20%20sourceArea%20clear'),
554
+ messageSends: ["clear"],
555
+ referencedClasses: []
556
+ }),
557
+ smalltalk.Workspace);
558
+
559
+ smalltalk.addMethod(
560
+ '_doIt',
561
+ smalltalk.method({
562
+ selector: 'doIt',
563
+ category: 'actions',
564
+ fn: function (){
565
+ var self=this;
566
+ smalltalk.send(self['@sourceArea'], "_doIt", []);
567
+ return self;},
568
+ source: unescape('doIt%0A%20%20%20sourceArea%20doIt'),
569
+ messageSends: ["doIt"],
570
+ referencedClasses: []
571
+ }),
572
+ smalltalk.Workspace);
573
+
574
+ smalltalk.addMethod(
575
+ '_printIt',
576
+ smalltalk.method({
577
+ selector: 'printIt',
578
+ category: 'actions',
579
+ fn: function (){
580
+ var self=this;
581
+ smalltalk.send(self['@sourceArea'], "_printIt", []);
582
+ return self;},
583
+ source: unescape('printIt%0A%09sourceArea%20printIt'),
584
+ messageSends: ["printIt"],
585
+ referencedClasses: []
586
+ }),
587
+ smalltalk.Workspace);
588
+
589
+ smalltalk.addMethod(
590
+ '_inspectIt',
591
+ smalltalk.method({
592
+ selector: 'inspectIt',
593
+ category: 'actions',
594
+ fn: function (){
595
+ var self=this;
596
+ smalltalk.send(self['@sourceArea'], "_inspectIt", []);
597
+ return self;},
598
+ source: unescape('inspectIt%0A%20%20%20%20sourceArea%20inspectIt'),
599
+ messageSends: ["inspectIt"],
600
+ referencedClasses: []
601
+ }),
602
+ smalltalk.Workspace);
603
+
604
+ smalltalk.addMethod(
605
+ '_renderBoxOn_',
606
+ smalltalk.method({
607
+ selector: 'renderBoxOn:',
608
+ category: 'rendering',
609
+ fn: function (html){
610
+ var self=this;
611
+ self['@sourceArea']=smalltalk.send(smalltalk.SourceArea, "_new", []);
612
+ smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);
613
+ return self;},
614
+ source: unescape('renderBoxOn%3A%20html%0A%20%20%20%20sourceArea%20%3A%3D%20SourceArea%20new.%0A%20%20%20%20sourceArea%20renderOn%3A%20html'),
615
+ messageSends: ["new", "renderOn:"],
616
+ referencedClasses: []
617
+ }),
618
+ smalltalk.Workspace);
619
+
620
+ smalltalk.addMethod(
621
+ '_renderButtonsOn_',
622
+ smalltalk.method({
623
+ selector: 'renderButtonsOn:',
624
+ category: 'rendering',
625
+ fn: function (html){
626
+ var self=this;
627
+ (function($rec){smalltalk.send($rec, "_with_", ["DoIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+d")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_doIt", []);})]);})(smalltalk.send(html, "_button", []));
628
+ (function($rec){smalltalk.send($rec, "_with_", ["PrintIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+p")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_printIt", []);})]);})(smalltalk.send(html, "_button", []));
629
+ (function($rec){smalltalk.send($rec, "_with_", ["InspectIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+i")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_inspectIt", []);})]);})(smalltalk.send(html, "_button", []));
630
+ (function($rec){smalltalk.send($rec, "_with_", ["Clear workspace"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_clearWorkspace", []);})]);})(smalltalk.send(html, "_button", []));
631
+ return self;},
632
+ source: unescape('renderButtonsOn%3A%20html%0A%20%20%20%20html%20button%0A%09with%3A%20%27DoIt%27%3B%0A%09title%3A%20%27ctrl+d%27%3B%0A%09onClick%3A%20%5Bself%20doIt%5D.%0A%20%20%20%20html%20button%0A%09with%3A%20%27PrintIt%27%3B%0A%09title%3A%20%27ctrl+p%27%3B%0A%09onClick%3A%20%5Bself%20printIt%5D.%0A%20%20%20%20html%20button%0A%09with%3A%20%27InspectIt%27%3B%0A%09title%3A%20%27ctrl+i%27%3B%0A%09onClick%3A%20%5Bself%20inspectIt%5D.%0A%20%20%20%20html%20button%0A%09with%3A%20%27Clear%20workspace%27%3B%0A%09onClick%3A%20%5Bself%20clearWorkspace%5D'),
633
+ messageSends: ["with:", "title:", "onClick:", "doIt", "button", "printIt", "inspectIt", "clearWorkspace"],
634
+ referencedClasses: []
635
+ }),
636
+ smalltalk.Workspace);
637
+
638
+
639
+
640
+ smalltalk.addClass('Transcript', smalltalk.TabWidget, ['textarea'], 'IDE');
641
+ smalltalk.addMethod(
642
+ '_label',
643
+ smalltalk.method({
644
+ selector: 'label',
645
+ category: 'accessing',
646
+ fn: function (){
647
+ var self=this;
648
+ return unescape("%5BTranscript%5D");
649
+ return self;},
650
+ source: unescape('label%0A%20%20%20%20%5E%27%5BTranscript%5D%27'),
651
+ messageSends: [],
652
+ referencedClasses: []
653
+ }),
654
+ smalltalk.Transcript);
655
+
656
+ smalltalk.addMethod(
657
+ '_show_',
658
+ smalltalk.method({
659
+ selector: 'show:',
660
+ category: 'actions',
661
+ fn: function (anObject){
662
+ var self=this;
663
+ smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(anObject, "_asString", [])])]);
664
+ return self;},
665
+ source: unescape('show%3A%20anObject%0A%20%20%20%20textarea%20asJQuery%20val%3A%20textarea%20asJQuery%20val%2C%20anObject%20asString.'),
666
+ messageSends: ["val:", "asJQuery", unescape("%2C"), "val", "asString"],
667
+ referencedClasses: []
668
+ }),
669
+ smalltalk.Transcript);
670
+
671
+ smalltalk.addMethod(
672
+ '_cr',
673
+ smalltalk.method({
674
+ selector: 'cr',
675
+ category: 'actions',
676
+ fn: function (){
677
+ var self=this;
678
+ smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(smalltalk.String, "_cr", [])])]);
679
+ return self;},
680
+ source: unescape('cr%0A%20%20%20%20textarea%20asJQuery%20val%3A%20textarea%20asJQuery%20val%2C%20String%20cr.'),
681
+ messageSends: ["val:", "asJQuery", unescape("%2C"), "val", "cr"],
682
+ referencedClasses: [smalltalk.String]
683
+ }),
684
+ smalltalk.Transcript);
685
+
686
+ smalltalk.addMethod(
687
+ '_clear',
688
+ smalltalk.method({
689
+ selector: 'clear',
690
+ category: 'actions',
691
+ fn: function (){
692
+ var self=this;
693
+ smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [""]);
694
+ return self;},
695
+ source: unescape('clear%0A%20%20%20%20textarea%20asJQuery%20val%3A%20%27%27'),
696
+ messageSends: ["val:", "asJQuery"],
697
+ referencedClasses: []
698
+ }),
699
+ smalltalk.Transcript);
700
+
701
+ smalltalk.addMethod(
702
+ '_renderBoxOn_',
703
+ smalltalk.method({
704
+ selector: 'renderBoxOn:',
705
+ category: 'rendering',
706
+ fn: function (html){
707
+ var self=this;
708
+ self['@textarea']=smalltalk.send(html, "_textarea", []);
709
+ smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_call_", ["tabby"]);
710
+ (function($rec){smalltalk.send($rec, "_class_", ["jt_transcript"]);return smalltalk.send($rec, "_at_put_", ["spellcheck", "false"]);})(self['@textarea']);
711
+ return self;},
712
+ source: unescape('renderBoxOn%3A%20html%0A%20%20%20%20textarea%20%3A%3D%20html%20textarea.%0A%20%20%20%20textarea%20asJQuery%20call%3A%20%27tabby%27.%0A%20%20%20%20textarea%20%0A%09class%3A%20%27jt_transcript%27%3B%0A%09at%3A%20%27spellcheck%27%20put%3A%20%27false%27'),
713
+ messageSends: ["textarea", "call:", "asJQuery", "class:", "at:put:"],
714
+ referencedClasses: []
715
+ }),
716
+ smalltalk.Transcript);
717
+
718
+ smalltalk.addMethod(
719
+ '_renderButtonsOn_',
720
+ smalltalk.method({
721
+ selector: 'renderButtonsOn:',
722
+ category: 'rendering',
723
+ fn: function (html){
724
+ var self=this;
725
+ (function($rec){smalltalk.send($rec, "_with_", ["Clear transcript"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_clear", []);})]);})(smalltalk.send(html, "_button", []));
726
+ return self;},
727
+ source: unescape('renderButtonsOn%3A%20html%0A%20%20%20%20html%20button%0A%09with%3A%20%27Clear%20transcript%27%3B%0A%09onClick%3A%20%5Bself%20clear%5D'),
728
+ messageSends: ["with:", "onClick:", "clear", "button"],
729
+ referencedClasses: []
730
+ }),
731
+ smalltalk.Transcript);
732
+
733
+
734
+ smalltalk.Transcript.klass.iVarNames = ['current'];
735
+ smalltalk.addMethod(
736
+ '_open',
737
+ smalltalk.method({
738
+ selector: 'open',
739
+ category: 'instance creation',
740
+ fn: function (){
741
+ var self=this;
742
+ smalltalk.send(smalltalk.send(self, "_current", []), "_open", []);
743
+ return self;},
744
+ source: unescape('open%0A%20%20%20%20self%20current%20open'),
745
+ messageSends: ["open", "current"],
746
+ referencedClasses: []
747
+ }),
748
+ smalltalk.Transcript.klass);
749
+
750
+ smalltalk.addMethod(
751
+ '_new',
752
+ smalltalk.method({
753
+ selector: 'new',
754
+ category: 'instance creation',
755
+ fn: function (){
756
+ var self=this;
757
+ smalltalk.send(self, "_shouldNotImplement", []);
758
+ return self;},
759
+ source: unescape('new%0A%20%20%20%20self%20shouldNotImplement'),
760
+ messageSends: ["shouldNotImplement"],
761
+ referencedClasses: []
762
+ }),
763
+ smalltalk.Transcript.klass);
764
+
765
+ smalltalk.addMethod(
766
+ '_current',
767
+ smalltalk.method({
768
+ selector: 'current',
769
+ category: 'instance creation',
770
+ fn: function (){
771
+ var self=this;
772
+ return smalltalk.send(self['@current'], "_ifNil_", [(function(){return self['@current']=smalltalk.send(self, "_new", [], smalltalk.TabWidget.klass);})]);
773
+ return self;},
774
+ source: unescape('current%0A%20%20%20%20%5Ecurrent%20ifNil%3A%20%5Bcurrent%20%3A%3D%20super%20new%5D'),
775
+ messageSends: ["ifNil:", "new"],
776
+ referencedClasses: []
777
+ }),
778
+ smalltalk.Transcript.klass);
779
+
780
+ smalltalk.addMethod(
781
+ '_show_',
782
+ smalltalk.method({
783
+ selector: 'show:',
784
+ category: 'printing',
785
+ fn: function (anObject){
786
+ var self=this;
787
+ smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [anObject]);
788
+ return self;},
789
+ source: unescape('show%3A%20anObject%0A%20%20%20%20self%20current%20show%3A%20anObject'),
790
+ messageSends: ["show:", "current"],
791
+ referencedClasses: []
792
+ }),
793
+ smalltalk.Transcript.klass);
794
+
795
+ smalltalk.addMethod(
796
+ '_cr',
797
+ smalltalk.method({
798
+ selector: 'cr',
799
+ category: 'printing',
800
+ fn: function (){
801
+ var self=this;
802
+ smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [smalltalk.send(smalltalk.String, "_cr", [])]);
803
+ return self;},
804
+ source: unescape('cr%0A%20%20%20%20self%20current%20show%3A%20String%20cr'),
805
+ messageSends: ["show:", "current", "cr"],
806
+ referencedClasses: [smalltalk.String]
807
+ }),
808
+ smalltalk.Transcript.klass);
809
+
810
+ smalltalk.addMethod(
811
+ '_clear',
812
+ smalltalk.method({
813
+ selector: 'clear',
814
+ category: 'printing',
815
+ fn: function (){
816
+ var self=this;
817
+ smalltalk.send(smalltalk.send(self, "_current", []), "_clear", []);
818
+ return self;},
819
+ source: unescape('clear%0A%20%20%20%20self%20current%20clear'),
820
+ messageSends: ["clear", "current"],
821
+ referencedClasses: []
822
+ }),
823
+ smalltalk.Transcript.klass);
824
+
825
+
826
+ smalltalk.addClass('Browser', smalltalk.TabWidget, ['selectedCategory', 'selectedClass', 'selectedProtocol', 'selectedMethod', 'commitButton', 'categoriesList', 'classesList', 'protocolsList', 'methodsList', 'sourceArea', 'tabsList', 'selectedTab', 'saveButton', 'classButtons', 'methodButtons', 'unsavedChanges', 'input'], 'IDE');
827
+ smalltalk.addMethod(
828
+ '_label',
829
+ smalltalk.method({
830
+ selector: 'label',
831
+ category: 'accessing',
832
+ fn: function (){
833
+ var self=this;
834
+ return smalltalk.send(self['@selectedClass'], "_ifNil_ifNotNil_", [(function(){return unescape("Browser%20%28nil%29");}), (function(){return smalltalk.send(self['@selectedClass'], "_name", []);})]);
835
+ return self;},
836
+ source: unescape('label%0A%20%20%20%20%5EselectedClass%20%0A%09ifNil%3A%20%5B%27Browser%20%28nil%29%27%5D%0A%09ifNotNil%3A%20%5BselectedClass%20name%5D'),
837
+ messageSends: ["ifNil:ifNotNil:", "name"],
838
+ referencedClasses: []
839
+ }),
840
+ smalltalk.Browser);
841
+
842
+ smalltalk.addMethod(
843
+ '_categories',
844
+ smalltalk.method({
845
+ selector: 'categories',
846
+ category: 'accessing',
847
+ fn: function (){
848
+ var self=this;
849
+ var categories=nil;
850
+ categories=smalltalk.send(smalltalk.Array, "_new", []);
851
+ smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(categories, "_includes_", [smalltalk.send(each, "_category", [])]), "_ifFalse_", [(function(){return smalltalk.send(categories, "_add_", [smalltalk.send(each, "_category", [])]);})]);})]);
852
+ return smalltalk.send(categories, "_sort", []);
853
+ return self;},
854
+ source: unescape('categories%0A%20%20%20%20%7C%20categories%20%7C%0A%20%20%20%20categories%20%3A%3D%20Array%20new.%0A%20%20%20%20Smalltalk%20current%20classes%20do%3A%20%5B%3Aeach%20%7C%0A%09%28categories%20includes%3A%20each%20category%29%20ifFalse%3A%20%5B%0A%09%20%20%20%20categories%20add%3A%20each%20category%5D%5D.%0A%20%20%20%20%5Ecategories%20sort'),
855
+ messageSends: ["new", "do:", "classes", "current", "ifFalse:", "includes:", "category", "add:", "sort"],
856
+ referencedClasses: [smalltalk.Array,smalltalk.Smalltalk]
857
+ }),
858
+ smalltalk.Browser);
859
+
860
+ smalltalk.addMethod(
861
+ '_classes',
862
+ smalltalk.method({
863
+ selector: 'classes',
864
+ category: 'accessing',
865
+ fn: function (){
866
+ var self=this;
867
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "_select_", [(function(each){return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [self['@selectedCategory']]);})]), "_sort_", [(function(a, b){return smalltalk.send(smalltalk.send(a, "_name", []), "__gt", [smalltalk.send(b, "_name", [])]);})]);
868
+ return self;},
869
+ source: unescape('classes%0A%20%20%20%20%5E%28Smalltalk%20current%20classes%20%0A%09select%3A%20%5B%3Aeach%20%7C%20each%20category%20%3D%20selectedCategory%5D%29%0A%09sort%3A%20%5B%3Aa%20%3Ab%20%7C%20a%20name%20%3E%20b%20name%5D'),
870
+ messageSends: ["sort:", "select:", "classes", "current", unescape("%3D"), "category", unescape("%3E"), "name"],
871
+ referencedClasses: [smalltalk.Smalltalk]
872
+ }),
873
+ smalltalk.Browser);
874
+
875
+ smalltalk.addMethod(
876
+ '_protocols',
877
+ smalltalk.method({
878
+ selector: 'protocols',
879
+ category: 'accessing',
880
+ fn: function (){
881
+ var self=this;
882
+ try{var klass=nil;
883
+ smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return []}})})();})]);klass=smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return self['@selectedClass'];}), (function(){return smalltalk.send(self['@selectedClass'], "_class", []);})]);smalltalk.send(smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_isEmpty", []), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return smalltalk.send(smalltalk.Array, "_with_", ["not yet classified"])}})})();})]);return (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return smalltalk.send(klass, "_protocols", [])}})})();})]);
884
+ (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return smalltalk.send(smalltalk.Array, "_new", [])}})})();
885
+ return self;
886
+ } catch(e) {if(e.name === 'stReturn' && e.selector === '_protocols'){return e.fn()} throw(e)}},
887
+ source: unescape('protocols%0A%20%20%20%20%7C%20klass%20%7C%0A%20%20%20%20selectedClass%20ifNotNil%3A%20%5B%0A%09selectedTab%20%3D%20%23comment%20ifTrue%3A%20%5B%5E%23%28%29%5D.%0A%09klass%20%3A%3D%20selectedTab%20%3D%20%23instance%0A%09%20%20%20%20ifTrue%3A%20%5BselectedClass%5D%0A%09%20%20%20%20ifFalse%3A%20%5BselectedClass%20class%5D.%0A%09klass%20methodDictionary%20isEmpty%20ifTrue%3A%20%5B%0A%09%20%20%20%20%5EArray%20with%3A%20%27not%20yet%20classified%27%5D.%0A%09%5Eklass%20protocols%5D.%0A%20%20%20%20%5EArray%20new'),
888
+ messageSends: ["ifNotNil:", "ifTrue:", unescape("%3D"), "ifTrue:ifFalse:", "class", "isEmpty", "methodDictionary", "with:", "protocols", "new"],
889
+ referencedClasses: [smalltalk.Array]
890
+ }),
891
+ smalltalk.Browser);
892
+
893
+ smalltalk.addMethod(
894
+ '_methods',
895
+ smalltalk.method({
896
+ selector: 'methods',
897
+ category: 'accessing',
898
+ fn: function (){
899
+ var self=this;
900
+ try{var klass=nil;
901
+ smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_methods', fn: function(){return []}})})();})]);
902
+ smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){return klass=smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return self['@selectedClass'];}), (function(){return smalltalk.send(self['@selectedClass'], "_class", []);})]);})]);
903
+ (function(){throw({name: 'stReturn', selector: '_methods', fn: function(){return smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_ifNil_ifNotNil_", [(function(){return smalltalk.send(klass, "_ifNil_ifNotNil_", [(function(){return [];}), (function(){return smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_values", []);})]);}), (function(){return smalltalk.send(smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_values", []), "_select_", [(function(each){return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [self['@selectedProtocol']]);})]);})]), "_sort_", [(function(a, b){return smalltalk.send(smalltalk.send(a, "_selector", []), "__gt", [smalltalk.send(b, "_selector", [])]);})])}})})();
904
+ return self;
905
+ } catch(e) {if(e.name === 'stReturn' && e.selector === '_methods'){return e.fn()} throw(e)}},
906
+ source: unescape('methods%0A%20%20%20%20%7C%20klass%20%7C%0A%20%20%20%20selectedTab%20%3D%20%23comment%20ifTrue%3A%20%5B%5E%23%28%29%5D.%0A%20%20%20%20selectedClass%20ifNotNil%3A%20%5B%0A%09klass%20%3A%3D%20selectedTab%20%3D%20%23instance%0A%09%20%20%20%20ifTrue%3A%20%5BselectedClass%5D%0A%09%20%20%20%20ifFalse%3A%20%5BselectedClass%20class%5D%5D.%0A%20%20%20%20%5E%28selectedProtocol%20%0A%09ifNil%3A%20%5B%0A%09%20%20%20%20klass%20%0A%09%09ifNil%3A%20%5B%23%28%29%5D%20%0A%09%09ifNotNil%3A%20%5Bklass%20methodDictionary%20values%5D%5D%0A%09ifNotNil%3A%20%5B%0A%09%20%20%20%20klass%20methodDictionary%20values%20select%3A%20%5B%3Aeach%20%7C%0A%09%09each%20category%20%3D%20selectedProtocol%5D%5D%29%20sort%3A%20%5B%3Aa%20%3Ab%20%7C%20a%20selector%20%3E%20b%20selector%5D'),
907
+ messageSends: ["ifTrue:", unescape("%3D"), "ifNotNil:", "ifTrue:ifFalse:", "class", "sort:", "ifNil:ifNotNil:", "values", "methodDictionary", "select:", "category", unescape("%3E"), "selector"],
908
+ referencedClasses: []
909
+ }),
910
+ smalltalk.Browser);
911
+
912
+ smalltalk.addMethod(
913
+ '_source',
914
+ smalltalk.method({
915
+ selector: 'source',
916
+ category: 'accessing',
917
+ fn: function (){
918
+ var self=this;
919
+ try{smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifFalse_", [(function(){return (function(){throw({name: 'stReturn', selector: '_source', fn: function(){return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedMethod'], "_notNil", []);})]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_declarationSource", []);}), (function(){return smalltalk.send(self, "_methodSource", []);})])}})})();})]);
920
+ (function(){throw({name: 'stReturn', selector: '_source', fn: function(){return smalltalk.send(self['@selectedClass'], "_ifNil_ifNotNil_", [(function(){return "";}), (function(){return smalltalk.send(self, "_classCommentSource", []);})])}})})();
921
+ return self;
922
+ } catch(e) {if(e.name === 'stReturn' && e.selector === '_source'){return e.fn()} throw(e)}},
923
+ source: unescape('source%0A%20%20%20%20selectedTab%20%3D%20%23comment%20ifFalse%3A%20%5B%0A%09%5E%28selectedProtocol%20notNil%20or%3A%20%5BselectedMethod%20notNil%5D%29%0A%09%20%20%20%20ifFalse%3A%20%5Bself%20declarationSource%5D%0A%09%20%20%20%20ifTrue%3A%20%5Bself%20methodSource%5D%5D.%0A%20%20%20%20%5EselectedClass%0A%09ifNil%3A%20%5B%27%27%5D%0A%09ifNotNil%3A%20%5Bself%20classCommentSource%5D'),
924
+ messageSends: ["ifFalse:", unescape("%3D"), "ifFalse:ifTrue:", "or:", "notNil", "declarationSource", "methodSource", "ifNil:ifNotNil:", "classCommentSource"],
925
+ referencedClasses: []
926
+ }),
927
+ smalltalk.Browser);
928
+
929
+ smalltalk.addMethod(
930
+ '_methodSource',
931
+ smalltalk.method({
932
+ selector: 'methodSource',
933
+ category: 'accessing',
934
+ fn: function (){
935
+ var self=this;
936
+ return smalltalk.send(self['@selectedMethod'], "_ifNil_ifNotNil_", [(function(){return smalltalk.send(self, "_dummyMethodSource", []);}), (function(){return smalltalk.send(self['@selectedMethod'], "_source", []);})]);
937
+ return self;},
938
+ source: unescape('methodSource%0A%20%20%20%20%5EselectedMethod%0A%09ifNil%3A%20%5Bself%20dummyMethodSource%5D%0A%09ifNotNil%3A%20%5BselectedMethod%20source%5D'),
939
+ messageSends: ["ifNil:ifNotNil:", "dummyMethodSource", "source"],
940
+ referencedClasses: []
941
+ }),
942
+ smalltalk.Browser);
943
+
944
+ smalltalk.addMethod(
945
+ '_dummyMethodSource',
946
+ smalltalk.method({
947
+ selector: 'dummyMethodSource',
948
+ category: 'accessing',
949
+ fn: function (){
950
+ var self=this;
951
+ return unescape("messageSelectorAndArgumentNames%0A%09%22comment%20stating%20purpose%20of%20message%22%0A%0A%09%7C%20temporary%20variable%20names%20%7C%0A%09statements");
952
+ return self;},
953
+ source: unescape('dummyMethodSource%0A%20%20%20%20%5E%27messageSelectorAndArgumentNames%0A%09%22comment%20stating%20purpose%20of%20message%22%0A%0A%09%7C%20temporary%20variable%20names%20%7C%0A%09statements%27'),
954
+ messageSends: [],
955
+ referencedClasses: []
956
+ }),
957
+ smalltalk.Browser);
958
+
959
+ smalltalk.addMethod(
960
+ '_declarationSource',
961
+ smalltalk.method({
962
+ selector: 'declarationSource',
963
+ category: 'accessing',
964
+ fn: function (){
965
+ var self=this;
966
+ return smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_classDeclarationSource", []);}), (function(){return smalltalk.send(self, "_metaclassDeclarationSource", []);})]);
967
+ return self;},
968
+ source: unescape('declarationSource%0A%20%20%20%20%5EselectedTab%20%3D%20%23instance%0A%09ifTrue%3A%20%5Bself%20classDeclarationSource%5D%0A%09ifFalse%3A%20%5Bself%20metaclassDeclarationSource%5D'),
969
+ messageSends: ["ifTrue:ifFalse:", unescape("%3D"), "classDeclarationSource", "metaclassDeclarationSource"],
970
+ referencedClasses: []
971
+ }),
972
+ smalltalk.Browser);
973
+
974
+ smalltalk.addMethod(
975
+ '_classDeclarationSource',
976
+ smalltalk.method({
977
+ selector: 'classDeclarationSource',
978
+ category: 'accessing',
979
+ fn: function (){
980
+ var self=this;
981
+ var stream=nil;
982
+ stream=smalltalk.send("", "_writeStream", []);
983
+ smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self['@selectedClass'], "_superclass", []), "_asString", [])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%20subclass%3A%20%23")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_name", [])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.String, "_lf", []), "__comma", [smalltalk.send(smalltalk.String, "_tab", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("instanceVariableNames%3A%20%27")]);})(stream);smalltalk.send(smalltalk.send(self['@selectedClass'], "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(stream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(smalltalk.String, "_lf", [])]), "__comma", [smalltalk.send(smalltalk.String, "_tab", [])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("category%3A%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_category", [])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);})(stream);})]);
984
+ return smalltalk.send(stream, "_contents", []);
985
+ return self;},
986
+ source: unescape('classDeclarationSource%0A%20%20%20%20%7C%20stream%20%7C%0A%20%20%20%20stream%20%3A%3D%20%27%27%20writeStream.%0A%20%20%20%20selectedClass%20ifNotNil%3A%20%5B%0A%09stream%20%0A%09%20%20%20%20nextPutAll%3A%20selectedClass%20superclass%20asString%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%20subclass%3A%20%23%27%3B%0A%09%20%20%20%20nextPutAll%3A%20selectedClass%20name%3B%0A%09%20%20%20%20nextPutAll%3A%20String%20lf%2C%20String%20tab%3B%0A%09%20%20%20%20nextPutAll%3A%20%27instanceVariableNames%3A%20%27%27%27.%0A%09selectedClass%20instanceVariableNames%20%0A%09%20%20%20%20do%3A%20%5B%3Aeach%20%7C%20stream%20nextPutAll%3A%20each%5D%20%0A%09%20%20%20%20separatedBy%3A%20%5Bstream%20nextPutAll%3A%20%27%20%27%5D.%0A%09stream%0A%09%20%20%20%20nextPutAll%3A%20%27%27%27%27%2C%20String%20lf%2C%20String%20tab%3B%0A%09%20%20%20%20nextPutAll%3A%20%27category%3A%20%27%27%27%3B%0A%09%20%20%20%20nextPutAll%3A%20selectedClass%20category%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%27%27%27%5D.%0A%20%20%20%20%5Estream%20contents'),
987
+ messageSends: ["writeStream", "ifNotNil:", "nextPutAll:", "asString", "superclass", "name", unescape("%2C"), "lf", "tab", "do:separatedBy:", "instanceVariableNames", "category", "contents"],
988
+ referencedClasses: [smalltalk.String]
989
+ }),
990
+ smalltalk.Browser);
991
+
992
+ smalltalk.addMethod(
993
+ '_metaclassDeclarationSource',
994
+ smalltalk.method({
995
+ selector: 'metaclassDeclarationSource',
996
+ category: 'accessing',
997
+ fn: function (){
998
+ var self=this;
999
+ var stream=nil;
1000
+ stream=smalltalk.send("", "_writeStream", []);
1001
+ smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_asString", [])]);smalltalk.send($rec, "_nextPutAll_", [" class "]);return smalltalk.send($rec, "_nextPutAll_", [unescape("instanceVariableNames%3A%20%27")]);})(stream);smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(stream, "_nextPutAll_", [" "]);})]);return smalltalk.send(stream, "_nextPutAll_", [unescape("%27")]);})]);
1002
+ return smalltalk.send(stream, "_contents", []);
1003
+ return self;},
1004
+ source: unescape('metaclassDeclarationSource%0A%20%20%20%20%7C%20stream%20%7C%0A%20%20%20%20stream%20%3A%3D%20%27%27%20writeStream.%0A%20%20%20%20selectedClass%20ifNotNil%3A%20%5B%0A%09stream%20%0A%09%20%20%20%20nextPutAll%3A%20selectedClass%20asString%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%20class%20%27%3B%0A%09%20%20%20%20nextPutAll%3A%20%27instanceVariableNames%3A%20%27%27%27.%0A%09selectedClass%20class%20instanceVariableNames%0A%09%20%20%20%20do%3A%20%5B%3Aeach%20%7C%20stream%20nextPutAll%3A%20each%5D%0A%09%20%20%20%20separatedBy%3A%20%5Bstream%20nextPutAll%3A%20%27%20%27%5D.%0A%09stream%20nextPutAll%3A%20%27%27%27%27%5D.%0A%20%20%20%20%5Estream%20contents'),
1005
+ messageSends: ["writeStream", "ifNotNil:", "nextPutAll:", "asString", "do:separatedBy:", "instanceVariableNames", "class", "contents"],
1006
+ referencedClasses: []
1007
+ }),
1008
+ smalltalk.Browser);
1009
+
1010
+ smalltalk.addMethod(
1011
+ '_classCommentSource',
1012
+ smalltalk.method({
1013
+ selector: 'classCommentSource',
1014
+ category: 'accessing',
1015
+ fn: function (){
1016
+ var self=this;
1017
+ return smalltalk.send(self['@selectedClass'], "_comment", []);
1018
+ return self;},
1019
+ source: unescape('classCommentSource%0A%20%20%20%20%5EselectedClass%20comment'),
1020
+ messageSends: ["comment"],
1021
+ referencedClasses: []
1022
+ }),
1023
+ smalltalk.Browser);
1024
+
1025
+ smalltalk.addMethod(
1026
+ '_selectedClass',
1027
+ smalltalk.method({
1028
+ selector: 'selectedClass',
1029
+ category: 'accessing',
1030
+ fn: function (){
1031
+ var self=this;
1032
+ return self['@selectedClass'];
1033
+ return self;},
1034
+ source: unescape('selectedClass%0A%09%5EselectedClass'),
1035
+ messageSends: [],
1036
+ referencedClasses: []
1037
+ }),
1038
+ smalltalk.Browser);
1039
+
1040
+ smalltalk.addMethod(
1041
+ '_disableSaveButton',
1042
+ smalltalk.method({
1043
+ selector: 'disableSaveButton',
1044
+ category: 'actions',
1045
+ fn: function (){
1046
+ var self=this;
1047
+ smalltalk.send(self['@saveButton'], "_ifNotNil_", [(function(){return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);})]);
1048
+ self['@unsavedChanges']=false;
1049
+ return self;},
1050
+ source: unescape('disableSaveButton%0A%20%20%20%20saveButton%20ifNotNil%3A%20%5B%0A%09saveButton%20at%3A%20%27disabled%27%20put%3A%20true%5D.%0A%20%20%20%20unsavedChanges%20%3A%3D%20false'),
1051
+ messageSends: ["ifNotNil:", "at:put:"],
1052
+ referencedClasses: []
1053
+ }),
1054
+ smalltalk.Browser);
1055
+
1056
+ smalltalk.addMethod(
1057
+ '_hideClassButtons',
1058
+ smalltalk.method({
1059
+ selector: 'hideClassButtons',
1060
+ category: 'actions',
1061
+ fn: function (){
1062
+ var self=this;
1063
+ smalltalk.send(smalltalk.send(self['@classButtons'], "_asJQuery", []), "_hide", []);
1064
+ return self;},
1065
+ source: unescape('hideClassButtons%0A%20%20%20%20classButtons%20asJQuery%20hide'),
1066
+ messageSends: ["hide", "asJQuery"],
1067
+ referencedClasses: []
1068
+ }),
1069
+ smalltalk.Browser);
1070
+
1071
+ smalltalk.addMethod(
1072
+ '_showClassButtons',
1073
+ smalltalk.method({
1074
+ selector: 'showClassButtons',
1075
+ category: 'actions',
1076
+ fn: function (){
1077
+ var self=this;
1078
+ smalltalk.send(smalltalk.send(self['@classButtons'], "_asJQuery", []), "_show", []);
1079
+ return self;},
1080
+ source: unescape('showClassButtons%0A%20%20%20%20classButtons%20asJQuery%20show'),
1081
+ messageSends: ["show", "asJQuery"],
1082
+ referencedClasses: []
1083
+ }),
1084
+ smalltalk.Browser);
1085
+
1086
+ smalltalk.addMethod(
1087
+ '_hideMethodButtons',
1088
+ smalltalk.method({
1089
+ selector: 'hideMethodButtons',
1090
+ category: 'actions',
1091
+ fn: function (){
1092
+ var self=this;
1093
+ smalltalk.send(smalltalk.send(self['@methodButtons'], "_asJQuery", []), "_hide", []);
1094
+ return self;},
1095
+ source: unescape('hideMethodButtons%0A%20%20%20%20methodButtons%20asJQuery%20hide'),
1096
+ messageSends: ["hide", "asJQuery"],
1097
+ referencedClasses: []
1098
+ }),
1099
+ smalltalk.Browser);
1100
+
1101
+ smalltalk.addMethod(
1102
+ '_showMethodButtons',
1103
+ smalltalk.method({
1104
+ selector: 'showMethodButtons',
1105
+ category: 'actions',
1106
+ fn: function (){
1107
+ var self=this;
1108
+ smalltalk.send(smalltalk.send(self['@methodButtons'], "_asJQuery", []), "_show", []);
1109
+ return self;},
1110
+ source: unescape('showMethodButtons%0A%20%20%20%20methodButtons%20asJQuery%20show'),
1111
+ messageSends: ["show", "asJQuery"],
1112
+ referencedClasses: []
1113
+ }),
1114
+ smalltalk.Browser);
1115
+
1116
+ smalltalk.addMethod(
1117
+ '_compile',
1118
+ smalltalk.method({
1119
+ selector: 'compile',
1120
+ category: 'actions',
1121
+ fn: function (){
1122
+ var self=this;
1123
+ smalltalk.send(self, "_disableSaveButton", []);
1124
+ smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){return smalltalk.send(self, "_compileClassComment", []);})]);})]);
1125
+ smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedMethod'], "_notNil", []);})]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_compileDefinition", []);}), (function(){return smalltalk.send(self, "_compileMethodDefinition", []);})]);
1126
+ return self;},
1127
+ source: unescape('compile%0A%20%20%20%20self%20disableSaveButton.%0A%20%20%20%20selectedTab%20%3D%20%23comment%20ifTrue%3A%20%5B%0A%09selectedClass%20ifNotNil%3A%20%5B%0A%09%20%20%20%20self%20compileClassComment%5D%5D.%0A%20%20%20%20%28selectedProtocol%20notNil%20or%3A%20%5BselectedMethod%20notNil%5D%29%0A%09ifFalse%3A%20%5Bself%20compileDefinition%5D%0A%09ifTrue%3A%20%5Bself%20compileMethodDefinition%5D'),
1128
+ messageSends: ["disableSaveButton", "ifTrue:", unescape("%3D"), "ifNotNil:", "compileClassComment", "ifFalse:ifTrue:", "or:", "notNil", "compileDefinition", "compileMethodDefinition"],
1129
+ referencedClasses: []
1130
+ }),
1131
+ smalltalk.Browser);
1132
+
1133
+ smalltalk.addMethod(
1134
+ '_compileClassComment',
1135
+ smalltalk.method({
1136
+ selector: 'compileClassComment',
1137
+ category: 'actions',
1138
+ fn: function (){
1139
+ var self=this;
1140
+ smalltalk.send(self['@selectedClass'], "_comment_", [smalltalk.send(self['@sourceArea'], "_val", [])]);
1141
+ return self;},
1142
+ source: unescape('compileClassComment%0A%20%20%20%20selectedClass%20comment%3A%20sourceArea%20val'),
1143
+ messageSends: ["comment:", "val"],
1144
+ referencedClasses: []
1145
+ }),
1146
+ smalltalk.Browser);
1147
+
1148
+ smalltalk.addMethod(
1149
+ '_compileMethodDefinition',
1150
+ smalltalk.method({
1151
+ selector: 'compileMethodDefinition',
1152
+ category: 'actions',
1153
+ fn: function (){
1154
+ var self=this;
1155
+ smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_compileMethodDefinitionFor_", [self['@selectedClass']]);}), (function(){return smalltalk.send(self, "_compileMethodDefinitionFor_", [smalltalk.send(self['@selectedClass'], "_class", [])]);})]);
1156
+ return self;},
1157
+ source: unescape('compileMethodDefinition%0A%20%20%20%20selectedTab%20%3D%20%23instance%0A%09ifTrue%3A%20%5Bself%20compileMethodDefinitionFor%3A%20selectedClass%5D%0A%09ifFalse%3A%20%5Bself%20compileMethodDefinitionFor%3A%20selectedClass%20class%5D'),
1158
+ messageSends: ["ifTrue:ifFalse:", unescape("%3D"), "compileMethodDefinitionFor:", "class"],
1159
+ referencedClasses: []
1160
+ }),
1161
+ smalltalk.Browser);
1162
+
1163
+ smalltalk.addMethod(
1164
+ '_compileMethodDefinitionFor_',
1165
+ smalltalk.method({
1166
+ selector: 'compileMethodDefinitionFor:',
1167
+ category: 'actions',
1168
+ fn: function (aClass){
1169
+ var self=this;
1170
+ try{var compiler=nil;
1171
+ var method=nil;
1172
+ var source=nil;
1173
+ var node=nil;
1174
+ source=smalltalk.send(self['@sourceArea'], "_val", []);
1175
+ smalltalk.send(self['@selectedProtocol'], "_ifNil_", [(function(){return self['@selectedProtocol']=smalltalk.send(self['@selectedMethod'], "_category", []);})]);
1176
+ compiler=smalltalk.send(smalltalk.Compiler, "_new", []);
1177
+ node=smalltalk.send(compiler, "_parse_", [source]);
1178
+ smalltalk.send(smalltalk.send(node, "_isParseFailure", []), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_compileMethodDefinitionFor_', fn: function(){return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send("PARSE ERROR: ", "__comma", [smalltalk.send(node, "_reason", [])]), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(smalltalk.send(node, "_position", []), "_asString", [])])])}})})();})]);
1179
+ smalltalk.send(compiler, "_currentClass_", [aClass]);
1180
+ method=smalltalk.send(compiler, "_eval_", [smalltalk.send(compiler, "_compileNode_", [node])]);
1181
+ smalltalk.send(method, "_category_", [self['@selectedProtocol']]);
1182
+ smalltalk.send(smalltalk.send(compiler, "_unknownVariables", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Declare%20%27"), "__comma", [each]), "__comma", [unescape("%27%20as%20instance%20variable%3F")])]), "_ifTrue_", [(function(){smalltalk.send(self, "_addInstanceVariableNamed_toClass_", [each, aClass]);return (function(){throw({name: 'stReturn', selector: '_compileMethodDefinitionFor_', fn: function(){return smalltalk.send(self, "_compileMethodDefinitionFor_", [aClass])}})})();})]);})]);
1183
+ smalltalk.send(aClass, "_addCompiledMethod_", [method]);
1184
+ smalltalk.send(compiler, "_setupClass_", [aClass]);
1185
+ smalltalk.send(self, "_updateMethodsList", []);
1186
+ smalltalk.send(self, "_selectMethod_", [method]);
1187
+ return self;
1188
+ } catch(e) {if(e.name === 'stReturn' && e.selector === '_compileMethodDefinitionFor_'){return e.fn()} throw(e)}},
1189
+ source: unescape('compileMethodDefinitionFor%3A%20aClass%0A%20%20%20%20%7C%20compiler%20method%20source%20node%20%7C%0A%20%20%20%20source%20%3A%3D%20sourceArea%20val.%0A%20%20%20%20selectedProtocol%20ifNil%3A%20%5BselectedProtocol%20%3A%3D%20selectedMethod%20category%5D.%0A%20%20%20%20compiler%20%3A%3D%20Compiler%20new.%0A%20%20%20%20node%20%3A%3D%20compiler%20parse%3A%20source.%0A%20%20%20%20node%20isParseFailure%20ifTrue%3A%20%5B%0A%09%5Eself%20alert%3A%20%27PARSE%20ERROR%3A%20%27%2C%20node%20reason%2C%20%27%2C%20position%3A%20%27%2C%20node%20position%20asString%5D.%0A%20%20%20%20compiler%20currentClass%3A%20aClass.%0A%20%20%20%20method%20%3A%3D%20compiler%20eval%3A%20%28compiler%20compileNode%3A%20node%29.%0A%20%20%20%20method%20category%3A%20selectedProtocol.%0A%20%20%20%20compiler%20unknownVariables%20do%3A%20%5B%3Aeach%20%7C%0A%09%28self%20confirm%3A%20%27Declare%20%27%27%27%2C%20each%2C%20%27%27%27%20as%20instance%20variable%3F%27%29%20ifTrue%3A%20%5B%0A%09%09self%20addInstanceVariableNamed%3A%20each%20toClass%3A%20aClass.%0A%09%09%5Eself%20compileMethodDefinitionFor%3A%20aClass%5D%5D.%0A%20%20%20%20aClass%20addCompiledMethod%3A%20method.%0A%20%20%20%20compiler%20setupClass%3A%20aClass.%0A%20%20%20%20self%20updateMethodsList.%0A%20%20%20%20self%20selectMethod%3A%20method'),
1190
+ messageSends: ["val", "ifNil:", "category", "new", "parse:", "ifTrue:", "isParseFailure", "alert:", unescape("%2C"), "reason", "asString", "position", "currentClass:", "eval:", "compileNode:", "category:", "do:", "unknownVariables", "confirm:", "addInstanceVariableNamed:toClass:", "compileMethodDefinitionFor:", "addCompiledMethod:", "setupClass:", "updateMethodsList", "selectMethod:"],
1191
+ referencedClasses: [smalltalk.Compiler]
1192
+ }),
1193
+ smalltalk.Browser);
1194
+
1195
+ smalltalk.addMethod(
1196
+ '_compileDefinition',
1197
+ smalltalk.method({
1198
+ selector: 'compileDefinition',
1199
+ category: 'actions',
1200
+ fn: function (){
1201
+ var self=this;
1202
+ var newClass=nil;
1203
+ newClass=smalltalk.send(smalltalk.send(smalltalk.Compiler, "_new", []), "_loadExpression_", [smalltalk.send(self['@sourceArea'], "_val", [])]);
1204
+ (function($rec){smalltalk.send($rec, "_resetClassesList", []);smalltalk.send($rec, "_updateCategoriesList", []);return smalltalk.send($rec, "_updateClassesList", []);})(self);
1205
+ return self;},
1206
+ source: unescape('compileDefinition%0A%20%20%20%20%7C%20newClass%20%7C%0A%20%20%20%20newClass%20%3A%3D%20Compiler%20new%20loadExpression%3A%20sourceArea%20val.%0A%20%20%20%20self%20%0A%09resetClassesList%3B%0A%09updateCategoriesList%3B%0A%09updateClassesList'),
1207
+ messageSends: ["loadExpression:", "new", "val", "resetClassesList", "updateCategoriesList", "updateClassesList"],
1208
+ referencedClasses: [smalltalk.Compiler]
1209
+ }),
1210
+ smalltalk.Browser);
1211
+
1212
+ smalltalk.addMethod(
1213
+ '_commitCategory',
1214
+ smalltalk.method({
1215
+ selector: 'commitCategory',
1216
+ category: 'actions',
1217
+ fn: function (){
1218
+ var self=this;
1219
+ smalltalk.send(self['@selectedCategory'], "_ifNotNil_", [(function(){(function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(smalltalk.send(smalltalk.Exporter, "_new", []), "_exportCategory_", [self['@selectedCategory']])]);smalltalk.send($rec, "_at_put_", ["error", (function(){return smalltalk.send(self, "_alert_", [unescape("Commit%20failed%21")]);})]);return smalltalk.send($rec, "_send", []);})(smalltalk.send(smalltalk.Ajax, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathJs", []), "__comma", [unescape("/")]), "__comma", [self['@selectedCategory']]), "__comma", [".js"])]));(function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(smalltalk.send(smalltalk.Exporter, "_new", []), "_exportCategory_", [self['@selectedCategory']])]);smalltalk.send($rec, "_at_put_", ["error", (function(){return smalltalk.send(self, "_alert_", [unescape("Commit%20failed%21")]);})]);return smalltalk.send($rec, "_send", []);})(smalltalk.send(smalltalk.Ajax, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathJs", []), "__comma", [unescape("/")]), "__comma", [self['@selectedCategory']]), "__comma", [".deploy.js"])]));return (function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(smalltalk.send(smalltalk.ChunkExporter, "_new", []), "_exportCategory_", [self['@selectedCategory']])]);smalltalk.send($rec, "_at_put_", ["error", (function(){return smalltalk.send(self, "_alert_", [unescape("Commit%20failed%21")]);})]);return smalltalk.send($rec, "_send", []);})(smalltalk.send(smalltalk.Ajax, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathSt", []), "__comma", [unescape("/")]), "__comma", [self['@selectedCategory']]), "__comma", [".st"])]));})]);
1220
+ return self;},
1221
+ source: unescape('commitCategory%0A%20%20%20%20selectedCategory%20ifNotNil%3A%20%5B%0A%09%28Ajax%20url%3A%20self%20class%20commitPathJs%2C%20%27/%27%2C%20selectedCategory%2C%20%27.js%27%29%0A%09%20%20%20%20at%3A%20%27type%27%20put%3A%20%27PUT%27%3B%0A%09%20%20%20%20at%3A%20%27data%27%20put%3A%20%28Exporter%20new%20exportCategory%3A%20selectedCategory%29%3B%0A%09%20%20%20%20at%3A%20%27error%27%20put%3A%20%5Bself%20alert%3A%20%27Commit%20failed%21%27%5D%3B%0A%09%20%20%20%20send.%0A%09%28Ajax%20url%3A%20self%20class%20commitPathJs%2C%20%27/%27%2C%20selectedCategory%2C%20%27.deploy.js%27%29%0A%09%20%20%20%20at%3A%20%27type%27%20put%3A%20%27PUT%27%3B%0A%09%20%20%20%20at%3A%20%27data%27%20put%3A%20%28Exporter%20new%20exportCategory%3A%20selectedCategory%29%3B%0A%09%20%20%20%20at%3A%20%27error%27%20put%3A%20%5Bself%20alert%3A%20%27Commit%20failed%21%27%5D%3B%0A%09%20%20%20%20send.%0A%09%28Ajax%20url%3A%20self%20class%20commitPathSt%2C%20%27/%27%2C%20selectedCategory%2C%20%27.st%27%29%0A%09%20%20%20%20at%3A%20%27type%27%20put%3A%20%27PUT%27%3B%0A%09%20%20%20%20at%3A%20%27data%27%20put%3A%20%28ChunkExporter%20new%20exportCategory%3A%20selectedCategory%29%3B%0A%09%20%20%20%20at%3A%20%27error%27%20put%3A%20%5Bself%20alert%3A%20%27Commit%20failed%21%27%5D%3B%0A%09%20%20%20%20send%5D'),
1222
+ messageSends: ["ifNotNil:", "at:put:", "exportCategory:", "new", "alert:", "send", "url:", unescape("%2C"), "commitPathJs", "class", "commitPathSt"],
1223
+ referencedClasses: [smalltalk.Exporter,smalltalk.ChunkExporter]
1224
+ }),
1225
+ smalltalk.Browser);
1226
+
1227
+ smalltalk.addMethod(
1228
+ '_cancelChanges',
1229
+ smalltalk.method({
1230
+ selector: 'cancelChanges',
1231
+ category: 'actions',
1232
+ fn: function (){
1233
+ var self=this;
1234
+ return smalltalk.send(self['@unsavedChanges'], "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_confirm_", [unescape("Cancel%20changes%3F")]);}), (function(){return true;})]);
1235
+ return self;},
1236
+ source: unescape('cancelChanges%0A%20%20%20%20%5EunsavedChanges%20%0A%09ifTrue%3A%20%5Bself%20confirm%3A%20%27Cancel%20changes%3F%27%5D%0A%09ifFalse%3A%20%5Btrue%5D'),
1237
+ messageSends: ["ifTrue:ifFalse:", "confirm:"],
1238
+ referencedClasses: []
1239
+ }),
1240
+ smalltalk.Browser);
1241
+
1242
+ smalltalk.addMethod(
1243
+ '_removeClass',
1244
+ smalltalk.method({
1245
+ selector: 'removeClass',
1246
+ category: 'actions',
1247
+ fn: function (){
1248
+ var self=this;
1249
+ smalltalk.send(smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send("Do you really want to remove ", "__comma", [smalltalk.send(self['@selectedClass'], "_name", [])]), "__comma", [unescape("%3F")])]), "_ifTrue_", [(function(){smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_removeClass_", [self['@selectedClass']]);smalltalk.send(self, "_resetClassesList", []);return smalltalk.send(self, "_selectClass_", [nil]);})]);
1250
+ return self;},
1251
+ source: unescape('removeClass%0A%20%20%20%20%28self%20confirm%3A%20%27Do%20you%20really%20want%20to%20remove%20%27%2C%20selectedClass%20name%2C%20%27%3F%27%29%0A%09ifTrue%3A%20%5B%0A%09%20%20%20%20Smalltalk%20current%20removeClass%3A%20selectedClass.%0A%09%20%20%20%20self%20resetClassesList.%0A%09%20%20%20%20self%20selectClass%3A%20nil%5D'),
1252
+ messageSends: ["ifTrue:", "confirm:", unescape("%2C"), "name", "removeClass:", "current", "resetClassesList", "selectClass:"],
1253
+ referencedClasses: [smalltalk.Smalltalk]
1254
+ }),
1255
+ smalltalk.Browser);
1256
+
1257
+ smalltalk.addMethod(
1258
+ '_removeMethod',
1259
+ smalltalk.method({
1260
+ selector: 'removeMethod',
1261
+ category: 'actions',
1262
+ fn: function (){
1263
+ var self=this;
1264
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Do%20you%20really%20want%20to%20remove%20%23"), "__comma", [smalltalk.send(self['@selectedMethod'], "_selector", [])]), "__comma", [unescape("%3F")])]), "_ifTrue_", [(function(){smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}), (function(){return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);})]);return smalltalk.send(self, "_selectMethod_", [nil]);})]);})]);
1265
+ return self;},
1266
+ source: unescape('removeMethod%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09%28self%20confirm%3A%20%27Do%20you%20really%20want%20to%20remove%20%23%27%2C%20selectedMethod%20selector%2C%20%27%3F%27%29%0A%09%20%20%20%20ifTrue%3A%20%5B%0A%09%09selectedTab%20%3D%20%23instance%20%0A%09%09%09ifTrue%3A%20%5BselectedClass%20removeCompiledMethod%3A%20selectedMethod%5D%0A%09%09%09ifFalse%3A%20%5BselectedClass%20class%20removeCompiledMethod%3A%20selectedMethod%5D.%0A%09%09self%20selectMethod%3A%20nil%5D%5D'),
1267
+ messageSends: ["ifTrue:", "cancelChanges", "confirm:", unescape("%2C"), "selector", "ifTrue:ifFalse:", unescape("%3D"), "removeCompiledMethod:", "class", "selectMethod:"],
1268
+ referencedClasses: []
1269
+ }),
1270
+ smalltalk.Browser);
1271
+
1272
+ smalltalk.addMethod(
1273
+ '_setMethodProtocol_',
1274
+ smalltalk.method({
1275
+ selector: 'setMethodProtocol:',
1276
+ category: 'actions',
1277
+ fn: function (aString){
1278
+ var self=this;
1279
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_protocols", []), "_includes_", [aString]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_addNewProtocol", []);}), (function(){smalltalk.send(self['@selectedMethod'], "_category_", [aString]);self['@selectedProtocol']=aString;self['@selectedMethod']=self['@selectedMethod'];return (function($rec){smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);})]);
1280
+ return self;},
1281
+ source: unescape('setMethodProtocol%3A%20aString%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09%28self%20protocols%20includes%3A%20aString%29%0A%09%20%20%20%20ifFalse%3A%20%5Bself%20addNewProtocol%5D%0A%09%20%20%20%20ifTrue%3A%20%5B%0A%09%09selectedMethod%20category%3A%20aString.%0A%09%09selectedProtocol%20%3A%3D%20aString.%0A%09%09selectedMethod%20%3A%3D%20selectedMethod.%0A%09%09self%20%0A%09%09%20%20%20%20updateProtocolsList%3B%0A%09%09%20%20%20%20updateMethodsList%3B%0A%09%09%20%20%20%20updateSourceAndButtons%5D%5D'),
1282
+ messageSends: ["ifTrue:", "cancelChanges", "ifFalse:ifTrue:", "includes:", "protocols", "addNewProtocol", "category:", "updateProtocolsList", "updateMethodsList", "updateSourceAndButtons"],
1283
+ referencedClasses: []
1284
+ }),
1285
+ smalltalk.Browser);
1286
+
1287
+ smalltalk.addMethod(
1288
+ '_addNewProtocol',
1289
+ smalltalk.method({
1290
+ selector: 'addNewProtocol',
1291
+ category: 'actions',
1292
+ fn: function (){
1293
+ var self=this;
1294
+ var newProtocol=nil;
1295
+ newProtocol=smalltalk.send(self, "_prompt_", ["New method protocol"]);
1296
+ smalltalk.send(smalltalk.send(newProtocol, "_notEmpty", []), "_ifTrue_", [(function(){smalltalk.send(self['@selectedMethod'], "_category_", [newProtocol]);return smalltalk.send(self, "_setMethodProtocol_", [newProtocol]);})]);
1297
+ return self;},
1298
+ source: unescape('addNewProtocol%0A%20%20%20%20%7C%20newProtocol%20%7C%0A%20%20%20%20newProtocol%20%3A%3D%20self%20prompt%3A%20%27New%20method%20protocol%27.%0A%20%20%20%20newProtocol%20notEmpty%20ifTrue%3A%20%5B%0A%09selectedMethod%20category%3A%20newProtocol.%0A%09self%20setMethodProtocol%3A%20newProtocol%5D'),
1299
+ messageSends: ["prompt:", "ifTrue:", "notEmpty", "category:", "setMethodProtocol:"],
1300
+ referencedClasses: []
1301
+ }),
1302
+ smalltalk.Browser);
1303
+
1304
+ smalltalk.addMethod(
1305
+ '_selectCategory_',
1306
+ smalltalk.method({
1307
+ selector: 'selectCategory:',
1308
+ category: 'actions',
1309
+ fn: function (aCategory){
1310
+ var self=this;
1311
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedCategory']=aCategory;self['@selectedClass']=self['@selectedProtocol']=self['@selectedMethod']=nil;smalltalk.send(self, "_resetClassesList", []);return (function($rec){smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
1312
+ return self;},
1313
+ source: unescape('selectCategory%3A%20aCategory%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09selectedCategory%20%3A%3D%20aCategory.%0A%09selectedClass%20%3A%3D%20selectedProtocol%20%3A%3D%20selectedMethod%20%3A%3D%20%20nil.%0A%09self%20resetClassesList.%0A%09self%20%0A%09%20%20%20%20updateCategoriesList%3B%0A%09%20%20%20%20updateClassesList%3B%0A%09%20%20%20%20updateProtocolsList%3B%0A%09%20%20%20%20updateMethodsList%3B%0A%09%20%20%20%20updateSourceAndButtons%5D'),
1314
+ messageSends: ["ifTrue:", "cancelChanges", "resetClassesList", "updateCategoriesList", "updateClassesList", "updateProtocolsList", "updateMethodsList", "updateSourceAndButtons"],
1315
+ referencedClasses: []
1316
+ }),
1317
+ smalltalk.Browser);
1318
+
1319
+ smalltalk.addMethod(
1320
+ '_selectClass_',
1321
+ smalltalk.method({
1322
+ selector: 'selectClass:',
1323
+ category: 'actions',
1324
+ fn: function (aClass){
1325
+ var self=this;
1326
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedClass']=aClass;self['@selectedProtocol']=self['@selectedMethod']=nil;return (function($rec){smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
1327
+ return self;},
1328
+ source: unescape('selectClass%3A%20aClass%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09selectedClass%20%3A%3D%20aClass.%0A%09selectedProtocol%20%3A%3D%20selectedMethod%20%3A%3D%20nil.%0A%09self%20%0A%09%20%20%20%20updateClassesList%3B%0A%09%20%20%20%20updateProtocolsList%3B%0A%09%20%20%20%20updateMethodsList%3B%0A%09%20%20%20%20updateSourceAndButtons%5D'),
1329
+ messageSends: ["ifTrue:", "cancelChanges", "updateClassesList", "updateProtocolsList", "updateMethodsList", "updateSourceAndButtons"],
1330
+ referencedClasses: []
1331
+ }),
1332
+ smalltalk.Browser);
1333
+
1334
+ smalltalk.addMethod(
1335
+ '_selectProtocol_',
1336
+ smalltalk.method({
1337
+ selector: 'selectProtocol:',
1338
+ category: 'actions',
1339
+ fn: function (aString){
1340
+ var self=this;
1341
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedProtocol']=aString;self['@selectedMethod']=nil;return (function($rec){smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
1342
+ return self;},
1343
+ source: unescape('selectProtocol%3A%20aString%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09selectedProtocol%20%3A%3D%20aString.%0A%09selectedMethod%20%3A%3D%20nil.%0A%09self%20%0A%09%20%20%20%20updateProtocolsList%3B%0A%09%20%20%20%20updateMethodsList%3B%0A%09%20%20%20%20updateSourceAndButtons%5D'),
1344
+ messageSends: ["ifTrue:", "cancelChanges", "updateProtocolsList", "updateMethodsList", "updateSourceAndButtons"],
1345
+ referencedClasses: []
1346
+ }),
1347
+ smalltalk.Browser);
1348
+
1349
+ smalltalk.addMethod(
1350
+ '_selectMethod_',
1351
+ smalltalk.method({
1352
+ selector: 'selectMethod:',
1353
+ category: 'actions',
1354
+ fn: function (aMethod){
1355
+ var self=this;
1356
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedMethod']=aMethod;return (function($rec){smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
1357
+ return self;},
1358
+ source: unescape('selectMethod%3A%20aMethod%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09selectedMethod%20%3A%3D%20aMethod.%0A%09self%20%0A%09%20%20%20%20updateProtocolsList%3B%0A%09%20%20%20%20updateMethodsList%3B%0A%09%20%20%20%20updateSourceAndButtons%5D'),
1359
+ messageSends: ["ifTrue:", "cancelChanges", "updateProtocolsList", "updateMethodsList", "updateSourceAndButtons"],
1360
+ referencedClasses: []
1361
+ }),
1362
+ smalltalk.Browser);
1363
+
1364
+ smalltalk.addMethod(
1365
+ '_selectTab_',
1366
+ smalltalk.method({
1367
+ selector: 'selectTab:',
1368
+ category: 'actions',
1369
+ fn: function (aString){
1370
+ var self=this;
1371
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedTab']=aString;smalltalk.send(self, "_selectProtocol_", [nil]);return smalltalk.send(self, "_updateTabsList", []);})]);
1372
+ return self;},
1373
+ source: unescape('selectTab%3A%20aString%0A%20%20%20%20self%20cancelChanges%20ifTrue%3A%20%5B%0A%09selectedTab%20%3A%3D%20aString.%0A%09self%20selectProtocol%3A%20nil.%0A%09self%20updateTabsList%5D'),
1374
+ messageSends: ["ifTrue:", "cancelChanges", "selectProtocol:", "updateTabsList"],
1375
+ referencedClasses: []
1376
+ }),
1377
+ smalltalk.Browser);
1378
+
1379
+ smalltalk.addMethod(
1380
+ '_renameClass',
1381
+ smalltalk.method({
1382
+ selector: 'renameClass',
1383
+ category: 'actions',
1384
+ fn: function (){
1385
+ var self=this;
1386
+ var newName=nil;
1387
+ newName=smalltalk.send(self, "_prompt_", [smalltalk.send("Rename class ", "__comma", [smalltalk.send(self['@selectedClass'], "_name", [])])]);
1388
+ smalltalk.send(smalltalk.send(newName, "_notEmpty", []), "_ifTrue_", [(function(){smalltalk.send(self['@selectedClass'], "_rename_", [newName]);return (function($rec){smalltalk.send($rec, "_updateClassesList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
1389
+ return self;},
1390
+ source: unescape('renameClass%0A%20%20%20%20%7C%20newName%20%7C%0A%20%20%20%20newName%20%3A%3D%20self%20prompt%3A%20%27Rename%20class%20%27%2C%20selectedClass%20name.%0A%20%20%20%20newName%20notEmpty%20ifTrue%3A%20%5B%0A%09selectedClass%20rename%3A%20newName.%0A%09self%20%0A%09%09updateClassesList%3B%0A%09%09updateSourceAndButtons%5D'),
1391
+ messageSends: ["prompt:", unescape("%2C"), "name", "ifTrue:", "notEmpty", "rename:", "updateClassesList", "updateSourceAndButtons"],
1392
+ referencedClasses: []
1393
+ }),
1394
+ smalltalk.Browser);
1395
+
1396
+ smalltalk.addMethod(
1397
+ '_addInstanceVariableNamed_toClass_',
1398
+ smalltalk.method({
1399
+ selector: 'addInstanceVariableNamed:toClass:',
1400
+ category: 'actions',
1401
+ fn: function (aString, aClass){
1402
+ var self=this;
1403
+ smalltalk.send(smalltalk.send(smalltalk.ClassBuilder, "_new", []), "_addSubclassOf_named_instanceVariableNames_", [smalltalk.send(aClass, "_superclass", []), smalltalk.send(aClass, "_name", []), (function($rec){smalltalk.send($rec, "_add_", [aString]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_copy", []))]);
1404
+ return self;},
1405
+ source: unescape('addInstanceVariableNamed%3A%20aString%20toClass%3A%20aClass%0A%09ClassBuilder%20new%0A%09%09addSubclassOf%3A%20aClass%20superclass%20named%3A%20aClass%20name%20instanceVariableNames%3A%20%28aClass%20instanceVariableNames%20copy%20add%3A%20aString%3B%20yourself%29'),
1406
+ messageSends: ["addSubclassOf:named:instanceVariableNames:", "new", "superclass", "name", "add:", "yourself", "copy", "instanceVariableNames"],
1407
+ referencedClasses: [smalltalk.ClassBuilder]
1408
+ }),
1409
+ smalltalk.Browser);
1410
+
1411
+ smalltalk.addMethod(
1412
+ '_searchReferencesOf_',
1413
+ smalltalk.method({
1414
+ selector: 'searchReferencesOf:',
1415
+ category: 'actions',
1416
+ fn: function (aString){
1417
+ var self=this;
1418
+ smalltalk.send(smalltalk.ReferencesBrowser, "_search_", [aString]);
1419
+ return self;},
1420
+ source: unescape('searchReferencesOf%3A%20aString%0A%09ReferencesBrowser%20search%3A%20aString'),
1421
+ messageSends: ["search:"],
1422
+ referencedClasses: []
1423
+ }),
1424
+ smalltalk.Browser);
1425
+
1426
+ smalltalk.addMethod(
1427
+ '_searchClassReferences',
1428
+ smalltalk.method({
1429
+ selector: 'searchClassReferences',
1430
+ category: 'actions',
1431
+ fn: function (){
1432
+ var self=this;
1433
+ smalltalk.send(smalltalk.ReferencesBrowser, "_search_", [smalltalk.send(self['@selectedClass'], "_name", [])]);
1434
+ return self;},
1435
+ source: unescape('searchClassReferences%0A%09ReferencesBrowser%20search%3A%20selectedClass%20name'),
1436
+ messageSends: ["search:", "name"],
1437
+ referencedClasses: []
1438
+ }),
1439
+ smalltalk.Browser);
1440
+
1441
+ smalltalk.addMethod(
1442
+ '_search_',
1443
+ smalltalk.method({
1444
+ selector: 'search:',
1445
+ category: 'actions',
1446
+ fn: function (aString){
1447
+ var self=this;
1448
+ smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){var searchedClass=nil;
1449
+ searchedClass=smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_at_", [aString]);return smalltalk.send(smalltalk.send(searchedClass, "_isClass", []), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(self, "_class", []), "_openOn_", [searchedClass]);}), (function(){return smalltalk.send(self, "_searchReferencesOf_", [aString]);})]);})]);
1450
+ return self;},
1451
+ source: unescape('search%3A%20aString%0A%09self%20cancelChanges%20ifTrue%3A%20%5B%7C%20searchedClass%20%7C%0A%09%09searchedClass%20%3A%3D%20Smalltalk%20current%20at%3A%20aString.%0A%09%09searchedClass%20isClass%0A%09%09%09ifTrue%3A%20%5Bself%20class%20openOn%3A%20searchedClass%5D%0A%09%09%09ifFalse%3A%20%5Bself%20searchReferencesOf%3A%20aString%5D%5D'),
1452
+ messageSends: ["ifTrue:", "cancelChanges", "at:", "current", "ifTrue:ifFalse:", "isClass", "openOn:", "class", "searchReferencesOf:"],
1453
+ referencedClasses: [smalltalk.Smalltalk]
1454
+ }),
1455
+ smalltalk.Browser);
1456
+
1457
+ smalltalk.addMethod(
1458
+ '_initialize',
1459
+ smalltalk.method({
1460
+ selector: 'initialize',
1461
+ category: 'initialization',
1462
+ fn: function (){
1463
+ var self=this;
1464
+ smalltalk.send(self, "_initialize", [], smalltalk.TabWidget);
1465
+ self['@selectedTab']="instance";
1466
+ self['@unsavedChanges']=false;
1467
+ return self;},
1468
+ source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20selectedTab%20%3A%3D%20%23instance.%0A%20%20%20%20unsavedChanges%20%3A%3D%20false'),
1469
+ messageSends: ["initialize"],
1470
+ referencedClasses: []
1471
+ }),
1472
+ smalltalk.Browser);
1473
+
1474
+ smalltalk.addMethod(
1475
+ '_renderBoxOn_',
1476
+ smalltalk.method({
1477
+ selector: 'renderBoxOn:',
1478
+ category: 'rendering',
1479
+ fn: function (html){
1480
+ var self=this;
1481
+ (function($rec){smalltalk.send($rec, "_renderTopPanelOn_", [html]);smalltalk.send($rec, "_renderTabsOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);})(self);
1482
+ return self;},
1483
+ source: unescape('renderBoxOn%3A%20html%0A%20%20%20%20self%20%0A%09renderTopPanelOn%3A%20html%3B%0A%09renderTabsOn%3A%20html%3B%0A%09renderBottomPanelOn%3A%20html'),
1484
+ messageSends: ["renderTopPanelOn:", "renderTabsOn:", "renderBottomPanelOn:"],
1485
+ referencedClasses: []
1486
+ }),
1487
+ smalltalk.Browser);
1488
+
1489
+ smalltalk.addMethod(
1490
+ '_renderTopPanelOn_',
1491
+ smalltalk.method({
1492
+ selector: 'renderTopPanelOn:',
1493
+ category: 'rendering',
1494
+ fn: function (html){
1495
+ var self=this;
1496
+ (function($rec){smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(self, "_renderInputOn_", [html]);self['@categoriesList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser categories"]);self['@commitButton']=(function($rec){smalltalk.send($rec, "_class_", ["jt_commit"]);smalltalk.send($rec, "_title_", ["Commit classes in this category to disk"]);smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_commitCategory", []);})]);return smalltalk.send($rec, "_with_", ["Commit category"]);})(smalltalk.send(html, "_button", []));self['@classesList']=smalltalk.send(smalltalk.ClassesList, "_on_", [self]);smalltalk.send(self['@classesList'], "_renderOn_", [html]);self['@protocolsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser protocols"]);self['@methodsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser methods"]);(function($rec){smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);return smalltalk.send($rec, "_updateMethodsList", []);})(self);return smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["jt_clear"]);})]);})(smalltalk.send(html, "_div", []));
1497
+ return self;},
1498
+ source: unescape('renderTopPanelOn%3A%20html%0A%20%20%20%20html%20div%20%0A%09class%3A%20%27top%27%3B%20%0A%09with%3A%20%5B%0A%09%20%20%20%20self%20renderInputOn%3A%20html.%0A%09%20%20%20%20categoriesList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20browser%20categories%27.%0A%09%20%20%20%20commitButton%20%3A%3D%20html%20button%20%0A%09%09class%3A%20%27jt_commit%27%3B%0A%09%09title%3A%20%27Commit%20classes%20in%20this%20category%20to%20disk%27%3B%0A%09%09onClick%3A%20%5Bself%20commitCategory%5D%3B%0A%09%09with%3A%20%27Commit%20category%27.%0A%09%20%20%20%20classesList%20%3A%3D%20ClassesList%20on%3A%20self.%0A%09%20%20%20%20classesList%20renderOn%3A%20html.%0A%09%20%20%20%20protocolsList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20browser%20protocols%27.%0A%09%20%20%20%20methodsList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20browser%20methods%27.%0A%09%20%20%20%20self%0A%09%09updateCategoriesList%3B%0A%09%09updateClassesList%3B%0A%09%09updateProtocolsList%3B%0A%09%09updateMethodsList.%0A%09%20%20%20%20html%20div%20class%3A%20%27jt_clear%27%5D'),
1499
+ messageSends: ["class:", "with:", "renderInputOn:", "ul", "title:", "onClick:", "commitCategory", "button", "on:", "renderOn:", "updateCategoriesList", "updateClassesList", "updateProtocolsList", "updateMethodsList", "div"],
1500
+ referencedClasses: []
1501
+ }),
1502
+ smalltalk.Browser);
1503
+
1504
+ smalltalk.addMethod(
1505
+ '_renderTabsOn_',
1506
+ smalltalk.method({
1507
+ selector: 'renderTabsOn:',
1508
+ category: 'rendering',
1509
+ fn: function (html){
1510
+ var self=this;
1511
+ self['@tabsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_tabs"]);
1512
+ smalltalk.send(self, "_updateTabsList", []);
1513
+ return self;},
1514
+ source: unescape('renderTabsOn%3A%20html%0A%20%20%20%20tabsList%20%3A%3D%20html%20ul%20class%3A%20%27jt_tabs%27.%0A%20%20%20%20self%20updateTabsList.'),
1515
+ messageSends: ["class:", "ul", "updateTabsList"],
1516
+ referencedClasses: []
1517
+ }),
1518
+ smalltalk.Browser);
1519
+
1520
+ smalltalk.addMethod(
1521
+ '_renderBottomPanelOn_',
1522
+ smalltalk.method({
1523
+ selector: 'renderBottomPanelOn:',
1524
+ category: 'rendering',
1525
+ fn: function (html){
1526
+ var self=this;
1527
+ (function($rec){smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [(function(){self['@sourceArea']=smalltalk.send(smalltalk.SourceArea, "_new", []);smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);return smalltalk.send(self['@sourceArea'], "_onKeyUp_", [(function(){return smalltalk.send(self, "_updateStatus", []);})]);})]);})(smalltalk.send(html, "_div", []));
1528
+ return self;},
1529
+ source: unescape('renderBottomPanelOn%3A%20html%0A%20%20%20%20html%20div%0A%09class%3A%20%27jt_sourceCode%27%3B%0A%09with%3A%20%5B%0A%09%20%20%20%20sourceArea%20%3A%3D%20SourceArea%20new.%0A%09%20%20%20%20sourceArea%20renderOn%3A%20html.%0A%09%20%20%20%20sourceArea%0A%09%09onKeyUp%3A%20%5Bself%20updateStatus%5D%5D'),
1530
+ messageSends: ["class:", "with:", "new", "renderOn:", "onKeyUp:", "updateStatus", "div"],
1531
+ referencedClasses: [smalltalk.nil]
1532
+ }),
1533
+ smalltalk.Browser);
1534
+
1535
+ smalltalk.addMethod(
1536
+ '_renderButtonsOn_',
1537
+ smalltalk.method({
1538
+ selector: 'renderButtonsOn:',
1539
+ category: 'rendering',
1540
+ fn: function (html){
1541
+ var self=this;
1542
+ self['@saveButton']=smalltalk.send(html, "_button", []);
1543
+ (function($rec){smalltalk.send($rec, "_with_", ["Save"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_compile", []);})]);})(self['@saveButton']);
1544
+ self['@methodButtons']=smalltalk.send(html, "_span", []);
1545
+ self['@classButtons']=smalltalk.send(html, "_span", []);
1546
+ (function($rec){smalltalk.send($rec, "_class_", ["right"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_with_", ["DoIt"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self['@sourceArea'], "_doIt", []);})]);})(smalltalk.send(html, "_button", []));(function($rec){smalltalk.send($rec, "_with_", ["PrintIt"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self['@sourceArea'], "_printIt", []);})]);})(smalltalk.send(html, "_button", []));return (function($rec){smalltalk.send($rec, "_with_", ["InspectIt"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self['@sourceArea'], "_inspectit", []);})]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_div", []));
1547
+ smalltalk.send(self, "_updateSourceAndButtons", []);
1548
+ return self;},
1549
+ source: unescape('renderButtonsOn%3A%20html%0A%20%20%20%20saveButton%20%3A%3D%20html%20button.%0A%20%20%20%20saveButton%20%0A%09with%3A%20%27Save%27%3B%0A%09onClick%3A%20%5Bself%20compile%5D.%0A%20%20%20%20methodButtons%20%3A%3D%20html%20span.%0A%20%20%20%20classButtons%20%3A%3D%20html%20span.%0A%20%20%20%20html%20div%20%0A%09class%3A%20%27right%27%3B%0A%09with%3A%20%5B%0A%09%09html%20button%0A%09%09%09with%3A%20%27DoIt%27%3B%0A%09%09%09onClick%3A%20%5BsourceArea%20doIt%5D.%0A%09%09html%20button%0A%09%09%09with%3A%20%27PrintIt%27%3B%0A%09%09%09onClick%3A%20%5BsourceArea%20printIt%5D.%0A%09%09html%20button%20with%3A%20%27InspectIt%27%3B%0A%09%09%09onClick%3A%20%5BsourceArea%20inspectit%5D%5D.%20%0A%20%20%20%20self%20updateSourceAndButtons'),
1550
+ messageSends: ["button", "with:", "onClick:", "compile", "span", "class:", "doIt", "printIt", "inspectit", "div", "updateSourceAndButtons"],
1551
+ referencedClasses: []
1552
+ }),
1553
+ smalltalk.Browser);
1554
+
1555
+ smalltalk.addMethod(
1556
+ '_renderInputOn_',
1557
+ smalltalk.method({
1558
+ selector: 'renderInputOn:',
1559
+ category: 'rendering',
1560
+ fn: function (html){
1561
+ var self=this;
1562
+ self['@input']=(function($rec){smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_input", []));
1563
+ smalltalk.send(self['@input'], "_onKeyPress_", [(function(event){return smalltalk.send(smalltalk.send(smalltalk.send(event, "_keyCode", []), "__eq", [(13)]), "_ifTrue_", [(function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);})]);})]);
1564
+ return self;},
1565
+ source: unescape('renderInputOn%3A%20html%20%0A%09input%20%3A%3D%20html%20input%20%0A%09%09class%3A%20%27implementors%27%3B%0A%09%09yourself.%0A%09input%20onKeyPress%3A%20%5B%3Aevent%20%7C%0A%09%09event%20keyCode%20%3D%2013%20ifTrue%3A%20%5B%0A%09%09%09self%20search%3A%20input%20asJQuery%20val%5D%5D'),
1566
+ messageSends: ["class:", "yourself", "input", "onKeyPress:", "ifTrue:", unescape("%3D"), "keyCode", "search:", "val", "asJQuery"],
1567
+ referencedClasses: []
1568
+ }),
1569
+ smalltalk.Browser);
1570
+
1571
+ smalltalk.addMethod(
1572
+ '_canBeClosed',
1573
+ smalltalk.method({
1574
+ selector: 'canBeClosed',
1575
+ category: 'testing',
1576
+ fn: function (){
1577
+ var self=this;
1578
+ return true;
1579
+ return self;},
1580
+ source: unescape('canBeClosed%0A%09%5Etrue'),
1581
+ messageSends: [],
1582
+ referencedClasses: []
1583
+ }),
1584
+ smalltalk.Browser);
1585
+
1586
+ smalltalk.addMethod(
1587
+ '_updateCategoriesList',
1588
+ smalltalk.method({
1589
+ selector: 'updateCategoriesList',
1590
+ category: 'updating',
1591
+ fn: function (){
1592
+ var self=this;
1593
+ smalltalk.send(self['@categoriesList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_categories", []), "_do_", [(function(each){var li=nil;
1594
+ var label=nil;
1595
+ smalltalk.send(smalltalk.send(each, "_isEmpty", []), "_ifTrue_ifFalse_", [(function(){return label="Unclassified";}), (function(){return label=each;})]);li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedCategory'], "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", [label]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectCategory_", [each]);})]);})(li);})]);})]);
1596
+ return self;},
1597
+ source: unescape('updateCategoriesList%0A%20%20%20%20categoriesList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09self%20categories%20do%3A%20%5B%3Aeach%20%7C%7C%20li%20label%20%7C%0A%09%20%20%20%20each%20isEmpty%20%0A%09%09ifTrue%3A%20%5Blabel%20%3A%3D%20%27Unclassified%27%5D%0A%09%09ifFalse%3A%20%5Blabel%20%3A%3D%20each%5D.%0A%09%20%20%20%20li%20%3A%3D%20html%20li.%0A%09%20%20%20%20selectedCategory%20%3D%20each%20ifTrue%3A%20%5B%0A%09%09li%20class%3A%20%27selected%27%5D.%0A%09%20%20%20%20li%0A%09%09with%3A%20label%3B%0A%09%09onClick%3A%20%5Bself%20selectCategory%3A%20each%5D%5D%5D'),
1598
+ messageSends: ["contents:", "do:", "categories", "ifTrue:ifFalse:", "isEmpty", "li", "ifTrue:", unescape("%3D"), "class:", "with:", "onClick:", "selectCategory:"],
1599
+ referencedClasses: []
1600
+ }),
1601
+ smalltalk.Browser);
1602
+
1603
+ smalltalk.addMethod(
1604
+ '_updateClassesList',
1605
+ smalltalk.method({
1606
+ selector: 'updateClassesList',
1607
+ category: 'updating',
1608
+ fn: function (){
1609
+ var self=this;
1610
+ smalltalk.send(smalltalk.send(smalltalk.TabManager, "_current", []), "_update", []);
1611
+ smalltalk.send(self['@classesList'], "_updateNodes", []);
1612
+ return self;},
1613
+ source: unescape('updateClassesList%0A%20%20%20%20TabManager%20current%20update.%0A%20%20%20%20classesList%20updateNodes.%0A%20%20%20%20%22classesList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09self%20classes%20do%3A%20%5B%3Aeach%20%7C%7C%20li%20%7C%0A%09%20%20%20%20li%20%3A%3D%20html%20li.%0A%09%20%20%20%20selectedClass%20%3D%20each%20ifTrue%3A%20%5B%0A%09%09li%20class%3A%20%27selected%27%5D.%0A%09%20%20%20%20li%0A%09%09with%3A%20each%20name%3B%0A%09%09onClick%3A%20%5Bself%20selectClass%3A%20each%5D%5D%5D%22'),
1614
+ messageSends: ["update", "current", "updateNodes"],
1615
+ referencedClasses: [smalltalk.TabManager]
1616
+ }),
1617
+ smalltalk.Browser);
1618
+
1619
+ smalltalk.addMethod(
1620
+ '_updateProtocolsList',
1621
+ smalltalk.method({
1622
+ selector: 'updateProtocolsList',
1623
+ category: 'updating',
1624
+ fn: function (){
1625
+ var self=this;
1626
+ smalltalk.send(self['@protocolsList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [(function(each){var li=nil;
1627
+ li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedProtocol'], "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", [each]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectProtocol_", [each]);})]);})(li);})]);})]);
1628
+ return self;},
1629
+ source: unescape('updateProtocolsList%0A%20%20%20%20protocolsList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09self%20protocols%20do%3A%20%5B%3Aeach%20%7C%7C%20li%20%7C%0A%09%20%20%20%20li%20%3A%3D%20html%20li.%0A%09%20%20%20%20selectedProtocol%20%3D%20each%20ifTrue%3A%20%5B%0A%09%09li%20class%3A%20%27selected%27%5D.%0A%09%20%20%20%20li%20%0A%09%09with%3A%20each%3B%0A%09%09onClick%3A%20%5Bself%20selectProtocol%3A%20each%5D%5D%5D'),
1630
+ messageSends: ["contents:", "do:", "protocols", "li", "ifTrue:", unescape("%3D"), "class:", "with:", "onClick:", "selectProtocol:"],
1631
+ referencedClasses: []
1632
+ }),
1633
+ smalltalk.Browser);
1634
+
1635
+ smalltalk.addMethod(
1636
+ '_updateMethodsList',
1637
+ smalltalk.method({
1638
+ selector: 'updateMethodsList',
1639
+ category: 'updating',
1640
+ fn: function (){
1641
+ var self=this;
1642
+ smalltalk.send(self['@methodsList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_methods", []), "_do_", [(function(each){var li=nil;
1643
+ li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedMethod'], "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(each, "_selector", [])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectMethod_", [each]);})]);})(li);})]);})]);
1644
+ return self;},
1645
+ source: unescape('updateMethodsList%0A%20%20%20%20methodsList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09self%20methods%20do%3A%20%5B%3Aeach%20%7C%7C%20li%20%7C%0A%09%20%20%20%20li%20%3A%3D%20html%20li.%0A%09%20%20%20%20selectedMethod%20%3D%20each%20ifTrue%3A%20%5B%0A%09%09li%20class%3A%20%27selected%27%5D.%0A%09%20%20%20%20li%0A%09%09with%3A%20each%20selector%3B%0A%09%09onClick%3A%20%5Bself%20selectMethod%3A%20each%5D%5D%5D'),
1646
+ messageSends: ["contents:", "do:", "methods", "li", "ifTrue:", unescape("%3D"), "class:", "with:", "selector", "onClick:", "selectMethod:"],
1647
+ referencedClasses: []
1648
+ }),
1649
+ smalltalk.Browser);
1650
+
1651
+ smalltalk.addMethod(
1652
+ '_updateTabsList',
1653
+ smalltalk.method({
1654
+ selector: 'updateTabsList',
1655
+ category: 'updating',
1656
+ fn: function (){
1657
+ var self=this;
1658
+ smalltalk.send(self['@tabsList'], "_contents_", [(function(html){var li=nil;
1659
+ li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);(function($rec){smalltalk.send($rec, "_with_", ["Instance"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", ["instance"]);})]);})(li);li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["class"]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);(function($rec){smalltalk.send($rec, "_with_", ["Class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", ["class"]);})]);})(li);li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", ["Comment"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", ["comment"]);})]);})(li);})]);
1660
+ return self;},
1661
+ source: unescape('updateTabsList%0A%20%20%20%20tabsList%20contents%3A%20%5B%3Ahtml%20%7C%7C%20li%20%7C%0A%09li%20%3A%3D%20html%20li.%0A%09selectedTab%20%3D%20%23instance%20ifTrue%3A%20%5Bli%20class%3A%20%27selected%27%5D.%0A%09li%0A%09%20%20%20%20with%3A%20%27Instance%27%3B%0A%09%20%20%20%20onClick%3A%20%5Bself%20selectTab%3A%20%23instance%5D.%0A%09li%20%3A%3D%20html%20li.%0A%09selectedTab%20%3D%20%23class%20ifTrue%3A%20%5Bli%20class%3A%20%27selected%27%5D.%0A%09li%0A%09%20%20%20%20with%3A%20%27Class%27%3B%0A%09%20%20%20%20onClick%3A%20%5Bself%20selectTab%3A%20%23class%5D.%0A%09li%20%3A%3D%20html%20li.%0A%09selectedTab%20%3D%20%23comment%20ifTrue%3A%20%5Bli%20class%3A%20%27selected%27%5D.%0A%09li%0A%09%20%20%20%20with%3A%20%27Comment%27%3B%0A%09%20%20%20%20onClick%3A%20%5Bself%20selectTab%3A%20%23comment%5D%5D'),
1662
+ messageSends: ["contents:", "li", "ifTrue:", unescape("%3D"), "class:", "with:", "onClick:", "selectTab:"],
1663
+ referencedClasses: []
1664
+ }),
1665
+ smalltalk.Browser);
1666
+
1667
+ smalltalk.addMethod(
1668
+ '_updateSourceAndButtons',
1669
+ smalltalk.method({
1670
+ selector: 'updateSourceAndButtons',
1671
+ category: 'updating',
1672
+ fn: function (){
1673
+ var self=this;
1674
+ smalltalk.send(self, "_disableSaveButton", []);
1675
+ smalltalk.send(self['@classButtons'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_with_", ["Rename class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_renameClass", []);})]);})(smalltalk.send(html, "_button", []));(function($rec){smalltalk.send($rec, "_with_", ["Remove class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_removeClass", []);})]);})(smalltalk.send(html, "_button", []));return (function($rec){smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_searchClassReferences", []);})]);})(smalltalk.send(html, "_button", []));})]);
1676
+ smalltalk.send(self['@methodButtons'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_with_", ["Remove method"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_removeMethod", []);})]);})(smalltalk.send(html, "_button", []));(function($rec){smalltalk.send($rec, "_onChange_", [(function(e, select){return smalltalk.send(self, "_setMethodProtocol_", [smalltalk.send(select, "_val", [])]);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_with_", ["Method protocol"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);})(smalltalk.send(html, "_option", []));(function($rec){smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", ["New..."]);})(smalltalk.send(html, "_option", []));return smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);})]);})]);})(smalltalk.send(html, "_select", []));return smalltalk.send(smalltalk.send(self['@selectedMethod'], "_isNil", []), "_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_onChange_", [(function(e, select){return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(select, "_val", [])]);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);})(smalltalk.send(html, "_option", []));(function($rec){smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@selectedMethod'], "_selector", [])]);})(smalltalk.send(html, "_option", []));return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedMethod'], "_messageSends", []), "_sorted", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);})]);})]);})(smalltalk.send(html, "_select", []));})]);})]);
1677
+ smalltalk.send(smalltalk.send(self['@selectedMethod'], "_isNil", []), "_ifTrue_ifFalse_", [(function(){smalltalk.send(self, "_hideMethodButtons", []);return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedClass'], "_isNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedProtocol'], "_notNil", []);})]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_hideClassButtons", []);}), (function(){return smalltalk.send(self, "_showClassButtons", []);})]);}), (function(){smalltalk.send(self, "_hideClassButtons", []);return smalltalk.send(self, "_showMethodButtons", []);})]);
1678
+ smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(self, "_source", [])]);
1679
+ return self;},
1680
+ source: unescape('updateSourceAndButtons%0A%09self%20disableSaveButton.%0A%09classButtons%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09html%20button%0A%09%09%09with%3A%20%27Rename%20class%27%3B%0A%09%09%09onClick%3A%20%5Bself%20renameClass%5D.%0A%09%09html%20button%0A%09%09%09with%3A%20%27Remove%20class%27%3B%0A%09%09%09onClick%3A%20%5Bself%20removeClass%5D.%0A%09%09html%20button%0A%09%09%09with%3A%20%27References%27%3B%0A%09%09%09onClick%3A%20%5Bself%20searchClassReferences%5D%5D.%0A%09methodButtons%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09html%20button%0A%09%09%09with%3A%20%27Remove%20method%27%3B%0A%09%09%09onClick%3A%20%5Bself%20removeMethod%5D.%0A%09%09html%20select%20%0A%09%20%20%20%20%09%09onChange%3A%20%5B%3Ae%20%3Aselect%20%7C%20self%20setMethodProtocol%3A%20select%20val%5D%3B%0A%09%20%20%20%20%09%09with%3A%20%5B%0A%09%09%09%09html%20option%0A%09%09%20%20%20%20%09%09%09with%3A%20%27Method%20protocol%27%3B%0A%09%09%09%09%09at%3A%20%27disabled%27%20put%3A%20%27disabled%27.%0A%09%09%09%09html%20option%0A%09%09%20%20%20%20%09%09%09class%3A%20%27important%27%3B%0A%09%09%20%20%20%20%09%09%09with%3A%20%27New...%27.%0A%09%09%09%09self%20protocols%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%20%20%20%20%09%09%09html%20option%20with%3A%20each%5D%5D.%0A%09%09selectedMethod%20isNil%20ifFalse%3A%20%5B%0A%09%09%09html%20select%20%0A%09%20%20%20%20%09%09%09onChange%3A%20%5B%3Ae%20%3Aselect%20%7C%20self%20searchReferencesOf%3A%20select%20val%5D%3B%0A%09%20%20%20%20%09%09%09with%3A%20%5B%0A%09%09%09%09%09html%20option%0A%09%09%20%20%20%20%09%09%09%09with%3A%20%27References%27%3B%0A%09%09%09%09%09%09at%3A%20%27disabled%27%20put%3A%20%27disabled%27.%0A%09%09%09%09%09html%20option%0A%09%09%20%20%20%20%09%09%09%09class%3A%20%27important%27%3B%0A%09%09%20%20%20%20%09%09%09%09with%3A%20selectedMethod%20selector.%0A%09%09%09%09%09selectedMethod%20messageSends%20sorted%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%20%20%20%20%09%09%09%09html%20option%20with%3A%20each%5D%5D%5D%5D.%0A%20%20%20%20%09selectedMethod%20isNil%0A%09%09ifTrue%3A%20%5B%0A%09%20%20%20%20%09%09self%20hideMethodButtons.%0A%09%20%20%20%20%09%09%09%28selectedClass%20isNil%20or%3A%20%5BselectedProtocol%20notNil%5D%29%0A%09%09%09%09%09ifTrue%3A%20%5Bself%20hideClassButtons%5D%0A%09%20%20%20%20%09%09%09%09ifFalse%3A%20%5Bself%20showClassButtons%5D%5D%0A%09%09ifFalse%3A%20%5B%0A%09%20%20%20%20%09%09self%20hideClassButtons.%0A%09%20%20%20%20%09%09self%20showMethodButtons%5D.%0A%20%20%20%20%09sourceArea%20val%3A%20self%20source'),
1681
+ messageSends: ["disableSaveButton", "contents:", "with:", "onClick:", "renameClass", "button", "removeClass", "searchClassReferences", "removeMethod", "onChange:", "setMethodProtocol:", "val", "at:put:", "option", "class:", "do:", "protocols", "select", "ifFalse:", "isNil", "searchReferencesOf:", "selector", "sorted", "messageSends", "ifTrue:ifFalse:", "hideMethodButtons", "or:", "notNil", "hideClassButtons", "showClassButtons", "showMethodButtons", "val:", "source"],
1682
+ referencedClasses: []
1683
+ }),
1684
+ smalltalk.Browser);
1685
+
1686
+ smalltalk.addMethod(
1687
+ '_updateStatus',
1688
+ smalltalk.method({
1689
+ selector: 'updateStatus',
1690
+ category: 'updating',
1691
+ fn: function (){
1692
+ var self=this;
1693
+ smalltalk.send(smalltalk.send(smalltalk.send(self['@sourceArea'], "_val", []), "__eq", [smalltalk.send(self, "_source", [])]), "_ifTrue_ifFalse_", [(function(){smalltalk.send(self['@saveButton'], "_ifNotNil_", [(function(){return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);})]);return self['@unsavedChanges']=false;}), (function(){smalltalk.send(self['@saveButton'], "_ifNotNil_", [(function(){return smalltalk.send(self['@saveButton'], "_removeAt_", ["disabled"]);})]);return self['@unsavedChanges']=true;})]);
1694
+ return self;},
1695
+ source: unescape('updateStatus%0A%09sourceArea%20val%20%3D%20self%20source%0A%09%09ifTrue%3A%20%5B%0A%09%09%09saveButton%20ifNotNil%3A%20%5B%0A%09%09%09%09saveButton%20at%3A%20%27disabled%27%20put%3A%20true%5D.%0A%20%20%20%20%09%09%09unsavedChanges%20%3A%3D%20false%5D%0A%09%09ifFalse%3A%20%5B%0A%09%09%09saveButton%20ifNotNil%3A%20%5B%0A%20%20%20%20%09%09%09%09saveButton%20removeAt%3A%20%27disabled%27%5D.%0A%20%20%20%20%09%09%09unsavedChanges%20%3A%3D%20true%5D'),
1696
+ messageSends: ["ifTrue:ifFalse:", unescape("%3D"), "val", "source", "ifNotNil:", "at:put:", "removeAt:"],
1697
+ referencedClasses: []
1698
+ }),
1699
+ smalltalk.Browser);
1700
+
1701
+ smalltalk.addMethod(
1702
+ '_resetClassesList',
1703
+ smalltalk.method({
1704
+ selector: 'resetClassesList',
1705
+ category: 'updating',
1706
+ fn: function (){
1707
+ var self=this;
1708
+ smalltalk.send(self['@classesList'], "_resetNodes", []);
1709
+ return self;},
1710
+ source: unescape('resetClassesList%0A%09classesList%20resetNodes'),
1711
+ messageSends: ["resetNodes"],
1712
+ referencedClasses: []
1713
+ }),
1714
+ smalltalk.Browser);
1715
+
1716
+
1717
+ smalltalk.addMethod(
1718
+ '_commitPathJs',
1719
+ smalltalk.method({
1720
+ selector: 'commitPathJs',
1721
+ category: 'accessing',
1722
+ fn: function (){
1723
+ var self=this;
1724
+ return "jtalk";
1725
+ return self;},
1726
+ source: unescape('commitPathJs%0A%09%5E%27jtalk%27'),
1727
+ messageSends: [],
1728
+ referencedClasses: []
1729
+ }),
1730
+ smalltalk.Browser.klass);
1731
+
1732
+ smalltalk.addMethod(
1733
+ '_commitPathSt',
1734
+ smalltalk.method({
1735
+ selector: 'commitPathSt',
1736
+ category: 'accessing',
1737
+ fn: function (){
1738
+ var self=this;
1739
+ return "smalltalk";
1740
+ return self;},
1741
+ source: unescape('commitPathSt%0A%09%5E%27smalltalk%27'),
1742
+ messageSends: [],
1743
+ referencedClasses: []
1744
+ }),
1745
+ smalltalk.Browser.klass);
1746
+
1747
+ smalltalk.addMethod(
1748
+ '_openOn_',
1749
+ smalltalk.method({
1750
+ selector: 'openOn:',
1751
+ category: 'convenience',
1752
+ fn: function (aClass){
1753
+ var self=this;
1754
+ return (function($rec){smalltalk.send($rec, "_open", []);smalltalk.send($rec, "_selectCategory_", [smalltalk.send(aClass, "_category", [])]);return smalltalk.send($rec, "_selectClass_", [aClass]);})(smalltalk.send(self, "_new", []));
1755
+ return self;},
1756
+ source: unescape('openOn%3A%20aClass%0A%20%20%20%20%5Eself%20new%0A%09open%3B%0A%09selectCategory%3A%20aClass%20category%3B%0A%09selectClass%3A%20aClass'),
1757
+ messageSends: ["open", "selectCategory:", "category", "selectClass:", "new"],
1758
+ referencedClasses: []
1759
+ }),
1760
+ smalltalk.Browser.klass);
1761
+
1762
+ smalltalk.addMethod(
1763
+ '_open',
1764
+ smalltalk.method({
1765
+ selector: 'open',
1766
+ category: 'convenience',
1767
+ fn: function (){
1768
+ var self=this;
1769
+ smalltalk.send(smalltalk.send(self, "_new", []), "_open", []);
1770
+ return self;},
1771
+ source: unescape('open%0A%20%20%20%20self%20new%20open'),
1772
+ messageSends: ["open", "new"],
1773
+ referencedClasses: []
1774
+ }),
1775
+ smalltalk.Browser.klass);
1776
+
1777
+
1778
+ smalltalk.addClass('Inspector', smalltalk.TabWidget, ['label', 'variables', 'object', 'selectedVariable', 'variablesList', 'valueTextarea', 'workspaceTextarea', 'diveButton'], 'IDE');
1779
+ smalltalk.addMethod(
1780
+ '_label',
1781
+ smalltalk.method({
1782
+ selector: 'label',
1783
+ category: 'accessing',
1784
+ fn: function (){
1785
+ var self=this;
1786
+ return smalltalk.send(self['@label'], "_ifNil_", [(function(){return unescape("Inspector%20%28nil%29");})]);
1787
+ return self;},
1788
+ source: unescape('label%0A%09%5Elabel%20ifNil%3A%20%5B%27Inspector%20%28nil%29%27%5D'),
1789
+ messageSends: ["ifNil:"],
1790
+ referencedClasses: []
1791
+ }),
1792
+ smalltalk.Inspector);
1793
+
1794
+ smalltalk.addMethod(
1795
+ '_variables',
1796
+ smalltalk.method({
1797
+ selector: 'variables',
1798
+ category: 'accessing',
1799
+ fn: function (){
1800
+ var self=this;
1801
+ return self['@variables'];
1802
+ return self;},
1803
+ source: unescape('variables%0A%09%5Evariables'),
1804
+ messageSends: [],
1805
+ referencedClasses: []
1806
+ }),
1807
+ smalltalk.Inspector);
1808
+
1809
+ smalltalk.addMethod(
1810
+ '_setVariables_',
1811
+ smalltalk.method({
1812
+ selector: 'setVariables:',
1813
+ category: 'accessing',
1814
+ fn: function (aCollection){
1815
+ var self=this;
1816
+ self['@variables']=aCollection;
1817
+ return self;},
1818
+ source: unescape('setVariables%3A%20aCollection%0A%09variables%20%3A%3D%20aCollection'),
1819
+ messageSends: [],
1820
+ referencedClasses: []
1821
+ }),
1822
+ smalltalk.Inspector);
1823
+
1824
+ smalltalk.addMethod(
1825
+ '_setLabel_',
1826
+ smalltalk.method({
1827
+ selector: 'setLabel:',
1828
+ category: 'accessing',
1829
+ fn: function (aString){
1830
+ var self=this;
1831
+ self['@label']=aString;
1832
+ return self;},
1833
+ source: unescape('setLabel%3A%20aString%0A%09label%20%3A%3D%20aString'),
1834
+ messageSends: [],
1835
+ referencedClasses: []
1836
+ }),
1837
+ smalltalk.Inspector);
1838
+
1839
+ smalltalk.addMethod(
1840
+ '_selectedVariable',
1841
+ smalltalk.method({
1842
+ selector: 'selectedVariable',
1843
+ category: 'accessing',
1844
+ fn: function (){
1845
+ var self=this;
1846
+ return self['@selectedVariable'];
1847
+ return self;},
1848
+ source: unescape('selectedVariable%0A%09%5EselectedVariable'),
1849
+ messageSends: [],
1850
+ referencedClasses: []
1851
+ }),
1852
+ smalltalk.Inspector);
1853
+
1854
+ smalltalk.addMethod(
1855
+ '_selectedVariable_',
1856
+ smalltalk.method({
1857
+ selector: 'selectedVariable:',
1858
+ category: 'accessing',
1859
+ fn: function (aString){
1860
+ var self=this;
1861
+ self['@selectedVariable']=aString;
1862
+ return self;},
1863
+ source: unescape('selectedVariable%3A%20aString%0A%09selectedVariable%20%3A%3D%20aString'),
1864
+ messageSends: [],
1865
+ referencedClasses: []
1866
+ }),
1867
+ smalltalk.Inspector);
1868
+
1869
+ smalltalk.addMethod(
1870
+ '_inspect_',
1871
+ smalltalk.method({
1872
+ selector: 'inspect:',
1873
+ category: 'actions',
1874
+ fn: function (anObject){
1875
+ var self=this;
1876
+ self['@object']=anObject;
1877
+ self['@variables']=[];
1878
+ smalltalk.send(self['@object'], "_inspectOn_", [self]);
1879
+ return self;},
1880
+ source: unescape('inspect%3A%20anObject%0A%09object%20%3A%3D%20anObject.%0A%09variables%20%3A%3D%20%23%28%29.%0A%09object%20inspectOn%3A%20self'),
1881
+ messageSends: ["inspectOn:"],
1882
+ referencedClasses: []
1883
+ }),
1884
+ smalltalk.Inspector);
1885
+
1886
+ smalltalk.addMethod(
1887
+ '_dive',
1888
+ smalltalk.method({
1889
+ selector: 'dive',
1890
+ category: 'actions',
1891
+ fn: function (){
1892
+ var self=this;
1893
+ smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_inspect", []);
1894
+ return self;},
1895
+ source: unescape('dive%0A%09%28self%20variables%20at%3A%20self%20selectedVariable%29%20inspect'),
1896
+ messageSends: ["inspect", "at:", "variables", "selectedVariable"],
1897
+ referencedClasses: []
1898
+ }),
1899
+ smalltalk.Inspector);
1900
+
1901
+ smalltalk.addMethod(
1902
+ '_refresh',
1903
+ smalltalk.method({
1904
+ selector: 'refresh',
1905
+ category: 'actions',
1906
+ fn: function (){
1907
+ var self=this;
1908
+ (function($rec){smalltalk.send($rec, "_inspect_", [self['@object']]);smalltalk.send($rec, "_updateVariablesList", []);return smalltalk.send($rec, "_updateValueTextarea", []);})(self);
1909
+ return self;},
1910
+ source: unescape('refresh%0A%09self%20%0A%09%09inspect%3A%20object%3B%20%0A%09%09updateVariablesList%3B%0A%09%09updateValueTextarea'),
1911
+ messageSends: ["inspect:", "updateVariablesList", "updateValueTextarea"],
1912
+ referencedClasses: []
1913
+ }),
1914
+ smalltalk.Inspector);
1915
+
1916
+ smalltalk.addMethod(
1917
+ '_renderBoxOn_',
1918
+ smalltalk.method({
1919
+ selector: 'renderBoxOn:',
1920
+ category: 'rendering',
1921
+ fn: function (html){
1922
+ var self=this;
1923
+ (function($rec){smalltalk.send($rec, "_renderTopPanelOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);})(self);
1924
+ return self;},
1925
+ source: unescape('renderBoxOn%3A%20html%0A%09self%20%0A%09%09renderTopPanelOn%3A%20html%3B%0A%09%09renderBottomPanelOn%3A%20html'),
1926
+ messageSends: ["renderTopPanelOn:", "renderBottomPanelOn:"],
1927
+ referencedClasses: []
1928
+ }),
1929
+ smalltalk.Inspector);
1930
+
1931
+ smalltalk.addMethod(
1932
+ '_renderTopPanelOn_',
1933
+ smalltalk.method({
1934
+ selector: 'renderTopPanelOn:',
1935
+ category: 'rendering',
1936
+ fn: function (html){
1937
+ var self=this;
1938
+ (function($rec){smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [(function(){self['@variablesList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column variables"]);self['@valueTextarea']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column value"]);return smalltalk.send($rec, "_at_put_", ["readonly", "readonly"]);})(smalltalk.send(html, "_textarea", []));(function($rec){smalltalk.send($rec, "_updateVariablesList", []);return smalltalk.send($rec, "_updateValueTextarea", []);})(self);return smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["jt_clear"]);})]);})(smalltalk.send(html, "_div", []));
1939
+ return self;},
1940
+ source: unescape('renderTopPanelOn%3A%20html%0A%20%20%20%20html%20div%20%0A%09class%3A%20%27top%27%3B%20%0A%09with%3A%20%5B%0A%09%20%20%20%20variablesList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20variables%27.%0A%09%20%20%20%20valueTextarea%20%3A%3D%20html%20textarea%20class%3A%20%27jt_column%20value%27%3B%20at%3A%20%27readonly%27%20put%3A%20%27readonly%27.%0A%09%20%20%20%20self%0A%09%09updateVariablesList%3B%0A%09%09updateValueTextarea.%0A%09%20%20%20%20html%20div%20class%3A%20%27jt_clear%27%5D'),
1941
+ messageSends: ["class:", "with:", "ul", "at:put:", "textarea", "updateVariablesList", "updateValueTextarea", "div"],
1942
+ referencedClasses: []
1943
+ }),
1944
+ smalltalk.Inspector);
1945
+
1946
+ smalltalk.addMethod(
1947
+ '_renderBottomPanelOn_',
1948
+ smalltalk.method({
1949
+ selector: 'renderBottomPanelOn:',
1950
+ category: 'rendering',
1951
+ fn: function (html){
1952
+ var self=this;
1953
+ (function($rec){smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [(function(){self['@workspaceTextarea']=(function($rec){smalltalk.send($rec, "_class_", ["source"]);return smalltalk.send($rec, "_at_put_", ["spellcheck", "false"]);})(smalltalk.send(html, "_textarea", []));return smalltalk.send(smalltalk.send(self['@workspaceTextarea'], "_asJQuery", []), "_call_", ["tabby"]);})]);})(smalltalk.send(html, "_div", []));
1954
+ return self;},
1955
+ source: unescape('renderBottomPanelOn%3A%20html%0A%20%20%20%20html%20div%0A%09class%3A%20%27jt_sourceCode%27%3B%0A%09with%3A%20%5B%0A%09%20%20%20%20workspaceTextarea%20%3A%3D%20html%20textarea%20%0A%09%09class%3A%20%27source%27%3B%0A%09%09at%3A%20%27spellcheck%27%20put%3A%20%27false%27.%0A%09%20%20%20%20workspaceTextarea%20asJQuery%20call%3A%20%27tabby%27%5D'),
1956
+ messageSends: ["class:", "with:", "at:put:", "textarea", "call:", "asJQuery", "div"],
1957
+ referencedClasses: []
1958
+ }),
1959
+ smalltalk.Inspector);
1960
+
1961
+ smalltalk.addMethod(
1962
+ '_renderButtonsOn_',
1963
+ smalltalk.method({
1964
+ selector: 'renderButtonsOn:',
1965
+ category: 'rendering',
1966
+ fn: function (html){
1967
+ var self=this;
1968
+ (function($rec){smalltalk.send($rec, "_with_", ["Refresh"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_refresh", []);})]);})(smalltalk.send(html, "_button", []));
1969
+ self['@diveButton']=(function($rec){smalltalk.send($rec, "_with_", ["Dive"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_dive", []);})]);})(smalltalk.send(html, "_button", []));
1970
+ smalltalk.send(self, "_updateButtons", []);
1971
+ return self;},
1972
+ source: unescape('renderButtonsOn%3A%20html%0A%09html%20button%0A%09%09with%3A%20%27Refresh%27%3B%0A%09%09onClick%3A%20%5Bself%20refresh%5D.%0A%09diveButton%20%3A%3D%20html%20button%20%0A%09%09with%3A%20%27Dive%27%3B%20%0A%09%09onClick%3A%20%5Bself%20dive%5D.%0A%09self%20updateButtons'),
1973
+ messageSends: ["with:", "onClick:", "refresh", "button", "dive", "updateButtons"],
1974
+ referencedClasses: []
1975
+ }),
1976
+ smalltalk.Inspector);
1977
+
1978
+ smalltalk.addMethod(
1979
+ '_canBeClosed',
1980
+ smalltalk.method({
1981
+ selector: 'canBeClosed',
1982
+ category: 'testing',
1983
+ fn: function (){
1984
+ var self=this;
1985
+ return true;
1986
+ return self;},
1987
+ source: unescape('canBeClosed%0A%09%5Etrue'),
1988
+ messageSends: [],
1989
+ referencedClasses: []
1990
+ }),
1991
+ smalltalk.Inspector);
1992
+
1993
+ smalltalk.addMethod(
1994
+ '_updateVariablesList',
1995
+ smalltalk.method({
1996
+ selector: 'updateVariablesList',
1997
+ category: 'updating',
1998
+ fn: function (){
1999
+ var self=this;
2000
+ smalltalk.send(self['@variablesList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_keys", []), "_do_", [(function(each){var li=nil;
2001
+ li=smalltalk.send(html, "_li", []);(function($rec){smalltalk.send($rec, "_with_", [each]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectVariable_", [each]);})]);})(li);return smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);})]);})]);
2002
+ return self;},
2003
+ source: unescape('updateVariablesList%0A%09variablesList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09self%20variables%20keys%20do%3A%20%5B%3Aeach%20%7C%7C%20li%20%7C%0A%09%09%09li%20%3A%3D%20html%20li.%0A%09%09%09li%0A%09%09%09%09with%3A%20each%3B%0A%09%09%09%09onClick%3A%20%5Bself%20selectVariable%3A%20each%5D.%0A%09%09%09self%20selectedVariable%20%3D%20each%20ifTrue%3A%20%5B%0A%09%09%09%09li%20class%3A%20%27selected%27%5D%5D%5D'),
2004
+ messageSends: ["contents:", "do:", "keys", "variables", "li", "with:", "onClick:", "selectVariable:", "ifTrue:", unescape("%3D"), "selectedVariable", "class:"],
2005
+ referencedClasses: []
2006
+ }),
2007
+ smalltalk.Inspector);
2008
+
2009
+ smalltalk.addMethod(
2010
+ '_selectVariable_',
2011
+ smalltalk.method({
2012
+ selector: 'selectVariable:',
2013
+ category: 'updating',
2014
+ fn: function (aString){
2015
+ var self=this;
2016
+ smalltalk.send(self, "_selectedVariable_", [aString]);
2017
+ (function($rec){smalltalk.send($rec, "_updateVariablesList", []);smalltalk.send($rec, "_updateValueTextarea", []);return smalltalk.send($rec, "_updateButtons", []);})(self);
2018
+ return self;},
2019
+ source: unescape('selectVariable%3A%20aString%0A%09self%20selectedVariable%3A%20aString.%0A%09self%20%0A%09%09updateVariablesList%3B%0A%09%09updateValueTextarea%3B%0A%09%09updateButtons'),
2020
+ messageSends: ["selectedVariable:", "updateVariablesList", "updateValueTextarea", "updateButtons"],
2021
+ referencedClasses: []
2022
+ }),
2023
+ smalltalk.Inspector);
2024
+
2025
+ smalltalk.addMethod(
2026
+ '_updateValueTextarea',
2027
+ smalltalk.method({
2028
+ selector: 'updateValueTextarea',
2029
+ category: 'updating',
2030
+ fn: function (){
2031
+ var self=this;
2032
+ smalltalk.send(smalltalk.send(self['@valueTextarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "_isNil", []), "_ifTrue_ifFalse_", [(function(){return "";}), (function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_printString", []);})])]);
2033
+ return self;},
2034
+ source: unescape('updateValueTextarea%0A%09valueTextarea%20asJQuery%20val%3A%20%28self%20selectedVariable%20isNil%0A%09%09ifTrue%3A%20%5B%27%27%5D%0A%09%09ifFalse%3A%20%5B%28self%20variables%20at%3A%20self%20selectedVariable%29%20printString%5D%29'),
2035
+ messageSends: ["val:", "asJQuery", "ifTrue:ifFalse:", "isNil", "selectedVariable", "printString", "at:", "variables"],
2036
+ referencedClasses: []
2037
+ }),
2038
+ smalltalk.Inspector);
2039
+
2040
+ smalltalk.addMethod(
2041
+ '_updateButtons',
2042
+ smalltalk.method({
2043
+ selector: 'updateButtons',
2044
+ category: 'updating',
2045
+ fn: function (){
2046
+ var self=this;
2047
+ smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "_notNil", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_notNil", []);})]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self['@diveButton'], "_at_put_", ["disabled", true]);}), (function(){return smalltalk.send(self['@diveButton'], "_removeAt_", ["disabled"]);})]);
2048
+ return self;},
2049
+ source: unescape('updateButtons%0A%09%28self%20selectedVariable%20notNil%20and%3A%20%5B%28self%20variables%20at%3A%20self%20selectedVariable%29%20notNil%5D%29%0A%09%09ifFalse%3A%20%5BdiveButton%20at%3A%20%27disabled%27%20put%3A%20true%5D%20%0A%09%09ifTrue%3A%20%5BdiveButton%20removeAt%3A%20%27disabled%27%5D'),
2050
+ messageSends: ["ifFalse:ifTrue:", "and:", "notNil", "selectedVariable", "at:", "variables", "at:put:", "removeAt:"],
2051
+ referencedClasses: []
2052
+ }),
2053
+ smalltalk.Inspector);
2054
+
2055
+
2056
+ smalltalk.addMethod(
2057
+ '_on_',
2058
+ smalltalk.method({
2059
+ selector: 'on:',
2060
+ category: 'instance creation',
2061
+ fn: function (anObject){
2062
+ var self=this;
2063
+ return (function($rec){smalltalk.send($rec, "_inspect_", [anObject]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
2064
+ return self;},
2065
+ source: unescape('on%3A%20anObject%0A%09%5Eself%20new%0A%09%09inspect%3A%20anObject%3B%0A%09%09yourself'),
2066
+ messageSends: ["inspect:", "yourself", "new"],
2067
+ referencedClasses: []
2068
+ }),
2069
+ smalltalk.Inspector.klass);
2070
+
2071
+
2072
+ smalltalk.addClass('ReferencesBrowser', smalltalk.TabWidget, ['implementors', 'senders', 'implementorsList', 'input', 'timer', 'selector', 'sendersList', 'referencedClasses', 'referencedClassesList'], 'IDE');
2073
+ smalltalk.addMethod(
2074
+ '_implementors',
2075
+ smalltalk.method({
2076
+ selector: 'implementors',
2077
+ category: 'accessing',
2078
+ fn: function (){
2079
+ var self=this;
2080
+ return smalltalk.send(self['@implementors'], "_ifNil_", [(function(){return self['@implementors']=smalltalk.send(smalltalk.Array, "_new", []);})]);
2081
+ return self;},
2082
+ source: unescape('implementors%0A%09%5Eimplementors%20ifNil%3A%20%5Bimplementors%20%3A%3D%20Array%20new%5D'),
2083
+ messageSends: ["ifNil:", "new"],
2084
+ referencedClasses: [smalltalk.Array]
2085
+ }),
2086
+ smalltalk.ReferencesBrowser);
2087
+
2088
+ smalltalk.addMethod(
2089
+ '_label',
2090
+ smalltalk.method({
2091
+ selector: 'label',
2092
+ category: 'accessing',
2093
+ fn: function (){
2094
+ var self=this;
2095
+ return unescape("%5BReferencesBrowser%5D");
2096
+ return self;},
2097
+ source: unescape('label%0A%09%5E%27%5BReferencesBrowser%5D%27'),
2098
+ messageSends: [],
2099
+ referencedClasses: []
2100
+ }),
2101
+ smalltalk.ReferencesBrowser);
2102
+
2103
+ smalltalk.addMethod(
2104
+ '_selector',
2105
+ smalltalk.method({
2106
+ selector: 'selector',
2107
+ category: 'accessing',
2108
+ fn: function (){
2109
+ var self=this;
2110
+ return self['@selector'];
2111
+ return self;},
2112
+ source: unescape('selector%0A%09%5Eselector'),
2113
+ messageSends: [],
2114
+ referencedClasses: []
2115
+ }),
2116
+ smalltalk.ReferencesBrowser);
2117
+
2118
+ smalltalk.addMethod(
2119
+ '_senders',
2120
+ smalltalk.method({
2121
+ selector: 'senders',
2122
+ category: 'accessing',
2123
+ fn: function (){
2124
+ var self=this;
2125
+ return smalltalk.send(self['@senders'], "_ifNil_", [(function(){return self['@senders']=smalltalk.send(smalltalk.Array, "_new", []);})]);
2126
+ return self;},
2127
+ source: unescape('senders%0A%09%5Esenders%20ifNil%3A%20%5Bsenders%20%3A%3D%20Array%20new%5D'),
2128
+ messageSends: ["ifNil:", "new"],
2129
+ referencedClasses: [smalltalk.Array]
2130
+ }),
2131
+ smalltalk.ReferencesBrowser);
2132
+
2133
+ smalltalk.addMethod(
2134
+ '_classesAndMetaclasses',
2135
+ smalltalk.method({
2136
+ selector: 'classesAndMetaclasses',
2137
+ category: 'accessing',
2138
+ fn: function (){
2139
+ var self=this;
2140
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]);
2141
+ return self;},
2142
+ source: unescape('classesAndMetaclasses%0A%09%5ESmalltalk%20current%20classes%2C%20%28Smalltalk%20current%20classes%20collect%3A%20%5B%3Aeach%20%7C%20each%20class%5D%29'),
2143
+ messageSends: [unescape("%2C"), "classes", "current", "collect:", "class"],
2144
+ referencedClasses: [smalltalk.Smalltalk]
2145
+ }),
2146
+ smalltalk.ReferencesBrowser);
2147
+
2148
+ smalltalk.addMethod(
2149
+ '_referencedClasses',
2150
+ smalltalk.method({
2151
+ selector: 'referencedClasses',
2152
+ category: 'accessing',
2153
+ fn: function (){
2154
+ var self=this;
2155
+ return smalltalk.send(self['@referencedClasses'], "_ifNil_", [(function(){return self['@referencedClasses']=smalltalk.send(smalltalk.Array, "_new", []);})]);
2156
+ return self;},
2157
+ source: unescape('referencedClasses%0A%09%5EreferencedClasses%20ifNil%3A%20%5BreferencedClasses%20%3A%3D%20Array%20new%5D'),
2158
+ messageSends: ["ifNil:", "new"],
2159
+ referencedClasses: [smalltalk.Array]
2160
+ }),
2161
+ smalltalk.ReferencesBrowser);
2162
+
2163
+ smalltalk.addMethod(
2164
+ '_openBrowserOn_',
2165
+ smalltalk.method({
2166
+ selector: 'openBrowserOn:',
2167
+ category: 'actions',
2168
+ fn: function (aMethod){
2169
+ var self=this;
2170
+ var browser=nil;
2171
+ browser=smalltalk.send(smalltalk.Browser, "_openOn_", [smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_class", []), "_isMetaclass", []), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_instanceClass", []);}), (function(){return smalltalk.send(aMethod, "_methodClass", []);})])]);
2172
+ smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_isMetaclass", []), "_ifTrue_", [(function(){return smalltalk.send(browser, "_selectTab_", ["class"]);})]);
2173
+ (function($rec){smalltalk.send($rec, "_selectProtocol_", [smalltalk.send(aMethod, "_category", [])]);return smalltalk.send($rec, "_selectMethod_", [aMethod]);})(browser);
2174
+ return self;},
2175
+ source: unescape('openBrowserOn%3A%20aMethod%0A%20%20%20%20%20%20%20%7C%20browser%20%7C%0A%20%20%20%20%20%20%20browser%20%3A%3D%20Browser%20openOn%3A%20%28aMethod%20class%20isMetaclass%20%0A%09%09ifTrue%3A%20%5BaMethod%20methodClass%20instanceClass%5D%20ifFalse%3A%20%5BaMethod%20methodClass%5D%29.%0A%20%20%20%20%20%20%20aMethod%20methodClass%20isMetaclass%20ifTrue%3A%20%5Bbrowser%20selectTab%3A%20%23class%5D.%0A%20%20%20%20%20%20%20browser%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20selectProtocol%3A%20aMethod%20category%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20selectMethod%3A%20aMethod'),
2176
+ messageSends: ["openOn:", "ifTrue:ifFalse:", "isMetaclass", "class", "instanceClass", "methodClass", "ifTrue:", "selectTab:", "selectProtocol:", "category", "selectMethod:"],
2177
+ referencedClasses: [smalltalk.Browser]
2178
+ }),
2179
+ smalltalk.ReferencesBrowser);
2180
+
2181
+ smalltalk.addMethod(
2182
+ '_searchReferencesFor_',
2183
+ smalltalk.method({
2184
+ selector: 'searchReferencesFor:',
2185
+ category: 'actions',
2186
+ fn: function (aString){
2187
+ var self=this;
2188
+ self['@selector']=aString;
2189
+ self['@implementors']=smalltalk.send(smalltalk.Array, "_new", []);
2190
+ self['@senders']=smalltalk.send(smalltalk.Array, "_new", []);
2191
+ self['@referencedClasses']=smalltalk.send(smalltalk.Array, "_new", []);
2192
+ smalltalk.send(smalltalk.send(self['@selector'], "_match_", [unescape("%5E%5BA-Z%5D")]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_searchSelectorReferencesFor_", [self['@selector']]);}), (function(){return smalltalk.send(self, "_searchReferencedClassesFor_", [self['@selector']]);})]);
2193
+ return self;},
2194
+ source: unescape('searchReferencesFor%3A%20aString%0A%09selector%20%3A%3D%20aString.%0A%09implementors%20%3A%3D%20Array%20new.%0A%09senders%20%3A%3D%20Array%20new.%0A%09referencedClasses%20%3A%3D%20Array%20new.%0A%09%28selector%20match%3A%20%27%5E%5BA-Z%5D%27%29%20%0A%09%09ifFalse%3A%20%5Bself%20searchSelectorReferencesFor%3A%20selector%5D%0A%09%09ifTrue%3A%20%5Bself%20searchReferencedClassesFor%3A%20selector%5D'),
2195
+ messageSends: ["new", "ifFalse:ifTrue:", "match:", "searchSelectorReferencesFor:", "searchReferencedClassesFor:"],
2196
+ referencedClasses: [smalltalk.Array]
2197
+ }),
2198
+ smalltalk.ReferencesBrowser);
2199
+
2200
+ smalltalk.addMethod(
2201
+ '_search_',
2202
+ smalltalk.method({
2203
+ selector: 'search:',
2204
+ category: 'actions',
2205
+ fn: function (aString){
2206
+ var self=this;
2207
+ (function($rec){smalltalk.send($rec, "_searchReferencesFor_", [aString]);smalltalk.send($rec, "_updateImplementorsList", []);smalltalk.send($rec, "_updateSendersList", []);return smalltalk.send($rec, "_updateReferencedClassesList", []);})(self);
2208
+ return self;},
2209
+ source: unescape('search%3A%20aString%0A%09self%20%0A%09%09searchReferencesFor%3A%20aString%3B%0A%09%09updateImplementorsList%3B%0A%09%09updateSendersList%3B%0A%09%09updateReferencedClassesList'),
2210
+ messageSends: ["searchReferencesFor:", "updateImplementorsList", "updateSendersList", "updateReferencedClassesList"],
2211
+ referencedClasses: []
2212
+ }),
2213
+ smalltalk.ReferencesBrowser);
2214
+
2215
+ smalltalk.addMethod(
2216
+ '_searchReferencedClassesFor_',
2217
+ smalltalk.method({
2218
+ selector: 'searchReferencedClassesFor:',
2219
+ category: 'actions',
2220
+ fn: function (aString){
2221
+ var self=this;
2222
+ smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_values", []), "_do_", [(function(value){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(value, "_referencedClasses", []), "_select_", [(function(each){return smalltalk.send(each, "_notNil", []);})]), "_collect_", [(function(each){return smalltalk.send(each, "_name", []);})]), "_includes_", [self['@selector']]), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_add_", [value]);})]);})]);})]);
2223
+ return self;},
2224
+ source: unescape('searchReferencedClassesFor%3A%20aString%0A%09self%20classesAndMetaclasses%20do%3A%20%5B%3Aeach%20%7C%0A%09%09each%20methodDictionary%20values%20do%3A%20%5B%3Avalue%20%7C%0A%09%09%09%28%28%28value%20referencedClasses%20select%3A%20%5B%3Aeach%20%7C%20each%20notNil%5D%29collect%3A%20%5B%3Aeach%20%7C%20each%20name%5D%29%20includes%3A%20selector%29%20ifTrue%3A%20%5B%0A%09%09%09%09self%20referencedClasses%20add%3A%20value%5D%5D%5D'),
2225
+ messageSends: ["do:", "classesAndMetaclasses", "values", "methodDictionary", "ifTrue:", "includes:", "collect:", "select:", "referencedClasses", "notNil", "name", "add:"],
2226
+ referencedClasses: []
2227
+ }),
2228
+ smalltalk.ReferencesBrowser);
2229
+
2230
+ smalltalk.addMethod(
2231
+ '_searchSelectorReferencesFor_',
2232
+ smalltalk.method({
2233
+ selector: 'searchSelectorReferencesFor:',
2234
+ category: 'actions',
2235
+ fn: function (aString){
2236
+ var self=this;
2237
+ smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(smalltalk.send(key, "__eq", [self['@selector']]), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})]);})]);return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']]), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})]);})]);})]);
2238
+ return self;},
2239
+ source: unescape('searchSelectorReferencesFor%3A%20aString%0A%09self%20classesAndMetaclasses%20do%3A%20%5B%3Aeach%20%7C%20%0A%09%09each%20methodDictionary%20keysAndValuesDo%3A%20%5B%3Akey%20%3Avalue%20%7C%20%0A%09%09%09key%20%3D%20selector%20ifTrue%3A%20%5Bself%20implementors%20add%3A%20value%5D%5D.%0A%09%09each%20methodDictionary%20keysAndValuesDo%3A%20%5B%3Akey%20%3Avalue%20%7C%20%0A%09%09%09%28value%20messageSends%20includes%3A%20selector%29%20ifTrue%3A%20%5B%0A%09%09%09%09self%20senders%20add%3A%20value%5D%5D%5D'),
2240
+ messageSends: ["do:", "classesAndMetaclasses", "keysAndValuesDo:", "methodDictionary", "ifTrue:", unescape("%3D"), "add:", "implementors", "includes:", "messageSends", "senders"],
2241
+ referencedClasses: []
2242
+ }),
2243
+ smalltalk.ReferencesBrowser);
2244
+
2245
+ smalltalk.addMethod(
2246
+ '_initialize',
2247
+ smalltalk.method({
2248
+ selector: 'initialize',
2249
+ category: 'initialization',
2250
+ fn: function (){
2251
+ var self=this;
2252
+ smalltalk.send(self, "_initialize", [], smalltalk.TabWidget);
2253
+ self['@selector']="";
2254
+ return self;},
2255
+ source: unescape('initialize%0A%09super%20initialize.%0A%09selector%20%3A%3D%20%27%27'),
2256
+ messageSends: ["initialize"],
2257
+ referencedClasses: []
2258
+ }),
2259
+ smalltalk.ReferencesBrowser);
2260
+
2261
+ smalltalk.addMethod(
2262
+ '_setInputEvents',
2263
+ smalltalk.method({
2264
+ selector: 'setInputEvents',
2265
+ category: 'private',
2266
+ fn: function (){
2267
+ var self=this;
2268
+ (function($rec){smalltalk.send($rec, "_onKeyUp_", [(function(){return self['@timer']=smalltalk.send((function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);}), "_valueWithTimeout_", [(100)]);})]);return smalltalk.send($rec, "_onKeyDown_", [(function(){return smalltalk.send(self['@timer'], "_ifNotNil_", [(function(){return smalltalk.send(self['@timer'], "_clearTimeout", []);})]);})]);})(self['@input']);
2269
+ return self;},
2270
+ source: unescape('setInputEvents%0A%09input%0A%09%09onKeyUp%3A%20%5Btimer%20%3A%3D%20%5Bself%20search%3A%20input%20asJQuery%20val%5D%20valueWithTimeout%3A%20100%5D%3B%0A%09%09onKeyDown%3A%20%5Btimer%20ifNotNil%3A%20%5Btimer%20clearTimeout%5D%5D'),
2271
+ messageSends: ["onKeyUp:", "valueWithTimeout:", "search:", "val", "asJQuery", "onKeyDown:", "ifNotNil:", "clearTimeout"],
2272
+ referencedClasses: []
2273
+ }),
2274
+ smalltalk.ReferencesBrowser);
2275
+
2276
+ smalltalk.addMethod(
2277
+ '_renderBoxOn_',
2278
+ smalltalk.method({
2279
+ selector: 'renderBoxOn:',
2280
+ category: 'rendering',
2281
+ fn: function (html){
2282
+ var self=this;
2283
+ (function($rec){smalltalk.send($rec, "_renderInputOn_", [html]);smalltalk.send($rec, "_renderImplementorsOn_", [html]);smalltalk.send($rec, "_renderSendersOn_", [html]);return smalltalk.send($rec, "_renderReferencedClassesOn_", [html]);})(self);
2284
+ return self;},
2285
+ source: unescape('renderBoxOn%3A%20html%0A%09self%20%0A%09%09renderInputOn%3A%20html%3B%0A%09%09renderImplementorsOn%3A%20html%3B%0A%09%09renderSendersOn%3A%20html%3B%0A%09%09renderReferencedClassesOn%3A%20html'),
2286
+ messageSends: ["renderInputOn:", "renderImplementorsOn:", "renderSendersOn:", "renderReferencedClassesOn:"],
2287
+ referencedClasses: []
2288
+ }),
2289
+ smalltalk.ReferencesBrowser);
2290
+
2291
+ smalltalk.addMethod(
2292
+ '_renderInputOn_',
2293
+ smalltalk.method({
2294
+ selector: 'renderInputOn:',
2295
+ category: 'rendering',
2296
+ fn: function (html){
2297
+ var self=this;
2298
+ self['@input']=(function($rec){smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_input", []));
2299
+ smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val_", [self['@selector']]);
2300
+ smalltalk.send(self, "_setInputEvents", []);
2301
+ return self;},
2302
+ source: unescape('renderInputOn%3A%20html%0A%09input%20%3A%3D%20html%20input%20%0A%09%09class%3A%20%27implementors%27%3B%0A%09%09yourself.%0A%09input%20asJQuery%20val%3A%20selector.%0A%09self%20setInputEvents'),
2303
+ messageSends: ["class:", "yourself", "input", "val:", "asJQuery", "setInputEvents"],
2304
+ referencedClasses: []
2305
+ }),
2306
+ smalltalk.ReferencesBrowser);
2307
+
2308
+ smalltalk.addMethod(
2309
+ '_renderImplementorsOn_',
2310
+ smalltalk.method({
2311
+ selector: 'renderImplementorsOn:',
2312
+ category: 'rendering',
2313
+ fn: function (html){
2314
+ var self=this;
2315
+ self['@implementorsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column implementors"]);
2316
+ smalltalk.send(self, "_updateImplementorsList", []);
2317
+ return self;},
2318
+ source: unescape('renderImplementorsOn%3A%20html%0A%20%20%20%20%09implementorsList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20implementors%27.%0A%09self%20updateImplementorsList'),
2319
+ messageSends: ["class:", "ul", "updateImplementorsList"],
2320
+ referencedClasses: []
2321
+ }),
2322
+ smalltalk.ReferencesBrowser);
2323
+
2324
+ smalltalk.addMethod(
2325
+ '_renderSendersOn_',
2326
+ smalltalk.method({
2327
+ selector: 'renderSendersOn:',
2328
+ category: 'rendering',
2329
+ fn: function (html){
2330
+ var self=this;
2331
+ self['@sendersList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column senders"]);
2332
+ smalltalk.send(self, "_updateSendersList", []);
2333
+ return self;},
2334
+ source: unescape('renderSendersOn%3A%20html%0A%20%20%20%20%09sendersList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20senders%27.%0A%09self%20updateSendersList'),
2335
+ messageSends: ["class:", "ul", "updateSendersList"],
2336
+ referencedClasses: []
2337
+ }),
2338
+ smalltalk.ReferencesBrowser);
2339
+
2340
+ smalltalk.addMethod(
2341
+ '_renderReferencedClassesOn_',
2342
+ smalltalk.method({
2343
+ selector: 'renderReferencedClassesOn:',
2344
+ category: 'rendering',
2345
+ fn: function (html){
2346
+ var self=this;
2347
+ self['@referencedClassesList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column referenced_classes"]);
2348
+ smalltalk.send(self, "_updateReferencedClassesList", []);
2349
+ return self;},
2350
+ source: unescape('renderReferencedClassesOn%3A%20html%0A%20%20%20%20%09referencedClassesList%20%3A%3D%20html%20ul%20class%3A%20%27jt_column%20referenced_classes%27.%0A%09self%20updateReferencedClassesList'),
2351
+ messageSends: ["class:", "ul", "updateReferencedClassesList"],
2352
+ referencedClasses: []
2353
+ }),
2354
+ smalltalk.ReferencesBrowser);
2355
+
2356
+ smalltalk.addMethod(
2357
+ '_canBeClosed',
2358
+ smalltalk.method({
2359
+ selector: 'canBeClosed',
2360
+ category: 'testing',
2361
+ fn: function (){
2362
+ var self=this;
2363
+ return true;
2364
+ return self;},
2365
+ source: unescape('canBeClosed%0A%09%5Etrue'),
2366
+ messageSends: [],
2367
+ referencedClasses: []
2368
+ }),
2369
+ smalltalk.ReferencesBrowser);
2370
+
2371
+ smalltalk.addMethod(
2372
+ '_updateImplementorsList',
2373
+ smalltalk.method({
2374
+ selector: 'updateImplementorsList',
2375
+ category: 'updating',
2376
+ fn: function (){
2377
+ var self=this;
2378
+ smalltalk.send(self['@implementorsList'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Implementors%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_implementors", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);})(smalltalk.send(html, "_li", []));return smalltalk.send(smalltalk.send(self, "_implementors", []), "_do_", [(function(each){var li=nil;
2379
+ li=smalltalk.send(html, "_li", []);return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(self, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_openBrowserOn_", [each]);})]);})(li);})]);})]);
2380
+ return self;},
2381
+ source: unescape('updateImplementorsList%0A%20%20%20%20implementorsList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09html%20li%0A%09%09class%3A%20%27column_label%27%3B%20%0A%09%09with%3A%20%27Implementors%20%28%27%2C%20self%20implementors%20size%20asString%2C%20%27%29%27%3B%0A%09%09style%3A%20%27font-weight%3A%20bold%27.%0A%09self%20implementors%20do%3A%20%5B%3Aeach%20%7C%7C%20li%20%7C%0A%09%20%20%20%20li%20%3A%3D%20html%20li.%0A%09%20%20%20%20li%0A%09%09with%3A%20%28each%20methodClass%20asString%2C%20%27%20%3E%3E%20%27%2C%20self%20selector%29%3B%0A%09%09onClick%3A%20%5Bself%20openBrowserOn%3A%20each%5D%5D%5D'),
2382
+ messageSends: ["contents:", "class:", "with:", unescape("%2C"), "asString", "size", "implementors", "style:", "li", "do:", "methodClass", "selector", "onClick:", "openBrowserOn:"],
2383
+ referencedClasses: []
2384
+ }),
2385
+ smalltalk.ReferencesBrowser);
2386
+
2387
+ smalltalk.addMethod(
2388
+ '_updateSendersList',
2389
+ smalltalk.method({
2390
+ selector: 'updateSendersList',
2391
+ category: 'updating',
2392
+ fn: function (){
2393
+ var self=this;
2394
+ smalltalk.send(self['@sendersList'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Senders%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_senders", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);})(smalltalk.send(html, "_li", []));return smalltalk.send(smalltalk.send(self, "_senders", []), "_do_", [(function(each){return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(each, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_openBrowserOn_", [each]);})]);})(smalltalk.send(html, "_li", []));})]);})]);
2395
+ return self;},
2396
+ source: unescape('updateSendersList%0A%20%20%20%20%09sendersList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09html%20li%0A%09%09class%3A%20%27column_label%27%3B%20%0A%09%09with%3A%20%27Senders%20%28%27%2C%20self%20senders%20size%20asString%2C%20%27%29%27%3B%0A%09%09style%3A%20%27font-weight%3A%20bold%27.%0A%09self%20senders%20do%3A%20%5B%3Aeach%20%7C%0A%09%09html%20li%0A%09%20%20%20%20%09%09with%3A%20%28each%20methodClass%20asString%2C%20%27%20%3E%3E%20%27%2C%20each%20selector%29%3B%0A%09%09%09onClick%3A%20%5Bself%20openBrowserOn%3A%20each%5D%5D%5D'),
2397
+ messageSends: ["contents:", "class:", "with:", unescape("%2C"), "asString", "size", "senders", "style:", "li", "do:", "methodClass", "selector", "onClick:", "openBrowserOn:"],
2398
+ referencedClasses: []
2399
+ }),
2400
+ smalltalk.ReferencesBrowser);
2401
+
2402
+ smalltalk.addMethod(
2403
+ '_updateReferencedClassesList',
2404
+ smalltalk.method({
2405
+ selector: 'updateReferencedClassesList',
2406
+ category: 'updating',
2407
+ fn: function (){
2408
+ var self=this;
2409
+ smalltalk.send(self['@referencedClassesList'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Class%20references%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);})(smalltalk.send(html, "_li", []));return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_do_", [(function(each){return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(each, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_openBrowserOn_", [each]);})]);})(smalltalk.send(html, "_li", []));})]);})]);
2410
+ return self;},
2411
+ source: unescape('updateReferencedClassesList%0A%20%20%20%20%09referencedClassesList%20contents%3A%20%5B%3Ahtml%20%7C%0A%09html%20li%0A%09%09class%3A%20%27column_label%27%3B%20%0A%09%09with%3A%20%27Class%20references%20%28%27%2C%20self%20referencedClasses%20size%20asString%2C%20%27%29%27%3B%0A%09%09style%3A%20%27font-weight%3A%20bold%27.%0A%09self%20referencedClasses%20do%3A%20%5B%3Aeach%20%7C%0A%09%09html%20li%0A%09%20%20%20%20%09%09with%3A%20%28each%20methodClass%20asString%2C%20%27%20%3E%3E%20%27%2C%20each%20selector%29%3B%0A%09%09%09onClick%3A%20%5Bself%20openBrowserOn%3A%20each%5D%5D%5D'),
2412
+ messageSends: ["contents:", "class:", "with:", unescape("%2C"), "asString", "size", "referencedClasses", "style:", "li", "do:", "methodClass", "selector", "onClick:", "openBrowserOn:"],
2413
+ referencedClasses: []
2414
+ }),
2415
+ smalltalk.ReferencesBrowser);
2416
+
2417
+
2418
+ smalltalk.addMethod(
2419
+ '_search_',
2420
+ smalltalk.method({
2421
+ selector: 'search:',
2422
+ category: 'instance creation',
2423
+ fn: function (aString){
2424
+ var self=this;
2425
+ return (function($rec){smalltalk.send($rec, "_searchReferencesFor_", [aString]);return smalltalk.send($rec, "_open", []);})(smalltalk.send(self, "_new", []));
2426
+ return self;},
2427
+ source: unescape('search%3A%20aString%0A%09%5Eself%20new%0A%09%09searchReferencesFor%3A%20aString%3B%0A%09%09open'),
2428
+ messageSends: ["searchReferencesFor:", "open", "new"],
2429
+ referencedClasses: []
2430
+ }),
2431
+ smalltalk.ReferencesBrowser.klass);
2432
+
2433
+
2434
+ smalltalk.addClass('SourceArea', smalltalk.Widget, ['editor', 'div'], 'IDE');
2435
+ smalltalk.addMethod(
2436
+ '_val',
2437
+ smalltalk.method({
2438
+ selector: 'val',
2439
+ category: 'accessing',
2440
+ fn: function (){
2441
+ var self=this;
2442
+ return smalltalk.send(self['@editor'], "_getValue", []);
2443
+ return self;},
2444
+ source: unescape('val%0A%20%20%20%20%5Eeditor%20getValue'),
2445
+ messageSends: ["getValue"],
2446
+ referencedClasses: []
2447
+ }),
2448
+ smalltalk.SourceArea);
2449
+
2450
+ smalltalk.addMethod(
2451
+ '_val_',
2452
+ smalltalk.method({
2453
+ selector: 'val:',
2454
+ category: 'accessing',
2455
+ fn: function (aString){
2456
+ var self=this;
2457
+ smalltalk.send(self['@editor'], "_setValue_", [aString]);
2458
+ return self;},
2459
+ source: unescape('val%3A%20aString%0A%20%20%20%20editor%20setValue%3A%20aString'),
2460
+ messageSends: ["setValue:"],
2461
+ referencedClasses: []
2462
+ }),
2463
+ smalltalk.SourceArea);
2464
+
2465
+ smalltalk.addMethod(
2466
+ '_currentLine',
2467
+ smalltalk.method({
2468
+ selector: 'currentLine',
2469
+ category: 'accessing',
2470
+ fn: function (){
2471
+ var self=this;
2472
+ return smalltalk.send(self['@editor'], "_getLine_", [smalltalk.send(smalltalk.send(self['@editor'], "_getCursor", []), "_line", [])]);
2473
+ return self;},
2474
+ source: unescape('currentLine%0A%20%20%20%20%5Eeditor%20getLine%3A%20%28editor%20getCursor%20line%29'),
2475
+ messageSends: ["getLine:", "line", "getCursor"],
2476
+ referencedClasses: []
2477
+ }),
2478
+ smalltalk.SourceArea);
2479
+
2480
+ smalltalk.addMethod(
2481
+ '_selection',
2482
+ smalltalk.method({
2483
+ selector: 'selection',
2484
+ category: 'accessing',
2485
+ fn: function (){
2486
+ var self=this;
2487
+ return smalltalk.send(self['@editor'], "_getSelection", []);
2488
+ return self;},
2489
+ source: unescape('selection%0A%09%5Eeditor%20getSelection'),
2490
+ messageSends: ["getSelection"],
2491
+ referencedClasses: []
2492
+ }),
2493
+ smalltalk.SourceArea);
2494
+
2495
+ smalltalk.addMethod(
2496
+ '_selectionEnd',
2497
+ smalltalk.method({
2498
+ selector: 'selectionEnd',
2499
+ category: 'accessing',
2500
+ fn: function (){
2501
+ var self=this;
2502
+ return smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionEnd", []);
2503
+ return self;},
2504
+ source: unescape('selectionEnd%0A%20%20%20%5Etextarea%20element%20selectionEnd'),
2505
+ messageSends: ["selectionEnd", "element"],
2506
+ referencedClasses: []
2507
+ }),
2508
+ smalltalk.SourceArea);
2509
+
2510
+ smalltalk.addMethod(
2511
+ '_selectionStart',
2512
+ smalltalk.method({
2513
+ selector: 'selectionStart',
2514
+ category: 'accessing',
2515
+ fn: function (){
2516
+ var self=this;
2517
+ return smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionStart", []);
2518
+ return self;},
2519
+ source: unescape('selectionStart%0A%20%20%20%5Etextarea%20element%20selectionStart'),
2520
+ messageSends: ["selectionStart", "element"],
2521
+ referencedClasses: []
2522
+ }),
2523
+ smalltalk.SourceArea);
2524
+
2525
+ smalltalk.addMethod(
2526
+ '_selectionStart_',
2527
+ smalltalk.method({
2528
+ selector: 'selectionStart:',
2529
+ category: 'accessing',
2530
+ fn: function (anInteger){
2531
+ var self=this;
2532
+ smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionStart_", [anInteger]);
2533
+ return self;},
2534
+ source: unescape('selectionStart%3A%20anInteger%0A%20%20%20textarea%20element%20selectionStart%3A%20anInteger'),
2535
+ messageSends: ["selectionStart:", "element"],
2536
+ referencedClasses: []
2537
+ }),
2538
+ smalltalk.SourceArea);
2539
+
2540
+ smalltalk.addMethod(
2541
+ '_selectionEnd_',
2542
+ smalltalk.method({
2543
+ selector: 'selectionEnd:',
2544
+ category: 'accessing',
2545
+ fn: function (anInteger){
2546
+ var self=this;
2547
+ smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionEnd_", [anInteger]);
2548
+ return self;},
2549
+ source: unescape('selectionEnd%3A%20anInteger%0A%20%20%20textarea%20element%20selectionEnd%3A%20anInteger'),
2550
+ messageSends: ["selectionEnd:", "element"],
2551
+ referencedClasses: []
2552
+ }),
2553
+ smalltalk.SourceArea);
2554
+
2555
+ smalltalk.addMethod(
2556
+ '_setEditorOn_',
2557
+ smalltalk.method({
2558
+ selector: 'setEditorOn:',
2559
+ category: 'accessing',
2560
+ fn: function (aTextarea){
2561
+ var self=this;
2562
+ self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
2563
+ theme: 'jtalk',
2564
+ lineNumbers: true,
2565
+ enterMode: 'classic',
2566
+ matchBrackets: true,
2567
+ electricChars: false,
2568
+ });
2569
+ return self;},
2570
+ source: unescape('setEditorOn%3A%20aTextarea%0A%09%3Cself%5B%27@editor%27%5D%20%3D%20CodeMirror.fromTextArea%28aTextarea%2C%20%7B%0A%20%20%20%20%20%20%20%20%09theme%3A%20%27jtalk%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lineNumbers%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20enterMode%3A%20%27classic%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20matchBrackets%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20electricChars%3A%20false%2C%0A%09%7D%29%3E'),
2571
+ messageSends: [],
2572
+ referencedClasses: []
2573
+ }),
2574
+ smalltalk.SourceArea);
2575
+
2576
+ smalltalk.addMethod(
2577
+ '_clear',
2578
+ smalltalk.method({
2579
+ selector: 'clear',
2580
+ category: 'actions',
2581
+ fn: function (){
2582
+ var self=this;
2583
+ smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [""]);
2584
+ return self;},
2585
+ source: unescape('clear%0A%20%20%20%20textarea%20asJQuery%20val%3A%20%27%27'),
2586
+ messageSends: ["val:", "asJQuery"],
2587
+ referencedClasses: []
2588
+ }),
2589
+ smalltalk.SourceArea);
2590
+
2591
+ smalltalk.addMethod(
2592
+ '_doIt',
2593
+ smalltalk.method({
2594
+ selector: 'doIt',
2595
+ category: 'actions',
2596
+ fn: function (){
2597
+ var self=this;
2598
+ var selection=nil;
2599
+ smalltalk.send(smalltalk.send(self['@editor'], "_somethingSelected", []), "_ifFalse_ifTrue_", [(function(){return selection=smalltalk.send(self, "_currentLine", []);}), (function(){return selection=smalltalk.send(self, "_selection", []);})]);
2600
+ return smalltalk.send(self, "_eval_", [selection]);
2601
+ return self;},
2602
+ source: unescape('doIt%0A%20%20%20%20%7C%20selection%20%7C%0A%20%20%20%20editor%20somethingSelected%0A%09ifFalse%3A%20%5Bselection%20%3A%3D%20self%20currentLine%5D%0A%09ifTrue%3A%20%5Bselection%20%3A%3D%20self%20selection%5D.%0A%20%20%20%20%5Eself%20eval%3A%20selection'),
2603
+ messageSends: ["ifFalse:ifTrue:", "somethingSelected", "currentLine", "selection", "eval:"],
2604
+ referencedClasses: []
2605
+ }),
2606
+ smalltalk.SourceArea);
2607
+
2608
+ smalltalk.addMethod(
2609
+ '_eval_',
2610
+ smalltalk.method({
2611
+ selector: 'eval:',
2612
+ category: 'actions',
2613
+ fn: function (aString){
2614
+ var self=this;
2615
+ try{var compiler=nil;
2616
+ var node=nil;
2617
+ compiler=smalltalk.send(smalltalk.Compiler, "_new", []);
2618
+ node=smalltalk.send(compiler, "_parseExpression_", [aString]);
2619
+ smalltalk.send(smalltalk.send(node, "_isParseFailure", []), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_eval_', fn: function(){return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_reason", []), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(node, "_position", [])])])}})})();})]);
2620
+ (function(){throw({name: 'stReturn', selector: '_eval_', fn: function(){return smalltalk.send(compiler, "_loadExpression_", [aString])}})})();
2621
+ return self;
2622
+ } catch(e) {if(e.name === 'stReturn' && e.selector === '_eval_'){return e.fn()} throw(e)}},
2623
+ source: unescape('eval%3A%20aString%0A%20%20%20%20%7C%20compiler%20node%20%7C%0A%20%20%20%20compiler%20%3A%3D%20Compiler%20new.%0A%20%20%20%20node%20%3A%3D%20compiler%20parseExpression%3A%20aString.%0A%20%20%20%20node%20isParseFailure%20ifTrue%3A%20%5B%0A%09%5Eself%20alert%3A%20node%20reason%2C%20%27%2C%20position%3A%20%27%2C%20node%20position%5D.%0A%20%20%20%20%5Ecompiler%20loadExpression%3A%20aString'),
2624
+ messageSends: ["new", "parseExpression:", "ifTrue:", "isParseFailure", "alert:", unescape("%2C"), "reason", "position", "loadExpression:"],
2625
+ referencedClasses: [smalltalk.Compiler]
2626
+ }),
2627
+ smalltalk.SourceArea);
2628
+
2629
+ smalltalk.addMethod(
2630
+ '_handleKeyDown_',
2631
+ smalltalk.method({
2632
+ selector: 'handleKeyDown:',
2633
+ category: 'actions',
2634
+ fn: function (anEvent){
2635
+ var self=this;
2636
+ if(anEvent.ctrlKey) {
2637
+ if(anEvent.keyCode === 80) { //ctrl+p
2638
+ self._printIt();
2639
+ anEvent.preventDefault();
2640
+ return false;
2641
+ }
2642
+ if(anEvent.keyCode === 68) { //ctrl+d
2643
+ self._doIt();
2644
+ anEvent.preventDefault();
2645
+ return false;
2646
+ }
2647
+ if(anEvent.keyCode === 73) { //ctrl+i
2648
+ self._inspectIt();
2649
+ anEvent.preventDefault();
2650
+ return false;
2651
+ }
2652
+ };
2653
+ return self;},
2654
+ source: unescape('handleKeyDown%3A%20anEvent%0A%20%20%20%20%3Cif%28anEvent.ctrlKey%29%20%7B%0A%09%09if%28anEvent.keyCode%20%3D%3D%3D%2080%29%20%7B%20//ctrl+p%0A%09%09%09self._printIt%28%29%3B%0A%09%09%09anEvent.preventDefault%28%29%3B%0A%09%09%09return%20false%3B%0A%09%09%7D%0A%09%09if%28anEvent.keyCode%20%3D%3D%3D%2068%29%20%7B%20//ctrl+d%0A%09%09%09self._doIt%28%29%3B%0A%09%09%09anEvent.preventDefault%28%29%3B%0A%09%09%09return%20false%3B%0A%09%09%7D%0A%09%09if%28anEvent.keyCode%20%3D%3D%3D%2073%29%20%7B%20//ctrl+i%0A%09%09%09self._inspectIt%28%29%3B%0A%09%09%09anEvent.preventDefault%28%29%3B%0A%09%09%09return%20false%3B%0A%09%09%7D%0A%09%7D%3E'),
2655
+ messageSends: [],
2656
+ referencedClasses: []
2657
+ }),
2658
+ smalltalk.SourceArea);
2659
+
2660
+ smalltalk.addMethod(
2661
+ '_inspectIt',
2662
+ smalltalk.method({
2663
+ selector: 'inspectIt',
2664
+ category: 'actions',
2665
+ fn: function (){
2666
+ var self=this;
2667
+ smalltalk.send(smalltalk.send(self, "_doIt", []), "_inspect", []);
2668
+ return self;},
2669
+ source: unescape('inspectIt%0A%20%20%20%20self%20doIt%20inspect'),
2670
+ messageSends: ["inspect", "doIt"],
2671
+ referencedClasses: []
2672
+ }),
2673
+ smalltalk.SourceArea);
2674
+
2675
+ smalltalk.addMethod(
2676
+ '_print_',
2677
+ smalltalk.method({
2678
+ selector: 'print:',
2679
+ category: 'actions',
2680
+ fn: function (aString){
2681
+ var self=this;
2682
+ var start=nil;
2683
+ var stop=nil;
2684
+ start=smalltalk.send(smalltalk.Dictionary, "_new", []);
2685
+ stop=smalltalk.send(smalltalk.Dictionary, "_new", []);
2686
+ smalltalk.send(start, "_at_put_", ["line", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_line", [])]);
2687
+ smalltalk.send(start, "_at_put_", ["ch", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_ch", [])]);
2688
+ smalltalk.send(stop, "_at_put_", ["line", smalltalk.send(start, "_at_", ["line"])]);
2689
+ smalltalk.send(stop, "_at_put_", ["ch", smalltalk.send(smalltalk.send(smalltalk.send(start, "_at_", ["ch"]), "__plus", [smalltalk.send(aString, "_size", [])]), "__plus", [(2)])]);
2690
+ smalltalk.send(self['@editor'], "_replaceSelection_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@editor'], "_getSelection", []), "__comma", [" "]), "__comma", [aString]), "__comma", [" "])]);
2691
+ smalltalk.send(self['@editor'], "_setCursor_", [smalltalk.send(self['@editor'], "_getCursor_", [true])]);
2692
+ smalltalk.send(self['@editor'], "_setSelection_end_", [stop, start]);
2693
+ (function($rec){smalltalk.send($rec, "_log_", [start]);return smalltalk.send($rec, "_log_", [stop]);})(console);
2694
+ return self;},
2695
+ source: unescape('print%3A%20aString%0A%09%7C%20start%20stop%20%7C%0A%09start%20%3A%3D%20Dictionary%20new.%0A%09stop%20%3A%3D%20Dictionary%20new.%0A%09start%20at%3A%20%27line%27%20put%3A%20%28editor%20getCursor%3A%20false%29%20line.%0A%09start%20at%3A%20%27ch%27%20put%3A%20%28editor%20getCursor%3A%20false%29%20ch.%0A%09stop%20at%3A%20%27line%27%20put%3A%20%28start%20at%3A%20%27line%27%29.%0A%09stop%20at%3A%20%27ch%27%20put%3A%20%28%28start%20at%3A%20%27ch%27%29%20+%20aString%20size%20+%202%29.%0A%09editor%20replaceSelection%3A%20%28editor%20getSelection%2C%20%27%20%27%2C%20aString%2C%20%27%20%27%29.%0A%09editor%20setCursor%3A%20%28editor%20getCursor%3A%20true%29.%0A%09editor%20setSelection%3A%20stop%20end%3A%20start.%0A%09console%20log%3A%20start%3B%20log%3A%20stop'),
2696
+ messageSends: ["new", "at:put:", "line", "getCursor:", "ch", "at:", unescape("+"), "size", "replaceSelection:", unescape("%2C"), "getSelection", "setCursor:", "setSelection:end:", "log:"],
2697
+ referencedClasses: [smalltalk.Dictionary]
2698
+ }),
2699
+ smalltalk.SourceArea);
2700
+
2701
+ smalltalk.addMethod(
2702
+ '_printIt',
2703
+ smalltalk.method({
2704
+ selector: 'printIt',
2705
+ category: 'actions',
2706
+ fn: function (){
2707
+ var self=this;
2708
+ smalltalk.send(self, "_print_", [smalltalk.send(smalltalk.send(self, "_doIt", []), "_printString", [])]);
2709
+ return self;},
2710
+ source: unescape('printIt%0A%20%20%20%20self%20print%3A%20self%20doIt%20printString'),
2711
+ messageSends: ["print:", "printString", "doIt"],
2712
+ referencedClasses: []
2713
+ }),
2714
+ smalltalk.SourceArea);
2715
+
2716
+ smalltalk.addMethod(
2717
+ '_renderOn_',
2718
+ smalltalk.method({
2719
+ selector: 'renderOn:',
2720
+ category: 'rendering',
2721
+ fn: function (html){
2722
+ var self=this;
2723
+ var textarea=nil;
2724
+ self['@div']=smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["source"]);
2725
+ smalltalk.send(self['@div'], "_with_", [(function(){return textarea=smalltalk.send(html, "_textarea", []);})]);
2726
+ smalltalk.send(self, "_setEditorOn_", [smalltalk.send(textarea, "_element", [])]);
2727
+ smalltalk.send(self['@div'], "_onKeyDown_", [(function(e){return smalltalk.send(self, "_handleKeyDown_", [e]);})]);
2728
+ return self;},
2729
+ source: unescape('renderOn%3A%20html%0A%20%20%20%20%7C%20textarea%20%7C%0A%20%20%20%20div%20%3A%3D%20html%20div%20class%3A%20%27source%27.%0A%20%20%20%20div%20with%3A%20%5Btextarea%20%3A%3D%20html%20textarea%5D.%0A%20%20%20%20self%20setEditorOn%3A%20textarea%20element.%0A%20%20%20%20div%20onKeyDown%3A%20%5B%3Ae%20%7C%20self%20handleKeyDown%3A%20e%5D'),
2730
+ messageSends: ["class:", "div", "with:", "textarea", "setEditorOn:", "element", "onKeyDown:", "handleKeyDown:"],
2731
+ referencedClasses: []
2732
+ }),
2733
+ smalltalk.SourceArea);
2734
+
2735
+ smalltalk.addMethod(
2736
+ '_editor',
2737
+ smalltalk.method({
2738
+ selector: 'editor',
2739
+ category: 'accessing',
2740
+ fn: function (){
2741
+ var self=this;
2742
+ return self['@editor'];
2743
+ return self;},
2744
+ source: unescape('editor%0A%09%5Eeditor'),
2745
+ messageSends: [],
2746
+ referencedClasses: []
2747
+ }),
2748
+ smalltalk.SourceArea);
2749
+
2750
+ smalltalk.addMethod(
2751
+ '_onKeyUp_',
2752
+ smalltalk.method({
2753
+ selector: 'onKeyUp:',
2754
+ category: 'events',
2755
+ fn: function (aBlock){
2756
+ var self=this;
2757
+ smalltalk.send(self['@div'], "_onKeyUp_", [aBlock]);
2758
+ return self;},
2759
+ source: unescape('onKeyUp%3A%20aBlock%0A%09div%20onKeyUp%3A%20aBlock'),
2760
+ messageSends: ["onKeyUp:"],
2761
+ referencedClasses: []
2762
+ }),
2763
+ smalltalk.SourceArea);
2764
+
2765
+ smalltalk.addMethod(
2766
+ '_onKeyDown_',
2767
+ smalltalk.method({
2768
+ selector: 'onKeyDown:',
2769
+ category: 'events',
2770
+ fn: function (aBlock){
2771
+ var self=this;
2772
+ smalltalk.send(self['@div'], "_onKeyDown_", [aBlock]);
2773
+ return self;},
2774
+ source: unescape('onKeyDown%3A%20aBlock%0A%09div%20onKeyDown%3A%20aBlock'),
2775
+ messageSends: ["onKeyDown:"],
2776
+ referencedClasses: []
2777
+ }),
2778
+ smalltalk.SourceArea);
2779
+
2780
+
2781
+
2782
+ smalltalk.addClass('ClassesList', smalltalk.Widget, ['browser', 'ul', 'nodes'], 'IDE');
2783
+ smalltalk.addMethod(
2784
+ '_category',
2785
+ smalltalk.method({
2786
+ selector: 'category',
2787
+ category: 'accessing',
2788
+ fn: function (){
2789
+ var self=this;
2790
+ return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedCategory", []);
2791
+ return self;},
2792
+ source: unescape('category%0A%09%5Eself%20browser%20selectedCategory'),
2793
+ messageSends: ["selectedCategory", "browser"],
2794
+ referencedClasses: []
2795
+ }),
2796
+ smalltalk.ClassesList);
2797
+
2798
+ smalltalk.addMethod(
2799
+ '_nodes',
2800
+ smalltalk.method({
2801
+ selector: 'nodes',
2802
+ category: 'accessing',
2803
+ fn: function (){
2804
+ var self=this;
2805
+ smalltalk.send(self['@nodes'], "_ifNil_", [(function(){return self['@nodes']=smalltalk.send(self, "_getNodes", []);})]);
2806
+ return self['@nodes'];
2807
+ return self;},
2808
+ source: unescape('nodes%0A%09nodes%20ifNil%3A%20%5Bnodes%20%3A%3D%20self%20getNodes%5D.%0A%09%5Enodes'),
2809
+ messageSends: ["ifNil:", "getNodes"],
2810
+ referencedClasses: []
2811
+ }),
2812
+ smalltalk.ClassesList);
2813
+
2814
+ smalltalk.addMethod(
2815
+ '_browser',
2816
+ smalltalk.method({
2817
+ selector: 'browser',
2818
+ category: 'accessing',
2819
+ fn: function (){
2820
+ var self=this;
2821
+ return self['@browser'];
2822
+ return self;},
2823
+ source: unescape('browser%0A%09%5Ebrowser'),
2824
+ messageSends: [],
2825
+ referencedClasses: []
2826
+ }),
2827
+ smalltalk.ClassesList);
2828
+
2829
+ smalltalk.addMethod(
2830
+ '_browser_',
2831
+ smalltalk.method({
2832
+ selector: 'browser:',
2833
+ category: 'accessing',
2834
+ fn: function (aBrowser){
2835
+ var self=this;
2836
+ self['@browser']=aBrowser;
2837
+ return self;},
2838
+ source: unescape('browser%3A%20aBrowser%0A%0A%09browser%20%3A%3D%20aBrowser'),
2839
+ messageSends: [],
2840
+ referencedClasses: []
2841
+ }),
2842
+ smalltalk.ClassesList);
2843
+
2844
+ smalltalk.addMethod(
2845
+ '_getNodes',
2846
+ smalltalk.method({
2847
+ selector: 'getNodes',
2848
+ category: 'accessing',
2849
+ fn: function (){
2850
+ var self=this;
2851
+ var classes=nil;
2852
+ var children=nil;
2853
+ var others=nil;
2854
+ classes=smalltalk.send(smalltalk.send(self, "_browser", []), "_classes", []);
2855
+ children=[];
2856
+ others=[];
2857
+ smalltalk.send(classes, "_do_", [(function(each){return smalltalk.send(smalltalk.send(classes, "_includes_", [smalltalk.send(each, "_superclass", [])]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]);})]);
2858
+ return smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send(smalltalk.ClassesListNode, "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, (0)]);})]);
2859
+ return self;},
2860
+ source: unescape('getNodes%0A%09%7C%20classes%20children%20others%20%7C%0A%09classes%20%3A%3D%20self%20browser%20classes.%0A%09children%20%3A%3D%20%23%28%29.%0A%09others%20%3A%3D%20%23%28%29.%0A%09classes%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%28classes%20includes%3A%20each%20superclass%29%0A%09%09%09ifFalse%3A%20%5Bchildren%20add%3A%20each%5D%0A%09%09%09ifTrue%3A%20%5Bothers%20add%3A%20each%5D%5D.%0A%09%5Echildren%20collect%3A%20%5B%3Aeach%20%7C%0A%09%09ClassesListNode%20on%3A%20each%20browser%3A%20self%20browser%20classes%3A%20others%20level%3A%200%5D'),
2861
+ messageSends: ["classes", "browser", "do:", "ifFalse:ifTrue:", "includes:", "superclass", "add:", "collect:", "on:browser:classes:level:"],
2862
+ referencedClasses: []
2863
+ }),
2864
+ smalltalk.ClassesList);
2865
+
2866
+ smalltalk.addMethod(
2867
+ '_resetNodes',
2868
+ smalltalk.method({
2869
+ selector: 'resetNodes',
2870
+ category: 'accessing',
2871
+ fn: function (){
2872
+ var self=this;
2873
+ self['@nodes']=nil;
2874
+ return self;},
2875
+ source: unescape('resetNodes%0A%09nodes%20%3A%3D%20nil'),
2876
+ messageSends: [],
2877
+ referencedClasses: []
2878
+ }),
2879
+ smalltalk.ClassesList);
2880
+
2881
+ smalltalk.addMethod(
2882
+ '_renderOn_',
2883
+ smalltalk.method({
2884
+ selector: 'renderOn:',
2885
+ category: 'rendering',
2886
+ fn: function (html){
2887
+ var self=this;
2888
+ self['@ul']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column browser classes"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", []));
2889
+ smalltalk.send(self, "_updateNodes", []);
2890
+ return self;},
2891
+ source: unescape('renderOn%3A%20html%0A%09ul%20%3A%3D%20html%20ul%0A%09%09class%3A%20%27jt_column%20browser%20classes%27%3B%0A%09%09yourself.%0A%09self%20updateNodes'),
2892
+ messageSends: ["class:", "yourself", "ul", "updateNodes"],
2893
+ referencedClasses: []
2894
+ }),
2895
+ smalltalk.ClassesList);
2896
+
2897
+ smalltalk.addMethod(
2898
+ '_updateNodes',
2899
+ smalltalk.method({
2900
+ selector: 'updateNodes',
2901
+ category: 'rendering',
2902
+ fn: function (){
2903
+ var self=this;
2904
+ smalltalk.send(self['@ul'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);})]);
2905
+ return self;},
2906
+ source: unescape('updateNodes%0A%09ul%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09self%20nodes%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%09each%20renderOn%3A%20html%5D%5D'),
2907
+ messageSends: ["contents:", "do:", "nodes", "renderOn:"],
2908
+ referencedClasses: []
2909
+ }),
2910
+ smalltalk.ClassesList);
2911
+
2912
+
2913
+ smalltalk.addMethod(
2914
+ '_on_',
2915
+ smalltalk.method({
2916
+ selector: 'on:',
2917
+ category: 'instance creation',
2918
+ fn: function (aBrowser){
2919
+ var self=this;
2920
+ return (function($rec){smalltalk.send($rec, "_browser_", [aBrowser]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
2921
+ return self;},
2922
+ source: unescape('on%3A%20aBrowser%0A%09%5Eself%20new%20%0A%09%09browser%3A%20aBrowser%3B%20%0A%09%09yourself'),
2923
+ messageSends: ["browser:", "yourself", "new"],
2924
+ referencedClasses: []
2925
+ }),
2926
+ smalltalk.ClassesList.klass);
2927
+
2928
+
2929
+ smalltalk.addClass('ClassesListNode', smalltalk.Widget, ['browser', 'theClass', 'level', 'nodes'], 'IDE');
2930
+ smalltalk.addMethod(
2931
+ '_nodes',
2932
+ smalltalk.method({
2933
+ selector: 'nodes',
2934
+ category: 'accessing',
2935
+ fn: function (){
2936
+ var self=this;
2937
+ return self['@nodes'];
2938
+ return self;},
2939
+ source: unescape('nodes%0A%09%5Enodes'),
2940
+ messageSends: [],
2941
+ referencedClasses: []
2942
+ }),
2943
+ smalltalk.ClassesListNode);
2944
+
2945
+ smalltalk.addMethod(
2946
+ '_theClass',
2947
+ smalltalk.method({
2948
+ selector: 'theClass',
2949
+ category: 'accessing',
2950
+ fn: function (){
2951
+ var self=this;
2952
+ return self['@theClass'];
2953
+ return self;},
2954
+ source: unescape('theClass%0A%09%5EtheClass'),
2955
+ messageSends: [],
2956
+ referencedClasses: []
2957
+ }),
2958
+ smalltalk.ClassesListNode);
2959
+
2960
+ smalltalk.addMethod(
2961
+ '_theClass_',
2962
+ smalltalk.method({
2963
+ selector: 'theClass:',
2964
+ category: 'accessing',
2965
+ fn: function (aClass){
2966
+ var self=this;
2967
+ self['@theClass']=aClass;
2968
+ return self;},
2969
+ source: unescape('theClass%3A%20aClass%0A%09theClass%20%3A%3D%20aClass'),
2970
+ messageSends: [],
2971
+ referencedClasses: []
2972
+ }),
2973
+ smalltalk.ClassesListNode);
2974
+
2975
+ smalltalk.addMethod(
2976
+ '_browser',
2977
+ smalltalk.method({
2978
+ selector: 'browser',
2979
+ category: 'accessing',
2980
+ fn: function (){
2981
+ var self=this;
2982
+ return self['@browser'];
2983
+ return self;},
2984
+ source: unescape('browser%0A%09%5Ebrowser'),
2985
+ messageSends: [],
2986
+ referencedClasses: []
2987
+ }),
2988
+ smalltalk.ClassesListNode);
2989
+
2990
+ smalltalk.addMethod(
2991
+ '_browser_',
2992
+ smalltalk.method({
2993
+ selector: 'browser:',
2994
+ category: 'accessing',
2995
+ fn: function (aBrowser){
2996
+ var self=this;
2997
+ self['@browser']=aBrowser;
2998
+ return self;},
2999
+ source: unescape('browser%3A%20aBrowser%0A%09browser%20%3A%3D%20aBrowser'),
3000
+ messageSends: [],
3001
+ referencedClasses: []
3002
+ }),
3003
+ smalltalk.ClassesListNode);
3004
+
3005
+ smalltalk.addMethod(
3006
+ '_level',
3007
+ smalltalk.method({
3008
+ selector: 'level',
3009
+ category: 'accessing',
3010
+ fn: function (){
3011
+ var self=this;
3012
+ return self['@level'];
3013
+ return self;},
3014
+ source: unescape('level%0A%09%5Elevel'),
3015
+ messageSends: [],
3016
+ referencedClasses: []
3017
+ }),
3018
+ smalltalk.ClassesListNode);
3019
+
3020
+ smalltalk.addMethod(
3021
+ '_level_',
3022
+ smalltalk.method({
3023
+ selector: 'level:',
3024
+ category: 'accessing',
3025
+ fn: function (anInteger){
3026
+ var self=this;
3027
+ self['@level']=anInteger;
3028
+ return self;},
3029
+ source: unescape('level%3A%20anInteger%0A%09level%20%3A%3D%20anInteger'),
3030
+ messageSends: [],
3031
+ referencedClasses: []
3032
+ }),
3033
+ smalltalk.ClassesListNode);
3034
+
3035
+ smalltalk.addMethod(
3036
+ '_label',
3037
+ smalltalk.method({
3038
+ selector: 'label',
3039
+ category: 'accessing',
3040
+ fn: function (){
3041
+ var self=this;
3042
+ var str=nil;
3043
+ str=smalltalk.send(smalltalk.send(smalltalk.String, "_new", []), "_writeStream", []);
3044
+ smalltalk.send(smalltalk.send(self, "_level", []), "_timesRepeat_", [(function(){return smalltalk.send(str, "_nextPutAll_", [unescape("%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B")]);})]);
3045
+ smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_theClass", []), "_name", [])]);
3046
+ return smalltalk.send(str, "_contents", []);
3047
+ return self;},
3048
+ source: unescape('label%0A%09%7C%20str%20%7C%0A%09str%20%3A%3D%20String%20new%20writeStream.%0A%09self%20level%20timesRepeat%3A%20%5B%0A%09%09str%20nextPutAll%3A%20%27%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%27%5D.%0A%09str%20nextPutAll%3A%20self%20theClass%20name.%0A%09%5Estr%20contents'),
3049
+ messageSends: ["writeStream", "new", "timesRepeat:", "level", "nextPutAll:", "name", "theClass", "contents"],
3050
+ referencedClasses: [smalltalk.String]
3051
+ }),
3052
+ smalltalk.ClassesListNode);
3053
+
3054
+ smalltalk.addMethod(
3055
+ '_getNodesFrom_',
3056
+ smalltalk.method({
3057
+ selector: 'getNodesFrom:',
3058
+ category: 'accessing',
3059
+ fn: function (aCollection){
3060
+ var self=this;
3061
+ var children=nil;
3062
+ var others=nil;
3063
+ children=[];
3064
+ others=[];
3065
+ smalltalk.send(aCollection, "_do_", [(function(each){return smalltalk.send(smalltalk.send(smalltalk.send(each, "_superclass", []), "__eq", [smalltalk.send(self, "_theClass", [])]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]);})]);
3066
+ self['@nodes']=smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send(smalltalk.ClassesListNode, "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, smalltalk.send(smalltalk.send(self, "_level", []), "__plus", [(1)])]);})]);
3067
+ return self;},
3068
+ source: unescape('getNodesFrom%3A%20aCollection%0A%09%7C%20children%20others%20%7C%0A%09children%20%3A%3D%20%23%28%29.%0A%09others%20%3A%3D%20%23%28%29.%0A%09aCollection%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%28each%20superclass%20%3D%20self%20theClass%29%0A%09%09%09ifTrue%3A%20%5Bchildren%20add%3A%20each%5D%0A%09%09%09ifFalse%3A%20%5Bothers%20add%3A%20each%5D%5D.%0A%09nodes%3A%3D%20children%20collect%3A%20%5B%3Aeach%20%7C%0A%09%09ClassesListNode%20on%3A%20each%20browser%3A%20self%20browser%20classes%3A%20others%20level%3A%20self%20level%20+%201%5D'),
3069
+ messageSends: ["do:", "ifTrue:ifFalse:", unescape("%3D"), "superclass", "theClass", "add:", "collect:", "on:browser:classes:level:", "browser", unescape("+"), "level"],
3070
+ referencedClasses: [smalltalk.ClassesListNode]
3071
+ }),
3072
+ smalltalk.ClassesListNode);
3073
+
3074
+ smalltalk.addMethod(
3075
+ '_renderOn_',
3076
+ smalltalk.method({
3077
+ selector: 'renderOn:',
3078
+ category: 'rendering',
3079
+ fn: function (html){
3080
+ var self=this;
3081
+ var li=nil;
3082
+ li=smalltalk.send(smalltalk.send(html, "_li", []), "_onClick_", [(function(){return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectClass_", [smalltalk.send(self, "_theClass", [])]);})]);
3083
+ smalltalk.send(smalltalk.send(li, "_asJQuery", []), "_contents_", [smalltalk.send(self, "_label", [])]);
3084
+ smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedClass", []), "__eq", [smalltalk.send(self, "_theClass", [])]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);
3085
+ smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);
3086
+ return self;},
3087
+ source: unescape('renderOn%3A%20html%0A%09%7C%20li%20%7C%0A%09li%20%3A%3D%20html%20li%20%0A%09%09onClick%3A%20%5Bself%20browser%20selectClass%3A%20self%20theClass%5D.%0A%09li%20asJQuery%20contents%3A%20self%20label.%0A%09self%20browser%20selectedClass%20%3D%20self%20theClass%20ifTrue%3A%20%20%5B%0A%09%09li%20class%3A%20%27selected%27%5D.%0A%09self%20nodes%20do%3A%20%5B%3Aeach%20%7C%0A%09%09each%20renderOn%3A%20html%5D'),
3088
+ messageSends: ["onClick:", "li", "selectClass:", "browser", "theClass", "contents:", "asJQuery", "label", "ifTrue:", unescape("%3D"), "selectedClass", "class:", "do:", "nodes", "renderOn:"],
3089
+ referencedClasses: []
3090
+ }),
3091
+ smalltalk.ClassesListNode);
3092
+
3093
+
3094
+ smalltalk.addMethod(
3095
+ '_on_browser_classes_level_',
3096
+ smalltalk.method({
3097
+ selector: 'on:browser:classes:level:',
3098
+ category: 'instance creation',
3099
+ fn: function (aClass, aBrowser, aCollection, anInteger){
3100
+ var self=this;
3101
+ return (function($rec){smalltalk.send($rec, "_theClass_", [aClass]);smalltalk.send($rec, "_browser_", [aBrowser]);smalltalk.send($rec, "_level_", [anInteger]);smalltalk.send($rec, "_getNodesFrom_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
3102
+ return self;},
3103
+ source: unescape('on%3A%20aClass%20browser%3A%20aBrowser%20classes%3A%20aCollection%20level%3A%20anInteger%0A%09%5Eself%20new%0A%09%09theClass%3A%20aClass%3B%0A%09%09browser%3A%20aBrowser%3B%0A%09%09level%3A%20anInteger%3B%0A%09%09getNodesFrom%3A%20aCollection%3B%0A%09%09yourself'),
3104
+ messageSends: ["theClass:", "browser:", "level:", "getNodesFrom:", "yourself", "new"],
3105
+ referencedClasses: []
3106
+ }),
3107
+ smalltalk.ClassesListNode.klass);
3108
+
3109
+
3110
+ smalltalk.addClass('Debugger', smalltalk.TabWidget, ['error', 'selectedContext', 'sourceArea', 'ul'], 'IDE');
3111
+ smalltalk.addMethod(
3112
+ '_error',
3113
+ smalltalk.method({
3114
+ selector: 'error',
3115
+ category: 'accessing',
3116
+ fn: function (){
3117
+ var self=this;
3118
+ return self['@error'];
3119
+ return self;},
3120
+ source: unescape('error%0A%09%5Eerror'),
3121
+ messageSends: [],
3122
+ referencedClasses: []
3123
+ }),
3124
+ smalltalk.Debugger);
3125
+
3126
+ smalltalk.addMethod(
3127
+ '_error_',
3128
+ smalltalk.method({
3129
+ selector: 'error:',
3130
+ category: 'accessing',
3131
+ fn: function (anError){
3132
+ var self=this;
3133
+ self['@error']=anError;
3134
+ return self;},
3135
+ source: unescape('error%3A%20anError%0A%09error%20%3A%3D%20anError'),
3136
+ messageSends: [],
3137
+ referencedClasses: []
3138
+ }),
3139
+ smalltalk.Debugger);
3140
+
3141
+ smalltalk.addMethod(
3142
+ '_label',
3143
+ smalltalk.method({
3144
+ selector: 'label',
3145
+ category: 'accessing',
3146
+ fn: function (){
3147
+ var self=this;
3148
+ return unescape("%5BDebugger%5D");
3149
+ return self;},
3150
+ source: unescape('label%0A%09%5E%27%5BDebugger%5D%27'),
3151
+ messageSends: [],
3152
+ referencedClasses: []
3153
+ }),
3154
+ smalltalk.Debugger);
3155
+
3156
+ smalltalk.addMethod(
3157
+ '_selectContext_',
3158
+ smalltalk.method({
3159
+ selector: 'selectContext:',
3160
+ category: 'actions',
3161
+ fn: function (aContext){
3162
+ var self=this;
3163
+ self['@selectedContext']=aContext;
3164
+ smalltalk.send(self, "_updateContextsList", []);
3165
+ smalltalk.send(self, "_updateSourceArea", []);
3166
+ return self;},
3167
+ source: unescape('selectContext%3A%20aContext%0A%09selectedContext%20%3A%3D%20aContext.%0A%09self%20updateContextsList.%0A%09self%20updateSourceArea'),
3168
+ messageSends: ["updateContextsList", "updateSourceArea"],
3169
+ referencedClasses: []
3170
+ }),
3171
+ smalltalk.Debugger);
3172
+
3173
+ smalltalk.addMethod(
3174
+ '_renderBoxOn_',
3175
+ smalltalk.method({
3176
+ selector: 'renderBoxOn:',
3177
+ category: 'rendering',
3178
+ fn: function (html){
3179
+ var self=this;
3180
+ (function($rec){smalltalk.send($rec, "_renderTopPanelOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);})(self);
3181
+ return self;},
3182
+ source: unescape('renderBoxOn%3A%20html%0A%20%20%20%20self%20%0A%09renderTopPanelOn%3A%20html%3B%0A%09renderBottomPanelOn%3A%20html'),
3183
+ messageSends: ["renderTopPanelOn:", "renderBottomPanelOn:"],
3184
+ referencedClasses: []
3185
+ }),
3186
+ smalltalk.Debugger);
3187
+
3188
+ smalltalk.addMethod(
3189
+ '_renderTopPanelOn_',
3190
+ smalltalk.method({
3191
+ selector: 'renderTopPanelOn:',
3192
+ category: 'rendering',
3193
+ fn: function (html){
3194
+ var self=this;
3195
+ self['@selectedContext']=smalltalk.send(smalltalk.send(self, "_error", []), "_context", []);
3196
+ (function($rec){smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_class_", ["label"]);return smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(self, "_error", []), "_messageText", [])]);})(smalltalk.send(html, "_div", []));return self['@ul']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column debugger contexts"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(smalltalk.send(self, "_error", []), "_context", []), html]);})]);})(smalltalk.send(html, "_ul", []));})]);})(smalltalk.send(html, "_div", []));
3197
+ return self;},
3198
+ source: unescape('renderTopPanelOn%3A%20html%0A%09selectedContext%20%3A%3D%20self%20error%20context.%0A%09html%20div%20%0A%09%09class%3A%20%27top%27%3B%20%0A%09%09with%3A%20%5B%0A%09%09%09html%20div%20%0A%09%09%09%09class%3A%20%27label%27%3B%0A%09%09%09%09with%3A%20self%20error%20messageText.%0A%09%20%20%20%20%09%09ul%20%3A%3D%20html%20ul%20%0A%09%09%09class%3A%20%27jt_column%20debugger%20contexts%27%3B%0A%09%09%09with%3A%20%5Bself%20renderContext%3A%20self%20error%20context%20on%3A%20html%5D%5D'),
3199
+ messageSends: ["context", "error", "class:", "with:", "messageText", "div", "renderContext:on:", "ul"],
3200
+ referencedClasses: []
3201
+ }),
3202
+ smalltalk.Debugger);
3203
+
3204
+ smalltalk.addMethod(
3205
+ '_renderContext_on_',
3206
+ smalltalk.method({
3207
+ selector: 'renderContext:on:',
3208
+ category: 'rendering',
3209
+ fn: function (aContext, html){
3210
+ var self=this;
3211
+ var li=nil;
3212
+ li=smalltalk.send(html, "_li", []);
3213
+ smalltalk.send(smalltalk.send(self['@selectedContext'], "__eq", [aContext]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);
3214
+ (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(aContext, "_asString", [])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectContext_", [aContext]);})]);})(li);
3215
+ smalltalk.send(smalltalk.send(aContext, "_home", []), "_ifNotNil_", [(function(){return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(aContext, "_home", []), html]);})]);
3216
+ return self;},
3217
+ source: unescape('renderContext%3A%20aContext%20on%3A%20html%0A%09%7C%20li%20%7C%0A%09li%20%3A%3D%20html%20li.%0A%09selectedContext%20%3D%20aContext%20ifTrue%3A%20%5B%0A%09%09li%20class%3A%20%27selected%27%5D.%0A%09li%20%0A%09%09with%3A%20aContext%20asString%3B%0A%09%09onClick%3A%20%5Bself%20selectContext%3A%20aContext%5D.%0A%09aContext%20home%20ifNotNil%3A%20%5Bself%20renderContext%3A%20aContext%20home%20on%3A%20html%5D'),
3218
+ messageSends: ["li", "ifTrue:", unescape("%3D"), "class:", "with:", "asString", "onClick:", "selectContext:", "ifNotNil:", "home", "renderContext:on:"],
3219
+ referencedClasses: []
3220
+ }),
3221
+ smalltalk.Debugger);
3222
+
3223
+ smalltalk.addMethod(
3224
+ '_renderBottomPanelOn_',
3225
+ smalltalk.method({
3226
+ selector: 'renderBottomPanelOn:',
3227
+ category: 'rendering',
3228
+ fn: function (html){
3229
+ var self=this;
3230
+ (function($rec){smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [(function(){self['@sourceArea']=smalltalk.send(smalltalk.SourceArea, "_new", []);return smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);})]);})(smalltalk.send(html, "_div", []));
3231
+ smalltalk.send(self, "_updateSourceArea", []);
3232
+ return self;},
3233
+ source: unescape('renderBottomPanelOn%3A%20html%0A%20%20%20%20html%20div%0A%09class%3A%20%27jt_sourceCode%27%3B%0A%09with%3A%20%5B%0A%09%20%20%20%20sourceArea%20%3A%3D%20SourceArea%20new.%0A%09%20%20%20%20sourceArea%20renderOn%3A%20html%5D.%0A%20%20%20%20self%20updateSourceArea'),
3234
+ messageSends: ["class:", "with:", "new", "renderOn:", "div", "updateSourceArea"],
3235
+ referencedClasses: [smalltalk.SourceArea]
3236
+ }),
3237
+ smalltalk.Debugger);
3238
+
3239
+ smalltalk.addMethod(
3240
+ '_canBeClosed',
3241
+ smalltalk.method({
3242
+ selector: 'canBeClosed',
3243
+ category: 'testing',
3244
+ fn: function (){
3245
+ var self=this;
3246
+ return true;
3247
+ return self;},
3248
+ source: unescape('canBeClosed%0A%20%20%20%20%5Etrue'),
3249
+ messageSends: [],
3250
+ referencedClasses: []
3251
+ }),
3252
+ smalltalk.Debugger);
3253
+
3254
+ smalltalk.addMethod(
3255
+ '_updateContextsList',
3256
+ smalltalk.method({
3257
+ selector: 'updateContextsList',
3258
+ category: 'updating',
3259
+ fn: function (){
3260
+ var self=this;
3261
+ smalltalk.send(self['@ul'], "_contents_", [(function(html){return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(smalltalk.send(self, "_error", []), "_context", []), html]);})]);
3262
+ return self;},
3263
+ source: unescape('updateContextsList%0A%09ul%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09self%20renderContext%3A%20self%20error%20context%20on%3A%20html%5D'),
3264
+ messageSends: ["contents:", "renderContext:on:", "context", "error"],
3265
+ referencedClasses: []
3266
+ }),
3267
+ smalltalk.Debugger);
3268
+
3269
+ smalltalk.addMethod(
3270
+ '_updateSourceArea',
3271
+ smalltalk.method({
3272
+ selector: 'updateSourceArea',
3273
+ category: 'updating',
3274
+ fn: function (){
3275
+ var self=this;
3276
+ smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedContext'], "_receiver", []), "_class", []), "_methodAt_", [smalltalk.send(self['@selectedContext'], "_selector", [])]), "_source", [])]);
3277
+ return self;},
3278
+ source: unescape('updateSourceArea%0A%09%20sourceArea%20val%3A%20%28selectedContext%20receiver%20class%20methodAt%3A%20selectedContext%20selector%29%20source'),
3279
+ messageSends: ["val:", "source", "methodAt:", "class", "receiver", "selector"],
3280
+ referencedClasses: []
3281
+ }),
3282
+ smalltalk.Debugger);
3283
+
3284
+
3285
+
3286
+ smalltalk.addClass('DebugErrorHandler', smalltalk.ErrorHandler, [], 'IDE');
3287
+ smalltalk.addMethod(
3288
+ '_handleError_',
3289
+ smalltalk.method({
3290
+ selector: 'handleError:',
3291
+ category: 'error handling',
3292
+ fn: function (anError){
3293
+ var self=this;
3294
+ smalltalk.send((function(){return (function($rec){smalltalk.send($rec, "_error_", [anError]);return smalltalk.send($rec, "_open", []);})(smalltalk.send(smalltalk.Debugger, "_new", []));}), "_on_do_", [smalltalk.Error, (function(error){return smalltalk.send(smalltalk.send(smalltalk.ErrorHandler, "_new", []), "_handleError_", [error]);})]);
3295
+ return self;},
3296
+ source: unescape('handleError%3A%20anError%0A%09%5BDebugger%20new%0A%09%09error%3A%20anError%3B%0A%09%09open%5D%20on%3A%20Error%20do%3A%20%5B%3Aerror%20%7C%0A%09%09%09ErrorHandler%20new%20handleError%3A%20error%5D'),
3297
+ messageSends: ["on:do:", "error:", "open", "new", "handleError:"],
3298
+ referencedClasses: [smalltalk.Debugger,smalltalk.Error,smalltalk.ErrorHandler]
3299
+ }),
3300
+ smalltalk.DebugErrorHandler);
3301
+
3302
+
3303
+ smalltalk.addMethod(
3304
+ '_initialize',
3305
+ smalltalk.method({
3306
+ selector: 'initialize',
3307
+ category: 'initialization',
3308
+ fn: function (){
3309
+ var self=this;
3310
+ smalltalk.send(self, "_register", []);
3311
+ return self;},
3312
+ source: unescape('initialize%0A%09self%20register'),
3313
+ messageSends: ["register"],
3314
+ referencedClasses: []
3315
+ }),
3316
+ smalltalk.DebugErrorHandler.klass);
3317
+
3318
+
3319
+ smalltalk.addMethod(
3320
+ '_inspect',
3321
+ smalltalk.method({
3322
+ selector: 'inspect',
3323
+ category: '*IDE',
3324
+ fn: function (){
3325
+ var self=this;
3326
+ (function($rec){smalltalk.send($rec, "_inspect_", [self]);return smalltalk.send($rec, "_open", []);})(smalltalk.send(smalltalk.Inspector, "_new", []));
3327
+ return self;},
3328
+ source: unescape('inspect%0A%09Inspector%20new%20%0A%09%09inspect%3A%20self%3B%0A%09%09open'),
3329
+ messageSends: ["inspect:", "open", "new"],
3330
+ referencedClasses: [smalltalk.Inspector]
3331
+ }),
3332
+ smalltalk.Object);
3333
+
3334
+ smalltalk.addMethod(
3335
+ '_inspectOn_',
3336
+ smalltalk.method({
3337
+ selector: 'inspectOn:',
3338
+ category: '*IDE',
3339
+ fn: function (anInspector){
3340
+ var self=this;
3341
+ var variables=nil;
3342
+ variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
3343
+ smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
3344
+ smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_allInstanceVariableNames", []), "_do_", [(function(each){return smalltalk.send(variables, "_at_put_", [each, smalltalk.send(self, "_instVarAt_", [each])]);})]);
3345
+ (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
3346
+ return self;},
3347
+ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20variables%20%7C%0A%09variables%20%3A%3D%20Dictionary%20new.%0A%09variables%20at%3A%20%27%23self%27%20put%3A%20self.%0A%09self%20class%20allInstanceVariableNames%20do%3A%20%5B%3Aeach%20%7C%0A%09%09variables%20at%3A%20each%20put%3A%20%28self%20instVarAt%3A%20each%29%5D.%0A%09anInspector%20%0A%09%09setLabel%3A%20self%20printString%3B%0A%09%09setVariables%3A%20variables'),
3348
+ messageSends: ["new", "at:put:", "do:", "allInstanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"],
3349
+ referencedClasses: [smalltalk.Dictionary]
3350
+ }),
3351
+ smalltalk.Object);
3352
+
3353
+ smalltalk.addMethod(
3354
+ '_inspectOn_',
3355
+ smalltalk.method({
3356
+ selector: 'inspectOn:',
3357
+ category: '*IDE',
3358
+ fn: function (anInspector){
3359
+ var self=this;
3360
+ var variables=nil;
3361
+ variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
3362
+ smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
3363
+ smalltalk.send(variables, "_at_put_", [unescape("%23year"), smalltalk.send(self, "_year", [])]);
3364
+ smalltalk.send(variables, "_at_put_", [unescape("%23month"), smalltalk.send(self, "_month", [])]);
3365
+ smalltalk.send(variables, "_at_put_", [unescape("%23day"), smalltalk.send(self, "_day", [])]);
3366
+ smalltalk.send(variables, "_at_put_", [unescape("%23hours"), smalltalk.send(self, "_hours", [])]);
3367
+ smalltalk.send(variables, "_at_put_", [unescape("%23minutes"), smalltalk.send(self, "_minutes", [])]);
3368
+ smalltalk.send(variables, "_at_put_", [unescape("%23seconds"), smalltalk.send(self, "_seconds", [])]);
3369
+ smalltalk.send(variables, "_at_put_", [unescape("%23milliseconds"), smalltalk.send(self, "_milliseconds", [])]);
3370
+ (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
3371
+ return self;},
3372
+ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20variables%20%7C%0A%09variables%20%3A%3D%20Dictionary%20new.%0A%09variables%20at%3A%20%27%23self%27%20put%3A%20self.%0A%09variables%20at%3A%20%27%23year%27%20put%3A%20self%20year.%0A%09variables%20at%3A%20%27%23month%27%20put%3A%20self%20month.%0A%09variables%20at%3A%20%27%23day%27%20put%3A%20self%20day.%0A%09variables%20at%3A%20%27%23hours%27%20put%3A%20self%20hours.%0A%09variables%20at%3A%20%27%23minutes%27%20put%3A%20self%20minutes.%0A%09variables%20at%3A%20%27%23seconds%27%20put%3A%20self%20seconds.%0A%09variables%20at%3A%20%27%23milliseconds%27%20put%3A%20self%20milliseconds.%0A%09anInspector%20%0A%09%09setLabel%3A%20self%20printString%3B%0A%09%09setVariables%3A%20variables'),
3373
+ messageSends: ["new", "at:put:", "year", "month", "day", "hours", "minutes", "seconds", "milliseconds", "setLabel:", "printString", "setVariables:"],
3374
+ referencedClasses: [smalltalk.Dictionary]
3375
+ }),
3376
+ smalltalk.Date);
3377
+
3378
+ smalltalk.addMethod(
3379
+ '_inspectOn_',
3380
+ smalltalk.method({
3381
+ selector: 'inspectOn:',
3382
+ category: '*IDE',
3383
+ fn: function (anInspector){
3384
+ var self=this;
3385
+ var variables=nil;
3386
+ variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
3387
+ smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
3388
+ smalltalk.send(self, "_withIndexDo_", [(function(each, i){return smalltalk.send(variables, "_at_put_", [i, each]);})]);
3389
+ (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
3390
+ return self;},
3391
+ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20variables%20%7C%0A%09variables%20%3A%3D%20Dictionary%20new.%0A%09variables%20at%3A%20%27%23self%27%20put%3A%20self.%0A%09self%20withIndexDo%3A%20%5B%3Aeach%20%3Ai%20%7C%0A%09%09variables%20at%3A%20i%20put%3A%20each%5D.%0A%09anInspector%20%0A%09%09setLabel%3A%20self%20printString%3B%0A%09%09setVariables%3A%20variables'),
3392
+ messageSends: ["new", "at:put:", "withIndexDo:", "setLabel:", "printString", "setVariables:"],
3393
+ referencedClasses: [smalltalk.Dictionary]
3394
+ }),
3395
+ smalltalk.Collection);
3396
+
3397
+ smalltalk.addMethod(
3398
+ '_inspectOn_',
3399
+ smalltalk.method({
3400
+ selector: 'inspectOn:',
3401
+ category: '*IDE',
3402
+ fn: function (anInspector){
3403
+ var self=this;
3404
+ var label=nil;
3405
+ smalltalk.send(self, "_inspectOn_", [anInspector], smalltalk.SequenceableCollection);
3406
+ smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", []), "_size", []), "__gt", [(30)]), "_ifTrue_ifFalse_", [(function(){return label=smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", []), "_copyFrom_to_", [(1), (30)]), "__comma", [unescape("...%27")]);}), (function(){return label=smalltalk.send(self, "_printString", []);})]);
3407
+ smalltalk.send(anInspector, "_setLabel_", [label]);
3408
+ return self;},
3409
+ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20label%20%7C%0A%09super%20inspectOn%3A%20anInspector.%0A%09self%20printString%20size%20%3E%2030%20%0A%09%09ifTrue%3A%20%5Blabel%20%3A%3D%20%28self%20printString%20copyFrom%3A%201%20to%3A%2030%29%2C%20%27...%27%27%27%5D%0A%09%09ifFalse%3A%20%5Blabel%20%3A%3D%20self%20printString%5D.%20%0A%09anInspector%20setLabel%3A%20label'),
3410
+ messageSends: ["inspectOn:", "ifTrue:ifFalse:", unescape("%3E"), "size", "printString", unescape("%2C"), "copyFrom:to:", "setLabel:"],
3411
+ referencedClasses: []
3412
+ }),
3413
+ smalltalk.String);
3414
+
3415
+ smalltalk.addMethod(
3416
+ '_inspectOn_',
3417
+ smalltalk.method({
3418
+ selector: 'inspectOn:',
3419
+ category: '*IDE',
3420
+ fn: function (anInspector){
3421
+ var self=this;
3422
+ var variables=nil;
3423
+ variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
3424
+ smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
3425
+ smalltalk.send(variables, "_at_put_", [unescape("%23home"), smalltalk.send(self, "_home", [])]);
3426
+ smalltalk.send(variables, "_at_put_", [unescape("%23receiver"), smalltalk.send(self, "_receiver", [])]);
3427
+ smalltalk.send(variables, "_at_put_", [unescape("%23selector"), smalltalk.send(self, "_selector", [])]);
3428
+ smalltalk.send(variables, "_at_put_", [unescape("%23temps"), smalltalk.send(self, "_temps", [])]);
3429
+ smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_instanceVariableNames", []), "_do_", [(function(each){return smalltalk.send(variables, "_at_put_", [each, smalltalk.send(self, "_instVarAt_", [each])]);})]);
3430
+ (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
3431
+ return self;},
3432
+ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20variables%20%7C%0A%09variables%20%3A%3D%20Dictionary%20new.%0A%09variables%20at%3A%20%27%23self%27%20put%3A%20self.%0A%09variables%20at%3A%20%27%23home%27%20put%3A%20self%20home.%0A%09variables%20at%3A%20%27%23receiver%27%20put%3A%20self%20receiver.%0A%09variables%20at%3A%20%27%23selector%27%20put%3A%20self%20selector.%0A%09variables%20at%3A%20%27%23temps%27%20put%3A%20self%20temps.%0A%09self%20class%20instanceVariableNames%20do%3A%20%5B%3Aeach%20%7C%0A%09%09variables%20at%3A%20each%20put%3A%20%28self%20instVarAt%3A%20each%29%5D.%0A%09anInspector%20%0A%09%09setLabel%3A%20self%20printString%3B%0A%09%09setVariables%3A%20variables'),
3433
+ messageSends: ["new", "at:put:", "home", "receiver", "selector", "temps", "do:", "instanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"],
3434
+ referencedClasses: [smalltalk.Dictionary]
3435
+ }),
3436
+ smalltalk.MethodContext);
3437
+
3438
+ smalltalk.addMethod(
3439
+ '_inspectOn_',
3440
+ smalltalk.method({
3441
+ selector: 'inspectOn:',
3442
+ category: '*IDE',
3443
+ fn: function (anInspector){
3444
+ var self=this;
3445
+ var variables=nil;
3446
+ variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
3447
+ smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
3448
+ smalltalk.send(variables, "_at_put_", [unescape("%23keys"), smalltalk.send(self, "_keys", [])]);
3449
+ smalltalk.send(self, "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(variables, "_at_put_", [key, value]);})]);
3450
+ (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
3451
+ return self;},
3452
+ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20variables%20%7C%0A%09variables%20%3A%3D%20Dictionary%20new.%0A%09variables%20at%3A%20%27%23self%27%20put%3A%20self.%0A%09variables%20at%3A%20%27%23keys%27%20put%3A%20self%20keys.%0A%09self%20keysAndValuesDo%3A%20%5B%3Akey%20%3Avalue%20%7C%0A%09%09variables%20at%3A%20key%20put%3A%20value%5D.%0A%09anInspector%20%0A%09%09setLabel%3A%20self%20printString%3B%0A%09%09setVariables%3A%20variables'),
3453
+ messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"],
3454
+ referencedClasses: [smalltalk.Dictionary]
3455
+ }),
3456
+ smalltalk.Dictionary);
3457
+