resin 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/amber/js/IDE.js CHANGED
@@ -1,455 +1,703 @@
1
1
  smalltalk.addPackage('IDE', {});
2
- smalltalk.addClass('DebugErrorHandler', smalltalk.ErrorHandler, [], 'IDE');
2
+ smalltalk.addClass('TabManager', smalltalk.Widget, ['selectedTab', 'tabs', 'opened', 'ul', 'input'], 'IDE');
3
3
  smalltalk.addMethod(
4
- unescape('_handleError_'),
4
+ unescape('_tabs'),
5
5
  smalltalk.method({
6
- selector: unescape('handleError%3A'),
7
- category: 'error handling',
8
- fn: function (anError){
6
+ selector: unescape('tabs'),
7
+ category: 'accessing',
8
+ fn: function (){
9
9
  var self=this;
10
- smalltalk.send((function(){return (function($rec){smalltalk.send($rec, "_error_", [anError]);return smalltalk.send($rec, "_open", []);})(smalltalk.send((smalltalk.Debugger || Debugger), "_new", []));}), "_on_do_", [(smalltalk.Error || Error), (function(error){return smalltalk.send(smalltalk.send((smalltalk.ErrorHandler || ErrorHandler), "_new", []), "_handleError_", [error]);})]);
10
+ return (($receiver = self['@tabs']) == nil || $receiver == undefined) ? (function(){return (self['@tabs']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
11
11
  return self;},
12
- args: ["anError"],
13
- 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'),
14
- messageSends: ["on:do:", "error:", "open", "new", "handleError:"],
15
- referencedClasses: ["Debugger", "Error", "ErrorHandler"]
12
+ args: [],
13
+ source: unescape('tabs%0A%20%20%20%20%5Etabs%20ifNil%3A%20%5Btabs%20%3A%3D%20Array%20new%5D'),
14
+ messageSends: ["ifNil:", "new"],
15
+ referencedClasses: ["Array"]
16
16
  }),
17
- smalltalk.DebugErrorHandler);
18
-
17
+ smalltalk.TabManager);
19
18
 
20
19
  smalltalk.addMethod(
21
- unescape('_initialize'),
20
+ unescape('_labelFor_'),
22
21
  smalltalk.method({
23
- selector: unescape('initialize'),
24
- category: 'initialization',
25
- fn: function (){
22
+ selector: unescape('labelFor%3A'),
23
+ category: 'accessing',
24
+ fn: function (aWidget){
26
25
  var self=this;
27
- smalltalk.send(self, "_register", []);
26
+ var label=nil;
27
+ var maxSize=nil;
28
+ (maxSize=(15));
29
+ (label=smalltalk.send(smalltalk.send(aWidget, "_label", []), "_copyFrom_to_", [(0), smalltalk.send(smalltalk.send(smalltalk.send(aWidget, "_label", []), "_size", []), "_min_", [maxSize])]));
30
+ ((($receiver = ((($receiver = smalltalk.send(smalltalk.send(aWidget, "_label", []), "_size", [])).klass === smalltalk.Number) ? $receiver >maxSize : smalltalk.send($receiver, "__gt", [maxSize]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (label=smalltalk.send(label, "__comma", ["..."]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (label=smalltalk.send(label, "__comma", ["..."]));})]));
31
+ return label;
28
32
  return self;},
29
- args: [],
30
- source: unescape('initialize%0A%09self%20register'),
31
- messageSends: ["register"],
33
+ args: ["aWidget"],
34
+ source: unescape('labelFor%3A%20aWidget%0A%09%7C%20label%20maxSize%20%7C%0A%09maxSize%20%3A%3D%2015.%0A%09label%20%3A%3D%20aWidget%20label%20copyFrom%3A%200%20to%3A%20%28aWidget%20label%20size%20min%3A%20maxSize%29.%0A%09aWidget%20label%20size%20%3E%20maxSize%20ifTrue%3A%20%5B%0A%09%09label%20%3A%3D%20label%2C%20%27...%27%5D.%0A%09%5Elabel'),
35
+ messageSends: ["copyFrom:to:", "label", "min:", "size", "ifTrue:", unescape("%3E"), unescape("%2C")],
32
36
  referencedClasses: []
33
37
  }),
34
- smalltalk.DebugErrorHandler.klass);
35
-
38
+ smalltalk.TabManager);
36
39
 
37
- smalltalk.addClass('ClassesListNode', smalltalk.Widget, ['browser', 'theClass', 'level', 'nodes'], 'IDE');
38
40
  smalltalk.addMethod(
39
- unescape('_renderOn_'),
41
+ unescape('_updateBodyMargin'),
40
42
  smalltalk.method({
41
- selector: unescape('renderOn%3A'),
42
- category: '',
43
- fn: function (html){
43
+ selector: unescape('updateBodyMargin'),
44
+ category: 'actions',
45
+ fn: function (){
44
46
  var self=this;
45
- var li=nil;
46
- var cssClass=nil;
47
- (cssClass="");
48
- (li=smalltalk.send(smalltalk.send(html, "_li", []), "_onClick_", [(function(){return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectClass_", [smalltalk.send(self, "_theClass", [])]);})]));
49
- smalltalk.send(smalltalk.send(li, "_asJQuery", []), "_html_", [smalltalk.send(self, "_label", [])]);
50
- ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedClass", []), "__eq", [smalltalk.send(self, "_theClass", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" selected"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" selected"]));})]));
51
- ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_theClass", []), "_comment", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" commented"]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" commented"]));})]));
52
- smalltalk.send(li, "_class_", [cssClass]);
53
- smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);
47
+ smalltalk.send(self, "_setBodyMargin_", [smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_height", [])]);
54
48
  return self;},
55
- args: ["html"],
56
- source: unescape('renderOn%3A%20html%0A%09%7C%20li%20cssClass%20%7C%0A%09cssClass%20%3A%3D%20%27%27.%0A%09li%20%3A%3D%20html%20li%20%0A%09%09onClick%3A%20%5Bself%20browser%20selectClass%3A%20self%20theClass%5D.%20%0A%09li%20asJQuery%20html%3A%20self%20label.%0A%0A%09self%20browser%20selectedClass%20%3D%20self%20theClass%20ifTrue%3A%20%20%5B%0A%09%09cssClass%20%3A%3D%20cssClass%2C%20%27%20selected%27%5D.%0A%0A%09self%20theClass%20comment%20isEmpty%20ifFalse%3A%20%5B%0A%09%09cssClass%20%3A%3D%20cssClass%2C%20%27%20commented%27%5D.%0A%0A%09li%20class%3A%20cssClass.%0A%0A%09self%20nodes%20do%3A%20%5B%3Aeach%20%7C%0A%09%09each%20renderOn%3A%20html%5D'),
57
- messageSends: ["onClick:", "li", "selectClass:", "browser", "theClass", "html:", "asJQuery", "label", "ifTrue:", unescape("%3D"), "selectedClass", unescape("%2C"), "ifFalse:", "isEmpty", "comment", "class:", "do:", "nodes", "renderOn:"],
49
+ args: [],
50
+ source: unescape('updateBodyMargin%0A%20%20%20%20self%20setBodyMargin%3A%20%27%23jtalk%27%20asJQuery%20height'),
51
+ messageSends: ["setBodyMargin:", "height", "asJQuery"],
58
52
  referencedClasses: []
59
53
  }),
60
- smalltalk.ClassesListNode);
54
+ smalltalk.TabManager);
61
55
 
62
56
  smalltalk.addMethod(
63
- unescape('_nodes'),
57
+ unescape('_updatePosition'),
64
58
  smalltalk.method({
65
- selector: unescape('nodes'),
66
- category: 'accessing',
59
+ selector: unescape('updatePosition'),
60
+ category: 'actions',
67
61
  fn: function (){
68
62
  var self=this;
69
- return self['@nodes'];
63
+ jQuery('#jtalk').css('top', '').css('bottom', '0px');
70
64
  return self;},
71
65
  args: [],
72
- source: unescape('nodes%0A%09%5Enodes'),
66
+ 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%270px%27%29%3E'),
73
67
  messageSends: [],
74
68
  referencedClasses: []
75
69
  }),
76
- smalltalk.ClassesListNode);
70
+ smalltalk.TabManager);
77
71
 
78
72
  smalltalk.addMethod(
79
- unescape('_theClass'),
73
+ unescape('_removeBodyMargin'),
80
74
  smalltalk.method({
81
- selector: unescape('theClass'),
82
- category: 'accessing',
75
+ selector: unescape('removeBodyMargin'),
76
+ category: 'actions',
83
77
  fn: function (){
84
78
  var self=this;
85
- return self['@theClass'];
79
+ smalltalk.send(self, "_setBodyMargin_", [(0)]);
86
80
  return self;},
87
81
  args: [],
88
- source: unescape('theClass%0A%09%5EtheClass'),
89
- messageSends: [],
82
+ source: unescape('removeBodyMargin%0A%20%20%20%20self%20setBodyMargin%3A%200'),
83
+ messageSends: ["setBodyMargin:"],
90
84
  referencedClasses: []
91
85
  }),
92
- smalltalk.ClassesListNode);
86
+ smalltalk.TabManager);
93
87
 
94
88
  smalltalk.addMethod(
95
- unescape('_theClass_'),
89
+ unescape('_setBodyMargin_'),
96
90
  smalltalk.method({
97
- selector: unescape('theClass%3A'),
98
- category: 'accessing',
99
- fn: function (aClass){
91
+ selector: unescape('setBodyMargin%3A'),
92
+ category: 'actions',
93
+ fn: function (anInteger){
100
94
  var self=this;
101
- (self['@theClass']=aClass);
95
+ smalltalk.send(smalltalk.send(".jtalkBody", "_asJQuery", []), "_css_put_", [unescape("margin-bottom"), smalltalk.send(smalltalk.send(anInteger, "_asString", []), "__comma", ["px"])]);
102
96
  return self;},
103
- args: ["aClass"],
104
- source: unescape('theClass%3A%20aClass%0A%09theClass%20%3A%3D%20aClass'),
105
- messageSends: [],
97
+ args: ["anInteger"],
98
+ source: unescape('setBodyMargin%3A%20anInteger%0A%20%20%20%20%27.jtalkBody%27%20asJQuery%20css%3A%20%27margin-bottom%27%20put%3A%20anInteger%20asString%2C%20%27px%27'),
99
+ messageSends: ["css:put:", "asJQuery", unescape("%2C"), "asString"],
106
100
  referencedClasses: []
107
101
  }),
108
- smalltalk.ClassesListNode);
102
+ smalltalk.TabManager);
109
103
 
110
104
  smalltalk.addMethod(
111
- unescape('_browser'),
105
+ unescape('_onResize_'),
112
106
  smalltalk.method({
113
- selector: unescape('browser'),
114
- category: 'accessing',
115
- fn: function (){
107
+ selector: unescape('onResize%3A'),
108
+ category: 'actions',
109
+ fn: function (aBlock){
116
110
  var self=this;
117
- return self['@browser'];
111
+ jQuery('#jtalk').resizable({
112
+ handles: 'n',
113
+ resize: aBlock,
114
+ minHeight: 230
115
+ });
118
116
  return self;},
119
- args: [],
120
- source: unescape('browser%0A%09%5Ebrowser'),
117
+ args: ["aBlock"],
118
+ 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'),
121
119
  messageSends: [],
122
120
  referencedClasses: []
123
121
  }),
124
- smalltalk.ClassesListNode);
122
+ smalltalk.TabManager);
125
123
 
126
124
  smalltalk.addMethod(
127
- unescape('_browser_'),
125
+ unescape('_onWindowResize_'),
128
126
  smalltalk.method({
129
- selector: unescape('browser%3A'),
130
- category: 'accessing',
131
- fn: function (aBrowser){
127
+ selector: unescape('onWindowResize%3A'),
128
+ category: 'actions',
129
+ fn: function (aBlock){
132
130
  var self=this;
133
- (self['@browser']=aBrowser);
131
+ jQuery(window).resize(aBlock);
134
132
  return self;},
135
- args: ["aBrowser"],
136
- source: unescape('browser%3A%20aBrowser%0A%09browser%20%3A%3D%20aBrowser'),
133
+ args: ["aBlock"],
134
+ source: unescape('onWindowResize%3A%20aBlock%0A%20%20%20%20%3CjQuery%28window%29.resize%28aBlock%29%3E'),
137
135
  messageSends: [],
138
136
  referencedClasses: []
139
137
  }),
140
- smalltalk.ClassesListNode);
138
+ smalltalk.TabManager);
141
139
 
142
140
  smalltalk.addMethod(
143
- unescape('_level'),
141
+ unescape('_open'),
144
142
  smalltalk.method({
145
- selector: unescape('level'),
146
- category: 'accessing',
143
+ selector: unescape('open'),
144
+ category: 'actions',
147
145
  fn: function (){
148
146
  var self=this;
149
- return self['@level'];
147
+ ((($receiver = self['@opened']).klass === smalltalk.Boolean) ? (! $receiver ? (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);})() : nil) : smalltalk.send($receiver, "_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);})]));
150
148
  return self;},
151
149
  args: [],
152
- source: unescape('level%0A%09%5Elevel'),
153
- messageSends: [],
150
+ 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'),
151
+ messageSends: ["ifFalse:", "addClass:", "asJQuery", "show", "updateBodyMargin"],
154
152
  referencedClasses: []
155
153
  }),
156
- smalltalk.ClassesListNode);
154
+ smalltalk.TabManager);
157
155
 
158
156
  smalltalk.addMethod(
159
- unescape('_level_'),
157
+ unescape('_close'),
160
158
  smalltalk.method({
161
- selector: unescape('level%3A'),
162
- category: 'accessing',
163
- fn: function (anInteger){
159
+ selector: unescape('close'),
160
+ category: 'actions',
161
+ fn: function (){
164
162
  var self=this;
165
- (self['@level']=anInteger);
163
+ ((($receiver = self['@opened']).klass === smalltalk.Boolean) ? ($receiver ? (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);})() : nil) : smalltalk.send($receiver, "_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);})]));
166
164
  return self;},
167
- args: ["anInteger"],
168
- source: unescape('level%3A%20anInteger%0A%09level%20%3A%3D%20anInteger'),
169
- messageSends: [],
165
+ args: [],
166
+ 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'),
167
+ messageSends: ["ifTrue:", "hide", "asJQuery", "removeBodyMargin", "removeClass:"],
170
168
  referencedClasses: []
171
169
  }),
172
- smalltalk.ClassesListNode);
170
+ smalltalk.TabManager);
173
171
 
174
172
  smalltalk.addMethod(
175
- unescape('_label'),
173
+ unescape('_newBrowserTab'),
176
174
  smalltalk.method({
177
- selector: unescape('label'),
178
- category: 'accessing',
175
+ selector: unescape('newBrowserTab'),
176
+ category: 'actions',
179
177
  fn: function (){
180
178
  var self=this;
181
- var str=nil;
182
- (str=smalltalk.send(smalltalk.send((smalltalk.String || String), "_new", []), "_writeStream", []));
183
- smalltalk.send(smalltalk.send(self, "_level", []), "_timesRepeat_", [(function(){return smalltalk.send(str, "_nextPutAll_", [unescape("%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B")]);})]);
184
- smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_theClass", []), "_name", [])]);
185
- return smalltalk.send(str, "_contents", []);
179
+ smalltalk.send((smalltalk.Browser || Browser), "_open", []);
186
180
  return self;},
187
181
  args: [],
188
- 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'),
189
- messageSends: ["writeStream", "new", "timesRepeat:", "level", "nextPutAll:", "name", "theClass", "contents"],
190
- referencedClasses: ["String"]
182
+ source: unescape('newBrowserTab%0A%20%20%20%20Browser%20open'),
183
+ messageSends: ["open"],
184
+ referencedClasses: ["Browser"]
191
185
  }),
192
- smalltalk.ClassesListNode);
186
+ smalltalk.TabManager);
193
187
 
194
188
  smalltalk.addMethod(
195
- unescape('_getNodesFrom_'),
189
+ unescape('_selectTab_'),
196
190
  smalltalk.method({
197
- selector: unescape('getNodesFrom%3A'),
198
- category: 'accessing',
199
- fn: function (aCollection){
191
+ selector: unescape('selectTab%3A'),
192
+ category: 'actions',
193
+ fn: function (aWidget){
200
194
  var self=this;
201
- var children=nil;
202
- var others=nil;
203
- (children=[]);
204
- (others=[]);
205
- smalltalk.send(aCollection, "_do_", [(function(each){return ((($receiver = smalltalk.send(smalltalk.send(each, "_superclass", []), "__eq", [smalltalk.send(self, "_theClass", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(children, "_add_", [each]);})() : (function(){return smalltalk.send(others, "_add_", [each]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]));})]);
206
- (self['@nodes']=smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send((smalltalk.ClassesListNode || ClassesListNode), "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, ((($receiver = smalltalk.send(self, "_level", [])).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]))]);})]));
195
+ smalltalk.send(self, "_open", []);
196
+ (self['@selectedTab']=aWidget);
197
+ smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [(function(each){return smalltalk.send(each, "_hide", []);})]);
198
+ smalltalk.send(aWidget, "_show", []);
199
+ smalltalk.send(self, "_update", []);
207
200
  return self;},
208
- args: ["aCollection"],
209
- 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'),
210
- messageSends: ["do:", "ifTrue:ifFalse:", unescape("%3D"), "superclass", "theClass", "add:", "collect:", "on:browser:classes:level:", "browser", unescape("+"), "level"],
211
- referencedClasses: ["ClassesListNode"]
201
+ args: ["aWidget"],
202
+ 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'),
203
+ messageSends: ["open", "do:", "tabs", "hide", "show", "update"],
204
+ referencedClasses: []
212
205
  }),
213
- smalltalk.ClassesListNode);
214
-
206
+ smalltalk.TabManager);
215
207
 
216
208
  smalltalk.addMethod(
217
- unescape('_on_browser_classes_level_'),
209
+ unescape('_closeTab_'),
218
210
  smalltalk.method({
219
- selector: unescape('on%3Abrowser%3Aclasses%3Alevel%3A'),
220
- category: 'instance creation',
221
- fn: function (aClass, aBrowser, aCollection, anInteger){
211
+ selector: unescape('closeTab%3A'),
212
+ category: 'actions',
213
+ fn: function (aWidget){
222
214
  var self=this;
223
- 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", []));
215
+ smalltalk.send(self, "_removeTab_", [aWidget]);
216
+ smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
217
+ smalltalk.send(aWidget, "_remove", []);
218
+ smalltalk.send(self, "_update", []);
224
219
  return self;},
225
- args: ["aClass", "aBrowser", "aCollection", "anInteger"],
226
- 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'),
227
- messageSends: ["theClass:", "browser:", "level:", "getNodesFrom:", "yourself", "new"],
220
+ args: ["aWidget"],
221
+ 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'),
222
+ messageSends: ["removeTab:", "selectTab:", "last", "tabs", "remove", "update"],
228
223
  referencedClasses: []
229
224
  }),
230
- smalltalk.ClassesListNode.klass);
225
+ smalltalk.TabManager);
231
226
 
227
+ smalltalk.addMethod(
228
+ unescape('_search_'),
229
+ smalltalk.method({
230
+ selector: unescape('search%3A'),
231
+ category: 'actions',
232
+ fn: function (aString){
233
+ var self=this;
234
+ var searchedClass=nil;
235
+ (searchedClass=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_at_", [aString]));
236
+ ((($receiver = smalltalk.send(searchedClass, "_isClass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send((smalltalk.Browser || Browser), "_openOn_", [searchedClass]);})() : (function(){return smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser), "_search_", [aString]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send((smalltalk.Browser || Browser), "_openOn_", [searchedClass]);}), (function(){return smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser), "_search_", [aString]);})]));
237
+ return self;},
238
+ args: ["aString"],
239
+ source: unescape('search%3A%20aString%0A%09%7C%20searchedClass%20%7C%0A%09searchedClass%20%3A%3D%20Smalltalk%20current%20at%3A%20aString.%0A%09%09searchedClass%20isClass%0A%09%09%09ifTrue%3A%20%5BBrowser%20openOn%3A%20searchedClass%5D%0A%09%09%09ifFalse%3A%20%5BReferencesBrowser%20search%3A%20aString%5D'),
240
+ messageSends: ["at:", "current", "ifTrue:ifFalse:", "isClass", "openOn:", "search:"],
241
+ referencedClasses: ["Smalltalk", "Browser", "ReferencesBrowser"]
242
+ }),
243
+ smalltalk.TabManager);
232
244
 
233
- smalltalk.addClass('ClassesList', smalltalk.Widget, ['browser', 'ul', 'nodes'], 'IDE');
234
245
  smalltalk.addMethod(
235
- unescape('_category'),
246
+ unescape('_addTab_'),
236
247
  smalltalk.method({
237
- selector: unescape('category'),
238
- category: 'accessing',
239
- fn: function (){
248
+ selector: unescape('addTab%3A'),
249
+ category: 'adding/Removing',
250
+ fn: function (aWidget){
240
251
  var self=this;
241
- return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedPackage", []);
252
+ smalltalk.send(smalltalk.send(self, "_tabs", []), "_add_", [aWidget]);
253
+ smalltalk.send(aWidget, "_appendToJQuery_", [smalltalk.send(unescape("%23jtalk"), "_asJQuery", [])]);
254
+ smalltalk.send(aWidget, "_hide", []);
242
255
  return self;},
243
- args: [],
244
- source: unescape('category%0A%09%5Eself%20browser%20selectedPackage'),
245
- messageSends: ["selectedPackage", "browser"],
256
+ args: ["aWidget"],
257
+ source: unescape('addTab%3A%20aWidget%0A%20%20%20%20self%20tabs%20add%3A%20aWidget.%0A%20%20%20%20aWidget%20appendToJQuery%3A%20%27%23jtalk%27%20asJQuery.%0A%20%20%20%20aWidget%20hide'),
258
+ messageSends: ["add:", "tabs", "appendToJQuery:", "asJQuery", "hide"],
246
259
  referencedClasses: []
247
260
  }),
248
- smalltalk.ClassesList);
261
+ smalltalk.TabManager);
249
262
 
250
263
  smalltalk.addMethod(
251
- unescape('_nodes'),
264
+ unescape('_removeTab_'),
252
265
  smalltalk.method({
253
- selector: unescape('nodes'),
254
- category: 'accessing',
255
- fn: function (){
266
+ selector: unescape('removeTab%3A'),
267
+ category: 'adding/Removing',
268
+ fn: function (aWidget){
256
269
  var self=this;
257
- (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send(self, "_getNodes", []));})() : $receiver;
258
- return self['@nodes'];
270
+ smalltalk.send(smalltalk.send(self, "_tabs", []), "_remove_", [aWidget]);
271
+ smalltalk.send(self, "_update", []);
259
272
  return self;},
260
- args: [],
261
- source: unescape('nodes%0A%09nodes%20ifNil%3A%20%5Bnodes%20%3A%3D%20self%20getNodes%5D.%0A%09%5Enodes'),
262
- messageSends: ["ifNil:", "getNodes"],
273
+ args: ["aWidget"],
274
+ source: unescape('removeTab%3A%20aWidget%0A%20%20%20%20self%20tabs%20remove%3A%20aWidget.%0A%20%20%20%20self%20update'),
275
+ messageSends: ["remove:", "tabs", "update"],
263
276
  referencedClasses: []
264
277
  }),
265
- smalltalk.ClassesList);
278
+ smalltalk.TabManager);
266
279
 
267
280
  smalltalk.addMethod(
268
- unescape('_browser'),
281
+ unescape('_initialize'),
269
282
  smalltalk.method({
270
- selector: unescape('browser'),
271
- category: 'accessing',
283
+ selector: unescape('initialize'),
284
+ category: 'initialization',
272
285
  fn: function (){
273
286
  var self=this;
274
- return self['@browser'];
287
+ smalltalk.send(self, "_initialize", [], smalltalk.Widget);
288
+ (self['@opened']=true);
289
+ smalltalk.send((function(html){return smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["jtalk"]);}), "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
290
+ smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_addClass_", ["jtalkBody"]);
291
+ smalltalk.send(self, "_appendToJQuery_", [smalltalk.send(unescape("%23jtalk"), "_asJQuery", [])]);
292
+ (function($rec){smalltalk.send($rec, "_addTab_", [smalltalk.send((smalltalk.IDETranscript || IDETranscript), "_current", [])]);smalltalk.send($rec, "_addTab_", [smalltalk.send((smalltalk.Workspace || Workspace), "_new", [])]);return smalltalk.send($rec, "_addTab_", [smalltalk.send((smalltalk.TestRunner || TestRunner), "_new", [])]);})(self);
293
+ smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
294
+ (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);
275
295
  return self;},
276
296
  args: [],
277
- source: unescape('browser%0A%09%5Ebrowser'),
278
- messageSends: [],
279
- referencedClasses: []
297
+ source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20opened%20%3A%3D%20true.%0A%20%20%20%20%5B%3Ahtml%20%7C%20html%20div%20id%3A%20%27jtalk%27%5D%20appendToJQuery%3A%20%27body%27%20asJQuery.%0A%20%20%20%20%27body%27%20asJQuery%20%0A%09addClass%3A%20%27jtalkBody%27.%0A%20%20%20%20self%20appendToJQuery%3A%20%27%23jtalk%27%20asJQuery.%0A%20%20%20%20self%20%0A%09addTab%3A%20IDETranscript%20current%3B%0A%09addTab%3A%20Workspace%20new%3B%0A%09addTab%3A%20TestRunner%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'),
298
+ messageSends: ["initialize", "appendToJQuery:", "id:", "div", "asJQuery", "addClass:", "addTab:", "current", "new", "selectTab:", "last", "tabs", "onResize:", "updateBodyMargin", "updatePosition", "onWindowResize:"],
299
+ referencedClasses: ["IDETranscript", "Workspace", "TestRunner"]
280
300
  }),
281
- smalltalk.ClassesList);
301
+ smalltalk.TabManager);
282
302
 
283
303
  smalltalk.addMethod(
284
- unescape('_browser_'),
304
+ unescape('_renderOn_'),
285
305
  smalltalk.method({
286
- selector: unescape('browser%3A'),
287
- category: 'accessing',
288
- fn: function (aBrowser){
306
+ selector: unescape('renderOn%3A'),
307
+ category: 'rendering',
308
+ fn: function (html){
289
309
  var self=this;
290
- (self['@browser']=aBrowser);
310
+ smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["logo"]);
311
+ smalltalk.send(self, "_renderToolbarOn_", [html]);
312
+ (self['@ul']=(function($rec){smalltalk.send($rec, "_id_", ["jtalkTabs"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", [])));
313
+ smalltalk.send(self, "_renderTabs", []);
291
314
  return self;},
292
- args: ["aBrowser"],
293
- source: unescape('browser%3A%20aBrowser%0A%09browser%20%3A%3D%20aBrowser'),
294
- messageSends: [],
315
+ args: ["html"],
316
+ source: unescape('renderOn%3A%20html%0A%09html%20div%20id%3A%20%27logo%27.%0A%09self%20renderToolbarOn%3A%20html.%0A%09ul%20%3A%3D%20html%20ul%0A%09%09id%3A%20%27jtalkTabs%27%3B%0A%09%09yourself.%0A%09self%20renderTabs'),
317
+ messageSends: ["id:", "div", "renderToolbarOn:", "yourself", "ul", "renderTabs"],
295
318
  referencedClasses: []
296
319
  }),
297
- smalltalk.ClassesList);
320
+ smalltalk.TabManager);
298
321
 
299
322
  smalltalk.addMethod(
300
- unescape('_getNodes'),
323
+ unescape('_renderTabFor_on_'),
301
324
  smalltalk.method({
302
- selector: unescape('getNodes'),
303
- category: 'accessing',
304
- fn: function (){
325
+ selector: unescape('renderTabFor%3Aon%3A'),
326
+ category: 'rendering',
327
+ fn: function (aWidget, html){
305
328
  var self=this;
306
- var classes=nil;
307
- var children=nil;
308
- var others=nil;
309
- (classes=smalltalk.send(smalltalk.send(self, "_browser", []), "_classes", []));
310
- (children=[]);
311
- (others=[]);
312
- smalltalk.send(classes, "_do_", [(function(each){return ((($receiver = smalltalk.send(classes, "_includes_", [smalltalk.send(each, "_superclass", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(children, "_add_", [each]);})() : (function(){return smalltalk.send(others, "_add_", [each]);})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]));})]);
313
- return smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send((smalltalk.ClassesListNode || ClassesListNode), "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, (0)]);})]);
329
+ var li=nil;
330
+ (li=smalltalk.send(html, "_li", []));
331
+ ((($receiver = smalltalk.send(self['@selectedTab'], "__eq", [aWidget])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(li, "_class_", ["selected"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]));
332
+ (function($rec){smalltalk.send($rec, "_with_", [(function(){smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["ltab"]);(function($rec){smalltalk.send($rec, "_class_", ["mtab"]);return smalltalk.send($rec, "_with_", [(function(){((($receiver = smalltalk.send(aWidget, "_canBeClosed", [])).klass === smalltalk.Boolean) ? ($receiver ? (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", []));})() : nil) : smalltalk.send($receiver, "_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 smalltalk.send(smalltalk.send(html, "_span", []), "_with_", [smalltalk.send(self, "_labelFor_", [aWidget])]);})]);})(smalltalk.send(html, "_span", []));return smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["rtab"]);})]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", [aWidget]);})]);})(li);
314
333
  return self;},
315
- args: [],
316
- 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'),
317
- messageSends: ["classes", "browser", "do:", "ifFalse:ifTrue:", "includes:", "superclass", "add:", "collect:", "on:browser:classes:level:"],
318
- referencedClasses: ["ClassesListNode"]
334
+ args: ["aWidget", "html"],
335
+ source: unescape('renderTabFor%3A%20aWidget%20on%3A%20html%0A%09%7C%20li%20%7C%0A%09li%20%3A%3D%20html%20li.%0A%09selectedTab%20%3D%20aWidget%20ifTrue%3A%20%5B%0A%09li%20class%3A%20%27selected%27%5D.%0A%09li%20with%3A%20%5B%0A%09%09html%20span%20class%3A%20%27ltab%27.%0A%09%09html%20span%0A%09%09%09class%3A%20%27mtab%27%3B%0A%09%09%09with%3A%20%5B%0A%09%09%09%09aWidget%20canBeClosed%20ifTrue%3A%20%5B%0A%09%09%09%09%09html%20span%20%0A%09%09%09%09%09%09class%3A%20%27close%27%3B%0A%09%09%09%09%09%09with%3A%20%27x%27%3B%0A%09%09%09%09%09onClick%3A%20%5Bself%20closeTab%3A%20aWidget%5D%5D.%0A%09%09%09html%20span%20with%3A%20%28self%20labelFor%3A%20aWidget%29%5D.%0A%09%09html%20span%20class%3A%20%27rtab%27%5D%3B%0A%09onClick%3A%20%5Bself%20selectTab%3A%20aWidget%5D'),
336
+ messageSends: ["li", "ifTrue:", unescape("%3D"), "class:", "with:", "span", "canBeClosed", "onClick:", "closeTab:", "labelFor:", "selectTab:"],
337
+ referencedClasses: []
319
338
  }),
320
- smalltalk.ClassesList);
339
+ smalltalk.TabManager);
321
340
 
322
341
  smalltalk.addMethod(
323
- unescape('_resetNodes'),
342
+ unescape('_renderTabs'),
324
343
  smalltalk.method({
325
- selector: unescape('resetNodes'),
326
- category: 'accessing',
344
+ selector: unescape('renderTabs'),
345
+ category: 'rendering',
327
346
  fn: function (){
328
347
  var self=this;
329
- (self['@nodes']=nil);
348
+ smalltalk.send(self['@ul'], "_contents_", [(function(html){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_", [(function(){smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["ltab"]);(function($rec){smalltalk.send($rec, "_class_", ["mtab"]);return smalltalk.send($rec, "_with_", [unescape("%20+%20")]);})(smalltalk.send(html, "_span", []));return smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["rtab"]);})]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_newBrowserTab", []);})]);})(smalltalk.send(html, "_li", []));})]);
330
349
  return self;},
331
350
  args: [],
332
- source: unescape('resetNodes%0A%09nodes%20%3A%3D%20nil'),
333
- messageSends: [],
351
+ source: unescape('renderTabs%0A%09ul%20contents%3A%20%5B%3Ahtml%20%7C%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%5B%0A%09%09%09html%20span%20class%3A%20%27ltab%27.%0A%09%09%09html%20span%20class%3A%20%27mtab%27%3B%20with%3A%20%27%20+%20%27.%0A%09%09%09html%20span%20class%3A%20%27rtab%27%5D%3B%0A%09%09onClick%3A%20%5Bself%20newBrowserTab%5D%5D'),
352
+ messageSends: ["contents:", "do:", "tabs", "renderTabFor:on:", "class:", "with:", "span", "onClick:", "newBrowserTab", "li"],
334
353
  referencedClasses: []
335
354
  }),
336
- smalltalk.ClassesList);
355
+ smalltalk.TabManager);
337
356
 
338
357
  smalltalk.addMethod(
339
- unescape('_renderOn_'),
358
+ unescape('_renderToolbarOn_'),
340
359
  smalltalk.method({
341
- selector: unescape('renderOn%3A'),
360
+ selector: unescape('renderToolbarOn%3A'),
342
361
  category: 'rendering',
343
362
  fn: function (html){
344
363
  var self=this;
345
- (self['@ul']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column browser classes"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", [])));
346
- smalltalk.send(self, "_updateNodes", []);
364
+ (function($rec){smalltalk.send($rec, "_id_", ["jt_toolbar"]);return smalltalk.send($rec, "_with_", [(function(){(self['@input']=(function($rec){smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_input", [])));smalltalk.send(self['@input'], "_onKeyPress_", [(function(event){return ((($receiver = smalltalk.send(smalltalk.send(event, "_keyCode", []), "__eq", [(13)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);})]));})]);return (function($rec){smalltalk.send($rec, "_id_", ["jt_close"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_close", []);})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
347
365
  return self;},
348
366
  args: ["html"],
349
- 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'),
350
- messageSends: ["class:", "yourself", "ul", "updateNodes"],
367
+ source: unescape('renderToolbarOn%3A%20html%0A%09html%20div%20%0A%09%09id%3A%20%27jt_toolbar%27%3B%0A%09%09with%3A%20%5B%0A%09%09%09input%20%3A%3D%20html%20input%20%0A%09%09%09%09class%3A%20%27implementors%27%3B%0A%09%09%09%09yourself.%0A%09%09%09input%20onKeyPress%3A%20%5B%3Aevent%20%7C%0A%09%09%09%09event%20keyCode%20%3D%2013%20ifTrue%3A%20%5B%0A%09%09%09%09self%20search%3A%20input%20asJQuery%20val%5D%5D.%0A%09%09%09html%20div%20id%3A%20%27jt_close%27%3B%20onClick%3A%20%5Bself%20close%5D%5D'),
368
+ messageSends: ["id:", "with:", "class:", "yourself", "input", "onKeyPress:", "ifTrue:", unescape("%3D"), "keyCode", "search:", "val", "asJQuery", "onClick:", "close", "div"],
351
369
  referencedClasses: []
352
370
  }),
353
- smalltalk.ClassesList);
371
+ smalltalk.TabManager);
354
372
 
355
373
  smalltalk.addMethod(
356
- unescape('_updateNodes'),
374
+ unescape('_update'),
357
375
  smalltalk.method({
358
- selector: unescape('updateNodes'),
359
- category: 'rendering',
376
+ selector: unescape('update'),
377
+ category: 'updating',
360
378
  fn: function (){
361
379
  var self=this;
362
- smalltalk.send(self['@ul'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);})]);
380
+ smalltalk.send(self, "_renderTabs", []);
363
381
  return self;},
364
382
  args: [],
365
- 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'),
366
- messageSends: ["contents:", "do:", "nodes", "renderOn:"],
383
+ source: unescape('update%0A%09self%20renderTabs'),
384
+ messageSends: ["renderTabs"],
367
385
  referencedClasses: []
368
386
  }),
369
- smalltalk.ClassesList);
387
+ smalltalk.TabManager);
370
388
 
371
389
 
390
+ smalltalk.TabManager.klass.iVarNames = ['current'];
372
391
  smalltalk.addMethod(
373
- unescape('_on_'),
392
+ unescape('_current'),
374
393
  smalltalk.method({
375
- selector: unescape('on%3A'),
394
+ selector: unescape('current'),
376
395
  category: 'instance creation',
377
- fn: function (aBrowser){
396
+ fn: function (){
378
397
  var self=this;
379
- return (function($rec){smalltalk.send($rec, "_browser_", [aBrowser]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
398
+ return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", [], smalltalk.Widget.klass));})() : $receiver;
380
399
  return self;},
381
- args: ["aBrowser"],
382
- source: unescape('on%3A%20aBrowser%0A%09%5Eself%20new%20%0A%09%09browser%3A%20aBrowser%3B%20%0A%09%09yourself'),
383
- messageSends: ["browser:", "yourself", "new"],
400
+ args: [],
401
+ source: unescape('current%0A%20%20%20%20%5Ecurrent%20ifNil%3A%20%5Bcurrent%20%3A%3D%20super%20new%5D'),
402
+ messageSends: ["ifNil:", "new"],
384
403
  referencedClasses: []
385
404
  }),
386
- smalltalk.ClassesList.klass);
387
-
405
+ smalltalk.TabManager.klass);
388
406
 
389
- smalltalk.addClass('SourceArea', smalltalk.Widget, ['editor', 'div', 'receiver', 'onDoIt'], 'IDE');
390
407
  smalltalk.addMethod(
391
- unescape('_val'),
408
+ unescape('_new'),
392
409
  smalltalk.method({
393
- selector: unescape('val'),
394
- category: 'accessing',
410
+ selector: unescape('new'),
411
+ category: 'instance creation',
395
412
  fn: function (){
396
413
  var self=this;
397
- return smalltalk.send(self['@editor'], "_getValue", []);
414
+ smalltalk.send(self, "_shouldNotImplement", []);
398
415
  return self;},
399
416
  args: [],
400
- source: unescape('val%0A%20%20%20%20%5Eeditor%20getValue'),
401
- messageSends: ["getValue"],
417
+ source: unescape('new%0A%20%20%20%20self%20shouldNotImplement'),
418
+ messageSends: ["shouldNotImplement"],
402
419
  referencedClasses: []
403
420
  }),
404
- smalltalk.SourceArea);
421
+ smalltalk.TabManager.klass);
422
+
405
423
 
424
+ smalltalk.addClass('TabWidget', smalltalk.Widget, ['div'], 'IDE');
406
425
  smalltalk.addMethod(
407
- unescape('_val_'),
426
+ unescape('_label'),
408
427
  smalltalk.method({
409
- selector: unescape('val%3A'),
428
+ selector: unescape('label'),
410
429
  category: 'accessing',
411
- fn: function (aString){
430
+ fn: function (){
412
431
  var self=this;
413
- smalltalk.send(self['@editor'], "_setValue_", [aString]);
432
+ smalltalk.send(self, "_subclassResponsibility", []);
414
433
  return self;},
415
- args: ["aString"],
416
- source: unescape('val%3A%20aString%0A%20%20%20%20editor%20setValue%3A%20aString'),
417
- messageSends: ["setValue:"],
434
+ args: [],
435
+ source: unescape('label%0A%20%20%20%20self%20subclassResponsibility'),
436
+ messageSends: ["subclassResponsibility"],
418
437
  referencedClasses: []
419
438
  }),
420
- smalltalk.SourceArea);
439
+ smalltalk.TabWidget);
421
440
 
422
441
  smalltalk.addMethod(
423
- unescape('_currentLine'),
442
+ unescape('_open'),
424
443
  smalltalk.method({
425
- selector: unescape('currentLine'),
426
- category: 'accessing',
444
+ selector: unescape('open'),
445
+ category: 'actions',
427
446
  fn: function (){
428
447
  var self=this;
429
- return smalltalk.send(self['@editor'], "_getLine_", [smalltalk.send(smalltalk.send(self['@editor'], "_getCursor", []), "_line", [])]);
448
+ smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager), "_current", []), "_addTab_", [self]);
449
+ smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager), "_current", []), "_selectTab_", [self]);
430
450
  return self;},
431
451
  args: [],
432
- source: unescape('currentLine%0A%20%20%20%20%5Eeditor%20getLine%3A%20%28editor%20getCursor%20line%29'),
433
- messageSends: ["getLine:", "line", "getCursor"],
434
- referencedClasses: []
452
+ source: unescape('open%0A%20%20%20%20TabManager%20current%20addTab%3A%20self.%0A%20%20%20%20TabManager%20current%20selectTab%3A%20self'),
453
+ messageSends: ["addTab:", "current", "selectTab:"],
454
+ referencedClasses: ["TabManager"]
435
455
  }),
436
- smalltalk.SourceArea);
456
+ smalltalk.TabWidget);
437
457
 
438
458
  smalltalk.addMethod(
439
- unescape('_selection'),
459
+ unescape('_show'),
440
460
  smalltalk.method({
441
- selector: unescape('selection'),
442
- category: 'accessing',
461
+ selector: unescape('show'),
462
+ category: 'actions',
443
463
  fn: function (){
444
464
  var self=this;
445
- return smalltalk.send(self['@editor'], "_getSelection", []);
465
+ smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_show", []);
446
466
  return self;},
447
467
  args: [],
448
- source: unescape('selection%0A%09%5Eeditor%20getSelection'),
449
- messageSends: ["getSelection"],
468
+ source: unescape('show%0A%09div%20asJQuery%20show'),
469
+ messageSends: ["show", "asJQuery"],
450
470
  referencedClasses: []
451
471
  }),
452
- smalltalk.SourceArea);
472
+ smalltalk.TabWidget);
473
+
474
+ smalltalk.addMethod(
475
+ unescape('_hide'),
476
+ smalltalk.method({
477
+ selector: unescape('hide'),
478
+ category: 'actions',
479
+ fn: function (){
480
+ var self=this;
481
+ smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_hide", []);
482
+ return self;},
483
+ args: [],
484
+ source: unescape('hide%0A%09div%20asJQuery%20hide'),
485
+ messageSends: ["hide", "asJQuery"],
486
+ referencedClasses: []
487
+ }),
488
+ smalltalk.TabWidget);
489
+
490
+ smalltalk.addMethod(
491
+ unescape('_remove'),
492
+ smalltalk.method({
493
+ selector: unescape('remove'),
494
+ category: 'actions',
495
+ fn: function (){
496
+ var self=this;
497
+ smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_remove", []);
498
+ return self;},
499
+ args: [],
500
+ source: unescape('remove%0A%09div%20asJQuery%20remove'),
501
+ messageSends: ["remove", "asJQuery"],
502
+ referencedClasses: []
503
+ }),
504
+ smalltalk.TabWidget);
505
+
506
+ smalltalk.addMethod(
507
+ unescape('_close'),
508
+ smalltalk.method({
509
+ selector: unescape('close'),
510
+ category: 'actions',
511
+ fn: function (){
512
+ var self=this;
513
+ smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager), "_current", []), "_closeTab_", [self]);
514
+ return self;},
515
+ args: [],
516
+ source: unescape('close%0A%20%20%20%20TabManager%20current%20closeTab%3A%20self'),
517
+ messageSends: ["closeTab:", "current"],
518
+ referencedClasses: ["TabManager"]
519
+ }),
520
+ smalltalk.TabWidget);
521
+
522
+ smalltalk.addMethod(
523
+ unescape('_renderOn_'),
524
+ smalltalk.method({
525
+ selector: unescape('renderOn%3A'),
526
+ category: 'rendering',
527
+ fn: function (html){
528
+ var self=this;
529
+ (self['@div']=(function($rec){smalltalk.send($rec, "_class_", ["jtalkTool"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_div", [])));
530
+ smalltalk.send(self, "_renderTab", []);
531
+ return self;},
532
+ args: ["html"],
533
+ 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'),
534
+ messageSends: ["class:", "yourself", "div", "renderTab"],
535
+ referencedClasses: []
536
+ }),
537
+ smalltalk.TabWidget);
538
+
539
+ smalltalk.addMethod(
540
+ unescape('_renderBoxOn_'),
541
+ smalltalk.method({
542
+ selector: unescape('renderBoxOn%3A'),
543
+ category: 'rendering',
544
+ fn: function (html){
545
+ var self=this;
546
+
547
+ return self;},
548
+ args: ["html"],
549
+ source: unescape('renderBoxOn%3A%20html'),
550
+ messageSends: [],
551
+ referencedClasses: []
552
+ }),
553
+ smalltalk.TabWidget);
554
+
555
+ smalltalk.addMethod(
556
+ unescape('_renderButtonsOn_'),
557
+ smalltalk.method({
558
+ selector: unescape('renderButtonsOn%3A'),
559
+ category: 'rendering',
560
+ fn: function (html){
561
+ var self=this;
562
+
563
+ return self;},
564
+ args: ["html"],
565
+ source: unescape('renderButtonsOn%3A%20html'),
566
+ messageSends: [],
567
+ referencedClasses: []
568
+ }),
569
+ smalltalk.TabWidget);
570
+
571
+ smalltalk.addMethod(
572
+ unescape('_update'),
573
+ smalltalk.method({
574
+ selector: unescape('update'),
575
+ category: 'rendering',
576
+ fn: function (){
577
+ var self=this;
578
+ smalltalk.send(self, "_renderTab", []);
579
+ return self;},
580
+ args: [],
581
+ source: unescape('update%0A%09self%20renderTab'),
582
+ messageSends: ["renderTab"],
583
+ referencedClasses: []
584
+ }),
585
+ smalltalk.TabWidget);
586
+
587
+ smalltalk.addMethod(
588
+ unescape('_renderTab'),
589
+ smalltalk.method({
590
+ selector: unescape('renderTab'),
591
+ category: 'rendering',
592
+ fn: function (){
593
+ var self=this;
594
+ 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", []));})]);
595
+ return self;},
596
+ args: [],
597
+ 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'),
598
+ messageSends: ["contents:", "class:", "with:", "renderBoxOn:", "div", "renderButtonsOn:"],
599
+ referencedClasses: []
600
+ }),
601
+ smalltalk.TabWidget);
602
+
603
+ smalltalk.addMethod(
604
+ unescape('_canBeClosed'),
605
+ smalltalk.method({
606
+ selector: unescape('canBeClosed'),
607
+ category: 'testing',
608
+ fn: function (){
609
+ var self=this;
610
+ return false;
611
+ return self;},
612
+ args: [],
613
+ source: unescape('canBeClosed%0A%20%20%20%20%5Efalse'),
614
+ messageSends: [],
615
+ referencedClasses: []
616
+ }),
617
+ smalltalk.TabWidget);
618
+
619
+
620
+ smalltalk.addMethod(
621
+ unescape('_open'),
622
+ smalltalk.method({
623
+ selector: unescape('open'),
624
+ category: 'instance creation',
625
+ fn: function (){
626
+ var self=this;
627
+ return smalltalk.send(smalltalk.send(self, "_new", []), "_open", []);
628
+ return self;},
629
+ args: [],
630
+ source: unescape('open%0A%20%20%20%20%5Eself%20new%20open'),
631
+ messageSends: ["open", "new"],
632
+ referencedClasses: []
633
+ }),
634
+ smalltalk.TabWidget.klass);
635
+
636
+
637
+ smalltalk.addClass('SourceArea', smalltalk.Widget, ['editor', 'div', 'receiver', 'onDoIt'], 'IDE');
638
+ smalltalk.addMethod(
639
+ unescape('_val'),
640
+ smalltalk.method({
641
+ selector: unescape('val'),
642
+ category: 'accessing',
643
+ fn: function (){
644
+ var self=this;
645
+ return smalltalk.send(self['@editor'], "_getValue", []);
646
+ return self;},
647
+ args: [],
648
+ source: unescape('val%0A%20%20%20%20%5Eeditor%20getValue'),
649
+ messageSends: ["getValue"],
650
+ referencedClasses: []
651
+ }),
652
+ smalltalk.SourceArea);
653
+
654
+ smalltalk.addMethod(
655
+ unescape('_val_'),
656
+ smalltalk.method({
657
+ selector: unescape('val%3A'),
658
+ category: 'accessing',
659
+ fn: function (aString){
660
+ var self=this;
661
+ smalltalk.send(self['@editor'], "_setValue_", [aString]);
662
+ return self;},
663
+ args: ["aString"],
664
+ source: unescape('val%3A%20aString%0A%20%20%20%20editor%20setValue%3A%20aString'),
665
+ messageSends: ["setValue:"],
666
+ referencedClasses: []
667
+ }),
668
+ smalltalk.SourceArea);
669
+
670
+ smalltalk.addMethod(
671
+ unescape('_currentLine'),
672
+ smalltalk.method({
673
+ selector: unescape('currentLine'),
674
+ category: 'accessing',
675
+ fn: function (){
676
+ var self=this;
677
+ return smalltalk.send(self['@editor'], "_getLine_", [smalltalk.send(smalltalk.send(self['@editor'], "_getCursor", []), "_line", [])]);
678
+ return self;},
679
+ args: [],
680
+ source: unescape('currentLine%0A%20%20%20%20%5Eeditor%20getLine%3A%20%28editor%20getCursor%20line%29'),
681
+ messageSends: ["getLine:", "line", "getCursor"],
682
+ referencedClasses: []
683
+ }),
684
+ smalltalk.SourceArea);
685
+
686
+ smalltalk.addMethod(
687
+ unescape('_selection'),
688
+ smalltalk.method({
689
+ selector: unescape('selection'),
690
+ category: 'accessing',
691
+ fn: function (){
692
+ var self=this;
693
+ return smalltalk.send(self['@editor'], "_getSelection", []);
694
+ return self;},
695
+ args: [],
696
+ source: unescape('selection%0A%09%5Eeditor%20getSelection'),
697
+ messageSends: ["getSelection"],
698
+ referencedClasses: []
699
+ }),
700
+ smalltalk.SourceArea);
453
701
 
454
702
  smalltalk.addMethod(
455
703
  unescape('_selectionEnd'),
@@ -848,103 +1096,110 @@ smalltalk.SourceArea);
848
1096
 
849
1097
 
850
1098
 
851
- smalltalk.addClass('TabWidget', smalltalk.Widget, ['div'], 'IDE');
1099
+ smalltalk.addClass('ClassesList', smalltalk.Widget, ['browser', 'ul', 'nodes'], 'IDE');
852
1100
  smalltalk.addMethod(
853
- unescape('_label'),
1101
+ unescape('_category'),
854
1102
  smalltalk.method({
855
- selector: unescape('label'),
1103
+ selector: unescape('category'),
856
1104
  category: 'accessing',
857
1105
  fn: function (){
858
1106
  var self=this;
859
- smalltalk.send(self, "_subclassResponsibility", []);
1107
+ return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedPackage", []);
860
1108
  return self;},
861
1109
  args: [],
862
- source: unescape('label%0A%20%20%20%20self%20subclassResponsibility'),
863
- messageSends: ["subclassResponsibility"],
1110
+ source: unescape('category%0A%09%5Eself%20browser%20selectedPackage'),
1111
+ messageSends: ["selectedPackage", "browser"],
864
1112
  referencedClasses: []
865
1113
  }),
866
- smalltalk.TabWidget);
1114
+ smalltalk.ClassesList);
867
1115
 
868
1116
  smalltalk.addMethod(
869
- unescape('_open'),
1117
+ unescape('_nodes'),
870
1118
  smalltalk.method({
871
- selector: unescape('open'),
872
- category: 'actions',
1119
+ selector: unescape('nodes'),
1120
+ category: 'accessing',
873
1121
  fn: function (){
874
1122
  var self=this;
875
- smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager), "_current", []), "_addTab_", [self]);
876
- smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager), "_current", []), "_selectTab_", [self]);
1123
+ (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send(self, "_getNodes", []));})() : $receiver;
1124
+ return self['@nodes'];
877
1125
  return self;},
878
1126
  args: [],
879
- source: unescape('open%0A%20%20%20%20TabManager%20current%20addTab%3A%20self.%0A%20%20%20%20TabManager%20current%20selectTab%3A%20self'),
880
- messageSends: ["addTab:", "current", "selectTab:"],
881
- referencedClasses: ["TabManager"]
882
- }),
883
- smalltalk.TabWidget);
1127
+ source: unescape('nodes%0A%09nodes%20ifNil%3A%20%5Bnodes%20%3A%3D%20self%20getNodes%5D.%0A%09%5Enodes'),
1128
+ messageSends: ["ifNil:", "getNodes"],
1129
+ referencedClasses: []
1130
+ }),
1131
+ smalltalk.ClassesList);
884
1132
 
885
1133
  smalltalk.addMethod(
886
- unescape('_show'),
1134
+ unescape('_browser'),
887
1135
  smalltalk.method({
888
- selector: unescape('show'),
889
- category: 'actions',
1136
+ selector: unescape('browser'),
1137
+ category: 'accessing',
890
1138
  fn: function (){
891
1139
  var self=this;
892
- smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_show", []);
1140
+ return self['@browser'];
893
1141
  return self;},
894
1142
  args: [],
895
- source: unescape('show%0A%09div%20asJQuery%20show'),
896
- messageSends: ["show", "asJQuery"],
1143
+ source: unescape('browser%0A%09%5Ebrowser'),
1144
+ messageSends: [],
897
1145
  referencedClasses: []
898
1146
  }),
899
- smalltalk.TabWidget);
1147
+ smalltalk.ClassesList);
900
1148
 
901
1149
  smalltalk.addMethod(
902
- unescape('_hide'),
1150
+ unescape('_browser_'),
903
1151
  smalltalk.method({
904
- selector: unescape('hide'),
905
- category: 'actions',
906
- fn: function (){
1152
+ selector: unescape('browser%3A'),
1153
+ category: 'accessing',
1154
+ fn: function (aBrowser){
907
1155
  var self=this;
908
- smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_hide", []);
1156
+ (self['@browser']=aBrowser);
909
1157
  return self;},
910
- args: [],
911
- source: unescape('hide%0A%09div%20asJQuery%20hide'),
912
- messageSends: ["hide", "asJQuery"],
1158
+ args: ["aBrowser"],
1159
+ source: unescape('browser%3A%20aBrowser%0A%09browser%20%3A%3D%20aBrowser'),
1160
+ messageSends: [],
913
1161
  referencedClasses: []
914
1162
  }),
915
- smalltalk.TabWidget);
1163
+ smalltalk.ClassesList);
916
1164
 
917
1165
  smalltalk.addMethod(
918
- unescape('_remove'),
1166
+ unescape('_getNodes'),
919
1167
  smalltalk.method({
920
- selector: unescape('remove'),
921
- category: 'actions',
1168
+ selector: unescape('getNodes'),
1169
+ category: 'accessing',
922
1170
  fn: function (){
923
1171
  var self=this;
924
- smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_remove", []);
1172
+ var classes=nil;
1173
+ var children=nil;
1174
+ var others=nil;
1175
+ (classes=smalltalk.send(smalltalk.send(self, "_browser", []), "_classes", []));
1176
+ (children=[]);
1177
+ (others=[]);
1178
+ smalltalk.send(classes, "_do_", [(function(each){return ((($receiver = smalltalk.send(classes, "_includes_", [smalltalk.send(each, "_superclass", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(children, "_add_", [each]);})() : (function(){return smalltalk.send(others, "_add_", [each]);})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]));})]);
1179
+ return smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send((smalltalk.ClassesListNode || ClassesListNode), "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, (0)]);})]);
925
1180
  return self;},
926
1181
  args: [],
927
- source: unescape('remove%0A%09div%20asJQuery%20remove'),
928
- messageSends: ["remove", "asJQuery"],
929
- referencedClasses: []
1182
+ 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'),
1183
+ messageSends: ["classes", "browser", "do:", "ifFalse:ifTrue:", "includes:", "superclass", "add:", "collect:", "on:browser:classes:level:"],
1184
+ referencedClasses: ["ClassesListNode"]
930
1185
  }),
931
- smalltalk.TabWidget);
1186
+ smalltalk.ClassesList);
932
1187
 
933
1188
  smalltalk.addMethod(
934
- unescape('_close'),
1189
+ unescape('_resetNodes'),
935
1190
  smalltalk.method({
936
- selector: unescape('close'),
937
- category: 'actions',
1191
+ selector: unescape('resetNodes'),
1192
+ category: 'accessing',
938
1193
  fn: function (){
939
1194
  var self=this;
940
- smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager), "_current", []), "_closeTab_", [self]);
1195
+ (self['@nodes']=nil);
941
1196
  return self;},
942
1197
  args: [],
943
- source: unescape('close%0A%20%20%20%20TabManager%20current%20closeTab%3A%20self'),
944
- messageSends: ["closeTab:", "current"],
945
- referencedClasses: ["TabManager"]
1198
+ source: unescape('resetNodes%0A%09nodes%20%3A%3D%20nil'),
1199
+ messageSends: [],
1200
+ referencedClasses: []
946
1201
  }),
947
- smalltalk.TabWidget);
1202
+ smalltalk.ClassesList);
948
1203
 
949
1204
  smalltalk.addMethod(
950
1205
  unescape('_renderOn_'),
@@ -953,391 +1208,263 @@ selector: unescape('renderOn%3A'),
953
1208
  category: 'rendering',
954
1209
  fn: function (html){
955
1210
  var self=this;
956
- (self['@div']=(function($rec){smalltalk.send($rec, "_class_", ["jtalkTool"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_div", [])));
957
- smalltalk.send(self, "_renderTab", []);
1211
+ (self['@ul']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column browser classes"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", [])));
1212
+ smalltalk.send(self, "_updateNodes", []);
958
1213
  return self;},
959
1214
  args: ["html"],
960
- 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'),
961
- messageSends: ["class:", "yourself", "div", "renderTab"],
1215
+ 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'),
1216
+ messageSends: ["class:", "yourself", "ul", "updateNodes"],
962
1217
  referencedClasses: []
963
1218
  }),
964
- smalltalk.TabWidget);
1219
+ smalltalk.ClassesList);
965
1220
 
966
1221
  smalltalk.addMethod(
967
- unescape('_renderBoxOn_'),
1222
+ unescape('_updateNodes'),
968
1223
  smalltalk.method({
969
- selector: unescape('renderBoxOn%3A'),
1224
+ selector: unescape('updateNodes'),
970
1225
  category: 'rendering',
971
- fn: function (html){
1226
+ fn: function (){
972
1227
  var self=this;
973
-
1228
+ smalltalk.send(self['@ul'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);})]);
974
1229
  return self;},
975
- args: ["html"],
976
- source: unescape('renderBoxOn%3A%20html'),
977
- messageSends: [],
1230
+ args: [],
1231
+ 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'),
1232
+ messageSends: ["contents:", "do:", "nodes", "renderOn:"],
978
1233
  referencedClasses: []
979
1234
  }),
980
- smalltalk.TabWidget);
1235
+ smalltalk.ClassesList);
1236
+
981
1237
 
982
1238
  smalltalk.addMethod(
983
- unescape('_renderButtonsOn_'),
1239
+ unescape('_on_'),
984
1240
  smalltalk.method({
985
- selector: unescape('renderButtonsOn%3A'),
986
- category: 'rendering',
987
- fn: function (html){
1241
+ selector: unescape('on%3A'),
1242
+ category: 'instance creation',
1243
+ fn: function (aBrowser){
988
1244
  var self=this;
989
-
1245
+ return (function($rec){smalltalk.send($rec, "_browser_", [aBrowser]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
990
1246
  return self;},
991
- args: ["html"],
992
- source: unescape('renderButtonsOn%3A%20html'),
993
- messageSends: [],
1247
+ args: ["aBrowser"],
1248
+ source: unescape('on%3A%20aBrowser%0A%09%5Eself%20new%20%0A%09%09browser%3A%20aBrowser%3B%20%0A%09%09yourself'),
1249
+ messageSends: ["browser:", "yourself", "new"],
994
1250
  referencedClasses: []
995
1251
  }),
996
- smalltalk.TabWidget);
1252
+ smalltalk.ClassesList.klass);
997
1253
 
1254
+
1255
+ smalltalk.addClass('ClassesListNode', smalltalk.Widget, ['browser', 'theClass', 'level', 'nodes'], 'IDE');
998
1256
  smalltalk.addMethod(
999
- unescape('_update'),
1257
+ unescape('_renderOn_'),
1000
1258
  smalltalk.method({
1001
- selector: unescape('update'),
1002
- category: 'rendering',
1003
- fn: function (){
1259
+ selector: unescape('renderOn%3A'),
1260
+ category: '',
1261
+ fn: function (html){
1004
1262
  var self=this;
1005
- smalltalk.send(self, "_renderTab", []);
1263
+ var li=nil;
1264
+ var cssClass=nil;
1265
+ (cssClass="");
1266
+ (li=smalltalk.send(smalltalk.send(html, "_li", []), "_onClick_", [(function(){return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectClass_", [smalltalk.send(self, "_theClass", [])]);})]));
1267
+ smalltalk.send(smalltalk.send(li, "_asJQuery", []), "_html_", [smalltalk.send(self, "_label", [])]);
1268
+ ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedClass", []), "__eq", [smalltalk.send(self, "_theClass", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" selected"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" selected"]));})]));
1269
+ ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_theClass", []), "_comment", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" commented"]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return (cssClass=smalltalk.send(cssClass, "__comma", [" commented"]));})]));
1270
+ smalltalk.send(li, "_class_", [cssClass]);
1271
+ smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);
1006
1272
  return self;},
1007
- args: [],
1008
- source: unescape('update%0A%09self%20renderTab'),
1009
- messageSends: ["renderTab"],
1273
+ args: ["html"],
1274
+ source: unescape('renderOn%3A%20html%0A%09%7C%20li%20cssClass%20%7C%0A%09cssClass%20%3A%3D%20%27%27.%0A%09li%20%3A%3D%20html%20li%20%0A%09%09onClick%3A%20%5Bself%20browser%20selectClass%3A%20self%20theClass%5D.%20%0A%09li%20asJQuery%20html%3A%20self%20label.%0A%0A%09self%20browser%20selectedClass%20%3D%20self%20theClass%20ifTrue%3A%20%20%5B%0A%09%09cssClass%20%3A%3D%20cssClass%2C%20%27%20selected%27%5D.%0A%0A%09self%20theClass%20comment%20isEmpty%20ifFalse%3A%20%5B%0A%09%09cssClass%20%3A%3D%20cssClass%2C%20%27%20commented%27%5D.%0A%0A%09li%20class%3A%20cssClass.%0A%0A%09self%20nodes%20do%3A%20%5B%3Aeach%20%7C%0A%09%09each%20renderOn%3A%20html%5D'),
1275
+ messageSends: ["onClick:", "li", "selectClass:", "browser", "theClass", "html:", "asJQuery", "label", "ifTrue:", unescape("%3D"), "selectedClass", unescape("%2C"), "ifFalse:", "isEmpty", "comment", "class:", "do:", "nodes", "renderOn:"],
1010
1276
  referencedClasses: []
1011
1277
  }),
1012
- smalltalk.TabWidget);
1278
+ smalltalk.ClassesListNode);
1013
1279
 
1014
1280
  smalltalk.addMethod(
1015
- unescape('_renderTab'),
1281
+ unescape('_nodes'),
1016
1282
  smalltalk.method({
1017
- selector: unescape('renderTab'),
1018
- category: 'rendering',
1283
+ selector: unescape('nodes'),
1284
+ category: 'accessing',
1019
1285
  fn: function (){
1020
1286
  var self=this;
1021
- 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", []));})]);
1287
+ return self['@nodes'];
1022
1288
  return self;},
1023
1289
  args: [],
1024
- 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'),
1025
- messageSends: ["contents:", "class:", "with:", "renderBoxOn:", "div", "renderButtonsOn:"],
1290
+ source: unescape('nodes%0A%09%5Enodes'),
1291
+ messageSends: [],
1026
1292
  referencedClasses: []
1027
1293
  }),
1028
- smalltalk.TabWidget);
1294
+ smalltalk.ClassesListNode);
1029
1295
 
1030
1296
  smalltalk.addMethod(
1031
- unescape('_canBeClosed'),
1297
+ unescape('_theClass'),
1032
1298
  smalltalk.method({
1033
- selector: unescape('canBeClosed'),
1034
- category: 'testing',
1299
+ selector: unescape('theClass'),
1300
+ category: 'accessing',
1035
1301
  fn: function (){
1036
1302
  var self=this;
1037
- return false;
1303
+ return self['@theClass'];
1038
1304
  return self;},
1039
1305
  args: [],
1040
- source: unescape('canBeClosed%0A%20%20%20%20%5Efalse'),
1306
+ source: unescape('theClass%0A%09%5EtheClass'),
1041
1307
  messageSends: [],
1042
1308
  referencedClasses: []
1043
1309
  }),
1044
- smalltalk.TabWidget);
1045
-
1310
+ smalltalk.ClassesListNode);
1046
1311
 
1047
1312
  smalltalk.addMethod(
1048
- unescape('_open'),
1313
+ unescape('_theClass_'),
1049
1314
  smalltalk.method({
1050
- selector: unescape('open'),
1051
- category: 'instance creation',
1052
- fn: function (){
1315
+ selector: unescape('theClass%3A'),
1316
+ category: 'accessing',
1317
+ fn: function (aClass){
1053
1318
  var self=this;
1054
- return smalltalk.send(smalltalk.send(self, "_new", []), "_open", []);
1319
+ (self['@theClass']=aClass);
1055
1320
  return self;},
1056
- args: [],
1057
- source: unescape('open%0A%20%20%20%20%5Eself%20new%20open'),
1058
- messageSends: ["open", "new"],
1321
+ args: ["aClass"],
1322
+ source: unescape('theClass%3A%20aClass%0A%09theClass%20%3A%3D%20aClass'),
1323
+ messageSends: [],
1059
1324
  referencedClasses: []
1060
1325
  }),
1061
- smalltalk.TabWidget.klass);
1062
-
1326
+ smalltalk.ClassesListNode);
1063
1327
 
1064
- smalltalk.addClass('TabManager', smalltalk.Widget, ['selectedTab', 'tabs', 'opened', 'ul', 'input'], 'IDE');
1065
1328
  smalltalk.addMethod(
1066
- unescape('_tabs'),
1329
+ unescape('_browser'),
1067
1330
  smalltalk.method({
1068
- selector: unescape('tabs'),
1331
+ selector: unescape('browser'),
1069
1332
  category: 'accessing',
1070
1333
  fn: function (){
1071
1334
  var self=this;
1072
- return (($receiver = self['@tabs']) == nil || $receiver == undefined) ? (function(){return (self['@tabs']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
1335
+ return self['@browser'];
1073
1336
  return self;},
1074
1337
  args: [],
1075
- source: unescape('tabs%0A%20%20%20%20%5Etabs%20ifNil%3A%20%5Btabs%20%3A%3D%20Array%20new%5D'),
1076
- messageSends: ["ifNil:", "new"],
1077
- referencedClasses: ["Array"]
1338
+ source: unescape('browser%0A%09%5Ebrowser'),
1339
+ messageSends: [],
1340
+ referencedClasses: []
1078
1341
  }),
1079
- smalltalk.TabManager);
1342
+ smalltalk.ClassesListNode);
1080
1343
 
1081
1344
  smalltalk.addMethod(
1082
- unescape('_labelFor_'),
1345
+ unescape('_browser_'),
1083
1346
  smalltalk.method({
1084
- selector: unescape('labelFor%3A'),
1347
+ selector: unescape('browser%3A'),
1085
1348
  category: 'accessing',
1086
- fn: function (aWidget){
1349
+ fn: function (aBrowser){
1087
1350
  var self=this;
1088
- var label=nil;
1089
- var maxSize=nil;
1090
- (maxSize=(15));
1091
- (label=smalltalk.send(smalltalk.send(aWidget, "_label", []), "_copyFrom_to_", [(0), smalltalk.send(smalltalk.send(smalltalk.send(aWidget, "_label", []), "_size", []), "_min_", [maxSize])]));
1092
- ((($receiver = ((($receiver = smalltalk.send(smalltalk.send(aWidget, "_label", []), "_size", [])).klass === smalltalk.Number) ? $receiver >maxSize : smalltalk.send($receiver, "__gt", [maxSize]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (label=smalltalk.send(label, "__comma", ["..."]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (label=smalltalk.send(label, "__comma", ["..."]));})]));
1093
- return label;
1351
+ (self['@browser']=aBrowser);
1094
1352
  return self;},
1095
- args: ["aWidget"],
1096
- source: unescape('labelFor%3A%20aWidget%0A%09%7C%20label%20maxSize%20%7C%0A%09maxSize%20%3A%3D%2015.%0A%09label%20%3A%3D%20aWidget%20label%20copyFrom%3A%200%20to%3A%20%28aWidget%20label%20size%20min%3A%20maxSize%29.%0A%09aWidget%20label%20size%20%3E%20maxSize%20ifTrue%3A%20%5B%0A%09%09label%20%3A%3D%20label%2C%20%27...%27%5D.%0A%09%5Elabel'),
1097
- messageSends: ["copyFrom:to:", "label", "min:", "size", "ifTrue:", unescape("%3E"), unescape("%2C")],
1353
+ args: ["aBrowser"],
1354
+ source: unescape('browser%3A%20aBrowser%0A%09browser%20%3A%3D%20aBrowser'),
1355
+ messageSends: [],
1098
1356
  referencedClasses: []
1099
1357
  }),
1100
- smalltalk.TabManager);
1358
+ smalltalk.ClassesListNode);
1101
1359
 
1102
1360
  smalltalk.addMethod(
1103
- unescape('_updateBodyMargin'),
1361
+ unescape('_level'),
1104
1362
  smalltalk.method({
1105
- selector: unescape('updateBodyMargin'),
1106
- category: 'actions',
1363
+ selector: unescape('level'),
1364
+ category: 'accessing',
1107
1365
  fn: function (){
1108
1366
  var self=this;
1109
- smalltalk.send(self, "_setBodyMargin_", [smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_height", [])]);
1367
+ return self['@level'];
1110
1368
  return self;},
1111
1369
  args: [],
1112
- source: unescape('updateBodyMargin%0A%20%20%20%20self%20setBodyMargin%3A%20%27%23jtalk%27%20asJQuery%20height'),
1113
- messageSends: ["setBodyMargin:", "height", "asJQuery"],
1370
+ source: unescape('level%0A%09%5Elevel'),
1371
+ messageSends: [],
1114
1372
  referencedClasses: []
1115
1373
  }),
1116
- smalltalk.TabManager);
1374
+ smalltalk.ClassesListNode);
1117
1375
 
1118
1376
  smalltalk.addMethod(
1119
- unescape('_updatePosition'),
1377
+ unescape('_level_'),
1120
1378
  smalltalk.method({
1121
- selector: unescape('updatePosition'),
1122
- category: 'actions',
1123
- fn: function (){
1379
+ selector: unescape('level%3A'),
1380
+ category: 'accessing',
1381
+ fn: function (anInteger){
1124
1382
  var self=this;
1125
- jQuery('#jtalk').css('top', '').css('bottom', '0px');
1126
- return self;},
1127
- args: [],
1128
- 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%270px%27%29%3E'),
1129
- messageSends: [],
1130
- referencedClasses: []
1131
- }),
1132
- smalltalk.TabManager);
1133
-
1134
- smalltalk.addMethod(
1135
- unescape('_removeBodyMargin'),
1136
- smalltalk.method({
1137
- selector: unescape('removeBodyMargin'),
1138
- category: 'actions',
1139
- fn: function (){
1140
- var self=this;
1141
- smalltalk.send(self, "_setBodyMargin_", [(0)]);
1142
- return self;},
1143
- args: [],
1144
- source: unescape('removeBodyMargin%0A%20%20%20%20self%20setBodyMargin%3A%200'),
1145
- messageSends: ["setBodyMargin:"],
1146
- referencedClasses: []
1147
- }),
1148
- smalltalk.TabManager);
1149
-
1150
- smalltalk.addMethod(
1151
- unescape('_setBodyMargin_'),
1152
- smalltalk.method({
1153
- selector: unescape('setBodyMargin%3A'),
1154
- category: 'actions',
1155
- fn: function (anInteger){
1156
- var self=this;
1157
- smalltalk.send(smalltalk.send(".jtalkBody", "_asJQuery", []), "_css_put_", [unescape("margin-bottom"), smalltalk.send(smalltalk.send(anInteger, "_asString", []), "__comma", ["px"])]);
1383
+ (self['@level']=anInteger);
1158
1384
  return self;},
1159
1385
  args: ["anInteger"],
1160
- source: unescape('setBodyMargin%3A%20anInteger%0A%20%20%20%20%27.jtalkBody%27%20asJQuery%20css%3A%20%27margin-bottom%27%20put%3A%20anInteger%20asString%2C%20%27px%27'),
1161
- messageSends: ["css:put:", "asJQuery", unescape("%2C"), "asString"],
1162
- referencedClasses: []
1163
- }),
1164
- smalltalk.TabManager);
1165
-
1166
- smalltalk.addMethod(
1167
- unescape('_onResize_'),
1168
- smalltalk.method({
1169
- selector: unescape('onResize%3A'),
1170
- category: 'actions',
1171
- fn: function (aBlock){
1172
- var self=this;
1173
- jQuery('#jtalk').resizable({
1174
- handles: 'n',
1175
- resize: aBlock,
1176
- minHeight: 230
1177
- });
1178
- return self;},
1179
- args: ["aBlock"],
1180
- 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'),
1181
- messageSends: [],
1182
- referencedClasses: []
1183
- }),
1184
- smalltalk.TabManager);
1185
-
1186
- smalltalk.addMethod(
1187
- unescape('_onWindowResize_'),
1188
- smalltalk.method({
1189
- selector: unescape('onWindowResize%3A'),
1190
- category: 'actions',
1191
- fn: function (aBlock){
1192
- var self=this;
1193
- jQuery(window).resize(aBlock);
1194
- return self;},
1195
- args: ["aBlock"],
1196
- source: unescape('onWindowResize%3A%20aBlock%0A%20%20%20%20%3CjQuery%28window%29.resize%28aBlock%29%3E'),
1386
+ source: unescape('level%3A%20anInteger%0A%09level%20%3A%3D%20anInteger'),
1197
1387
  messageSends: [],
1198
1388
  referencedClasses: []
1199
1389
  }),
1200
- smalltalk.TabManager);
1201
-
1202
- smalltalk.addMethod(
1203
- unescape('_open'),
1204
- smalltalk.method({
1205
- selector: unescape('open'),
1206
- category: 'actions',
1207
- fn: function (){
1208
- var self=this;
1209
- ((($receiver = self['@opened']).klass === smalltalk.Boolean) ? (! $receiver ? (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);})() : nil) : smalltalk.send($receiver, "_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);})]));
1210
- return self;},
1211
- args: [],
1212
- 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'),
1213
- messageSends: ["ifFalse:", "addClass:", "asJQuery", "show", "updateBodyMargin"],
1214
- referencedClasses: []
1215
- }),
1216
- smalltalk.TabManager);
1390
+ smalltalk.ClassesListNode);
1217
1391
 
1218
1392
  smalltalk.addMethod(
1219
- unescape('_close'),
1393
+ unescape('_label'),
1220
1394
  smalltalk.method({
1221
- selector: unescape('close'),
1222
- category: 'actions',
1395
+ selector: unescape('label'),
1396
+ category: 'accessing',
1223
1397
  fn: function (){
1224
1398
  var self=this;
1225
- ((($receiver = self['@opened']).klass === smalltalk.Boolean) ? ($receiver ? (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);})() : nil) : smalltalk.send($receiver, "_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);})]));
1399
+ var str=nil;
1400
+ (str=smalltalk.send(smalltalk.send((smalltalk.String || String), "_new", []), "_writeStream", []));
1401
+ smalltalk.send(smalltalk.send(self, "_level", []), "_timesRepeat_", [(function(){return smalltalk.send(str, "_nextPutAll_", [unescape("%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B")]);})]);
1402
+ smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_theClass", []), "_name", [])]);
1403
+ return smalltalk.send(str, "_contents", []);
1226
1404
  return self;},
1227
1405
  args: [],
1228
- 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'),
1229
- messageSends: ["ifTrue:", "hide", "asJQuery", "removeBodyMargin", "removeClass:"],
1230
- referencedClasses: []
1406
+ 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'),
1407
+ messageSends: ["writeStream", "new", "timesRepeat:", "level", "nextPutAll:", "name", "theClass", "contents"],
1408
+ referencedClasses: ["String"]
1231
1409
  }),
1232
- smalltalk.TabManager);
1410
+ smalltalk.ClassesListNode);
1233
1411
 
1234
1412
  smalltalk.addMethod(
1235
- unescape('_newBrowserTab'),
1413
+ unescape('_getNodesFrom_'),
1236
1414
  smalltalk.method({
1237
- selector: unescape('newBrowserTab'),
1238
- category: 'actions',
1239
- fn: function (){
1415
+ selector: unescape('getNodesFrom%3A'),
1416
+ category: 'accessing',
1417
+ fn: function (aCollection){
1240
1418
  var self=this;
1241
- smalltalk.send((smalltalk.Browser || Browser), "_open", []);
1419
+ var children=nil;
1420
+ var others=nil;
1421
+ (children=[]);
1422
+ (others=[]);
1423
+ smalltalk.send(aCollection, "_do_", [(function(each){return ((($receiver = smalltalk.send(smalltalk.send(each, "_superclass", []), "__eq", [smalltalk.send(self, "_theClass", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(children, "_add_", [each]);})() : (function(){return smalltalk.send(others, "_add_", [each]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]));})]);
1424
+ (self['@nodes']=smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send((smalltalk.ClassesListNode || ClassesListNode), "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, ((($receiver = smalltalk.send(self, "_level", [])).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]))]);})]));
1242
1425
  return self;},
1243
- args: [],
1244
- source: unescape('newBrowserTab%0A%20%20%20%20Browser%20open'),
1245
- messageSends: ["open"],
1246
- referencedClasses: ["Browser"]
1426
+ args: ["aCollection"],
1427
+ 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'),
1428
+ messageSends: ["do:", "ifTrue:ifFalse:", unescape("%3D"), "superclass", "theClass", "add:", "collect:", "on:browser:classes:level:", "browser", unescape("+"), "level"],
1429
+ referencedClasses: ["ClassesListNode"]
1247
1430
  }),
1248
- smalltalk.TabManager);
1431
+ smalltalk.ClassesListNode);
1249
1432
 
1250
- smalltalk.addMethod(
1251
- unescape('_selectTab_'),
1252
- smalltalk.method({
1253
- selector: unescape('selectTab%3A'),
1254
- category: 'actions',
1255
- fn: function (aWidget){
1256
- var self=this;
1257
- smalltalk.send(self, "_open", []);
1258
- (self['@selectedTab']=aWidget);
1259
- smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [(function(each){return smalltalk.send(each, "_hide", []);})]);
1260
- smalltalk.send(aWidget, "_show", []);
1261
- smalltalk.send(self, "_update", []);
1262
- return self;},
1263
- args: ["aWidget"],
1264
- 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'),
1265
- messageSends: ["open", "do:", "tabs", "hide", "show", "update"],
1266
- referencedClasses: []
1267
- }),
1268
- smalltalk.TabManager);
1269
1433
 
1270
1434
  smalltalk.addMethod(
1271
- unescape('_closeTab_'),
1435
+ unescape('_on_browser_classes_level_'),
1272
1436
  smalltalk.method({
1273
- selector: unescape('closeTab%3A'),
1274
- category: 'actions',
1275
- fn: function (aWidget){
1437
+ selector: unescape('on%3Abrowser%3Aclasses%3Alevel%3A'),
1438
+ category: 'instance creation',
1439
+ fn: function (aClass, aBrowser, aCollection, anInteger){
1276
1440
  var self=this;
1277
- smalltalk.send(self, "_removeTab_", [aWidget]);
1278
- smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
1279
- smalltalk.send(aWidget, "_remove", []);
1280
- smalltalk.send(self, "_update", []);
1441
+ 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", []));
1281
1442
  return self;},
1282
- args: ["aWidget"],
1283
- 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'),
1284
- messageSends: ["removeTab:", "selectTab:", "last", "tabs", "remove", "update"],
1443
+ args: ["aClass", "aBrowser", "aCollection", "anInteger"],
1444
+ 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'),
1445
+ messageSends: ["theClass:", "browser:", "level:", "getNodesFrom:", "yourself", "new"],
1285
1446
  referencedClasses: []
1286
1447
  }),
1287
- smalltalk.TabManager);
1448
+ smalltalk.ClassesListNode.klass);
1288
1449
 
1289
- smalltalk.addMethod(
1290
- unescape('_search_'),
1291
- smalltalk.method({
1292
- selector: unescape('search%3A'),
1293
- category: 'actions',
1294
- fn: function (aString){
1295
- var self=this;
1296
- var searchedClass=nil;
1297
- (searchedClass=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_at_", [aString]));
1298
- ((($receiver = smalltalk.send(searchedClass, "_isClass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send((smalltalk.Browser || Browser), "_openOn_", [searchedClass]);})() : (function(){return smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser), "_search_", [aString]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send((smalltalk.Browser || Browser), "_openOn_", [searchedClass]);}), (function(){return smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser), "_search_", [aString]);})]));
1299
- return self;},
1300
- args: ["aString"],
1301
- source: unescape('search%3A%20aString%0A%09%7C%20searchedClass%20%7C%0A%09searchedClass%20%3A%3D%20Smalltalk%20current%20at%3A%20aString.%0A%09%09searchedClass%20isClass%0A%09%09%09ifTrue%3A%20%5BBrowser%20openOn%3A%20searchedClass%5D%0A%09%09%09ifFalse%3A%20%5BReferencesBrowser%20search%3A%20aString%5D'),
1302
- messageSends: ["at:", "current", "ifTrue:ifFalse:", "isClass", "openOn:", "search:"],
1303
- referencedClasses: ["Smalltalk", "Browser", "ReferencesBrowser"]
1304
- }),
1305
- smalltalk.TabManager);
1306
1450
 
1451
+ smalltalk.addClass('DebugErrorHandler', smalltalk.ErrorHandler, [], 'IDE');
1307
1452
  smalltalk.addMethod(
1308
- unescape('_addTab_'),
1453
+ unescape('_handleError_'),
1309
1454
  smalltalk.method({
1310
- selector: unescape('addTab%3A'),
1311
- category: 'adding/Removing',
1312
- fn: function (aWidget){
1455
+ selector: unescape('handleError%3A'),
1456
+ category: 'error handling',
1457
+ fn: function (anError){
1313
1458
  var self=this;
1314
- smalltalk.send(smalltalk.send(self, "_tabs", []), "_add_", [aWidget]);
1315
- smalltalk.send(aWidget, "_appendToJQuery_", [smalltalk.send(unescape("%23jtalk"), "_asJQuery", [])]);
1316
- smalltalk.send(aWidget, "_hide", []);
1459
+ smalltalk.send((function(){return (function($rec){smalltalk.send($rec, "_error_", [anError]);return smalltalk.send($rec, "_open", []);})(smalltalk.send((smalltalk.Debugger || Debugger), "_new", []));}), "_on_do_", [(smalltalk.Error || Error), (function(error){return smalltalk.send(smalltalk.send((smalltalk.ErrorHandler || ErrorHandler), "_new", []), "_handleError_", [error]);})]);
1317
1460
  return self;},
1318
- args: ["aWidget"],
1319
- source: unescape('addTab%3A%20aWidget%0A%20%20%20%20self%20tabs%20add%3A%20aWidget.%0A%20%20%20%20aWidget%20appendToJQuery%3A%20%27%23jtalk%27%20asJQuery.%0A%20%20%20%20aWidget%20hide'),
1320
- messageSends: ["add:", "tabs", "appendToJQuery:", "asJQuery", "hide"],
1321
- referencedClasses: []
1461
+ args: ["anError"],
1462
+ 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'),
1463
+ messageSends: ["on:do:", "error:", "open", "new", "handleError:"],
1464
+ referencedClasses: ["Debugger", "Error", "ErrorHandler"]
1322
1465
  }),
1323
- smalltalk.TabManager);
1466
+ smalltalk.DebugErrorHandler);
1324
1467
 
1325
- smalltalk.addMethod(
1326
- unescape('_removeTab_'),
1327
- smalltalk.method({
1328
- selector: unescape('removeTab%3A'),
1329
- category: 'adding/Removing',
1330
- fn: function (aWidget){
1331
- var self=this;
1332
- smalltalk.send(smalltalk.send(self, "_tabs", []), "_remove_", [aWidget]);
1333
- smalltalk.send(self, "_update", []);
1334
- return self;},
1335
- args: ["aWidget"],
1336
- source: unescape('removeTab%3A%20aWidget%0A%20%20%20%20self%20tabs%20remove%3A%20aWidget.%0A%20%20%20%20self%20update'),
1337
- messageSends: ["remove:", "tabs", "update"],
1338
- referencedClasses: []
1339
- }),
1340
- smalltalk.TabManager);
1341
1468
 
1342
1469
  smalltalk.addMethod(
1343
1470
  unescape('_initialize'),
@@ -1346,141 +1473,14 @@ selector: unescape('initialize'),
1346
1473
  category: 'initialization',
1347
1474
  fn: function (){
1348
1475
  var self=this;
1349
- smalltalk.send(self, "_initialize", [], smalltalk.Widget);
1350
- (self['@opened']=true);
1351
- smalltalk.send((function(html){return smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["jtalk"]);}), "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
1352
- smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_addClass_", ["jtalkBody"]);
1353
- smalltalk.send(self, "_appendToJQuery_", [smalltalk.send(unescape("%23jtalk"), "_asJQuery", [])]);
1354
- (function($rec){smalltalk.send($rec, "_addTab_", [smalltalk.send((smalltalk.IDETranscript || IDETranscript), "_current", [])]);smalltalk.send($rec, "_addTab_", [smalltalk.send((smalltalk.Workspace || Workspace), "_new", [])]);return smalltalk.send($rec, "_addTab_", [smalltalk.send((smalltalk.TestRunner || TestRunner), "_new", [])]);})(self);
1355
- smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
1356
- (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);
1357
- return self;},
1358
- args: [],
1359
- source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20opened%20%3A%3D%20true.%0A%20%20%20%20%5B%3Ahtml%20%7C%20html%20div%20id%3A%20%27jtalk%27%5D%20appendToJQuery%3A%20%27body%27%20asJQuery.%0A%20%20%20%20%27body%27%20asJQuery%20%0A%09addClass%3A%20%27jtalkBody%27.%0A%20%20%20%20self%20appendToJQuery%3A%20%27%23jtalk%27%20asJQuery.%0A%20%20%20%20self%20%0A%09addTab%3A%20IDETranscript%20current%3B%0A%09addTab%3A%20Workspace%20new%3B%0A%09addTab%3A%20TestRunner%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'),
1360
- messageSends: ["initialize", "appendToJQuery:", "id:", "div", "asJQuery", "addClass:", "addTab:", "current", "new", "selectTab:", "last", "tabs", "onResize:", "updateBodyMargin", "updatePosition", "onWindowResize:"],
1361
- referencedClasses: ["IDETranscript", "Workspace", "TestRunner"]
1362
- }),
1363
- smalltalk.TabManager);
1364
-
1365
- smalltalk.addMethod(
1366
- unescape('_renderOn_'),
1367
- smalltalk.method({
1368
- selector: unescape('renderOn%3A'),
1369
- category: 'rendering',
1370
- fn: function (html){
1371
- var self=this;
1372
- smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["logo"]);
1373
- smalltalk.send(self, "_renderToolbarOn_", [html]);
1374
- (self['@ul']=(function($rec){smalltalk.send($rec, "_id_", ["jtalkTabs"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", [])));
1375
- smalltalk.send(self, "_renderTabs", []);
1376
- return self;},
1377
- args: ["html"],
1378
- source: unescape('renderOn%3A%20html%0A%09html%20div%20id%3A%20%27logo%27.%0A%09self%20renderToolbarOn%3A%20html.%0A%09ul%20%3A%3D%20html%20ul%0A%09%09id%3A%20%27jtalkTabs%27%3B%0A%09%09yourself.%0A%09self%20renderTabs'),
1379
- messageSends: ["id:", "div", "renderToolbarOn:", "yourself", "ul", "renderTabs"],
1380
- referencedClasses: []
1381
- }),
1382
- smalltalk.TabManager);
1383
-
1384
- smalltalk.addMethod(
1385
- unescape('_renderTabFor_on_'),
1386
- smalltalk.method({
1387
- selector: unescape('renderTabFor%3Aon%3A'),
1388
- category: 'rendering',
1389
- fn: function (aWidget, html){
1390
- var self=this;
1391
- var li=nil;
1392
- (li=smalltalk.send(html, "_li", []));
1393
- ((($receiver = smalltalk.send(self['@selectedTab'], "__eq", [aWidget])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(li, "_class_", ["selected"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]));
1394
- (function($rec){smalltalk.send($rec, "_with_", [(function(){smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["ltab"]);(function($rec){smalltalk.send($rec, "_class_", ["mtab"]);return smalltalk.send($rec, "_with_", [(function(){((($receiver = smalltalk.send(aWidget, "_canBeClosed", [])).klass === smalltalk.Boolean) ? ($receiver ? (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", []));})() : nil) : smalltalk.send($receiver, "_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 smalltalk.send(smalltalk.send(html, "_span", []), "_with_", [smalltalk.send(self, "_labelFor_", [aWidget])]);})]);})(smalltalk.send(html, "_span", []));return smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["rtab"]);})]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", [aWidget]);})]);})(li);
1395
- return self;},
1396
- args: ["aWidget", "html"],
1397
- source: unescape('renderTabFor%3A%20aWidget%20on%3A%20html%0A%09%7C%20li%20%7C%0A%09li%20%3A%3D%20html%20li.%0A%09selectedTab%20%3D%20aWidget%20ifTrue%3A%20%5B%0A%09li%20class%3A%20%27selected%27%5D.%0A%09li%20with%3A%20%5B%0A%09%09html%20span%20class%3A%20%27ltab%27.%0A%09%09html%20span%0A%09%09%09class%3A%20%27mtab%27%3B%0A%09%09%09with%3A%20%5B%0A%09%09%09%09aWidget%20canBeClosed%20ifTrue%3A%20%5B%0A%09%09%09%09%09html%20span%20%0A%09%09%09%09%09%09class%3A%20%27close%27%3B%0A%09%09%09%09%09%09with%3A%20%27x%27%3B%0A%09%09%09%09%09onClick%3A%20%5Bself%20closeTab%3A%20aWidget%5D%5D.%0A%09%09%09html%20span%20with%3A%20%28self%20labelFor%3A%20aWidget%29%5D.%0A%09%09html%20span%20class%3A%20%27rtab%27%5D%3B%0A%09onClick%3A%20%5Bself%20selectTab%3A%20aWidget%5D'),
1398
- messageSends: ["li", "ifTrue:", unescape("%3D"), "class:", "with:", "span", "canBeClosed", "onClick:", "closeTab:", "labelFor:", "selectTab:"],
1399
- referencedClasses: []
1400
- }),
1401
- smalltalk.TabManager);
1402
-
1403
- smalltalk.addMethod(
1404
- unescape('_renderTabs'),
1405
- smalltalk.method({
1406
- selector: unescape('renderTabs'),
1407
- category: 'rendering',
1408
- fn: function (){
1409
- var self=this;
1410
- smalltalk.send(self['@ul'], "_contents_", [(function(html){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_", [(function(){smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["ltab"]);(function($rec){smalltalk.send($rec, "_class_", ["mtab"]);return smalltalk.send($rec, "_with_", [unescape("%20+%20")]);})(smalltalk.send(html, "_span", []));return smalltalk.send(smalltalk.send(html, "_span", []), "_class_", ["rtab"]);})]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_newBrowserTab", []);})]);})(smalltalk.send(html, "_li", []));})]);
1411
- return self;},
1412
- args: [],
1413
- source: unescape('renderTabs%0A%09ul%20contents%3A%20%5B%3Ahtml%20%7C%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%5B%0A%09%09%09html%20span%20class%3A%20%27ltab%27.%0A%09%09%09html%20span%20class%3A%20%27mtab%27%3B%20with%3A%20%27%20+%20%27.%0A%09%09%09html%20span%20class%3A%20%27rtab%27%5D%3B%0A%09%09onClick%3A%20%5Bself%20newBrowserTab%5D%5D'),
1414
- messageSends: ["contents:", "do:", "tabs", "renderTabFor:on:", "class:", "with:", "span", "onClick:", "newBrowserTab", "li"],
1415
- referencedClasses: []
1416
- }),
1417
- smalltalk.TabManager);
1418
-
1419
- smalltalk.addMethod(
1420
- unescape('_renderToolbarOn_'),
1421
- smalltalk.method({
1422
- selector: unescape('renderToolbarOn%3A'),
1423
- category: 'rendering',
1424
- fn: function (html){
1425
- var self=this;
1426
- (function($rec){smalltalk.send($rec, "_id_", ["jt_toolbar"]);return smalltalk.send($rec, "_with_", [(function(){(self['@input']=(function($rec){smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_input", [])));smalltalk.send(self['@input'], "_onKeyPress_", [(function(event){return ((($receiver = smalltalk.send(smalltalk.send(event, "_keyCode", []), "__eq", [(13)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);})]));})]);return (function($rec){smalltalk.send($rec, "_id_", ["jt_close"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_close", []);})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
1427
- return self;},
1428
- args: ["html"],
1429
- source: unescape('renderToolbarOn%3A%20html%0A%09html%20div%20%0A%09%09id%3A%20%27jt_toolbar%27%3B%0A%09%09with%3A%20%5B%0A%09%09%09input%20%3A%3D%20html%20input%20%0A%09%09%09%09class%3A%20%27implementors%27%3B%0A%09%09%09%09yourself.%0A%09%09%09input%20onKeyPress%3A%20%5B%3Aevent%20%7C%0A%09%09%09%09event%20keyCode%20%3D%2013%20ifTrue%3A%20%5B%0A%09%09%09%09self%20search%3A%20input%20asJQuery%20val%5D%5D.%0A%09%09%09html%20div%20id%3A%20%27jt_close%27%3B%20onClick%3A%20%5Bself%20close%5D%5D'),
1430
- messageSends: ["id:", "with:", "class:", "yourself", "input", "onKeyPress:", "ifTrue:", unescape("%3D"), "keyCode", "search:", "val", "asJQuery", "onClick:", "close", "div"],
1431
- referencedClasses: []
1432
- }),
1433
- smalltalk.TabManager);
1434
-
1435
- smalltalk.addMethod(
1436
- unescape('_update'),
1437
- smalltalk.method({
1438
- selector: unescape('update'),
1439
- category: 'updating',
1440
- fn: function (){
1441
- var self=this;
1442
- smalltalk.send(self, "_renderTabs", []);
1443
- return self;},
1444
- args: [],
1445
- source: unescape('update%0A%09self%20renderTabs'),
1446
- messageSends: ["renderTabs"],
1447
- referencedClasses: []
1448
- }),
1449
- smalltalk.TabManager);
1450
-
1451
-
1452
- smalltalk.TabManager.klass.iVarNames = ['current'];
1453
- smalltalk.addMethod(
1454
- unescape('_current'),
1455
- smalltalk.method({
1456
- selector: unescape('current'),
1457
- category: 'instance creation',
1458
- fn: function (){
1459
- var self=this;
1460
- return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", [], smalltalk.Widget.klass));})() : $receiver;
1461
- return self;},
1462
- args: [],
1463
- source: unescape('current%0A%20%20%20%20%5Ecurrent%20ifNil%3A%20%5Bcurrent%20%3A%3D%20super%20new%5D'),
1464
- messageSends: ["ifNil:", "new"],
1465
- referencedClasses: []
1466
- }),
1467
- smalltalk.TabManager.klass);
1468
-
1469
- smalltalk.addMethod(
1470
- unescape('_new'),
1471
- smalltalk.method({
1472
- selector: unescape('new'),
1473
- category: 'instance creation',
1474
- fn: function (){
1475
- var self=this;
1476
- smalltalk.send(self, "_shouldNotImplement", []);
1476
+ smalltalk.send(self, "_register", []);
1477
1477
  return self;},
1478
1478
  args: [],
1479
- source: unescape('new%0A%20%20%20%20self%20shouldNotImplement'),
1480
- messageSends: ["shouldNotImplement"],
1479
+ source: unescape('initialize%0A%09self%20register'),
1480
+ messageSends: ["register"],
1481
1481
  referencedClasses: []
1482
1482
  }),
1483
- smalltalk.TabManager.klass);
1483
+ smalltalk.DebugErrorHandler.klass);
1484
1484
 
1485
1485
 
1486
1486
  smalltalk.addClass('Workspace', smalltalk.TabWidget, ['sourceArea'], 'IDE');
@@ -2448,10 +2448,10 @@ selector: unescape('ajaxPutAt%3Adata%3A'),
2448
2448
  category: 'network',
2449
2449
  fn: function (anURL, aString){
2450
2450
  var self=this;
2451
- smalltalk.send((typeof jQuery == 'undefined' ? nil : jQuery), "_ajax_options_", [anURL, smalltalk.HashedCollection._fromPairs_([smalltalk.send("type", "__minus_gt", ["PUT"]),smalltalk.send("data", "__minus_gt", [aString]),smalltalk.send("contentType", "__minus_gt", [unescape("text/plain")]),smalltalk.send("error", "__minus_gt", [(function(){return smalltalk.send((typeof window == 'undefined' ? nil : window), "_alert_", [smalltalk.send("PUT request failed at: ", "__comma", [anURL])]);})])])]);
2451
+ smalltalk.send((typeof jQuery == 'undefined' ? nil : jQuery), "_ajax_options_", [anURL, smalltalk.HashedCollection._fromPairs_([smalltalk.send("type", "__minus_gt", ["PUT"]),smalltalk.send("data", "__minus_gt", [aString]),smalltalk.send("contentType", "__minus_gt", [unescape("text/plain%3Bcharset%3DUTF-8")]),smalltalk.send("error", "__minus_gt", [(function(){return smalltalk.send((typeof window == 'undefined' ? nil : window), "_alert_", [smalltalk.send("PUT request failed at: ", "__comma", [anURL])]);})])])]);
2452
2452
  return self;},
2453
2453
  args: ["anURL", "aString"],
2454
- source: unescape('ajaxPutAt%3A%20anURL%20data%3A%20aString%0A%09jQuery%20%0A%09%09ajax%3A%20anURL%09options%3A%20%23%7B%09%27type%27%20-%3E%20%27PUT%27.%0A%09%09%09%09%09%09%09%09%27data%27%20-%3E%20aString.%0A%09%09%09%09%09%09%09%09%27contentType%27%20-%3E%20%27text/plain%27.%0A%09%09%09%09%09%09%09%09%27error%27%20-%3E%20%5Bwindow%20alert%3A%20%27PUT%20request%20failed%20at%3A%20%20%27%2C%20anURL%5D%20%7D'),
2454
+ source: unescape('ajaxPutAt%3A%20anURL%20data%3A%20aString%0A%09jQuery%20%0A%09%09ajax%3A%20anURL%09options%3A%20%23%7B%09%27type%27%20-%3E%20%27PUT%27.%0A%09%09%09%09%09%09%09%09%27data%27%20-%3E%20aString.%0A%09%09%09%09%09%09%09%09%27contentType%27%20-%3E%20%27text/plain%3Bcharset%3DUTF-8%27.%0A%09%09%09%09%09%09%09%09%27error%27%20-%3E%20%5Bwindow%20alert%3A%20%27PUT%20request%20failed%20at%3A%20%20%27%2C%20anURL%5D%20%7D'),
2455
2455
  messageSends: ["ajax:options:", unescape("-%3E"), "alert:", unescape("%2C")],
2456
2456
  referencedClasses: []
2457
2457
  }),
@@ -2656,13 +2656,15 @@ smalltalk.send(self, "_disableSaveButton", []);
2656
2656
  smalltalk.send(self['@classButtons'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_title_", ["Create a new class"]);smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_addNewClass", []);})]);return smalltalk.send($rec, "_with_", ["New class"]);})(smalltalk.send(html, "_button", []));(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_", ["Copy class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_copyClass", []);})]);})(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", []));})]);
2657
2657
  smalltalk.send(self['@methodButtons'], "_contents_", [(function(html){var protocolSelect=nil;
2658
2658
  var referencesSelect=nil;
2659
- (function($rec){smalltalk.send($rec, "_with_", ["Remove method"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_removeMethod", []);})]);})(smalltalk.send(html, "_button", []));(protocolSelect=smalltalk.send(html, "_select", []));(function($rec){smalltalk.send($rec, "_onChange_", [(function(){return smalltalk.send(self, "_setMethodProtocol_", [smalltalk.send(smalltalk.send(protocolSelect, "_asJQuery", []), "_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]);})]);})]);})(protocolSelect);return ((($receiver = smalltalk.send(self['@selectedMethod'], "_isNil", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(referencesSelect=smalltalk.send(html, "_select", []));return (function($rec){smalltalk.send($rec, "_onChange_", [(function(){return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(smalltalk.send(referencesSelect, "_asJQuery", []), "_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]);})]);})]);})(referencesSelect);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(referencesSelect=smalltalk.send(html, "_select", []));return (function($rec){smalltalk.send($rec, "_onChange_", [(function(){return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(smalltalk.send(referencesSelect, "_asJQuery", []), "_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]);})]);})]);})(referencesSelect);})]));})]);
2659
+ (function($rec){smalltalk.send($rec, "_with_", ["Remove method"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_removeMethod", []);})]);})(smalltalk.send(html, "_button", []));(protocolSelect=smalltalk.send(html, "_select", []));(function($rec){smalltalk.send($rec, "_onChange_", [(function(){return smalltalk.send(self, "_setMethodProtocol_", [smalltalk.send(smalltalk.send(protocolSelect, "_asJQuery", []), "_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){(option=smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]));return ((($receiver = smalltalk.send(self['@selectedProtocol'], "__eq", [each])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send((typeof option == 'undefined' ? nil : option), "_at_put_", ["selected", "selected"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send((typeof option == 'undefined' ? nil : option), "_at_put_", ["selected", "selected"]);})]));})]);})]);})(protocolSelect);return ((($receiver = smalltalk.send(self['@selectedMethod'], "_isNil", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(referencesSelect=smalltalk.send(html, "_select", []));return (function($rec){smalltalk.send($rec, "_onChange_", [(function(){return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(smalltalk.send(referencesSelect, "_asJQuery", []), "_val", [])]);})]);return smalltalk.send($rec, "_with_", [(function(){var option=nil;
2660
+ (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]);})]);})]);})(referencesSelect);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(referencesSelect=smalltalk.send(html, "_select", []));return (function($rec){smalltalk.send($rec, "_onChange_", [(function(){return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(smalltalk.send(referencesSelect, "_asJQuery", []), "_val", [])]);})]);return smalltalk.send($rec, "_with_", [(function(){var option=nil;
2661
+ (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]);})]);})]);})(referencesSelect);})]));})]);
2660
2662
  ((($receiver = smalltalk.send(self['@selectedMethod'], "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_hideMethodButtons", []);return ((($receiver = smalltalk.send(smalltalk.send(self['@selectedClass'], "_isNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedProtocol'], "_notNil", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_hideClassButtons", []);})() : (function(){return smalltalk.send(self, "_showClassButtons", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_hideClassButtons", []);}), (function(){return smalltalk.send(self, "_showClassButtons", []);})]));})() : (function(){smalltalk.send(self, "_hideClassButtons", []);return smalltalk.send(self, "_showMethodButtons", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){smalltalk.send(self, "_hideMethodButtons", []);return ((($receiver = smalltalk.send(smalltalk.send(self['@selectedClass'], "_isNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedProtocol'], "_notNil", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_hideClassButtons", []);})() : (function(){return smalltalk.send(self, "_showClassButtons", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_hideClassButtons", []);}), (function(){return smalltalk.send(self, "_showClassButtons", []);})]));}), (function(){smalltalk.send(self, "_hideClassButtons", []);return smalltalk.send(self, "_showMethodButtons", []);})]));
2661
2663
  smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(self, "_source", [])]);
2662
2664
  return self;},
2663
2665
  args: [],
2664
- source: unescape('updateSourceAndButtons%0A%09self%20disableSaveButton.%0A%09classButtons%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09html%20button%0A%09%09%09title%3A%20%27Create%20a%20new%20class%27%3B%0A%09%09%09onClick%3A%20%5Bself%20addNewClass%5D%3B%0A%09%09%09with%3A%20%27New%20class%27.%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%27Copy%20class%27%3B%0A%09%09%09onClick%3A%20%5Bself%20copyClass%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%20%7C%20protocolSelect%20referencesSelect%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%09protocolSelect%20%3A%3D%20html%20select.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20protocolSelect%0A%09%09%09onChange%3A%20%5B%20self%20setMethodProtocol%3A%20protocolSelect%20asJQuery%20val%5D%3B%0A%09%09%09with%3A%20%5B%0A%09%09%09%09html%20option%0A%09%09%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%09%09%09class%3A%20%27important%27%3B%0A%09%09%09%09%09with%3A%20%27New...%27.%0A%09%09%09%09self%20protocols%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%09%09%09html%20option%20with%3A%20each%5D%5D.%0A%09%09selectedMethod%20isNil%20ifFalse%3A%20%5B%0A%09%09%09referencesSelect%20%3A%3D%20html%20select.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20referencesSelect%0A%09%09%09%09onChange%3A%20%5Bself%20searchReferencesOf%3A%20referencesSelect%20asJQuery%20val%5D%3B%0A%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09html%20option%0A%09%09%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%09%09%09%09class%3A%20%27important%27%3B%0A%09%09%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%09%09%09%09html%20option%20with%3A%20each%5D%5D%5D%5D.%0A%09selectedMethod%20isNil%0A%09%09ifTrue%3A%20%5B%0A%09%09%09self%20hideMethodButtons.%0A%09%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%09%09%09%09ifFalse%3A%20%5Bself%20showClassButtons%5D%5D%0A%09%09ifFalse%3A%20%5B%0A%09%09%09self%20hideClassButtons.%0A%09%09%09self%20showMethodButtons%5D.%0A%09sourceArea%20val%3A%20self%20source'),
2665
- messageSends: ["disableSaveButton", "contents:", "title:", "onClick:", "addNewClass", "with:", "button", "renameClass", "copyClass", "removeClass", "searchClassReferences", "removeMethod", "select", "onChange:", "setMethodProtocol:", "val", "asJQuery", "at:put:", "option", "class:", "do:", "protocols", "ifFalse:", "isNil", "searchReferencesOf:", "selector", "sorted", "messageSends", "ifTrue:ifFalse:", "hideMethodButtons", "or:", "notNil", "hideClassButtons", "showClassButtons", "showMethodButtons", "val:", "source"],
2666
+ source: unescape('updateSourceAndButtons%0A%09self%20disableSaveButton.%0A%09classButtons%20contents%3A%20%5B%3Ahtml%20%7C%0A%09%09html%20button%0A%09%09%09title%3A%20%27Create%20a%20new%20class%27%3B%0A%09%09%09onClick%3A%20%5Bself%20addNewClass%5D%3B%0A%09%09%09with%3A%20%27New%20class%27.%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%27Copy%20class%27%3B%0A%09%09%09onClick%3A%20%5Bself%20copyClass%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%20%7C%20protocolSelect%20referencesSelect%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%09protocolSelect%20%3A%3D%20html%20select.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20protocolSelect%0A%09%09%09onChange%3A%20%5B%20self%20setMethodProtocol%3A%20protocolSelect%20asJQuery%20val%5D%3B%0A%09%09%09with%3A%20%5B%0A%09%09%09%09html%20option%0A%09%09%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%09%09%09class%3A%20%27important%27%3B%0A%09%09%09%09%09with%3A%20%27New...%27.%0A%09%09%09%09self%20protocols%20do%3A%20%5B%3Aeach%20%7C%0A%09%09%09%09%09option%20%3A%3D%20html%20option%20with%3A%20each.%0A%09%09%09%09%09selectedProtocol%20%3D%20each%20ifTrue%3A%20%5B%20option%20at%3A%20%27selected%27%20put%3A%20%27selected%27%20%5D%20%5D%5D.%0A%09%09selectedMethod%20isNil%20ifFalse%3A%20%5B%0A%09%09%09referencesSelect%20%3A%3D%20html%20select.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20referencesSelect%0A%09%09%09%09onChange%3A%20%5Bself%20searchReferencesOf%3A%20referencesSelect%20asJQuery%20val%5D%3B%0A%09%09%09%09with%3A%20%5B%20%7Coption%7C%0A%09%09%09%09%09html%20option%0A%09%09%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%09%09%09%09class%3A%20%27important%27%3B%0A%09%09%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%09%09%09%09html%20option%20with%3A%20each%5D%5D%5D%5D.%0A%09selectedMethod%20isNil%0A%09%09ifTrue%3A%20%5B%0A%09%09%09self%20hideMethodButtons.%0A%09%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%09%09%09%09ifFalse%3A%20%5Bself%20showClassButtons%5D%5D%0A%09%09ifFalse%3A%20%5B%0A%09%09%09self%20hideClassButtons.%0A%09%09%09self%20showMethodButtons%5D.%0A%09sourceArea%20val%3A%20self%20source'),
2667
+ messageSends: ["disableSaveButton", "contents:", "title:", "onClick:", "addNewClass", "with:", "button", "renameClass", "copyClass", "removeClass", "searchClassReferences", "removeMethod", "select", "onChange:", "setMethodProtocol:", "val", "asJQuery", "at:put:", "option", "class:", "do:", "protocols", "ifTrue:", unescape("%3D"), "ifFalse:", "isNil", "searchReferencesOf:", "selector", "sorted", "messageSends", "ifTrue:ifFalse:", "hideMethodButtons", "or:", "notNil", "hideClassButtons", "showClassButtons", "showMethodButtons", "val:", "source"],
2666
2668
  referencedClasses: []
2667
2669
  }),
2668
2670
  smalltalk.Browser);
@@ -4610,11 +4612,12 @@ selector: unescape('show%3A'),
4610
4612
  category: 'actions',
4611
4613
  fn: function (anObject){
4612
4614
  var self=this;
4615
+ (($receiver = self['@textarea']) == nil || $receiver == undefined) ? (function(){return smalltalk.send(self, "_open", []);})() : $receiver;
4613
4616
  smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(anObject, "_asString", [])])]);
4614
4617
  return self;},
4615
4618
  args: ["anObject"],
4616
- source: unescape('show%3A%20anObject%0A%20%20%20%20textarea%20asJQuery%20val%3A%20textarea%20asJQuery%20val%2C%20anObject%20asString.'),
4617
- messageSends: ["val:", "asJQuery", unescape("%2C"), "val", "asString"],
4619
+ source: unescape('show%3A%20anObject%0A%20%20%20%20textarea%20ifNil%3A%20%5Bself%20open%5D.%0A%20%20%20%20textarea%20asJQuery%20val%3A%20textarea%20asJQuery%20val%2C%20anObject%20asString.'),
4620
+ messageSends: ["ifNil:", "open", "val:", "asJQuery", unescape("%2C"), "val", "asString"],
4618
4621
  referencedClasses: []
4619
4622
  }),
4620
4623
  smalltalk.IDETranscript);