smalltalk.addClass('TabManager', smalltalk.Widget, ['selectedTab', 'tabs', 'opened', 'ul'], 'IDE'); smalltalk.addMethod( '_tabs', smalltalk.method({ selector: 'tabs', fn: function () { var self = this; return ($receiver = self['@tabs']) == nil || $receiver == undefined ? function () {return self['@tabs'] = smalltalk.send(smalltalk.Array || Array, "_new", []);}() : $receiver; return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_updateBodyMargin', smalltalk.method({ selector: 'updateBodyMargin', fn: function () { var self = this; smalltalk.send(self, "_setBodyMargin_", [($receiver = smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_height", [])).klass === smalltalk.Number ? $receiver + 27 : smalltalk.send($receiver, "__plus", [27])]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_updatePosition', smalltalk.method({ selector: 'updatePosition', fn: function () { var self = this; jQuery("#jtalk").css("top", "").css("bottom", "27px"); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_removeBodyMargin', smalltalk.method({ selector: 'removeBodyMargin', fn: function () { var self = this; smalltalk.send(self, "_setBodyMargin_", [0]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_setBodyMargin_', smalltalk.method({ selector: 'setBodyMargin:', fn: function (anInteger) { var self = this; smalltalk.send(smalltalk.send(".jtalkBody", "_asJQuery", []), "_cssAt_put_", [unescape("margin-bottom"), smalltalk.send(smalltalk.send(anInteger, "_asString", []), "__comma", ["px"])]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_onResize_', smalltalk.method({ selector: 'onResize:', fn: function (aBlock) { var self = this; jQuery("#jtalk").resizable({handles: "n", resize: aBlock, minHeight: 230}); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_onWindowResize_', smalltalk.method({ selector: 'onWindowResize:', fn: function (aBlock) { var self = this; jQuery(window).resize(aBlock); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_open', smalltalk.method({ selector: 'open', fn: function () { var self = this; ($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;}]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_close', smalltalk.method({ selector: 'close', fn: function () { var self = this; ($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;}]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_newBrowserTab', smalltalk.method({ selector: 'newBrowserTab', fn: function () { var self = this; smalltalk.send(smalltalk.Browser || Browser, "_open", []); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_selectTab_', smalltalk.method({ selector: 'selectTab:', fn: function (aWidget) { var self = this; smalltalk.send(self, "_open", []); self['@selectedTab'] = aWidget; smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [function (each) {return smalltalk.send(each, "_hide", []);}]); smalltalk.send(aWidget, "_show", []); smalltalk.send(self, "_update", []); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_closeTab_', smalltalk.method({ selector: 'closeTab:', fn: function (aWidget) { var self = this; smalltalk.send(self, "_removeTab_", [aWidget]); smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]); smalltalk.send(aWidget, "_remove", []); smalltalk.send(self, "_update", []); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_addTab_', smalltalk.method({ selector: 'addTab:', fn: function (aWidget) { var self = this; smalltalk.send(smalltalk.send(self, "_tabs", []), "_add_", [aWidget]); smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_append_", [aWidget]); smalltalk.send(aWidget, "_hide", []); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_removeTab_', smalltalk.method({ selector: 'removeTab:', fn: function (aWidget) { var self = this; smalltalk.send(smalltalk.send(self, "_tabs", []), "_remove_", [aWidget]); smalltalk.send(self, "_update", []); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_initialize', smalltalk.method({ selector: 'initialize', fn: function () { var self = this; smalltalk.send(self, "_initialize", [], smalltalk.Widget); self['@opened'] = true; (function ($rec) {smalltalk.send($rec, "_append_", [self]);smalltalk.send($rec, "_append_", [function (html) {return smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["jtalk"]);}]);return smalltalk.send($rec, "_addClass_", ["jtalkBody"]);}(smalltalk.send("body", "_asJQuery", []))); (function ($rec) {smalltalk.send($rec, "_addTab_", [smalltalk.send(smalltalk.Transcript || Transcript, "_current", [])]);return smalltalk.send($rec, "_addTab_", [smalltalk.send(smalltalk.Workspace || Workspace, "_new", [])]);}(self)); smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]); (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)); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_renderOn_', smalltalk.method({ selector: 'renderOn:', fn: function (html) { var self = this; self['@ul'] = function ($rec) {smalltalk.send($rec, "_id_", ["jtalkTabs"]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(html, "_ul", [])); smalltalk.send(self, "_renderTabs", []); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_renderTabFor_on_', smalltalk.method({ selector: 'renderTabFor:on:', fn: function (aWidget, html) { var self = this; var li = nil; li = smalltalk.send(html, "_li", []); ($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"]);}]); smalltalk.send(li, "_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 function ($rec) {smalltalk.send($rec, "_with_", [smalltalk.send(aWidget, "_label", [])]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectTab_", [aWidget]);}]);}(smalltalk.send(html, "_span", []));}]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_renderTabs', smalltalk.method({ selector: 'renderTabs', fn: function () { var self = this; smalltalk.send(self['@ul'], "_contents_", [function (html) {(function ($rec) {smalltalk.send($rec, "_class_", ["closeAll"]);smalltalk.send($rec, "_with_", ["x"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_close", []);}]);}(smalltalk.send(html, "_li", [])));smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [function (each) {return smalltalk.send(self, "_renderTabFor_on_", [each, html]);}]);return function ($rec) {smalltalk.send($rec, "_class_", ["newtab"]);smalltalk.send($rec, "_with_", [unescape("%20+%20")]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_newBrowserTab", []);}]);}(smalltalk.send(html, "_li", []));}]); return self; } }), smalltalk.TabManager); smalltalk.addMethod( '_update', smalltalk.method({ selector: 'update', fn: function () { var self = this; smalltalk.send(self, "_renderTabs", []); return self; } }), smalltalk.TabManager); smalltalk.TabManager.klass.iVarNames = ['current']; smalltalk.addMethod( '_current', smalltalk.method({ selector: 'current', fn: function () { var self = this; return ($receiver = self['@current']) == nil || $receiver == undefined ? function () {return self['@current'] = smalltalk.send(self, "_new", [], smalltalk.Widget.klass);}() : $receiver; return self; } }), smalltalk.TabManager.klass); smalltalk.addMethod( '_new', smalltalk.method({ selector: 'new', fn: function () { var self = this; smalltalk.send(self, "_shouldNotImplement", []); return self; } }), smalltalk.TabManager.klass); smalltalk.addClass('TabWidget', smalltalk.Widget, ['div'], 'IDE'); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; smalltalk.send(self, "_subclassResponsibility", []); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_open', smalltalk.method({ selector: 'open', fn: function () { var self = this; smalltalk.send(smalltalk.send(smalltalk.TabManager || TabManager, "_current", []), "_addTab_", [self]); smalltalk.send(smalltalk.send(smalltalk.TabManager || TabManager, "_current", []), "_selectTab_", [self]); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_show', smalltalk.method({ selector: 'show', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_show", []); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_hide', smalltalk.method({ selector: 'hide', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_hide", []); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_remove', smalltalk.method({ selector: 'remove', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_remove", []); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_renderOn_', smalltalk.method({ selector: 'renderOn:', fn: function (html) { var self = this; self['@div'] = function ($rec) {smalltalk.send($rec, "_class_", ["jtalkTool"]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(html, "_div", [])); smalltalk.send(self, "_renderTab", []); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_renderButtonsOn_', smalltalk.method({ selector: 'renderButtonsOn:', fn: function (html) { var self = this; return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_update', smalltalk.method({ selector: 'update', fn: function () { var self = this; smalltalk.send(self, "_renderTab", []); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_renderTab', smalltalk.method({ selector: 'renderTab', fn: function () { var self = this; 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", []));}]); return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_canBeClosed', smalltalk.method({ selector: 'canBeClosed', fn: function () { var self = this; return false; return self; } }), smalltalk.TabWidget); smalltalk.addMethod( '_open', smalltalk.method({ selector: 'open', fn: function () { var self = this; return smalltalk.send(smalltalk.send(self, "_new", []), "_open", []); return self; } }), smalltalk.TabWidget.klass); smalltalk.addClass('Workspace', smalltalk.TabWidget, ['sourceArea'], 'IDE'); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return unescape("%5BWorkspace%5D"); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_clearWorkspace', smalltalk.method({ selector: 'clearWorkspace', fn: function () { var self = this; smalltalk.send(self['@sourceArea'], "_clear", []); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_doIt', smalltalk.method({ selector: 'doIt', fn: function () { var self = this; smalltalk.send(self['@sourceArea'], "_doIt", []); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_printIt', smalltalk.method({ selector: 'printIt', fn: function () { var self = this; smalltalk.send(self['@sourceArea'], "_printIt", []); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_inspectIt', smalltalk.method({ selector: 'inspectIt', fn: function () { var self = this; smalltalk.send(self['@sourceArea'], "_inspectIt", []); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; self['@sourceArea'] = smalltalk.send(smalltalk.SourceArea || SourceArea, "_new", []); smalltalk.send(self['@sourceArea'], "_renderOn_", [html]); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_renderButtonsOn_', smalltalk.method({ selector: 'renderButtonsOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_with_", ["DoIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+d")]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_doIt", []);}]);}(smalltalk.send(html, "_button", []))); (function ($rec) {smalltalk.send($rec, "_with_", ["PrintIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+p")]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_printIt", []);}]);}(smalltalk.send(html, "_button", []))); (function ($rec) {smalltalk.send($rec, "_with_", ["InspectIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+i")]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_inspectIt", []);}]);}(smalltalk.send(html, "_button", []))); (function ($rec) {smalltalk.send($rec, "_with_", ["Clear workspace"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_clearWorkspace", []);}]);}(smalltalk.send(html, "_button", []))); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_val_', smalltalk.method({ selector: 'val:', fn: function (aString) { var self = this; smalltalk.send(self['@sourceArea'], "_val_", [aString]); return self; } }), smalltalk.Workspace); smalltalk.addMethod( '_openOn_', smalltalk.method({ selector: 'openOn:', fn: function (aString) { var self = this; return smalltalk.send(smalltalk.send(self, "_open", []), "_val_", [aString]); return self; } }), smalltalk.Workspace.klass); smalltalk.addClass('Transcript', smalltalk.TabWidget, ['textarea'], 'IDE'); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return unescape("%5BTranscript%5D"); return self; } }), smalltalk.Transcript); smalltalk.addMethod( '_show_', smalltalk.method({ selector: 'show:', fn: function (anObject) { var self = this; smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(anObject, "_asString", [])])]); return self; } }), smalltalk.Transcript); smalltalk.addMethod( '_cr', smalltalk.method({ selector: 'cr', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(smalltalk.String || String, "_cr", [])])]); return self; } }), smalltalk.Transcript); smalltalk.addMethod( '_clear', smalltalk.method({ selector: 'clear', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [""]); return self; } }), smalltalk.Transcript); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; self['@textarea'] = smalltalk.send(html, "_textarea", []); smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_call_", ["tabby"]); (function ($rec) {smalltalk.send($rec, "_class_", ["jt_transcript"]);return smalltalk.send($rec, "_at_put_", ["spellcheck", "false"]);}(self['@textarea'])); return self; } }), smalltalk.Transcript); smalltalk.addMethod( '_renderButtonsOn_', smalltalk.method({ selector: 'renderButtonsOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_with_", ["Clear transcript"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_clear", []);}]);}(smalltalk.send(html, "_button", []))); return self; } }), smalltalk.Transcript); smalltalk.Transcript.klass.iVarNames = ['current']; smalltalk.addMethod( '_open', smalltalk.method({ selector: 'open', fn: function () { var self = this; smalltalk.send(smalltalk.send(self, "_current", []), "_open", []); return self; } }), smalltalk.Transcript.klass); smalltalk.addMethod( '_new', smalltalk.method({ selector: 'new', fn: function () { var self = this; smalltalk.send(self, "_shouldNotImplement", []); return self; } }), smalltalk.Transcript.klass); smalltalk.addMethod( '_current', smalltalk.method({ selector: 'current', fn: function () { var self = this; return ($receiver = self['@current']) == nil || $receiver == undefined ? function () {return self['@current'] = smalltalk.send(self, "_new", [], smalltalk.TabWidget.klass);}() : $receiver; return self; } }), smalltalk.Transcript.klass); smalltalk.addMethod( '_show_', smalltalk.method({ selector: 'show:', fn: function (anObject) { var self = this; smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [anObject]); return self; } }), smalltalk.Transcript.klass); smalltalk.addMethod( '_cr', smalltalk.method({ selector: 'cr', fn: function () { var self = this; smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [smalltalk.send(smalltalk.String || String, "_cr", [])]); return self; } }), smalltalk.Transcript.klass); smalltalk.addMethod( '_clear', smalltalk.method({ selector: 'clear', fn: function () { var self = this; smalltalk.send(smalltalk.send(self, "_current", []), "_clear", []); return self; } }), smalltalk.Transcript.klass); smalltalk.addClass('Browser', smalltalk.TabWidget, ['selectedCategory', 'selectedClass', 'selectedProtocol', 'selectedMethod', 'commitButton', 'categoriesList', 'classesList', 'protocolsList', 'methodsList', 'sourceArea', 'tabsList', 'selectedTab', 'saveButton', 'classButtons', 'methodButtons', 'unsavedChanges', 'input'], 'IDE'); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return ($receiver = self['@selectedClass']) == nil || $receiver == undefined ? function () {return unescape("Browser%20%28nil%29");}() : function () {return smalltalk.send(self['@selectedClass'], "_name", []);}(); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_categories', smalltalk.method({ selector: 'categories', fn: function () { var self = this; var categories = nil; categories = smalltalk.send(smalltalk.Array || Array, "_new", []); smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_classes", []), "_do_", [function (each) {return ($receiver = smalltalk.send(categories, "_includes_", [smalltalk.send(each, "_category", [])])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(categories, "_add_", [smalltalk.send(each, "_category", [])]);}() : nil : smalltalk.send($receiver, "_ifFalse_", [function () {return smalltalk.send(categories, "_add_", [smalltalk.send(each, "_category", [])]);}]);}]); return smalltalk.send(categories, "_sort", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_classes', smalltalk.method({ selector: 'classes', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_classes", []), "_select_", [function (each) {return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [self['@selectedCategory']]);}]), "_sort_", [function (a, b) {return ($receiver = smalltalk.send(a, "_name", [])).klass === smalltalk.Number ? $receiver < smalltalk.send(b, "_name", []) : smalltalk.send($receiver, "__lt", [smalltalk.send(b, "_name", [])]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_protocols', smalltalk.method({ selector: 'protocols', fn: function () { var self = this; try { var klass = nil; ($receiver = self['@selectedClass']) != nil && $receiver != undefined ? function () {($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["comment"])).klass === smalltalk.Boolean ? $receiver ? function () {return function () {throw {name: "stReturn", selector: "_protocols", fn: function () {return [];}};}();}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return function () {throw {name: "stReturn", selector: "_protocols", fn: function () {return [];}};}();}]);klass = ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return self['@selectedClass'];}() : function () {return smalltalk.send(self['@selectedClass'], "_class", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return self['@selectedClass'];}, function () {return smalltalk.send(self['@selectedClass'], "_class", []);}]);($receiver = smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_isEmpty", [])).klass === smalltalk.Boolean ? $receiver ? function () {return function () {throw {name: "stReturn", selector: "_protocols", fn: function () {return smalltalk.send(smalltalk.Array || Array, "_with_", ["not yet classified"]);}};}();}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return function () {throw {name: "stReturn", selector: "_protocols", fn: function () {return smalltalk.send(smalltalk.Array || Array, "_with_", ["not yet classified"]);}};}();}]);return function () {throw {name: "stReturn", selector: "_protocols", fn: function () {return smalltalk.send(klass, "_protocols", []);}};}();}() : nil; (function () {throw {name: "stReturn", selector: "_protocols", fn: function () {return smalltalk.send(smalltalk.Array || Array, "_new", []);}};}()); return self; } catch (e) { if (e.name === "stReturn" && e.selector === "_protocols") { return e.fn(); } throw e; } } }), smalltalk.Browser); smalltalk.addMethod( '_methods', smalltalk.method({ selector: 'methods', fn: function () { var self = this; try { var klass = nil; ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["comment"])).klass === smalltalk.Boolean ? $receiver ? function () {return function () {throw {name: "stReturn", selector: "_methods", fn: function () {return [];}};}();}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return function () {throw {name: "stReturn", selector: "_methods", fn: function () {return [];}};}();}]); ($receiver = self['@selectedClass']) != nil && $receiver != undefined ? function () {return klass = ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return self['@selectedClass'];}() : function () {return smalltalk.send(self['@selectedClass'], "_class", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return self['@selectedClass'];}, function () {return smalltalk.send(self['@selectedClass'], "_class", []);}]);}() : nil; (function () {throw {name: "stReturn", selector: "_methods", fn: function () {return smalltalk.send(($receiver = self['@selectedProtocol']) == nil || $receiver == undefined ? function () {return ($receiver = klass) == nil || $receiver == undefined ? function () {return [];}() : function () {return smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_values", []);}();}() : function () {return smalltalk.send(smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_values", []), "_select_", [function (each) {return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [self['@selectedProtocol']]);}]);}(), "_sort_", [function (a, b) {return ($receiver = smalltalk.send(a, "_selector", [])).klass === smalltalk.Number ? $receiver < smalltalk.send(b, "_selector", []) : smalltalk.send($receiver, "__lt", [smalltalk.send(b, "_selector", [])]);}]);}};}()); return self; } catch (e) { if (e.name === "stReturn" && e.selector === "_methods") { return e.fn(); } throw e; } } }), smalltalk.Browser); smalltalk.addMethod( '_source', smalltalk.method({ selector: 'source', fn: function () { var self = this; try { ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["comment"])).klass === smalltalk.Boolean ? !$receiver ? function () {return function () {throw {name: "stReturn", selector: "_source", fn: function () {return ($receiver = smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [function () {return smalltalk.send(self['@selectedMethod'], "_notNil", []);}])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_declarationSource", []);}() : function () {return smalltalk.send(self, "_methodSource", []);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self, "_declarationSource", []);}, function () {return smalltalk.send(self, "_methodSource", []);}]);}};}();}() : nil : smalltalk.send($receiver, "_ifFalse_", [function () {return function () {throw {name: "stReturn", selector: "_source", fn: function () {return ($receiver = smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [function () {return smalltalk.send(self['@selectedMethod'], "_notNil", []);}])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_declarationSource", []);}() : function () {return smalltalk.send(self, "_methodSource", []);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self, "_declarationSource", []);}, function () {return smalltalk.send(self, "_methodSource", []);}]);}};}();}]); (function () {throw {name: "stReturn", selector: "_source", fn: function () {return ($receiver = self['@selectedClass']) == nil || $receiver == undefined ? function () {return "";}() : function () {return smalltalk.send(self, "_classCommentSource", []);}();}};}()); return self; } catch (e) { if (e.name === "stReturn" && e.selector === "_source") { return e.fn(); } throw e; } } }), smalltalk.Browser); smalltalk.addMethod( '_methodSource', smalltalk.method({ selector: 'methodSource', fn: function () { var self = this; return ($receiver = self['@selectedMethod']) == nil || $receiver == undefined ? function () {return smalltalk.send(self, "_dummyMethodSource", []);}() : function () {return smalltalk.send(self['@selectedMethod'], "_source", []);}(); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_dummyMethodSource', smalltalk.method({ selector: 'dummyMethodSource', fn: function () { var self = this; return unescape("messageSelectorAndArgumentNames%0A%09%22comment%20stating%20purpose%20of%20message%22%0A%0A%09%7C%20temporary%20variable%20names%20%7C%0A%09statements"); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_declarationSource', smalltalk.method({ selector: 'declarationSource', fn: function () { var self = this; return ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self, "_classDeclarationSource", []);}() : function () {return smalltalk.send(self, "_metaclassDeclarationSource", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self, "_classDeclarationSource", []);}, function () {return smalltalk.send(self, "_metaclassDeclarationSource", []);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_classDeclarationSource', smalltalk.method({ selector: 'classDeclarationSource', fn: function () { var self = this; var stream = nil; stream = smalltalk.send("", "_writeStream", []); ($receiver = self['@selectedClass']) != nil && $receiver != undefined ? function () {(function ($rec) {smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self['@selectedClass'], "_superclass", []), "_asString", [])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%20subclass%3A%20%23")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_name", [])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.String || String, "_lf", []), "__comma", [smalltalk.send(smalltalk.String || String, "_tab", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("instanceVariableNames%3A%20%27")]);}(stream));smalltalk.send(smalltalk.send(self['@selectedClass'], "_instanceVariableNames", []), "_do_separatedBy_", [function (each) {return smalltalk.send(stream, "_nextPutAll_", [each]);}, function () {return smalltalk.send(stream, "_nextPutAll_", [" "]);}]);return function ($rec) {smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(smalltalk.String || String, "_lf", [])]), "__comma", [smalltalk.send(smalltalk.String || String, "_tab", [])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("category%3A%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_category", [])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);}(stream);}() : nil; return smalltalk.send(stream, "_contents", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_metaclassDeclarationSource', smalltalk.method({ selector: 'metaclassDeclarationSource', fn: function () { var self = this; var stream = nil; stream = smalltalk.send("", "_writeStream", []); ($receiver = self['@selectedClass']) != nil && $receiver != undefined ? function () {(function ($rec) {smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_asString", [])]);smalltalk.send($rec, "_nextPutAll_", [" class "]);return smalltalk.send($rec, "_nextPutAll_", [unescape("instanceVariableNames%3A%20%27")]);}(stream));smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [function (each) {return smalltalk.send(stream, "_nextPutAll_", [each]);}, function () {return smalltalk.send(stream, "_nextPutAll_", [" "]);}]);return smalltalk.send(stream, "_nextPutAll_", [unescape("%27")]);}() : nil; return smalltalk.send(stream, "_contents", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_classCommentSource', smalltalk.method({ selector: 'classCommentSource', fn: function () { var self = this; return smalltalk.send(self['@selectedClass'], "_comment", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_selectedClass', smalltalk.method({ selector: 'selectedClass', fn: function () { var self = this; return self['@selectedClass']; return self; } }), smalltalk.Browser); smalltalk.addMethod( '_disableSaveButton', smalltalk.method({ selector: 'disableSaveButton', fn: function () { var self = this; ($receiver = self['@saveButton']) != nil && $receiver != undefined ? function () {return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);}() : nil; self['@unsavedChanges'] = false; return self; } }), smalltalk.Browser); smalltalk.addMethod( '_hideClassButtons', smalltalk.method({ selector: 'hideClassButtons', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@classButtons'], "_asJQuery", []), "_hide", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_showClassButtons', smalltalk.method({ selector: 'showClassButtons', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@classButtons'], "_asJQuery", []), "_show", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_hideMethodButtons', smalltalk.method({ selector: 'hideMethodButtons', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@methodButtons'], "_asJQuery", []), "_hide", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_showMethodButtons', smalltalk.method({ selector: 'showMethodButtons', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@methodButtons'], "_asJQuery", []), "_show", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_compile', smalltalk.method({ selector: 'compile', fn: function () { var self = this; smalltalk.send(self, "_disableSaveButton", []); ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["comment"])).klass === smalltalk.Boolean ? $receiver ? function () {return ($receiver = self['@selectedClass']) != nil && $receiver != undefined ? function () {return smalltalk.send(self, "_compileClassComment", []);}() : nil;}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return ($receiver = self['@selectedClass']) != nil && $receiver != undefined ? function () {return smalltalk.send(self, "_compileClassComment", []);}() : nil;}]); ($receiver = smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [function () {return smalltalk.send(self['@selectedMethod'], "_notNil", []);}])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_compileDefinition", []);}() : function () {return smalltalk.send(self, "_compileMethodDefinition", []);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self, "_compileDefinition", []);}, function () {return smalltalk.send(self, "_compileMethodDefinition", []);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_compileClassComment', smalltalk.method({ selector: 'compileClassComment', fn: function () { var self = this; smalltalk.send(self['@selectedClass'], "_comment_", [smalltalk.send(self['@sourceArea'], "_val", [])]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_compileMethodDefinition', smalltalk.method({ selector: 'compileMethodDefinition', fn: function () { var self = this; ($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self, "_compileMethodDefinitionFor_", [self['@selectedClass']]);}() : function () {return smalltalk.send(self, "_compileMethodDefinitionFor_", [smalltalk.send(self['@selectedClass'], "_class", [])]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self, "_compileMethodDefinitionFor_", [self['@selectedClass']]);}, function () {return smalltalk.send(self, "_compileMethodDefinitionFor_", [smalltalk.send(self['@selectedClass'], "_class", [])]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_compileMethodDefinitionFor_', smalltalk.method({ selector: 'compileMethodDefinitionFor:', fn: function (aClass) { var self = this; try { var compiler = nil; var method = nil; var source = nil; var node = nil; source = smalltalk.send(self['@sourceArea'], "_val", []); ($receiver = self['@selectedProtocol']) == nil || $receiver == undefined ? function () {return self['@selectedProtocol'] = smalltalk.send(self['@selectedMethod'], "_category", []);}() : $receiver; compiler = smalltalk.send(smalltalk.Compiler || Compiler, "_new", []); node = smalltalk.send(compiler, "_parse_", [source]); ($receiver = smalltalk.send(node, "_isParseFailure", [])).klass === smalltalk.Boolean ? $receiver ? function () {return function () {throw {name: "stReturn", selector: "_compileMethodDefinitionFor_", fn: function () {return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send("PARSE ERROR: ", "__comma", [smalltalk.send(node, "_reason", [])]), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(smalltalk.send(node, "_position", []), "_asString", [])])]);}};}();}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return function () {throw {name: "stReturn", selector: "_compileMethodDefinitionFor_", fn: function () {return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send("PARSE ERROR: ", "__comma", [smalltalk.send(node, "_reason", [])]), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(smalltalk.send(node, "_position", []), "_asString", [])])]);}};}();}]); smalltalk.send(compiler, "_currentClass_", [aClass]); method = smalltalk.send(compiler, "_eval_", [smalltalk.send(compiler, "_compileNode_", [node])]); smalltalk.send(method, "_category_", [self['@selectedProtocol']]); smalltalk.send(smalltalk.send(compiler, "_unknownVariables", []), "_do_", [function (each) {return ($receiver = smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Declare%20%27"), "__comma", [each]), "__comma", [unescape("%27%20as%20instance%20variable%3F")])])).klass === smalltalk.Boolean ? $receiver ? function () {smalltalk.send(self, "_addInstanceVariableNamed_toClass_", [each, aClass]);return function () {throw {name: "stReturn", selector: "_compileMethodDefinitionFor_", fn: function () {return smalltalk.send(self, "_compileMethodDefinitionFor_", [aClass]);}};}();}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {smalltalk.send(self, "_addInstanceVariableNamed_toClass_", [each, aClass]);return function () {throw {name: "stReturn", selector: "_compileMethodDefinitionFor_", fn: function () {return smalltalk.send(self, "_compileMethodDefinitionFor_", [aClass]);}};}();}]);}]); smalltalk.send(aClass, "_addCompiledMethod_", [method]); smalltalk.send(compiler, "_setupClass_", [aClass]); smalltalk.send(self, "_updateMethodsList", []); smalltalk.send(self, "_selectMethod_", [method]); return self; } catch (e) { if (e.name === "stReturn" && e.selector === "_compileMethodDefinitionFor_") { return e.fn(); } throw e; } } }), smalltalk.Browser); smalltalk.addMethod( '_compileDefinition', smalltalk.method({ selector: 'compileDefinition', fn: function () { var self = this; var newClass = nil; newClass = smalltalk.send(smalltalk.send(smalltalk.Compiler || Compiler, "_new", []), "_loadExpression_", [smalltalk.send(self['@sourceArea'], "_val", [])]); (function ($rec) {smalltalk.send($rec, "_resetClassesList", []);smalltalk.send($rec, "_updateCategoriesList", []);return smalltalk.send($rec, "_updateClassesList", []);}(self)); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_commitCategory', smalltalk.method({ selector: 'commitCategory', fn: function () { var self = this; ($receiver = self['@selectedCategory']) != nil && $receiver != undefined ? function () {return smalltalk.send(smalltalk.CategoryCommiter || CategoryCommiter, "_commitCategory_", [self['@selectedCategory']]);}() : nil; return self; } }), smalltalk.Browser); smalltalk.addMethod( '_cancelChanges', smalltalk.method({ selector: 'cancelChanges', fn: function () { var self = this; return ($receiver = self['@unsavedChanges']).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self, "_confirm_", [unescape("Cancel%20changes%3F")]);}() : function () {return true;}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self, "_confirm_", [unescape("Cancel%20changes%3F")]);}, function () {return true;}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_removeClass', smalltalk.method({ selector: 'removeClass', fn: function () { var self = this; ($receiver = smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send("Do you really want to remove ", "__comma", [smalltalk.send(self['@selectedClass'], "_name", [])]), "__comma", [unescape("%3F")])])).klass === smalltalk.Boolean ? $receiver ? function () {smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_removeClass_", [self['@selectedClass']]);smalltalk.send(self, "_resetClassesList", []);return smalltalk.send(self, "_selectClass_", [nil]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_removeClass_", [self['@selectedClass']]);smalltalk.send(self, "_resetClassesList", []);return smalltalk.send(self, "_selectClass_", [nil]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_removeMethod', smalltalk.method({ selector: 'removeMethod', fn: function () { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {return ($receiver = smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Do%20you%20really%20want%20to%20remove%20%23"), "__comma", [smalltalk.send(self['@selectedMethod'], "_selector", [])]), "__comma", [unescape("%3F")])])).klass === smalltalk.Boolean ? $receiver ? function () {($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}() : function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}, function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}]);return smalltalk.send(self, "_selectMethod_", [nil]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}() : function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}, function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}]);return smalltalk.send(self, "_selectMethod_", [nil]);}]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return ($receiver = smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Do%20you%20really%20want%20to%20remove%20%23"), "__comma", [smalltalk.send(self['@selectedMethod'], "_selector", [])]), "__comma", [unescape("%3F")])])).klass === smalltalk.Boolean ? $receiver ? function () {($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}() : function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}, function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}]);return smalltalk.send(self, "_selectMethod_", [nil]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}() : function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}, function () {return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);}]);return smalltalk.send(self, "_selectMethod_", [nil]);}]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_setMethodProtocol_', smalltalk.method({ selector: 'setMethodProtocol:', fn: function (aString) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {return ($receiver = smalltalk.send(smalltalk.send(self, "_protocols", []), "_includes_", [aString])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_addNewProtocol", []);}() : function () {smalltalk.send(self['@selectedMethod'], "_category_", [aString]);self['@selectedProtocol'] = aString;self['@selectedMethod'] = self['@selectedMethod'];return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self, "_addNewProtocol", []);}, function () {smalltalk.send(self['@selectedMethod'], "_category_", [aString]);self['@selectedProtocol'] = aString;self['@selectedMethod'] = self['@selectedMethod'];return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return ($receiver = smalltalk.send(smalltalk.send(self, "_protocols", []), "_includes_", [aString])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_addNewProtocol", []);}() : function () {smalltalk.send(self['@selectedMethod'], "_category_", [aString]);self['@selectedProtocol'] = aString;self['@selectedMethod'] = self['@selectedMethod'];return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self, "_addNewProtocol", []);}, function () {smalltalk.send(self['@selectedMethod'], "_category_", [aString]);self['@selectedProtocol'] = aString;self['@selectedMethod'] = self['@selectedMethod'];return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_addNewProtocol', smalltalk.method({ selector: 'addNewProtocol', fn: function () { var self = this; var newProtocol = nil; newProtocol = smalltalk.send(self, "_prompt_", ["New method protocol"]); ($receiver = smalltalk.send(newProtocol, "_notEmpty", [])).klass === smalltalk.Boolean ? $receiver ? function () {smalltalk.send(self['@selectedMethod'], "_category_", [newProtocol]);return smalltalk.send(self, "_setMethodProtocol_", [newProtocol]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {smalltalk.send(self['@selectedMethod'], "_category_", [newProtocol]);return smalltalk.send(self, "_setMethodProtocol_", [newProtocol]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_selectCategory_', smalltalk.method({ selector: 'selectCategory:', fn: function (aCategory) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {self['@selectedCategory'] = aCategory;self['@selectedClass'] = self['@selectedProtocol'] = self['@selectedMethod'] = nil;smalltalk.send(self, "_resetClassesList", []);return function ($rec) {smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {self['@selectedCategory'] = aCategory;self['@selectedClass'] = self['@selectedProtocol'] = self['@selectedMethod'] = nil;smalltalk.send(self, "_resetClassesList", []);return function ($rec) {smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_selectClass_', smalltalk.method({ selector: 'selectClass:', fn: function (aClass) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {self['@selectedClass'] = aClass;self['@selectedProtocol'] = self['@selectedMethod'] = nil;return function ($rec) {smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {self['@selectedClass'] = aClass;self['@selectedProtocol'] = self['@selectedMethod'] = nil;return function ($rec) {smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_selectProtocol_', smalltalk.method({ selector: 'selectProtocol:', fn: function (aString) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {self['@selectedProtocol'] = aString;self['@selectedMethod'] = nil;return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {self['@selectedProtocol'] = aString;self['@selectedMethod'] = nil;return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_selectMethod_', smalltalk.method({ selector: 'selectMethod:', fn: function (aMethod) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {self['@selectedMethod'] = aMethod;return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {self['@selectedMethod'] = aMethod;return function ($rec) {smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_selectTab_', smalltalk.method({ selector: 'selectTab:', fn: function (aString) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {self['@selectedTab'] = aString;smalltalk.send(self, "_selectProtocol_", [nil]);return smalltalk.send(self, "_updateTabsList", []);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {self['@selectedTab'] = aString;smalltalk.send(self, "_selectProtocol_", [nil]);return smalltalk.send(self, "_updateTabsList", []);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renameClass', smalltalk.method({ selector: 'renameClass', fn: function () { var self = this; var newName = nil; newName = smalltalk.send(self, "_prompt_", [smalltalk.send("Rename class ", "__comma", [smalltalk.send(self['@selectedClass'], "_name", [])])]); ($receiver = smalltalk.send(newName, "_notEmpty", [])).klass === smalltalk.Boolean ? $receiver ? function () {smalltalk.send(self['@selectedClass'], "_rename_", [newName]);return function ($rec) {smalltalk.send($rec, "_updateClassesList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {smalltalk.send(self['@selectedClass'], "_rename_", [newName]);return function ($rec) {smalltalk.send($rec, "_updateClassesList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);}(self);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_addInstanceVariableNamed_toClass_', smalltalk.method({ selector: 'addInstanceVariableNamed:toClass:', fn: function (aString, aClass) { var self = this; smalltalk.send(smalltalk.send(smalltalk.ClassBuilder || ClassBuilder, "_new", []), "_addSubclassOf_named_instanceVariableNames_", [smalltalk.send(aClass, "_superclass", []), smalltalk.send(aClass, "_name", []), function ($rec) {smalltalk.send($rec, "_add_", [aString]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_copy", []))]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_searchReferencesOf_', smalltalk.method({ selector: 'searchReferencesOf:', fn: function (aString) { var self = this; smalltalk.send(smalltalk.ReferencesBrowser || ReferencesBrowser, "_search_", [aString]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_searchClassReferences', smalltalk.method({ selector: 'searchClassReferences', fn: function () { var self = this; smalltalk.send(smalltalk.ReferencesBrowser || ReferencesBrowser, "_search_", [smalltalk.send(self['@selectedClass'], "_name", [])]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_search_', smalltalk.method({ selector: 'search:', fn: function (aString) { var self = this; ($receiver = smalltalk.send(self, "_cancelChanges", [])).klass === smalltalk.Boolean ? $receiver ? function () {var searchedClass = nil;searchedClass = smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_at_", [aString]);return ($receiver = smalltalk.send(searchedClass, "_isClass", [])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(smalltalk.send(self, "_class", []), "_openOn_", [searchedClass]);}() : function () {return smalltalk.send(self, "_searchReferencesOf_", [aString]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(smalltalk.send(self, "_class", []), "_openOn_", [searchedClass]);}, function () {return smalltalk.send(self, "_searchReferencesOf_", [aString]);}]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {var searchedClass = nil;searchedClass = smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_at_", [aString]);return ($receiver = smalltalk.send(searchedClass, "_isClass", [])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(smalltalk.send(self, "_class", []), "_openOn_", [searchedClass]);}() : function () {return smalltalk.send(self, "_searchReferencesOf_", [aString]);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(smalltalk.send(self, "_class", []), "_openOn_", [searchedClass]);}, function () {return smalltalk.send(self, "_searchReferencesOf_", [aString]);}]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_initialize', smalltalk.method({ selector: 'initialize', fn: function () { var self = this; smalltalk.send(self, "_initialize", [], smalltalk.TabWidget); self['@selectedTab'] = "instance"; self['@unsavedChanges'] = false; return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_renderTopPanelOn_", [html]);smalltalk.send($rec, "_renderTabsOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);}(self)); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renderTopPanelOn_', smalltalk.method({ selector: 'renderTopPanelOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [function () {smalltalk.send(self, "_renderInputOn_", [html]);self['@categoriesList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser categories"]);self['@commitButton'] = function ($rec) {smalltalk.send($rec, "_class_", ["jt_commit"]);smalltalk.send($rec, "_title_", ["Commit classes in this category to disk"]);smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_commitCategory", []);}]);return smalltalk.send($rec, "_with_", ["Commit category"]);}(smalltalk.send(html, "_button", []));self['@classesList'] = smalltalk.send(smalltalk.ClassesList || ClassesList, "_on_", [self]);smalltalk.send(self['@classesList'], "_renderOn_", [html]);self['@protocolsList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser protocols"]);self['@methodsList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser methods"]);(function ($rec) {smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);return smalltalk.send($rec, "_updateMethodsList", []);}(self));return smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["jt_clear"]);}]);}(smalltalk.send(html, "_div", []))); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renderTabsOn_', smalltalk.method({ selector: 'renderTabsOn:', fn: function (html) { var self = this; self['@tabsList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_tabs"]); smalltalk.send(self, "_updateTabsList", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renderBottomPanelOn_', smalltalk.method({ selector: 'renderBottomPanelOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [function () {self['@sourceArea'] = smalltalk.send(smalltalk.SourceArea || SourceArea, "_new", []);smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);return smalltalk.send(self['@sourceArea'], "_onKeyUp_", [function () {return smalltalk.send(self, "_updateStatus", []);}]);}]);}(smalltalk.send(html, "_div", []))); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renderButtonsOn_', smalltalk.method({ selector: 'renderButtonsOn:', fn: function (html) { var self = this; self['@saveButton'] = smalltalk.send(html, "_button", []); (function ($rec) {smalltalk.send($rec, "_with_", ["Save"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_compile", []);}]);}(self['@saveButton'])); self['@methodButtons'] = smalltalk.send(html, "_span", []); self['@classButtons'] = smalltalk.send(html, "_span", []); (function ($rec) {smalltalk.send($rec, "_class_", ["right"]);return smalltalk.send($rec, "_with_", [function () {(function ($rec) {smalltalk.send($rec, "_with_", ["DoIt"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self['@sourceArea'], "_doIt", []);}]);}(smalltalk.send(html, "_button", [])));(function ($rec) {smalltalk.send($rec, "_with_", ["PrintIt"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self['@sourceArea'], "_printIt", []);}]);}(smalltalk.send(html, "_button", [])));return function ($rec) {smalltalk.send($rec, "_with_", ["InspectIt"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self['@sourceArea'], "_inspectit", []);}]);}(smalltalk.send(html, "_button", []));}]);}(smalltalk.send(html, "_div", []))); smalltalk.send(self, "_updateSourceAndButtons", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_renderInputOn_', smalltalk.method({ selector: 'renderInputOn:', fn: function (html) { var self = this; 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 self; } }), smalltalk.Browser); smalltalk.addMethod( '_canBeClosed', smalltalk.method({ selector: 'canBeClosed', fn: function () { var self = this; return true; return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateCategoriesList', smalltalk.method({ selector: 'updateCategoriesList', fn: function () { var self = this; smalltalk.send(self['@categoriesList'], "_contents_", [function (html) {return smalltalk.send(smalltalk.send(self, "_categories", []), "_do_", [function (each) {var li = nil;var label = nil;($receiver = smalltalk.send(each, "_isEmpty", [])).klass === smalltalk.Boolean ? $receiver ? function () {return label = "Unclassified";}() : function () {return label = each;}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return label = "Unclassified";}, function () {return label = each;}]);li = smalltalk.send(html, "_li", []);($receiver = smalltalk.send(self['@selectedCategory'], "__eq", [each])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);return function ($rec) {smalltalk.send($rec, "_with_", [label]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectCategory_", [each]);}]);}(li);}]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateClassesList', smalltalk.method({ selector: 'updateClassesList', fn: function () { var self = this; smalltalk.send(smalltalk.send(smalltalk.TabManager || TabManager, "_current", []), "_update", []); smalltalk.send(self['@classesList'], "_updateNodes", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateProtocolsList', smalltalk.method({ selector: 'updateProtocolsList', fn: function () { var self = this; smalltalk.send(self['@protocolsList'], "_contents_", [function (html) {return smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [function (each) {var li = nil;li = smalltalk.send(html, "_li", []);($receiver = smalltalk.send(self['@selectedProtocol'], "__eq", [each])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);return function ($rec) {smalltalk.send($rec, "_with_", [each]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectProtocol_", [each]);}]);}(li);}]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateMethodsList', smalltalk.method({ selector: 'updateMethodsList', fn: function () { var self = this; smalltalk.send(self['@methodsList'], "_contents_", [function (html) {return smalltalk.send(smalltalk.send(self, "_methods", []), "_do_", [function (each) {var li = nil;li = smalltalk.send(html, "_li", []);($receiver = smalltalk.send(self['@selectedMethod'], "__eq", [each])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);return function ($rec) {smalltalk.send($rec, "_with_", [smalltalk.send(each, "_selector", [])]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectMethod_", [each]);}]);}(li);}]);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateTabsList', smalltalk.method({ selector: 'updateTabsList', fn: function () { var self = this; smalltalk.send(self['@tabsList'], "_contents_", [function (html) {var li = nil;li = smalltalk.send(html, "_li", []);($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["instance"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);(function ($rec) {smalltalk.send($rec, "_with_", ["Instance"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectTab_", ["instance"]);}]);}(li));li = smalltalk.send(html, "_li", []);($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["class"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);(function ($rec) {smalltalk.send($rec, "_with_", ["Class"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectTab_", ["class"]);}]);}(li));li = smalltalk.send(html, "_li", []);($receiver = smalltalk.send(self['@selectedTab'], "__eq", ["comment"])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);return function ($rec) {smalltalk.send($rec, "_with_", ["Comment"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectTab_", ["comment"]);}]);}(li);}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateSourceAndButtons', smalltalk.method({ selector: 'updateSourceAndButtons', fn: function () { var self = this; smalltalk.send(self, "_disableSaveButton", []); smalltalk.send(self['@classButtons'], "_contents_", [function (html) {(function ($rec) {smalltalk.send($rec, "_with_", ["Rename class"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_renameClass", []);}]);}(smalltalk.send(html, "_button", [])));(function ($rec) {smalltalk.send($rec, "_with_", ["Remove class"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_removeClass", []);}]);}(smalltalk.send(html, "_button", [])));return function ($rec) {smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_searchClassReferences", []);}]);}(smalltalk.send(html, "_button", []));}]); smalltalk.send(self['@methodButtons'], "_contents_", [function (html) {(function ($rec) {smalltalk.send($rec, "_with_", ["Remove method"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_removeMethod", []);}]);}(smalltalk.send(html, "_button", [])));(function ($rec) {smalltalk.send($rec, "_onChange_", [function (e, select) {return smalltalk.send(self, "_setMethodProtocol_", [smalltalk.send(select, "_val", [])]);}]);return smalltalk.send($rec, "_with_", [function () {(function ($rec) {smalltalk.send($rec, "_with_", ["Method protocol"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);}(smalltalk.send(html, "_option", [])));(function ($rec) {smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", ["New..."]);}(smalltalk.send(html, "_option", [])));return smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [function (each) {return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);}]);}]);}(smalltalk.send(html, "_select", [])));return ($receiver = smalltalk.send(self['@selectedMethod'], "_isNil", [])).klass === smalltalk.Boolean ? !$receiver ? function () {return function ($rec) {smalltalk.send($rec, "_onChange_", [function (e, select) {return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(select, "_val", [])]);}]);return smalltalk.send($rec, "_with_", [function () {(function ($rec) {smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);}(smalltalk.send(html, "_option", [])));(function ($rec) {smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@selectedMethod'], "_selector", [])]);}(smalltalk.send(html, "_option", [])));return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedMethod'], "_messageSends", []), "_sorted", []), "_do_", [function (each) {return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);}]);}]);}(smalltalk.send(html, "_select", []));}() : nil : smalltalk.send($receiver, "_ifFalse_", [function () {return function ($rec) {smalltalk.send($rec, "_onChange_", [function (e, select) {return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(select, "_val", [])]);}]);return smalltalk.send($rec, "_with_", [function () {(function ($rec) {smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);}(smalltalk.send(html, "_option", [])));(function ($rec) {smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@selectedMethod'], "_selector", [])]);}(smalltalk.send(html, "_option", [])));return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedMethod'], "_messageSends", []), "_sorted", []), "_do_", [function (each) {return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);}]);}]);}(smalltalk.send(html, "_select", []));}]);}]); ($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", []);}]); smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(self, "_source", [])]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_updateStatus', smalltalk.method({ selector: 'updateStatus', fn: function () { var self = this; ($receiver = smalltalk.send(smalltalk.send(self['@sourceArea'], "_val", []), "__eq", [smalltalk.send(self, "_source", [])])).klass === smalltalk.Boolean ? $receiver ? function () {($receiver = self['@saveButton']) != nil && $receiver != undefined ? function () {return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);}() : nil;return self['@unsavedChanges'] = false;}() : function () {($receiver = self['@saveButton']) != nil && $receiver != undefined ? function () {return smalltalk.send(self['@saveButton'], "_removeAt_", ["disabled"]);}() : nil;return self['@unsavedChanges'] = true;}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {($receiver = self['@saveButton']) != nil && $receiver != undefined ? function () {return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);}() : nil;return self['@unsavedChanges'] = false;}, function () {($receiver = self['@saveButton']) != nil && $receiver != undefined ? function () {return smalltalk.send(self['@saveButton'], "_removeAt_", ["disabled"]);}() : nil;return self['@unsavedChanges'] = true;}]); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_resetClassesList', smalltalk.method({ selector: 'resetClassesList', fn: function () { var self = this; smalltalk.send(self['@classesList'], "_resetNodes", []); return self; } }), smalltalk.Browser); smalltalk.addMethod( '_commitPathJs', smalltalk.method({ selector: 'commitPathJs', fn: function () { var self = this; return "js"; return self; } }), smalltalk.Browser.klass); smalltalk.addMethod( '_commitPathSt', smalltalk.method({ selector: 'commitPathSt', fn: function () { var self = this; return "st"; return self; } }), smalltalk.Browser.klass); smalltalk.addMethod( '_openOn_', smalltalk.method({ selector: 'openOn:', fn: function (aClass) { var self = this; return function ($rec) {smalltalk.send($rec, "_open", []);smalltalk.send($rec, "_selectCategory_", [smalltalk.send(aClass, "_category", [])]);return smalltalk.send($rec, "_selectClass_", [aClass]);}(smalltalk.send(self, "_new", [])); return self; } }), smalltalk.Browser.klass); smalltalk.addMethod( '_open', smalltalk.method({ selector: 'open', fn: function () { var self = this; smalltalk.send(smalltalk.send(self, "_new", []), "_open", []); return self; } }), smalltalk.Browser.klass); smalltalk.addClass('Inspector', smalltalk.TabWidget, ['label', 'variables', 'object', 'selectedVariable', 'variablesList', 'valueTextarea', 'workspaceTextarea', 'diveButton'], 'IDE'); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return ($receiver = self['@label']) == nil || $receiver == undefined ? function () {return unescape("Inspector%20%28nil%29");}() : $receiver; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_variables', smalltalk.method({ selector: 'variables', fn: function () { var self = this; return self['@variables']; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_setVariables_', smalltalk.method({ selector: 'setVariables:', fn: function (aCollection) { var self = this; self['@variables'] = aCollection; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_setLabel_', smalltalk.method({ selector: 'setLabel:', fn: function (aString) { var self = this; self['@label'] = aString; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_selectedVariable', smalltalk.method({ selector: 'selectedVariable', fn: function () { var self = this; return self['@selectedVariable']; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_selectedVariable_', smalltalk.method({ selector: 'selectedVariable:', fn: function (aString) { var self = this; self['@selectedVariable'] = aString; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_inspect_', smalltalk.method({ selector: 'inspect:', fn: function (anObject) { var self = this; self['@object'] = anObject; self['@variables'] = []; smalltalk.send(self['@object'], "_inspectOn_", [self]); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_dive', smalltalk.method({ selector: 'dive', fn: function () { var self = this; smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_inspect", []); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_refresh', smalltalk.method({ selector: 'refresh', fn: function () { var self = this; (function ($rec) {smalltalk.send($rec, "_inspect_", [self['@object']]);smalltalk.send($rec, "_updateVariablesList", []);return smalltalk.send($rec, "_updateValueTextarea", []);}(self)); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_renderTopPanelOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);}(self)); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_renderTopPanelOn_', smalltalk.method({ selector: 'renderTopPanelOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [function () {self['@variablesList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column variables"]);self['@valueTextarea'] = function ($rec) {smalltalk.send($rec, "_class_", ["jt_column value"]);return smalltalk.send($rec, "_at_put_", ["readonly", "readonly"]);}(smalltalk.send(html, "_textarea", []));(function ($rec) {smalltalk.send($rec, "_updateVariablesList", []);return smalltalk.send($rec, "_updateValueTextarea", []);}(self));return smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["jt_clear"]);}]);}(smalltalk.send(html, "_div", []))); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_renderBottomPanelOn_', smalltalk.method({ selector: 'renderBottomPanelOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [function () {self['@workspaceTextarea'] = function ($rec) {smalltalk.send($rec, "_class_", ["source"]);return smalltalk.send($rec, "_at_put_", ["spellcheck", "false"]);}(smalltalk.send(html, "_textarea", []));return smalltalk.send(smalltalk.send(self['@workspaceTextarea'], "_asJQuery", []), "_call_", ["tabby"]);}]);}(smalltalk.send(html, "_div", []))); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_renderButtonsOn_', smalltalk.method({ selector: 'renderButtonsOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_with_", ["Refresh"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_refresh", []);}]);}(smalltalk.send(html, "_button", []))); self['@diveButton'] = function ($rec) {smalltalk.send($rec, "_with_", ["Dive"]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_dive", []);}]);}(smalltalk.send(html, "_button", [])); smalltalk.send(self, "_updateButtons", []); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_canBeClosed', smalltalk.method({ selector: 'canBeClosed', fn: function () { var self = this; return true; return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_updateVariablesList', smalltalk.method({ selector: 'updateVariablesList', fn: function () { var self = this; smalltalk.send(self['@variablesList'], "_contents_", [function (html) {return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_keys", []), "_do_", [function (each) {var li = nil;li = smalltalk.send(html, "_li", []);(function ($rec) {smalltalk.send($rec, "_with_", [each]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectVariable_", [each]);}]);}(li));return ($receiver = smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "__eq", [each])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]);}]);}]); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_selectVariable_', smalltalk.method({ selector: 'selectVariable:', fn: function (aString) { var self = this; smalltalk.send(self, "_selectedVariable_", [aString]); (function ($rec) {smalltalk.send($rec, "_updateVariablesList", []);smalltalk.send($rec, "_updateValueTextarea", []);return smalltalk.send($rec, "_updateButtons", []);}(self)); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_updateValueTextarea', smalltalk.method({ selector: 'updateValueTextarea', fn: function () { var self = this; smalltalk.send(smalltalk.send(self['@valueTextarea'], "_asJQuery", []), "_val_", [($receiver = smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "_isNil", [])).klass === smalltalk.Boolean ? $receiver ? function () {return "";}() : function () {return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_printString", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return "";}, function () {return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_printString", []);}])]); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_updateButtons', smalltalk.method({ selector: 'updateButtons', fn: function () { var self = this; ($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "_notNil", []), "_and_", [function () {return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_notNil", []);}])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self['@diveButton'], "_at_put_", ["disabled", true]);}() : function () {return smalltalk.send(self['@diveButton'], "_removeAt_", ["disabled"]);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self['@diveButton'], "_at_put_", ["disabled", true]);}, function () {return smalltalk.send(self['@diveButton'], "_removeAt_", ["disabled"]);}]); return self; } }), smalltalk.Inspector); smalltalk.addMethod( '_on_', smalltalk.method({ selector: 'on:', fn: function (anObject) { var self = this; return function ($rec) {smalltalk.send($rec, "_inspect_", [anObject]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(self, "_new", [])); return self; } }), smalltalk.Inspector.klass); smalltalk.addClass('ReferencesBrowser', smalltalk.TabWidget, ['implementors', 'senders', 'implementorsList', 'input', 'timer', 'selector', 'sendersList', 'referencedClasses', 'referencedClassesList'], 'IDE'); smalltalk.addMethod( '_implementors', smalltalk.method({ selector: 'implementors', fn: function () { var self = this; return ($receiver = self['@implementors']) == nil || $receiver == undefined ? function () {return self['@implementors'] = smalltalk.send(smalltalk.Array || Array, "_new", []);}() : $receiver; return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return unescape("%5BReferencesBrowser%5D"); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_selector', smalltalk.method({ selector: 'selector', fn: function () { var self = this; return self['@selector']; return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_senders', smalltalk.method({ selector: 'senders', fn: function () { var self = this; return ($receiver = self['@senders']) == nil || $receiver == undefined ? function () {return self['@senders'] = smalltalk.send(smalltalk.Array || Array, "_new", []);}() : $receiver; return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_classesAndMetaclasses', smalltalk.method({ selector: 'classesAndMetaclasses', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_classes", []), "_collect_", [function (each) {return smalltalk.send(each, "_class", []);}])]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_referencedClasses', smalltalk.method({ selector: 'referencedClasses', fn: function () { var self = this; return ($receiver = self['@referencedClasses']) == nil || $receiver == undefined ? function () {return self['@referencedClasses'] = smalltalk.send(smalltalk.Array || Array, "_new", []);}() : $receiver; return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_openBrowserOn_', smalltalk.method({ selector: 'openBrowserOn:', fn: function (aMethod) { var self = this; var browser = nil; browser = smalltalk.send(smalltalk.Browser || Browser, "_openOn_", [($receiver = smalltalk.send(smalltalk.send(aMethod, "_class", []), "_isMetaclass", [])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_instanceClass", []);}() : function () {return smalltalk.send(aMethod, "_methodClass", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_instanceClass", []);}, function () {return smalltalk.send(aMethod, "_methodClass", []);}])]); ($receiver = smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_isMetaclass", [])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(browser, "_selectTab_", ["class"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(browser, "_selectTab_", ["class"]);}]); (function ($rec) {smalltalk.send($rec, "_selectProtocol_", [smalltalk.send(aMethod, "_category", [])]);return smalltalk.send($rec, "_selectMethod_", [aMethod]);}(browser)); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_searchReferencesFor_', smalltalk.method({ selector: 'searchReferencesFor:', fn: function (aString) { var self = this; self['@selector'] = aString; self['@implementors'] = smalltalk.send(smalltalk.Array || Array, "_new", []); self['@senders'] = smalltalk.send(smalltalk.Array || Array, "_new", []); self['@referencedClasses'] = smalltalk.send(smalltalk.Array || Array, "_new", []); ($receiver = smalltalk.send(self['@selector'], "_match_", [unescape("%5E%5BA-Z%5D")])).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_searchSelectorReferencesFor_", [self['@selector']]);}() : function () {return smalltalk.send(self, "_searchReferencedClassesFor_", [self['@selector']]);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return smalltalk.send(self, "_searchSelectorReferencesFor_", [self['@selector']]);}, function () {return smalltalk.send(self, "_searchReferencedClassesFor_", [self['@selector']]);}]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_search_', smalltalk.method({ selector: 'search:', fn: function (aString) { var self = this; (function ($rec) {smalltalk.send($rec, "_searchReferencesFor_", [aString]);smalltalk.send($rec, "_updateImplementorsList", []);smalltalk.send($rec, "_updateSendersList", []);return smalltalk.send($rec, "_updateReferencedClassesList", []);}(self)); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_searchReferencedClassesFor_', smalltalk.method({ selector: 'searchReferencedClassesFor:', fn: function (aString) { var self = this; smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [function (each) {return smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_values", []), "_do_", [function (value) {return ($receiver = smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(value, "_referencedClasses", []), "_select_", [function (each) {return smalltalk.send(each, "_notNil", []);}]), "_collect_", [function (each) {return smalltalk.send(each, "_name", []);}]), "_includes_", [self['@selector']])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_add_", [value]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_add_", [value]);}]);}]);}]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_searchSelectorReferencesFor_', smalltalk.method({ selector: 'searchSelectorReferencesFor:', fn: function (aString) { var self = this; smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [function (each) {smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [function (key, value) {return ($receiver = smalltalk.send(key, "__eq", [self['@selector']])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);}]);}]);return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [function (key, value) {return ($receiver = smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);}]);}]);}]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_initialize', smalltalk.method({ selector: 'initialize', fn: function () { var self = this; smalltalk.send(self, "_initialize", [], smalltalk.TabWidget); self['@selector'] = ""; return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_setInputEvents', smalltalk.method({ selector: 'setInputEvents', fn: function () { var self = this; (function ($rec) {smalltalk.send($rec, "_onKeyUp_", [function () {return self['@timer'] = smalltalk.send(function () {return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);}, "_valueWithTimeout_", [100]);}]);return smalltalk.send($rec, "_onKeyDown_", [function () {return ($receiver = self['@timer']) != nil && $receiver != undefined ? function () {return smalltalk.send(self['@timer'], "_clearTimeout", []);}() : nil;}]);}(self['@input'])); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_renderInputOn_", [html]);smalltalk.send($rec, "_renderImplementorsOn_", [html]);smalltalk.send($rec, "_renderSendersOn_", [html]);return smalltalk.send($rec, "_renderReferencedClassesOn_", [html]);}(self)); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_renderInputOn_', smalltalk.method({ selector: 'renderInputOn:', fn: function (html) { var self = this; self['@input'] = function ($rec) {smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(html, "_input", [])); smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val_", [self['@selector']]); smalltalk.send(self, "_setInputEvents", []); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_renderImplementorsOn_', smalltalk.method({ selector: 'renderImplementorsOn:', fn: function (html) { var self = this; self['@implementorsList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column implementors"]); smalltalk.send(self, "_updateImplementorsList", []); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_renderSendersOn_', smalltalk.method({ selector: 'renderSendersOn:', fn: function (html) { var self = this; self['@sendersList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column senders"]); smalltalk.send(self, "_updateSendersList", []); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_renderReferencedClassesOn_', smalltalk.method({ selector: 'renderReferencedClassesOn:', fn: function (html) { var self = this; self['@referencedClassesList'] = smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column referenced_classes"]); smalltalk.send(self, "_updateReferencedClassesList", []); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_canBeClosed', smalltalk.method({ selector: 'canBeClosed', fn: function () { var self = this; return true; return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_updateImplementorsList', smalltalk.method({ selector: 'updateImplementorsList', fn: function () { var self = this; smalltalk.send(self['@implementorsList'], "_contents_", [function (html) {(function ($rec) {smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Implementors%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_implementors", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);}(smalltalk.send(html, "_li", [])));return smalltalk.send(smalltalk.send(self, "_implementors", []), "_do_", [function (each) {var li = nil;li = smalltalk.send(html, "_li", []);return function ($rec) {smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(self, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_openBrowserOn_", [each]);}]);}(li);}]);}]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_updateSendersList', smalltalk.method({ selector: 'updateSendersList', fn: function () { var self = this; smalltalk.send(self['@sendersList'], "_contents_", [function (html) {(function ($rec) {smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Senders%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_senders", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);}(smalltalk.send(html, "_li", [])));return smalltalk.send(smalltalk.send(self, "_senders", []), "_do_", [function (each) {return function ($rec) {smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(each, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_openBrowserOn_", [each]);}]);}(smalltalk.send(html, "_li", []));}]);}]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_updateReferencedClassesList', smalltalk.method({ selector: 'updateReferencedClassesList', fn: function () { var self = this; smalltalk.send(self['@referencedClassesList'], "_contents_", [function (html) {(function ($rec) {smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Class%20references%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);}(smalltalk.send(html, "_li", [])));return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_do_", [function (each) {return function ($rec) {smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(each, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_openBrowserOn_", [each]);}]);}(smalltalk.send(html, "_li", []));}]);}]); return self; } }), smalltalk.ReferencesBrowser); smalltalk.addMethod( '_search_', smalltalk.method({ selector: 'search:', fn: function (aString) { var self = this; return function ($rec) {smalltalk.send($rec, "_searchReferencesFor_", [aString]);return smalltalk.send($rec, "_open", []);}(smalltalk.send(self, "_new", [])); return self; } }), smalltalk.ReferencesBrowser.klass); smalltalk.addClass('SourceArea', smalltalk.Widget, ['editor', 'div'], 'IDE'); smalltalk.addMethod( '_val', smalltalk.method({ selector: 'val', fn: function () { var self = this; return smalltalk.send(self['@editor'], "_getValue", []); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_val_', smalltalk.method({ selector: 'val:', fn: function (aString) { var self = this; smalltalk.send(self['@editor'], "_setValue_", [aString]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_currentLine', smalltalk.method({ selector: 'currentLine', fn: function () { var self = this; return smalltalk.send(self['@editor'], "_getLine_", [smalltalk.send(smalltalk.send(self['@editor'], "_getCursor", []), "_line", [])]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_selection', smalltalk.method({ selector: 'selection', fn: function () { var self = this; return smalltalk.send(self['@editor'], "_getSelection", []); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_selectionEnd', smalltalk.method({ selector: 'selectionEnd', fn: function () { var self = this; return smalltalk.send(smalltalk.send(typeof textarea == "undefined" ? nil : textarea, "_element", []), "_selectionEnd", []); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_selectionStart', smalltalk.method({ selector: 'selectionStart', fn: function () { var self = this; return smalltalk.send(smalltalk.send(typeof textarea == "undefined" ? nil : textarea, "_element", []), "_selectionStart", []); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_selectionStart_', smalltalk.method({ selector: 'selectionStart:', fn: function (anInteger) { var self = this; smalltalk.send(smalltalk.send(typeof textarea == "undefined" ? nil : textarea, "_element", []), "_selectionStart_", [anInteger]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_selectionEnd_', smalltalk.method({ selector: 'selectionEnd:', fn: function (anInteger) { var self = this; smalltalk.send(smalltalk.send(typeof textarea == "undefined" ? nil : textarea, "_element", []), "_selectionEnd_", [anInteger]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_setEditorOn_', smalltalk.method({ selector: 'setEditorOn:', fn: function (aTextarea) { var self = this; self['@editor'] = CodeMirror.fromTextArea(aTextarea, {theme: "jtalk", lineNumbers: true, enterMode: "classic", matchBrackets: true, electricChars: false}); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_editor', smalltalk.method({ selector: 'editor', fn: function () { var self = this; return self['@editor']; return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_clear', smalltalk.method({ selector: 'clear', fn: function () { var self = this; smalltalk.send(self, "_val_", [""]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_doIt', smalltalk.method({ selector: 'doIt', fn: function () { var self = this; var selection = nil; ($receiver = smalltalk.send(self['@editor'], "_somethingSelected", [])).klass === smalltalk.Boolean ? !$receiver ? function () {return selection = smalltalk.send(self, "_currentLine", []);}() : function () {return selection = smalltalk.send(self, "_selection", []);}() : smalltalk.send($receiver, "_ifFalse_ifTrue_", [function () {return selection = smalltalk.send(self, "_currentLine", []);}, function () {return selection = smalltalk.send(self, "_selection", []);}]); return smalltalk.send(self, "_eval_", [selection]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_eval_', smalltalk.method({ selector: 'eval:', fn: function (aString) { var self = this; try { var compiler = nil; var node = nil; compiler = smalltalk.send(smalltalk.Compiler || Compiler, "_new", []); node = smalltalk.send(compiler, "_parseExpression_", [aString]); ($receiver = smalltalk.send(node, "_isParseFailure", [])).klass === smalltalk.Boolean ? $receiver ? function () {return function () {throw {name: "stReturn", selector: "_eval_", fn: function () {return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_reason", []), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(node, "_position", [])])]);}};}();}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return function () {throw {name: "stReturn", selector: "_eval_", fn: function () {return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_reason", []), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(node, "_position", [])])]);}};}();}]); (function () {throw {name: "stReturn", selector: "_eval_", fn: function () {return smalltalk.send(compiler, "_loadExpression_", [aString]);}};}()); return self; } catch (e) { if (e.name === "stReturn" && e.selector === "_eval_") { return e.fn(); } throw e; } } }), smalltalk.SourceArea); smalltalk.addMethod( '_handleKeyDown_', smalltalk.method({ selector: 'handleKeyDown:', fn: function (anEvent) { var self = this; if (anEvent.ctrlKey) { if (anEvent.keyCode === 80) { self._printIt(); anEvent.preventDefault(); return false; } if (anEvent.keyCode === 68) { self._doIt(); anEvent.preventDefault(); return false; } if (anEvent.keyCode === 73) { self._inspectIt(); anEvent.preventDefault(); return false; } } return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_inspectIt', smalltalk.method({ selector: 'inspectIt', fn: function () { var self = this; smalltalk.send(smalltalk.send(self, "_doIt", []), "_inspect", []); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_print_', smalltalk.method({ selector: 'print:', fn: function (aString) { var self = this; var start = nil; var stop = nil; start = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); stop = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); smalltalk.send(start, "_at_put_", ["line", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_line", [])]); smalltalk.send(start, "_at_put_", ["ch", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_ch", [])]); smalltalk.send(stop, "_at_put_", ["line", smalltalk.send(start, "_at_", ["line"])]); smalltalk.send(stop, "_at_put_", ["ch", ($receiver = ($receiver = smalltalk.send(start, "_at_", ["ch"])).klass === smalltalk.Number ? $receiver + smalltalk.send(aString, "_size", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(aString, "_size", [])])).klass === smalltalk.Number ? $receiver + 2 : smalltalk.send($receiver, "__plus", [2])]); smalltalk.send(self['@editor'], "_replaceSelection_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@editor'], "_getSelection", []), "__comma", [" "]), "__comma", [aString]), "__comma", [" "])]); smalltalk.send(self['@editor'], "_setCursor_", [smalltalk.send(self['@editor'], "_getCursor_", [true])]); smalltalk.send(self['@editor'], "_setSelection_end_", [stop, start]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_printIt', smalltalk.method({ selector: 'printIt', fn: function () { var self = this; smalltalk.send(self, "_print_", [smalltalk.send(smalltalk.send(self, "_doIt", []), "_printString", [])]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_onKeyUp_', smalltalk.method({ selector: 'onKeyUp:', fn: function (aBlock) { var self = this; smalltalk.send(self['@div'], "_onKeyUp_", [aBlock]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_onKeyDown_', smalltalk.method({ selector: 'onKeyDown:', fn: function (aBlock) { var self = this; smalltalk.send(self['@div'], "_onKeyDown_", [aBlock]); return self; } }), smalltalk.SourceArea); smalltalk.addMethod( '_renderOn_', smalltalk.method({ selector: 'renderOn:', fn: function (html) { var self = this; var textarea = nil; self['@div'] = smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["source"]); smalltalk.send(self['@div'], "_with_", [function () {return textarea = smalltalk.send(html, "_textarea", []);}]); smalltalk.send(self, "_setEditorOn_", [smalltalk.send(textarea, "_element", [])]); smalltalk.send(self['@div'], "_onKeyDown_", [function (e) {return smalltalk.send(self, "_handleKeyDown_", [e]);}]); return self; } }), smalltalk.SourceArea); smalltalk.addClass('ClassesList', smalltalk.Widget, ['browser', 'ul', 'nodes'], 'IDE'); smalltalk.addMethod( '_category', smalltalk.method({ selector: 'category', fn: function () { var self = this; return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedCategory", []); return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_nodes', smalltalk.method({ selector: 'nodes', fn: function () { var self = this; ($receiver = self['@nodes']) == nil || $receiver == undefined ? function () {return self['@nodes'] = smalltalk.send(self, "_getNodes", []);}() : $receiver; return self['@nodes']; return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_browser', smalltalk.method({ selector: 'browser', fn: function () { var self = this; return self['@browser']; return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_browser_', smalltalk.method({ selector: 'browser:', fn: function (aBrowser) { var self = this; self['@browser'] = aBrowser; return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_getNodes', smalltalk.method({ selector: 'getNodes', fn: function () { var self = this; var classes = nil; var children = nil; var others = nil; classes = smalltalk.send(smalltalk.send(self, "_browser", []), "_classes", []); children = []; others = []; 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]);}]);}]); return smalltalk.send(children, "_collect_", [function (each) {return smalltalk.send(smalltalk.ClassesListNode || ClassesListNode, "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, 0]);}]); return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_resetNodes', smalltalk.method({ selector: 'resetNodes', fn: function () { var self = this; self['@nodes'] = nil; return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_renderOn_', smalltalk.method({ selector: 'renderOn:', fn: function (html) { var self = this; self['@ul'] = function ($rec) {smalltalk.send($rec, "_class_", ["jt_column browser classes"]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(html, "_ul", [])); smalltalk.send(self, "_updateNodes", []); return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_updateNodes', smalltalk.method({ selector: 'updateNodes', fn: function () { var self = this; smalltalk.send(self['@ul'], "_contents_", [function (html) {return smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [function (each) {return smalltalk.send(each, "_renderOn_", [html]);}]);}]); return self; } }), smalltalk.ClassesList); smalltalk.addMethod( '_on_', smalltalk.method({ selector: 'on:', fn: function (aBrowser) { var self = this; return function ($rec) {smalltalk.send($rec, "_browser_", [aBrowser]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(self, "_new", [])); return self; } }), smalltalk.ClassesList.klass); smalltalk.addClass('ClassesListNode', smalltalk.Widget, ['browser', 'theClass', 'level', 'nodes'], 'IDE'); smalltalk.addMethod( '_nodes', smalltalk.method({ selector: 'nodes', fn: function () { var self = this; return self['@nodes']; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_theClass', smalltalk.method({ selector: 'theClass', fn: function () { var self = this; return self['@theClass']; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_theClass_', smalltalk.method({ selector: 'theClass:', fn: function (aClass) { var self = this; self['@theClass'] = aClass; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_browser', smalltalk.method({ selector: 'browser', fn: function () { var self = this; return self['@browser']; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_browser_', smalltalk.method({ selector: 'browser:', fn: function (aBrowser) { var self = this; self['@browser'] = aBrowser; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_level', smalltalk.method({ selector: 'level', fn: function () { var self = this; return self['@level']; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_level_', smalltalk.method({ selector: 'level:', fn: function (anInteger) { var self = this; self['@level'] = anInteger; return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; var str = nil; str = smalltalk.send(smalltalk.send(smalltalk.String || String, "_new", []), "_writeStream", []); smalltalk.send(smalltalk.send(self, "_level", []), "_timesRepeat_", [function () {return smalltalk.send(str, "_nextPutAll_", [unescape("%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B")]);}]); smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_theClass", []), "_name", [])]); return smalltalk.send(str, "_contents", []); return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_getNodesFrom_', smalltalk.method({ selector: 'getNodesFrom:', fn: function (aCollection) { var self = this; var children = nil; var others = nil; children = []; others = []; 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]);}]);}]); 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])]);}]); return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_renderOn_', smalltalk.method({ selector: 'renderOn:', fn: function (html) { var self = this; var li = nil; li = smalltalk.send(smalltalk.send(html, "_li", []), "_onClick_", [function () {return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectClass_", [smalltalk.send(self, "_theClass", [])]);}]); smalltalk.send(smalltalk.send(li, "_asJQuery", []), "_contents_", [smalltalk.send(self, "_label", [])]); ($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedClass", []), "__eq", [smalltalk.send(self, "_theClass", [])])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]); smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [function (each) {return smalltalk.send(each, "_renderOn_", [html]);}]); return self; } }), smalltalk.ClassesListNode); smalltalk.addMethod( '_on_browser_classes_level_', smalltalk.method({ selector: 'on:browser:classes:level:', fn: function (aClass, aBrowser, aCollection, anInteger) { var self = this; 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", [])); return self; } }), smalltalk.ClassesListNode.klass); smalltalk.addClass('Debugger', smalltalk.TabWidget, ['error', 'selectedContext', 'sourceArea', 'ul'], 'IDE'); smalltalk.addMethod( '_error', smalltalk.method({ selector: 'error', fn: function () { var self = this; return self['@error']; return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_error_', smalltalk.method({ selector: 'error:', fn: function (anError) { var self = this; self['@error'] = anError; return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return unescape("%5BDebugger%5D"); return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_selectContext_', smalltalk.method({ selector: 'selectContext:', fn: function (aContext) { var self = this; self['@selectedContext'] = aContext; smalltalk.send(self, "_updateContextsList", []); smalltalk.send(self, "_updateSourceArea", []); return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_renderBoxOn_', smalltalk.method({ selector: 'renderBoxOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_renderTopPanelOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);}(self)); return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_renderTopPanelOn_', smalltalk.method({ selector: 'renderTopPanelOn:', fn: function (html) { var self = this; self['@selectedContext'] = smalltalk.send(smalltalk.send(self, "_error", []), "_context", []); (function ($rec) {smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [function () {(function ($rec) {smalltalk.send($rec, "_class_", ["label"]);return smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(self, "_error", []), "_messageText", [])]);}(smalltalk.send(html, "_div", [])));return self['@ul'] = function ($rec) {smalltalk.send($rec, "_class_", ["jt_column debugger contexts"]);return smalltalk.send($rec, "_with_", [function () {return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(smalltalk.send(self, "_error", []), "_context", []), html]);}]);}(smalltalk.send(html, "_ul", []));}]);}(smalltalk.send(html, "_div", []))); return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_renderContext_on_', smalltalk.method({ selector: 'renderContext:on:', fn: function (aContext, html) { var self = this; var li = nil; li = smalltalk.send(html, "_li", []); ($receiver = smalltalk.send(self['@selectedContext'], "__eq", [aContext])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(li, "_class_", ["selected"]);}() : nil : smalltalk.send($receiver, "_ifTrue_", [function () {return smalltalk.send(li, "_class_", ["selected"]);}]); (function ($rec) {smalltalk.send($rec, "_with_", [smalltalk.send(aContext, "_asString", [])]);return smalltalk.send($rec, "_onClick_", [function () {return smalltalk.send(self, "_selectContext_", [aContext]);}]);}(li)); ($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined ? function () {return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(aContext, "_home", []), html]);}() : nil; return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_renderBottomPanelOn_', smalltalk.method({ selector: 'renderBottomPanelOn:', fn: function (html) { var self = this; (function ($rec) {smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [function () {self['@sourceArea'] = smalltalk.send(smalltalk.SourceArea || SourceArea, "_new", []);return smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);}]);}(smalltalk.send(html, "_div", []))); smalltalk.send(self, "_updateSourceArea", []); return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_canBeClosed', smalltalk.method({ selector: 'canBeClosed', fn: function () { var self = this; return true; return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_updateContextsList', smalltalk.method({ selector: 'updateContextsList', fn: function () { var self = this; smalltalk.send(self['@ul'], "_contents_", [function (html) {return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(smalltalk.send(self, "_error", []), "_context", []), html]);}]); return self; } }), smalltalk.Debugger); smalltalk.addMethod( '_updateSourceArea', smalltalk.method({ selector: 'updateSourceArea', fn: function () { var self = this; smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedContext'], "_receiver", []), "_class", []), "_methodAt_", [smalltalk.send(self['@selectedContext'], "_selector", [])]), "_source", [])]); return self; } }), smalltalk.Debugger); smalltalk.addClass('DebugErrorHandler', smalltalk.ErrorHandler, [], 'IDE'); smalltalk.addMethod( '_handleError_', smalltalk.method({ selector: 'handleError:', fn: function (anError) { var self = this; 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]);}]); return self; } }), smalltalk.DebugErrorHandler); smalltalk.addMethod( '_initialize', smalltalk.method({ selector: 'initialize', fn: function () { var self = this; smalltalk.send(self, "_register", []); return self; } }), smalltalk.DebugErrorHandler.klass); smalltalk.addClass('Sandbox', smalltalk.Workspace, ['label'], 'IDE'); smalltalk.addMethod( '_label', smalltalk.method({ selector: 'label', fn: function () { var self = this; return smalltalk.send(self['@label'], "_ifNil_", [unescape("%5BSandbox%5D")]); return self; } }), smalltalk.Sandbox); smalltalk.addMethod( '_canBeClosed', smalltalk.method({ selector: 'canBeClosed', fn: function () { var self = this; return true; return self; } }), smalltalk.Sandbox); smalltalk.addMethod( '_label_', smalltalk.method({ selector: 'label:', fn: function (aString) { var self = this; self['@label'] = aString; return self; } }), smalltalk.Sandbox); smalltalk.addMethod( '_label_openOn_', smalltalk.method({ selector: 'label:openOn:', fn: function (aStringLabel, aStringContent) { var self = this; return smalltalk.send(function ($rec) {smalltalk.send($rec, "_label_", [aStringLabel]);return smalltalk.send($rec, "_open", []);}(smalltalk.send(self, "_new", [])), "_val_", [aStringContent]); return self; } }), smalltalk.Sandbox.klass); smalltalk.addClass('CategoryCommiter', smalltalk.Object, ['category'], 'IDE'); smalltalk.addMethod( '_commitCategory_', smalltalk.method({ selector: 'commitCategory:', fn: function (aString) { var self = this; smalltalk.send(self, "_category_", [aString]); smalltalk.send(self, "_commitCategory", []); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_category_', smalltalk.method({ selector: 'category:', fn: function (aString) { var self = this; self['@category'] = aString; return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_commitCategory', smalltalk.method({ selector: 'commitCategory', fn: function () { var self = this; ($receiver = smalltalk.send(self, "_isFileProtocol", [])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(self, "_fileCommit", []);}() : function () {return smalltalk.send(self, "_ajaxCommit", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(self, "_fileCommit", []);}, function () {return smalltalk.send(self, "_ajaxCommit", []);}]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_ajaxCommit_data_', smalltalk.method({ selector: 'ajaxCommit:data:', fn: function (filePath, content) { var self = this; (function ($rec) {smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", content]);smalltalk.send($rec, "_at_put_", ["error", function () {return smalltalk.send(self, "_handleAjaxCommitErrorForFilePath_data_", [filePath, content]);}]);return smalltalk.send($rec, "_send", []);}(smalltalk.send(smalltalk.Ajax || Ajax, "_url_", [filePath]))); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_handleAjaxCommitErrorForFilePath_data_', smalltalk.method({ selector: 'handleAjaxCommitErrorForFilePath:data:', fn: function (filePath, content) { var self = this; smalltalk.send(smalltalk.Sandbox || Sandbox, "_label_openOn_", [filePath, content]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_protocol', smalltalk.method({ selector: 'protocol', fn: function () { var self = this; return document.location.protocol; return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_isFileProtocol', smalltalk.method({ selector: 'isFileProtocol', fn: function () { var self = this; return smalltalk.send(smalltalk.send(self, "_protocol", []), "__eq", ["file:"]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_ajaxCommit', smalltalk.method({ selector: 'ajaxCommit', fn: function () { var self = this; smalltalk.send(self, "_ajaxCommit_data_", [smalltalk.send(self, "_jsPath", []), smalltalk.send(self, "_jsData", [])]); smalltalk.send(self, "_ajaxCommit_data_", [smalltalk.send(self, "_jsDeployPath", []), smalltalk.send(self, "_jsDeployData", [])]); smalltalk.send(self, "_ajaxCommit_data_", [smalltalk.send(self, "_stPath", []), smalltalk.send(self, "_stData", [])]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_jsData', smalltalk.method({ selector: 'jsData', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.Exporter || Exporter, "_new", []), "_exportCategory_", [self['@category']]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_jsDeployData', smalltalk.method({ selector: 'jsDeployData', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.StrippedExporter || StrippedExporter, "_new", []), "_exportCategory_", [self['@category']]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_stData', smalltalk.method({ selector: 'stData', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.ChunkExporter || ChunkExporter, "_new", []), "_exportCategory_", [self['@category']]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_jsPath', smalltalk.method({ selector: 'jsPath', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathJs", []), "__comma", [unescape("/")]), "__comma", [self['@category']]), "__comma", [".js"]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_jsDeployPath', smalltalk.method({ selector: 'jsDeployPath', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathJs", []), "__comma", [unescape("/")]), "__comma", [self['@category']]), "__comma", [".deploy.js"]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_stPath', smalltalk.method({ selector: 'stPath', fn: function () { var self = this; return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathSt", []), "__comma", [unescape("/")]), "__comma", [self['@category']]), "__comma", [".st"]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_fileCommit', smalltalk.method({ selector: 'fileCommit', fn: function () { var self = this; smalltalk.send(self, "_fileCommit_data_", [smalltalk.send(self, "_jsPath", []), smalltalk.send(self, "_jsData", [])]); smalltalk.send(self, "_fileCommit_data_", [smalltalk.send(self, "_jsDeployPath", []), smalltalk.send(self, "_jsDeployData", [])]); smalltalk.send(self, "_fileCommit_data_", [smalltalk.send(self, "_stPath", []), smalltalk.send(self, "_stData", [])]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_fileCommit_data_', smalltalk.method({ selector: 'fileCommit:data:', fn: function (path, data) { var self = this; var result = nil; try { var absolutePath = jQuery.twFile.convertUriToLocalPath(document.URL.substr(0, document.URL.lastIndexOf("/") + 1) + path); result = jQuery.twFile.save(absolutePath, data); if (result != true) { result = false; } } catch (ex) { result = false; } ($receiver = result).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(self, "_handleFileCommitErrorForFilePath_data_", [path, data]);}() : nil : smalltalk.send($receiver, "_ifFalse_", [function () {return smalltalk.send(self, "_handleFileCommitErrorForFilePath_data_", [path, data]);}]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_convertToAbsolutePath_', smalltalk.method({ selector: 'convertToAbsolutePath:', fn: function (path) { var self = this; return jQuery.twFile.convertUriToLocalPath(document.URL.substr(0, document.URL.lastIndexOf("/") + 1) + path); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_handleFileCommitErrorForFilePath_data_', smalltalk.method({ selector: 'handleFileCommitErrorForFilePath:data:', fn: function (filePath, content) { var self = this; smalltalk.send(smalltalk.Sandbox || Sandbox, "_label_openOn_", [filePath, content]); return self; } }), smalltalk.CategoryCommiter); smalltalk.addMethod( '_commitCategory_', smalltalk.method({ selector: 'commitCategory:', fn: function (aString) { var self = this; smalltalk.send(smalltalk.send(self, "_new", []), "_commitCategory_", [aString]); return self; } }), smalltalk.CategoryCommiter.klass); smalltalk.addMethod( '_commitPathJs', smalltalk.method({ selector: 'commitPathJs', fn: function () { var self = this; return "js"; return self; } }), smalltalk.CategoryCommiter.klass); smalltalk.addMethod( '_commitPathSt', smalltalk.method({ selector: 'commitPathSt', fn: function () { var self = this; return "st"; return self; } }), smalltalk.CategoryCommiter.klass); smalltalk.addMethod( '_inspect', smalltalk.method({ selector: 'inspect', fn: function () { var self = this; (function ($rec) {smalltalk.send($rec, "_inspect_", [self]);return smalltalk.send($rec, "_open", []);}(smalltalk.send(smalltalk.Inspector || Inspector, "_new", []))); return self; } }), smalltalk.Object); smalltalk.addMethod( '_inspectOn_', smalltalk.method({ selector: 'inspectOn:', fn: function (anInspector) { var self = this; var variables = nil; variables = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]); smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_allInstanceVariableNames", []), "_do_", [function (each) {return smalltalk.send(variables, "_at_put_", [each, smalltalk.send(self, "_instVarAt_", [each])]);}]); (function ($rec) {smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);}(anInspector)); return self; } }), smalltalk.Object); smalltalk.addMethod( '_inspectOn_', smalltalk.method({ selector: 'inspectOn:', fn: function (anInspector) { var self = this; var variables = nil; variables = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]); smalltalk.send(variables, "_at_put_", [unescape("%23year"), smalltalk.send(self, "_year", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23month"), smalltalk.send(self, "_month", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23day"), smalltalk.send(self, "_day", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23hours"), smalltalk.send(self, "_hours", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23minutes"), smalltalk.send(self, "_minutes", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23seconds"), smalltalk.send(self, "_seconds", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23milliseconds"), smalltalk.send(self, "_milliseconds", [])]); (function ($rec) {smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);}(anInspector)); return self; } }), smalltalk.Date); smalltalk.addMethod( '_inspectOn_', smalltalk.method({ selector: 'inspectOn:', fn: function (anInspector) { var self = this; var variables = nil; variables = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]); smalltalk.send(self, "_withIndexDo_", [function (each, i) {return smalltalk.send(variables, "_at_put_", [i, each]);}]); (function ($rec) {smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);}(anInspector)); return self; } }), smalltalk.Collection); smalltalk.addMethod( '_inspectOn_', smalltalk.method({ selector: 'inspectOn:', fn: function (anInspector) { var self = this; var label = nil; smalltalk.send(self, "_inspectOn_", [anInspector], smalltalk.SequenceableCollection); ($receiver = ($receiver = smalltalk.send(smalltalk.send(self, "_printString", []), "_size", [])).klass === smalltalk.Number ? $receiver > 30 : smalltalk.send($receiver, "__gt", [30])).klass === smalltalk.Boolean ? $receiver ? function () {return label = smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", []), "_copyFrom_to_", [1, 30]), "__comma", [unescape("...%27")]);}() : function () {return label = smalltalk.send(self, "_printString", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return label = smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", []), "_copyFrom_to_", [1, 30]), "__comma", [unescape("...%27")]);}, function () {return label = smalltalk.send(self, "_printString", []);}]); smalltalk.send(anInspector, "_setLabel_", [label]); return self; } }), smalltalk.String); smalltalk.addMethod( '_inspectOn_', smalltalk.method({ selector: 'inspectOn:', fn: function (anInspector) { var self = this; var variables = nil; variables = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]); smalltalk.send(variables, "_at_put_", [unescape("%23home"), smalltalk.send(self, "_home", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23receiver"), smalltalk.send(self, "_receiver", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23selector"), smalltalk.send(self, "_selector", [])]); smalltalk.send(variables, "_at_put_", [unescape("%23temps"), smalltalk.send(self, "_temps", [])]); smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_instanceVariableNames", []), "_do_", [function (each) {return smalltalk.send(variables, "_at_put_", [each, smalltalk.send(self, "_instVarAt_", [each])]);}]); (function ($rec) {smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);}(anInspector)); return self; } }), smalltalk.MethodContext); smalltalk.addMethod( '_inspectOn_', smalltalk.method({ selector: 'inspectOn:', fn: function (anInspector) { var self = this; var variables = nil; variables = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []); smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]); smalltalk.send(variables, "_at_put_", [unescape("%23keys"), smalltalk.send(self, "_keys", [])]); smalltalk.send(self, "_keysAndValuesDo_", [function (key, value) {return smalltalk.send(variables, "_at_put_", [key, value]);}]); (function ($rec) {smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);}(anInspector)); return self; } }), smalltalk.Dictionary);