UNPKG

@ambers/contrib-legacy

Version:

Legacy IDE and a few other old non-core packages

1,428 lines (1,365 loc) 367 kB
define(["amber/boot", "require", "amber/core/Kernel-Objects", "amber/web/Web"], function($boot,requirejs){"use strict"; var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals; var $pkg = $core.addPackage("IDE"); $pkg.context = function () { return {codeMirrorLib:codeMirrorLib}; }; $pkg.imports = ["codeMirrorLib=codemirror/lib/codemirror", "amber/core/Platform-Services", "amber/web/Web-JQuery", "codemirror/addon/hint/show-hint", "codemirror/mode/smalltalk/smalltalk", "css!./resources/amber", "css!codemirror/addon/hint/show-hint", "css!codemirror/lib/codemirror", "css!codemirror/theme/ambiance", "jquery-ui"]; //>>excludeStart("imports", pragmas.excludeImports); var codeMirrorLib; $pkg.isReady = new Promise(function (resolve, reject) { requirejs(["codemirror/lib/codemirror", "amber/core/Platform-Services", "amber/web/Web-JQuery", "codemirror/addon/hint/show-hint", "codemirror/mode/smalltalk/smalltalk", "css!./resources/amber", "css!codemirror/addon/hint/show-hint", "css!codemirror/lib/codemirror", "css!codemirror/theme/ambiance", "jquery-ui"], function ($1) {codeMirrorLib=$1; resolve();}, reject); }); //>>excludeEnd("imports"); $pkg.transport = {"type":"amd","amdNamespace":"amber/legacy"}; $core.addClass("ClassesList", $globals.Widget, "IDE"); $core.setSlots($globals.ClassesList, ["browser", "ul", "nodes"]); $core.addMethod( $core.method({ selector: "browser", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "browser\x0a\x09^ browser", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.browser; }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "browser:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aBrowser"], source: "browser: aBrowser\x0a\x09browser := aBrowser", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (aBrowser){ var self=this,$self=this; $self.browser=aBrowser; return self; }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "category", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "category\x0a\x09^ self browser selectedPackage", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["selectedPackage", "browser"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return $recv($self._browser())._selectedPackage(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"category",{})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "getNodes", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "getNodes\x0a\x09^ ClassBuilder sortClasses: self browser classes", referencedClasses: ["ClassBuilder"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["sortClasses:", "classes", "browser"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return $recv($globals.ClassBuilder)._sortClasses_($recv($self._browser())._classes()); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"getNodes",{})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "labelOf:level:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aClass", "anInteger"], source: "labelOf: aClass level: anInteger\x0a\x09^ String streamContents: [ :str |\x0a\x09\x09anInteger timesRepeat: [\x0a\x09\x09\x09str nextPutAll: '&nbsp;&nbsp;&nbsp;&nbsp;' ].\x0a\x09\x09str nextPutAll: aClass name ]", referencedClasses: ["String"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["streamContents:", "timesRepeat:", "nextPutAll:", "name"] }, function ($methodClass){ return function (aClass,anInteger){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return $recv($globals.String)._streamContents_((function(str){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); $recv(anInteger)._timesRepeat_((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx3) { //>>excludeEnd("ctx"); return [$recv(str)._nextPutAll_("&nbsp;&nbsp;&nbsp;&nbsp;") //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx3.sendIdx["nextPutAll:"]=1 //>>excludeEnd("ctx"); ][0]; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)}); //>>excludeEnd("ctx"); })); return $recv(str)._nextPutAll_($recv(aClass)._name()); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1,1)}); //>>excludeEnd("ctx"); })); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"labelOf:level:",{aClass:aClass,anInteger:anInteger})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "nodes", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "nodes\x0a\x09nodes ifNil: [ nodes := self getNodes ].\x0a\x09^ nodes", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["ifNil:", "getNodes"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$self.nodes; if($1 == null || $1.a$nil){ $self.nodes=$self._getNodes(); $self.nodes; } else { $1; } return $self.nodes; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"nodes",{})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "renderNode:level:on:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aClassAndSubclasses", "anInteger", "html"], source: "renderNode: aClassAndSubclasses level: anInteger on: html\x0a\x09| cssClass aClass |\x0a\x09cssClass := ''.\x0a\x09aClass := aClassAndSubclasses first.\x0a\x09self browser selectedClass = aClass ifTrue: [\x0a\x09\x09cssClass := cssClass, ' selected' ].\x0a\x0a\x09aClass comment ifNotEmpty: [\x0a\x09\x09cssClass := cssClass, ' commented' ].\x0a\x0a\x0a\x09html li\x0a\x09\x09class: cssClass;\x0a\x09\x09onClick: [ self browser selectClass: aClass ];\x0a\x09\x09in: [ :li | li asJQuery html: (self labelOf: aClass level: anInteger) ].\x0a\x0a\x09self renderNodes: aClassAndSubclasses second level: anInteger + 1 on: html", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["first", "ifTrue:", "=", "selectedClass", "browser", ",", "ifNotEmpty:", "comment", "class:", "li", "onClick:", "selectClass:", "in:", "html:", "asJQuery", "labelOf:level:", "renderNodes:level:on:", "second", "+"] }, function ($methodClass){ return function (aClassAndSubclasses,anInteger,html){ var self=this,$self=this; var cssClass,aClass; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; cssClass=""; aClass=$recv(aClassAndSubclasses)._first(); if($core.assert($recv($recv([$self._browser() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["browser"]=1 //>>excludeEnd("ctx"); ][0])._selectedClass()).__eq(aClass))){ cssClass=[$recv(cssClass).__comma(" selected") //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx[","]=1 //>>excludeEnd("ctx"); ][0]; cssClass; } $recv($recv(aClass)._comment())._ifNotEmpty_((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); cssClass=$recv(cssClass).__comma(" commented"); return cssClass; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)}); //>>excludeEnd("ctx"); })); $1=$recv(html)._li(); $recv($1)._class_(cssClass); $recv($1)._onClick_((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $recv($self._browser())._selectClass_(aClass); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)}); //>>excludeEnd("ctx"); })); $recv($1)._in_((function(li){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $recv($recv(li)._asJQuery())._html_($self._labelOf_level_(aClass,anInteger)); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({li:li},$ctx1,4)}); //>>excludeEnd("ctx"); })); $self._renderNodes_level_on_($recv(aClassAndSubclasses)._second(),$recv(anInteger).__plus((1)),html); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"renderNode:level:on:",{aClassAndSubclasses:aClassAndSubclasses,anInteger:anInteger,html:html,cssClass:cssClass,aClass:aClass})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "renderNodes:level:on:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aCollection", "anInteger", "html"], source: "renderNodes: aCollection level: anInteger on: html\x0a\x09aCollection do: [ :each |\x0a\x09\x09self renderNode: each level: anInteger on: html ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["do:", "renderNode:level:on:"] }, function ($methodClass){ return function (aCollection,anInteger,html){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv(aCollection)._do_((function(each){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $self._renderNode_level_on_(each,anInteger,html); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"renderNodes:level:on:",{aCollection:aCollection,anInteger:anInteger,html:html})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "renderOn:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["html"], source: "renderOn: html\x0a\x09ul := html ul\x0a\x09\x09class: 'amber_column browser classes';\x0a\x09\x09yourself.\x0a\x09self updateNodes", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["class:", "ul", "yourself", "updateNodes"] }, function ($methodClass){ return function (html){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$recv(html)._ul(); $recv($1)._class_("amber_column browser classes"); $self.ul=$recv($1)._yourself(); $self._updateNodes(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "resetNodes", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "resetNodes\x0a\x09nodes := nil", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; $self.nodes=nil; return self; }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "updateNodes", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "updateNodes\x0a\x09ul contents: [ :html |\x0a\x09\x09self renderNodes: self nodes level: 0 on: html ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["contents:", "renderNodes:level:on:", "nodes"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self.ul)._contents_((function(html){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $self._renderNodes_level_on_($self._nodes(),(0),html); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1,1)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"updateNodes",{})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList); $core.addMethod( $core.method({ selector: "on:", protocol: "instance creation", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aBrowser"], source: "on: aBrowser\x0a\x09^ self new\x0a\x09\x09browser: aBrowser;\x0a\x09\x09yourself", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["browser:", "new", "yourself"] }, function ($methodClass){ return function (aBrowser){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$self._new(); $recv($1)._browser_(aBrowser); return $recv($1)._yourself(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"on:",{aBrowser:aBrowser})}); //>>excludeEnd("ctx"); }; }), $globals.ClassesList.a$cls); $core.addClass("DebugErrorHandler", $globals.Object, "IDE"); $core.addMethod( $core.method({ selector: "handleError:", protocol: "error handling", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anError"], source: "handleError: anError\x0a\x09[\x0a\x09\x09anError context ifNil: [ anError context: thisContext ].\x0a\x09\x09Debugger new error: anError; open ]\x0a\x09on: Error do: [ :error | ConsoleErrorHandler new handleError: error ]", referencedClasses: ["Debugger", "Error", "ConsoleErrorHandler"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["on:do:", "ifNil:", "context", "context:", "error:", "new", "open", "handleError:"] }, function ($methodClass){ return function (anError){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1,$2; $recv((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); $1=$recv(anError)._context(); if($1 == null || $1.a$nil){ $recv(anError)._context_($core.getThisContext()); } else { $1; } $2=[$recv($globals.Debugger)._new() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx2.sendIdx["new"]=1 //>>excludeEnd("ctx"); ][0]; $recv($2)._error_(anError); return $recv($2)._open(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); //>>excludeEnd("ctx"); }))._on_do_($globals.Error,(function(error){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $recv($recv($globals.ConsoleErrorHandler)._new())._handleError_(error); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({error:error},$ctx1,3)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError})}); //>>excludeEnd("ctx"); }; }), $globals.DebugErrorHandler); $core.addMethod( $core.method({ selector: "initialize", protocol: "initialization", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "initialize\x0a\x09ErrorHandler register: self new", referencedClasses: ["ErrorHandler"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["register:", "new"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($globals.ErrorHandler)._register_($self._new()); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"initialize",{})}); //>>excludeEnd("ctx"); }; }), $globals.DebugErrorHandler.a$cls); $core.addClass("ProgressBar", $globals.Widget, "IDE"); $core.setSlots($globals.ProgressBar, ["percent", "progressDiv", "div"]); $core.addMethod( $core.method({ selector: "percent", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "percent\x0a\x09^ percent ifNil: [ 0 ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["ifNil:"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$self.percent; if($1 == null || $1.a$nil){ return (0); } else { return $1; } //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"percent",{})}); //>>excludeEnd("ctx"); }; }), $globals.ProgressBar); $core.addMethod( $core.method({ selector: "percent:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aNumber"], source: "percent: aNumber\x0a\x09percent := aNumber", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (aNumber){ var self=this,$self=this; $self.percent=aNumber; return self; }; }), $globals.ProgressBar); $core.addMethod( $core.method({ selector: "renderOn:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["html"], source: "renderOn: html\x0a\x09div := html div\x0a\x09\x09class: 'progress_bar';\x0a\x09\x09yourself.\x0a\x09self renderProgressBar", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["class:", "div", "yourself", "renderProgressBar"] }, function ($methodClass){ return function (html){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$recv(html)._div(); $recv($1)._class_("progress_bar"); $self.div=$recv($1)._yourself(); $self._renderProgressBar(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html})}); //>>excludeEnd("ctx"); }; }), $globals.ProgressBar); $core.addMethod( $core.method({ selector: "renderProgressBar", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "renderProgressBar\x0a\x09div contents: [ :html |\x0a\x09\x09html div\x0a\x09\x09\x09class: 'progress';\x0a\x09\x09\x09style: 'width:', self percent asString, '%' ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["contents:", "class:", "div", "style:", ",", "asString", "percent"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $recv($self.div)._contents_((function(html){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); $1=$recv(html)._div(); $recv($1)._class_("progress"); return $recv($1)._style_([$recv("width:".__comma($recv($self._percent())._asString())).__comma("%") //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx2.sendIdx[","]=1 //>>excludeEnd("ctx"); ][0]); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1,1)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"renderProgressBar",{})}); //>>excludeEnd("ctx"); }; }), $globals.ProgressBar); $core.addMethod( $core.method({ selector: "updatePercent:", protocol: "updating", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aNumber"], source: "updatePercent: aNumber\x0a\x09self percent: aNumber.\x0a\x09self renderProgressBar", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["percent:", "renderProgressBar"] }, function ($methodClass){ return function (aNumber){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._percent_(aNumber); $self._renderProgressBar(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"updatePercent:",{aNumber:aNumber})}); //>>excludeEnd("ctx"); }; }), $globals.ProgressBar); $core.addClass("SourceArea", $globals.Widget, "IDE"); $core.setSlots($globals.SourceArea, ["editor", "div", "receiver", "onDoIt"]); $core.addMethod( $core.method({ selector: "clear", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "clear\x0a\x09self val: ''", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["val:"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._val_(""); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"clear",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "currentLine", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "currentLine\x0a\x09^ editor getLine: (editor getCursor line)", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["getLine:", "line", "getCursor"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return $recv($self.editor)._getLine_($recv($recv($self.editor)._getCursor())._line()); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"currentLine",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "currentLineOrSelection", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "currentLineOrSelection\x0a\x09^ editor somethingSelected\x0a\x09ifFalse: [ self currentLine ]\x0a\x09ifTrue: [ self selection ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["ifFalse:ifTrue:", "somethingSelected", "currentLine", "selection"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); if($core.assert($recv($self.editor)._somethingSelected())){ return $self._selection(); } else { return $self._currentLine(); } //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"currentLineOrSelection",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "doIt", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "doIt\x0a\x09| result |\x0a\x09result := self eval: self currentLineOrSelection.\x0a\x09self onDoIt ifNotNil: [ self onDoIt value ].\x0a\x09^ result", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["eval:", "currentLineOrSelection", "ifNotNil:", "onDoIt", "value"] }, function ($methodClass){ return function (){ var self=this,$self=this; var result; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; result=$self._eval_($self._currentLineOrSelection()); $1=[$self._onDoIt() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["onDoIt"]=1 //>>excludeEnd("ctx"); ][0]; if($1 == null || $1.a$nil){ $1; } else { $recv($self._onDoIt())._value(); } return result; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"doIt",{result:result})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "editor", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "editor\x0a\x09^ editor", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.editor; }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "eval:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aString"], source: "eval: aString\x0a\x09| compiler |\x0a\x09compiler := Compiler new.\x0a\x09[ compiler parseExpression: aString ] on: Error do: [ :ex |\x0a\x09\x09^ Terminal alert: ex messageText ].\x0a\x09^ compiler evaluateExpression: aString on: self receiver", referencedClasses: ["Compiler", "Error", "Terminal"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["new", "on:do:", "parseExpression:", "alert:", "messageText", "evaluateExpression:on:", "receiver"] }, function ($methodClass){ return function (aString){ var self=this,$self=this; var compiler; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $early={}; try { compiler=$recv($globals.Compiler)._new(); $recv((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $recv(compiler)._parseExpression_(aString); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); //>>excludeEnd("ctx"); }))._on_do_($globals.Error,(function(ex){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); throw $early=[$recv($globals.Terminal)._alert_($recv(ex)._messageText())]; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1,2)}); //>>excludeEnd("ctx"); })); return $recv(compiler)._evaluateExpression_on_(aString,$self._receiver()); } catch(e) {if(e===$early)return e[0]; throw e} //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,compiler:compiler})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "fileIn", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "fileIn\x0a\x09Importer new import: self currentLineOrSelection readStream", referencedClasses: ["Importer"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["import:", "new", "readStream", "currentLineOrSelection"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($recv($globals.Importer)._new())._import_($recv($self._currentLineOrSelection())._readStream()); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"fileIn",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "focus", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "focus\x0a\x09self editor focus.", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["focus", "editor"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self._editor())._focus(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"focus",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "handleKeyDown:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anEvent"], source: "handleKeyDown: anEvent\x0a\x09<inlineJS: 'if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 80) { //ctrl+p\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09$self._printIt();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 68) { //ctrl+d\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09$self._doIt();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 73) { //ctrl+i\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09$self._inspectIt();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}'>", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [["inlineJS:", ["if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 80) { //ctrl+p\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09$self._printIt();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 68) { //ctrl+d\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09$self._doIt();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 73) { //ctrl+i\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09$self._inspectIt();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}"]]], messageSends: [] }, function ($methodClass){ return function (anEvent){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); if(anEvent.ctrlKey) { if(anEvent.keyCode === 80) { //ctrl+p anEvent.preventDefault(); $self._printIt(); return false; } if(anEvent.keyCode === 68) { //ctrl+d anEvent.preventDefault(); $self._doIt(); return false; } if(anEvent.keyCode === 73) { //ctrl+i anEvent.preventDefault(); $self._inspectIt(); return false; } }; return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"handleKeyDown:",{anEvent:anEvent})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "inspectIt", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "inspectIt\x0a\x09self doIt inspect", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["inspect", "doIt"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self._doIt())._inspect(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"inspectIt",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "onDoIt", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "onDoIt\x0a\x09^ onDoIt", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.onDoIt; }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "onDoIt:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aBlock"], source: "onDoIt: aBlock\x0a\x09onDoIt := aBlock", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (aBlock){ var self=this,$self=this; $self.onDoIt=aBlock; return self; }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "onKeyDown:", protocol: "events", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aBlock"], source: "onKeyDown: aBlock\x0a\x09div onKeyDown: aBlock", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["onKeyDown:"] }, function ($methodClass){ return function (aBlock){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self.div)._onKeyDown_(aBlock); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"onKeyDown:",{aBlock:aBlock})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "onKeyUp:", protocol: "events", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aBlock"], source: "onKeyUp: aBlock\x0a\x09div onKeyUp: aBlock", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["onKeyUp:"] }, function ($methodClass){ return function (aBlock){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self.div)._onKeyUp_(aBlock); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"onKeyUp:",{aBlock:aBlock})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "print:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aString"], source: "print: aString\x0a\x09| start stop currentLine |\x0a\x09currentLine := (editor getCursor: false) line.\x0a\x09start := HashedCollection new.\x0a\x09start at: 'line' put: currentLine.\x0a\x09start at: 'ch' put: (editor getCursor: false) ch.\x0a\x09(editor getSelection) ifEmpty: [\x0a\x09\x09\x22select current line if selection is empty\x22\x0a\x09\x09start at: 'ch' put: (editor getLine: currentLine) size.\x0a\x09\x09editor setSelection: #{'line' -> currentLine. 'ch' -> 0} end: start.\x0a\x09].\x0a\x09stop := HashedCollection new.\x0a\x09stop at: 'line' put: currentLine.\x0a\x09stop at: 'ch' put: ((start at: 'ch') + aString size + 2).\x0a\x0a\x09editor replaceSelection: (editor getSelection, ' ', aString, ' ').\x0a\x09editor setCursor: (editor getCursor: true).\x0a\x09editor setSelection: stop end: start", referencedClasses: ["HashedCollection"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["line", "getCursor:", "new", "at:put:", "ch", "ifEmpty:", "getSelection", "size", "getLine:", "setSelection:end:", "+", "at:", "replaceSelection:", ",", "setCursor:"] }, function ($methodClass){ return function (aString){ var self=this,$self=this; var start,stop,currentLine; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); currentLine=$recv([$recv($self.editor)._getCursor_(false) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["getCursor:"]=1 //>>excludeEnd("ctx"); ][0])._line(); start=[$recv($globals.HashedCollection)._new() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["new"]=1 //>>excludeEnd("ctx"); ][0]; [$recv(start)._at_put_("line",currentLine) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["at:put:"]=1 //>>excludeEnd("ctx"); ][0]; [$recv(start)._at_put_("ch",$recv([$recv($self.editor)._getCursor_(false) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["getCursor:"]=2 //>>excludeEnd("ctx"); ][0])._ch()) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["at:put:"]=2 //>>excludeEnd("ctx"); ][0]; $recv([$recv($self.editor)._getSelection() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["getSelection"]=1 //>>excludeEnd("ctx"); ][0])._ifEmpty_((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); [$recv(start)._at_put_("ch",[$recv($recv($self.editor)._getLine_(currentLine))._size() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx2.sendIdx["size"]=1 //>>excludeEnd("ctx"); ][0]) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx2.sendIdx["at:put:"]=3 //>>excludeEnd("ctx"); ][0]; return [$recv($self.editor)._setSelection_end_($globals.HashedCollection._newFromPairs_(["line",currentLine,"ch",(0)]),start) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx2.sendIdx["setSelection:end:"]=1 //>>excludeEnd("ctx"); ][0]; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); //>>excludeEnd("ctx"); })); stop=$recv($globals.HashedCollection)._new(); [$recv(stop)._at_put_("line",currentLine) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["at:put:"]=4 //>>excludeEnd("ctx"); ][0]; $recv(stop)._at_put_("ch",[$recv($recv($recv(start)._at_("ch")).__plus($recv(aString)._size())).__plus((2)) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["+"]=1 //>>excludeEnd("ctx"); ][0]); $recv($self.editor)._replaceSelection_([$recv([$recv($recv($recv($self.editor)._getSelection()).__comma(" ")).__comma(aString) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx[","]=2 //>>excludeEnd("ctx"); ][0]).__comma(" ") //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx[","]=1 //>>excludeEnd("ctx"); ][0]); $recv($self.editor)._setCursor_($recv($self.editor)._getCursor_(true)); $recv($self.editor)._setSelection_end_(stop,start); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"print:",{aString:aString,start:start,stop:stop,currentLine:currentLine})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "printIt", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "printIt\x0a\x09self print: self doIt printString.\x0a\x09self focus.", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["print:", "printString", "doIt", "focus"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._print_($recv($self._doIt())._printString()); $self._focus(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"printIt",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "receiver", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "receiver\x0a\x09^ receiver ifNil: [ DoIt new ]", referencedClasses: ["DoIt"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["ifNil:", "new"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$self.receiver; if($1 == null || $1.a$nil){ return $recv($globals.DoIt)._new(); } else { return $1; } //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"receiver",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "receiver:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "receiver: anObject\x0a\x09receiver := anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; $self.receiver=anObject; return self; }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "renderOn:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["html"], source: "renderOn: html\x0a\x09| textarea |\x0a\x09div := html div class: 'source'.\x0a\x09div with: [ textarea := html textarea ].\x0a\x09self setEditorOn: textarea asDomNode.\x0a\x09div onKeyDown: [ :e | self handleKeyDown: e ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["class:", "div", "with:", "textarea", "setEditorOn:", "asDomNode", "onKeyDown:", "handleKeyDown:"] }, function ($methodClass){ return function (html){ var self=this,$self=this; var textarea; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self.div=$recv($recv(html)._div())._class_("source"); $recv($self.div)._with_((function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); textarea=$recv(html)._textarea(); return textarea; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); //>>excludeEnd("ctx"); })); $self._setEditorOn_($recv(textarea)._asDomNode()); $recv($self.div)._onKeyDown_((function(e){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $self._handleKeyDown_(e); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({e:e},$ctx1,2)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html,textarea:textarea})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "selection", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "selection\x0a\x09^ editor getSelection", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["getSelection"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return $recv($self.editor)._getSelection(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"selection",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "setEditorOn:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aTextarea"], source: "setEditorOn: aTextarea\x0a\x09editor := codeMirrorLib provided fromTextArea: aTextarea options: #{\x0a\x09\x09#theme -> ('ide.codeMirrorTheme' settingValueIfAbsent: 'default').\x0a\x09\x09#mode -> 'text/x-stsrc'.\x0a\x09\x09#lineNumbers -> true.\x0a\x09\x09#enterMode -> 'flat'.\x0a\x09\x09#indentWithTabs -> true.\x0a\x09\x09#indentUnit -> 4.\x0a\x09\x09#matchBrackets -> true.\x0a\x09\x09#electricChars -> false\x0a\x09}", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["fromTextArea:options:", "provided", "settingValueIfAbsent:"] }, function ($methodClass){ return function (aTextarea){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self.editor=$recv($recv(codeMirrorLib)._provided())._fromTextArea_options_(aTextarea,$globals.HashedCollection._newFromPairs_(["theme","ide.codeMirrorTheme"._settingValueIfAbsent_("default"),"mode","text/x-stsrc","lineNumbers",true,"enterMode","flat","indentWithTabs",true,"indentUnit",(4),"matchBrackets",true,"electricChars",false])); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"setEditorOn:",{aTextarea:aTextarea})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "val", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "val\x0a\x09^ editor getValue", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["getValue"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return $recv($self.editor)._getValue(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"val",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "val:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aString"], source: "val: aString\x0a\x09editor setValue: aString", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["setValue:"] }, function ($methodClass){ return function (aString){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self.editor)._setValue_(aString); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"val:",{aString:aString})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea); $core.addMethod( $core.method({ selector: "initialize", protocol: "initialization", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "initialize\x0a\x09super initialize.\x0a\x09self setupCodeMirror", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["initialize", "setupCodeMirror"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); [( //>>excludeStart("ctx", pragmas.excludeDebugContexts); $ctx1.supercall = true, //>>excludeEnd("ctx"); ($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self)) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.supercall = false //>>excludeEnd("ctx"); ][0]; $self._setupCodeMirror(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"initialize",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea.a$cls); $core.addMethod( $core.method({ selector: "setupCodeMirror", protocol: "initialization", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "setupCodeMirror\x0a\x09<inlineJS: 'codeMirrorLib.keyMap[\x22default\x22].fallthrough = [\x22basic\x22]'>", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [["inlineJS:", ["codeMirrorLib.keyMap[\x22default\x22].fallthrough = [\x22basic\x22]"]]], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); codeMirrorLib.keyMap["default"].fallthrough = ["basic"]; return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"setupCodeMirror",{})}); //>>excludeEnd("ctx"); }; }), $globals.SourceArea.a$cls); $core.addClass("TabManager", $globals.Widget, "IDE"); $core.setSlots($globals.TabManager, ["selectedTab", "tabs", "opened", "ul", "input"]); $core.addMethod( $core.method({ selector: "addTab:", protocol: "adding/Removing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aWidget"], source: "addTab: aWidget\x0a\x09self tabs add: aWidget.\x0a\x09aWidget appendToJQuery: '#amber' asJQuery.\x0a\x09aWidget hide", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["add:", "tabs", "appendToJQuery:", "asJQuery", "hide"] }, function ($methodClass){ return function (aWidget){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self._tabs())._add_(aWidget); $recv(aWidget)._appendToJQuery_("#amber"._asJQuery()); $recv(aWidget)._hide(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"addTab:",{aWidget:aWidget})}); //>>excludeEnd("ctx"); }; }), $globals.TabManager); $core.addMethod( $core.method({ selector: "close", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "close\x0a\x09opened ifTrue: [\x0a\x09'#amber' asJQuery hide.\x0a\x09ul asJQuery hide.\x0a\x09selectedTab hide.\x0a\x09self removeBodyMargin.\x0a\x09'body' asJQuery removeClass: 'amberBody'.\x0a\x09opened := false ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["ifTrue:", "hide", "asJQuery", "removeBodyMargin", "removeClass:"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); if($core.assert($self.opened)){ [$recv(["#amber"._asJQuery() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["asJQuery"]=1 //>>excludeEnd("ctx"); ][0])._hide() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["hide"]=1 //>>excludeEnd("ctx"); ][0]; [$recv([$recv($self.ul)._asJQuery() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["asJQuery"]=2 //>>excludeEnd("ctx"); ][0])._hide() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["hide"]=2 //>>excludeEnd("ctx"); ][0]; $recv($self.selectedTab)._hide(); $self._removeBodyMargin(); $recv("body"._asJQuery())._removeClass_("amberBody"); $self.opened=false; $self.opened; } return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"close",{})}); //>>excludeEnd("ctx"); }; }), $globals.TabManager); $core.addMethod( $core.method({ selector: "closeTab:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aWidget"], source: "closeTab: aWidget\x0a\x09self removeTab: aWidget.\x0a\x09self selectTab: self tabs last.\x0a\x09aWidget remove.\x0a\x09self update", refe