@ambers/contrib-legacy
Version:
Legacy IDE and a few other old non-core packages
1,428 lines (1,365 loc) • 367 kB
JavaScript
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: ' ' ].\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_(" ")
//>>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