smalltalk.addPackage('Helios-Workspace'); smalltalk.addClass('HLCodeModel', smalltalk.Object, ['announcer', 'environment', 'receiver'], 'Helios-Workspace'); smalltalk.addMethod( "_announcer", smalltalk.method({ selector: "announcer", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@announcer"]; if(($receiver = $2) == nil || $receiver == undefined){ self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new(); $1=self["@announcer"]; } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.HLCodeModel)})}, args: [], source: "announcer\x0a\x09^ announcer ifNil: [ announcer := Announcer new ]", messageSends: ["ifNil:", "new"], referencedClasses: ["Announcer"] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_defaultReceiver", smalltalk.method({ selector: "defaultReceiver", category: 'defaults', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st((smalltalk.DoIt || DoIt))._new(); return $1; }, function($ctx1) {$ctx1.fill(self,"defaultReceiver",{}, smalltalk.HLCodeModel)})}, args: [], source: "defaultReceiver\x0a\x09^ DoIt new", messageSends: ["new"], referencedClasses: ["DoIt"] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_doIt_", smalltalk.method({ selector: "doIt:", category: 'actions', fn: function (someCode){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(_st(self)._environment())._eval_on_(someCode,_st(self)._receiver()); return $1; }, function($ctx1) {$ctx1.fill(self,"doIt:",{someCode:someCode}, smalltalk.HLCodeModel)})}, args: ["someCode"], source: "doIt: someCode\x0a\x0a\x09^ self environment eval: someCode on: self receiver", messageSends: ["eval:on:", "receiver", "environment"], referencedClasses: [] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_environment", smalltalk.method({ selector: "environment", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@environment"]; if(($receiver = $2) == nil || $receiver == undefined){ $1=_st(_st((smalltalk.HLManager || HLManager))._current())._environment(); } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"environment",{}, smalltalk.HLCodeModel)})}, args: [], source: "environment\x0a\x09^ environment ifNil: [ HLManager current environment ]", messageSends: ["ifNil:", "environment", "current"], referencedClasses: ["HLManager"] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_environment_", smalltalk.method({ selector: "environment:", category: 'accessing', fn: function (anEnvironment){ var self=this; return smalltalk.withContext(function($ctx1) { self["@environment"]=anEnvironment; return self}, function($ctx1) {$ctx1.fill(self,"environment:",{anEnvironment:anEnvironment}, smalltalk.HLCodeModel)})}, args: ["anEnvironment"], source: "environment: anEnvironment\x0a\x09environment := anEnvironment", messageSends: [], referencedClasses: [] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_receiver", smalltalk.method({ selector: "receiver", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@receiver"]; if(($receiver = $2) == nil || $receiver == undefined){ self["@receiver"]=_st(self)._defaultReceiver(); $1=self["@receiver"]; } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.HLCodeModel)})}, args: [], source: "receiver\x0a\x09^ receiver ifNil: [ receiver := self defaultReceiver ]", messageSends: ["ifNil:", "defaultReceiver"], referencedClasses: [] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_receiver_", smalltalk.method({ selector: "receiver:", category: 'accessing', fn: function (anObject){ var self=this; return smalltalk.withContext(function($ctx1) { self["@receiver"]=anObject; return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.HLCodeModel)})}, args: ["anObject"], source: "receiver: anObject\x0a\x09receiver := anObject", messageSends: [], referencedClasses: [] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_subscribe_", smalltalk.method({ selector: "subscribe:", category: 'actions', fn: function (aWidget){ var self=this; return smalltalk.withContext(function($ctx1) { _st(aWidget)._subscribeTo_(_st(self)._announcer()); return self}, function($ctx1) {$ctx1.fill(self,"subscribe:",{aWidget:aWidget}, smalltalk.HLCodeModel)})}, args: ["aWidget"], source: "subscribe: aWidget\x0a\x09aWidget subscribeTo: self announcer", messageSends: ["subscribeTo:", "announcer"], referencedClasses: [] }), smalltalk.HLCodeModel); smalltalk.addMethod( "_on_", smalltalk.method({ selector: "on:", category: 'actions', fn: function (anEnvironment){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$3,$1; $2=_st(self)._new(); _st($2)._environment_(anEnvironment); $3=_st($2)._yourself(); $1=$3; return $1; }, function($ctx1) {$ctx1.fill(self,"on:",{anEnvironment:anEnvironment}, smalltalk.HLCodeModel.klass)})}, args: ["anEnvironment"], source: "on: anEnvironment\x0a\x0a\x09^ self new\x0a \x09environment: anEnvironment;\x0a yourself", messageSends: ["environment:", "new", "yourself"], referencedClasses: [] }), smalltalk.HLCodeModel.klass); smalltalk.addClass('HLCodeWidget', smalltalk.HLWidget, ['model', 'wrapper', 'code', 'editor'], 'Helios-Workspace'); smalltalk.addMethod( "_announcer", smalltalk.method({ selector: "announcer", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(_st(self)._model())._announcer(); return $1; }, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.HLCodeWidget)})}, args: [], source: "announcer\x0a\x09^ self model announcer", messageSends: ["announcer", "model"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_clear", smalltalk.method({ selector: "clear", category: 'actions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { _st(self)._contents_(""); return self}, function($ctx1) {$ctx1.fill(self,"clear",{}, smalltalk.HLCodeWidget)})}, args: [], source: "clear\x0a self contents: ''", messageSends: ["contents:"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_contents", smalltalk.method({ selector: "contents", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(self["@editor"])._getValue(); return $1; }, function($ctx1) {$ctx1.fill(self,"contents",{}, smalltalk.HLCodeWidget)})}, args: [], source: "contents\x0a\x09^ editor getValue", messageSends: ["getValue"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_contents_", smalltalk.method({ selector: "contents:", category: 'accessing', fn: function (aString){ var self=this; return smalltalk.withContext(function($ctx1) { _st(self["@editor"])._setValue_(aString); return self}, function($ctx1) {$ctx1.fill(self,"contents:",{aString:aString}, smalltalk.HLCodeWidget)})}, args: ["aString"], source: "contents: aString\x0a\x09editor setValue: aString", messageSends: ["setValue:"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_currentLine", smalltalk.method({ selector: "currentLine", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(self["@editor"])._getLine_(_st(_st(self["@editor"])._getCursor())._line()); return $1; }, function($ctx1) {$ctx1.fill(self,"currentLine",{}, smalltalk.HLCodeWidget)})}, args: [], source: "currentLine\x0a ^editor getLine: (editor getCursor line)", messageSends: ["getLine:", "line", "getCursor"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_currentLineOrSelection", smalltalk.method({ selector: "currentLineOrSelection", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=_st(self["@editor"])._somethingSelected(); if(smalltalk.assert($2)){ $1=_st(self)._selection(); } else { $1=_st(self)._currentLine(); }; return $1; }, function($ctx1) {$ctx1.fill(self,"currentLineOrSelection",{}, smalltalk.HLCodeWidget)})}, args: [], source: "currentLineOrSelection\x0a ^editor somethingSelected\x0a\x09\x09ifFalse: [self currentLine]\x0a\x09\x09ifTrue: [self selection]", messageSends: ["ifFalse:ifTrue:", "currentLine", "selection", "somethingSelected"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_doIt", smalltalk.method({ selector: "doIt", category: 'actions', fn: function (){ var self=this; var result; return smalltalk.withContext(function($ctx1) { var $1; _st(_st(self)._announcer())._announce_(_st((smalltalk.HLDoItRequested || HLDoItRequested))._on_(self["@model"])); result=_st(self["@model"])._doIt_(_st(self)._currentLineOrSelection()); _st(_st(self)._announcer())._announce_(_st((smalltalk.HLDoItExecuted || HLDoItExecuted))._on_(self["@model"])); $1=result; return $1; }, function($ctx1) {$ctx1.fill(self,"doIt",{result:result}, smalltalk.HLCodeWidget)})}, args: [], source: "doIt\x0a\x09| result |\x0a\x0a\x09self announcer announce: (HLDoItRequested on: model).\x0a\x0a\x09result:= model doIt: self currentLineOrSelection.\x0a\x0a\x09self announcer announce: (HLDoItExecuted on: model).\x0a\x0a\x09^ result ", messageSends: ["announce:", "on:", "announcer", "doIt:", "currentLineOrSelection"], referencedClasses: ["HLDoItRequested", "HLDoItExecuted"] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_editor", smalltalk.method({ selector: "editor", category: 'actions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=self["@editor"]; return $1; }, function($ctx1) {$ctx1.fill(self,"editor",{}, smalltalk.HLCodeWidget)})}, args: [], source: "editor\x0a\x09^editor", messageSends: [], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_focus", smalltalk.method({ selector: "focus", category: 'actions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { _st(_st(self)._editor())._focus(); return self}, function($ctx1) {$ctx1.fill(self,"focus",{}, smalltalk.HLCodeWidget)})}, args: [], source: "focus\x0a self editor focus", messageSends: ["focus", "editor"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_inspectIt", smalltalk.method({ selector: "inspectIt", category: 'actions', fn: function (){ var self=this; var newInspector; return smalltalk.withContext(function($ctx1) { _st(_st(self)._announcer())._announce_(_st((smalltalk.HLInspectItRequested || HLInspectItRequested))._on_(self["@model"])); newInspector=_st(self)._makeInspectorOn_(_st(self)._doIt()); _st(newInspector)._open(); return self}, function($ctx1) {$ctx1.fill(self,"inspectIt",{newInspector:newInspector}, smalltalk.HLCodeWidget)})}, args: [], source: "inspectIt\x0a\x09| newInspector |\x0a \x0a\x09self announcer announce: (HLInspectItRequested on: model).\x0a\x09newInspector := self makeInspectorOn: self doIt.\x0a\x09newInspector open", messageSends: ["announce:", "on:", "announcer", "makeInspectorOn:", "doIt", "open"], referencedClasses: ["HLInspectItRequested"] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_makeInspectorOn_", smalltalk.method({ selector: "makeInspectorOn:", category: 'actions', fn: function (anObject){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$3,$1; $2=_st((smalltalk.HLInspector || HLInspector))._new(); _st($2)._inspect_(anObject); $3=_st($2)._yourself(); $1=$3; return $1; }, function($ctx1) {$ctx1.fill(self,"makeInspectorOn:",{anObject:anObject}, smalltalk.HLCodeWidget)})}, args: ["anObject"], source: "makeInspectorOn: anObject\x0a\x0a\x09^ HLInspector new \x0a\x09\x09inspect: anObject;\x0a\x09\x09yourself", messageSends: ["inspect:", "new", "yourself"], referencedClasses: ["HLInspector"] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_model", smalltalk.method({ selector: "model", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@model"]; if(($receiver = $2) == nil || $receiver == undefined){ _st(self)._model_(_st((smalltalk.HLCodeModel || HLCodeModel))._new()); $1=self["@model"]; } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"model",{}, smalltalk.HLCodeWidget)})}, args: [], source: "model\x0a\x09^ model ifNil: [ \x0a \x09self model: HLCodeModel new.\x0a\x09\x09model ]", messageSends: ["ifNil:", "model:", "new"], referencedClasses: ["HLCodeModel"] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_model_", smalltalk.method({ selector: "model:", category: 'accessing', fn: function (aModel){ var self=this; return smalltalk.withContext(function($ctx1) { self["@model"]=aModel; return self}, function($ctx1) {$ctx1.fill(self,"model:",{aModel:aModel}, smalltalk.HLCodeWidget)})}, args: ["aModel"], source: "model: aModel\x0a\x09model := aModel", messageSends: [], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_observeWrapper", smalltalk.method({ selector: "observeWrapper", category: 'actions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { _st(self["@wrapper"])._onKeyDown_((function(e){ return smalltalk.withContext(function($ctx2) { return _st(self)._onKeyDown_(e); }, function($ctx2) {$ctx2.fillBlock({e:e},$ctx1)})})); return self}, function($ctx1) {$ctx1.fill(self,"observeWrapper",{}, smalltalk.HLCodeWidget)})}, args: [], source: "observeWrapper\x0a\x0a wrapper onKeyDown: [ :e | self onKeyDown: e ]\x0a", messageSends: ["onKeyDown:"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_onDoIt", smalltalk.method({ selector: "onDoIt", category: 'reactions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { _st(self)._doIt(); return self}, function($ctx1) {$ctx1.fill(self,"onDoIt",{}, smalltalk.HLCodeWidget)})}, args: [], source: "onDoIt\x0a\x09\x0a self doIt", messageSends: ["doIt"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_onInspectIt", smalltalk.method({ selector: "onInspectIt", category: 'reactions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { _st(self)._inspectIt(); return self}, function($ctx1) {$ctx1.fill(self,"onInspectIt",{}, smalltalk.HLCodeWidget)})}, args: [], source: "onInspectIt\x0a\x0a\x09self inspectIt", messageSends: ["inspectIt"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_onKeyDown_", smalltalk.method({ selector: "onKeyDown:", category: 'reactions', fn: function (anEvent){ var self=this; return smalltalk.withContext(function($ctx1) { if(anEvent.ctrlKey) { if(anEvent.keyCode === 80) { //ctrl+p self._onPrintIt(); anEvent.preventDefault(); return false; } if(anEvent.keyCode === 68) { //ctrl+d self._onDoIt(); anEvent.preventDefault(); return false; } if(anEvent.keyCode === 73) { //ctrl+i self._onInspectIt(); anEvent.preventDefault(); return false; } }; return self}, function($ctx1) {$ctx1.fill(self,"onKeyDown:",{anEvent:anEvent}, smalltalk.HLCodeWidget)})}, args: ["anEvent"], source: "onKeyDown: anEvent\x0a\x0a \x09", messageSends: [], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_onPrintIt", smalltalk.method({ selector: "onPrintIt", category: 'reactions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { _st(self)._printIt(); return self}, function($ctx1) {$ctx1.fill(self,"onPrintIt",{}, smalltalk.HLCodeWidget)})}, args: [], source: "onPrintIt\x0a\x0a\x09self printIt", messageSends: ["printIt"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_print_", smalltalk.method({ selector: "print:", category: 'actions', fn: function (aString){ var self=this; var start,stop; return smalltalk.withContext(function($ctx1) { start=_st((smalltalk.HashedCollection || HashedCollection))._new(); stop=_st((smalltalk.HashedCollection || HashedCollection))._new(); _st(start)._at_put_("line",_st(_st(self["@editor"])._getCursor_(false))._line()); _st(start)._at_put_("ch",_st(_st(self["@editor"])._getCursor_(false))._ch()); _st(stop)._at_put_("line",_st(start)._at_("line")); _st(stop)._at_put_("ch",_st(_st(_st(start)._at_("ch")).__plus(_st(aString)._size())).__plus((2))); _st(self["@editor"])._replaceSelection_(_st(_st(_st(_st(self["@editor"])._getSelection()).__comma(" ")).__comma(aString)).__comma(" ")); _st(self["@editor"])._setCursor_(_st(self["@editor"])._getCursor_(true)); _st(self["@editor"])._setSelection_end_(stop,start); return self}, function($ctx1) {$ctx1.fill(self,"print:",{aString:aString,start:start,stop:stop}, smalltalk.HLCodeWidget)})}, args: ["aString"], source: "print: aString\x0a\x09| start stop |\x0a\x09start := HashedCollection new.\x0a\x09stop := HashedCollection new.\x0a\x09start at: 'line' put: (editor getCursor: false) line.\x0a\x09start at: 'ch' put: (editor getCursor: false) ch.\x0a\x09stop at: 'line' put: (start at: 'line').\x0a\x09stop at: 'ch' put: ((start at: 'ch') + aString size + 2).\x0a\x09editor replaceSelection: (editor getSelection, ' ', aString, ' ').\x0a\x09editor setCursor: (editor getCursor: true).\x0a\x09editor setSelection: stop end: start", messageSends: ["new", "at:put:", "line", "getCursor:", "ch", "at:", "+", "size", "replaceSelection:", ",", "getSelection", "setCursor:", "setSelection:end:"], referencedClasses: ["HashedCollection"] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_printIt", smalltalk.method({ selector: "printIt", category: 'actions', fn: function (){ var self=this; var result; return smalltalk.withContext(function($ctx1) { result=_st(self)._doIt(); _st(_st(self)._announcer())._announce_(_st((smalltalk.HLPrintItRequested || HLPrintItRequested))._on_(self["@model"])); _st(self)._print_(_st(result)._printString()); _st(self)._focus(); return self}, function($ctx1) {$ctx1.fill(self,"printIt",{result:result}, smalltalk.HLCodeWidget)})}, args: [], source: "printIt\x0a\x09| result |\x0a\x0a\x09result:= self doIt.\x0a \x0a\x09self announcer announce: (HLPrintItRequested on: model).\x0a\x0a self print: result printString.\x0a\x09self focus.", messageSends: ["doIt", "announce:", "on:", "announcer", "print:", "printString", "focus"], referencedClasses: ["HLPrintItRequested"] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_receiver", smalltalk.method({ selector: "receiver", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(_st(self)._model())._receiver(); return $1; }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.HLCodeWidget)})}, args: [], source: "receiver\x0a\x09^ self model receiver", messageSends: ["receiver", "model"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_receiver_", smalltalk.method({ selector: "receiver:", category: 'accessing', fn: function (anObject){ var self=this; return smalltalk.withContext(function($ctx1) { _st(_st(self)._model())._receiver_(anObject); return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.HLCodeWidget)})}, args: ["anObject"], source: "receiver: anObject\x0a\x09self model receiver: anObject", messageSends: ["receiver:", "model"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_renderContentOn_", smalltalk.method({ selector: "renderContentOn:", category: 'rendering', fn: function (html){ var self=this; return smalltalk.withContext(function($ctx1) { self["@code"]=_st(html)._textarea(); _st(self)._setEditorOn_(_st(self["@code"])._element()); _st(self)._observeWrapper(); return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html}, smalltalk.HLCodeWidget)})}, args: ["html"], source: "renderContentOn: html\x0a code := html textarea.\x0a self setEditorOn: code element.\x0a \x0a self observeWrapper", messageSends: ["textarea", "setEditorOn:", "element", "observeWrapper"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_selection", smalltalk.method({ selector: "selection", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(self["@editor"])._getSelection(); return $1; }, function($ctx1) {$ctx1.fill(self,"selection",{}, smalltalk.HLCodeWidget)})}, args: [], source: "selection\x0a\x09^editor getSelection", messageSends: ["getSelection"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_selectionEnd", smalltalk.method({ selector: "selectionEnd", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(_st(self["@code"])._element())._selectionEnd(); return $1; }, function($ctx1) {$ctx1.fill(self,"selectionEnd",{}, smalltalk.HLCodeWidget)})}, args: [], source: "selectionEnd\x0a ^code element selectionEnd", messageSends: ["selectionEnd", "element"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_selectionEnd_", smalltalk.method({ selector: "selectionEnd:", category: 'accessing', fn: function (anInteger){ var self=this; return smalltalk.withContext(function($ctx1) { _st(_st(self["@code"])._element())._selectionEnd_(anInteger); return self}, function($ctx1) {$ctx1.fill(self,"selectionEnd:",{anInteger:anInteger}, smalltalk.HLCodeWidget)})}, args: ["anInteger"], source: "selectionEnd: anInteger\x0a code element selectionEnd: anInteger", messageSends: ["selectionEnd:", "element"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_selectionStart", smalltalk.method({ selector: "selectionStart", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $1; $1=_st(_st(self["@code"])._element())._selectionStart(); return $1; }, function($ctx1) {$ctx1.fill(self,"selectionStart",{}, smalltalk.HLCodeWidget)})}, args: [], source: "selectionStart\x0a ^code element selectionStart", messageSends: ["selectionStart", "element"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_selectionStart_", smalltalk.method({ selector: "selectionStart:", category: 'accessing', fn: function (anInteger){ var self=this; return smalltalk.withContext(function($ctx1) { _st(_st(self["@code"])._element())._selectionStart_(anInteger); return self}, function($ctx1) {$ctx1.fill(self,"selectionStart:",{anInteger:anInteger}, smalltalk.HLCodeWidget)})}, args: ["anInteger"], source: "selectionStart: anInteger\x0a code element selectionStart: anInteger", messageSends: ["selectionStart:", "element"], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addMethod( "_setEditorOn_", smalltalk.method({ selector: "setEditorOn:", category: 'actions', fn: function (aTextarea){ var self=this; return smalltalk.withContext(function($ctx1) { self['@editor'] = CodeMirror.fromTextArea(aTextarea, { theme: 'amber', lineNumbers: true, enterMode: 'flat', matchBrackets: true, electricChars: false }); return self}, function($ctx1) {$ctx1.fill(self,"setEditorOn:",{aTextarea:aTextarea}, smalltalk.HLCodeWidget)})}, args: ["aTextarea"], source: "setEditorOn: aTextarea\x0a\x09", messageSends: [], referencedClasses: [] }), smalltalk.HLCodeWidget); smalltalk.addClass('HLWorkspace', smalltalk.HLWidget, ['model', 'codeWidget'], 'Helios-Workspace'); smalltalk.addMethod( "_codeWidget", smalltalk.method({ selector: "codeWidget", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$3,$4,$1; $2=self["@codeWidget"]; if(($receiver = $2) == nil || $receiver == undefined){ $3=_st((smalltalk.HLCodeWidget || HLCodeWidget))._new(); _st($3)._model_(_st(_st(self)._model())._code()); $4=_st($3)._yourself(); self["@codeWidget"]=$4; $1=self["@codeWidget"]; } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"codeWidget",{}, smalltalk.HLWorkspace)})}, args: [], source: "codeWidget\x0a\x09^ codeWidget ifNil: [\x0a\x09\x09codeWidget := HLCodeWidget new\x0a \x09\x09model: self model code;\x0a \x09yourself ]", messageSends: ["ifNil:", "model:", "code", "model", "new", "yourself"], referencedClasses: ["HLCodeWidget"] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_model", smalltalk.method({ selector: "model", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@model"]; if(($receiver = $2) == nil || $receiver == undefined){ _st(self)._model_(_st((smalltalk.HLWorkspaceModel || HLWorkspaceModel))._new()); $1=self["@model"]; } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"model",{}, smalltalk.HLWorkspace)})}, args: [], source: "model\x0a\x09^ model ifNil: [ \x0a \x09self model: HLWorkspaceModel new.\x0a\x09\x09model ]", messageSends: ["ifNil:", "model:", "new"], referencedClasses: ["HLWorkspaceModel"] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_model_", smalltalk.method({ selector: "model:", category: 'accessing', fn: function (aModel){ var self=this; return smalltalk.withContext(function($ctx1) { self["@model"]=aModel; _st(_st(self)._codeWidget())._model_(_st(aModel)._code()); _st(self)._observeCodeWidget(); return self}, function($ctx1) {$ctx1.fill(self,"model:",{aModel:aModel}, smalltalk.HLWorkspace)})}, args: ["aModel"], source: "model: aModel\x0a\x09model := aModel.\x0a \x0a self codeWidget model: aModel code.\x0a self observeCodeWidget.\x0a ", messageSends: ["model:", "code", "codeWidget", "observeCodeWidget"], referencedClasses: [] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_observeCodeWidget", smalltalk.method({ selector: "observeCodeWidget", category: 'actions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return self}, function($ctx1) {$ctx1.fill(self,"observeCodeWidget",{}, smalltalk.HLWorkspace)})}, args: [], source: "observeCodeWidget\x0a\x0a", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_onDoIt", smalltalk.method({ selector: "onDoIt", category: 'reactions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return self}, function($ctx1) {$ctx1.fill(self,"onDoIt",{}, smalltalk.HLWorkspace)})}, args: [], source: "onDoIt", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_onInspectIt", smalltalk.method({ selector: "onInspectIt", category: 'reactions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return self}, function($ctx1) {$ctx1.fill(self,"onInspectIt",{}, smalltalk.HLWorkspace)})}, args: [], source: "onInspectIt", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_onPrintIt", smalltalk.method({ selector: "onPrintIt", category: 'reactions', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return self}, function($ctx1) {$ctx1.fill(self,"onPrintIt",{}, smalltalk.HLWorkspace)})}, args: [], source: "onPrintIt", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_renderContentOn_", smalltalk.method({ selector: "renderContentOn:", category: 'rendering', fn: function (html){ var self=this; return smalltalk.withContext(function($ctx1) { _st(html)._with_(_st(self)._codeWidget()); return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html}, smalltalk.HLWorkspace)})}, args: ["html"], source: "renderContentOn: html\x0a\x09html with: self codeWidget\x0a ", messageSends: ["with:", "codeWidget"], referencedClasses: [] }), smalltalk.HLWorkspace); smalltalk.addMethod( "_canBeOpenAsTab", smalltalk.method({ selector: "canBeOpenAsTab", category: 'testing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return true; }, function($ctx1) {$ctx1.fill(self,"canBeOpenAsTab",{}, smalltalk.HLWorkspace.klass)})}, args: [], source: "canBeOpenAsTab\x0a\x09^ true", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace.klass); smalltalk.addMethod( "_tabLabel", smalltalk.method({ selector: "tabLabel", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return "Workspace"; }, function($ctx1) {$ctx1.fill(self,"tabLabel",{}, smalltalk.HLWorkspace.klass)})}, args: [], source: "tabLabel\x0a\x09^ 'Workspace'", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace.klass); smalltalk.addMethod( "_tabPriority", smalltalk.method({ selector: "tabPriority", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { return (10); }, function($ctx1) {$ctx1.fill(self,"tabPriority",{}, smalltalk.HLWorkspace.klass)})}, args: [], source: "tabPriority\x0a\x09^ 10", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspace.klass); smalltalk.addClass('HLWorkspaceModel', smalltalk.Object, ['announcer', 'environment', 'code'], 'Helios-Workspace'); smalltalk.addMethod( "_announcer", smalltalk.method({ selector: "announcer", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@announcer"]; if(($receiver = $2) == nil || $receiver == undefined){ self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new(); $1=self["@announcer"]; } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.HLWorkspaceModel)})}, args: [], source: "announcer\x0a\x09^ announcer ifNil: [ announcer := Announcer new ]", messageSends: ["ifNil:", "new"], referencedClasses: ["Announcer"] }), smalltalk.HLWorkspaceModel); smalltalk.addMethod( "_code", smalltalk.method({ selector: "code", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@code"]; if(($receiver = $2) == nil || $receiver == undefined){ $1=_st((smalltalk.HLCodeModel || HLCodeModel))._on_(_st(self)._environment()); } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"code",{}, smalltalk.HLWorkspaceModel)})}, args: [], source: "code\x0a\x09\x22Answers the code model working for this workspace model\x22\x0a\x09^ code ifNil:[ HLCodeModel on: self environment ]", messageSends: ["ifNil:", "on:", "environment"], referencedClasses: ["HLCodeModel"] }), smalltalk.HLWorkspaceModel); smalltalk.addMethod( "_environment", smalltalk.method({ selector: "environment", category: 'accessing', fn: function (){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$1; $2=self["@environment"]; if(($receiver = $2) == nil || $receiver == undefined){ $1=_st(_st((smalltalk.HLManager || HLManager))._current())._environment(); } else { $1=$2; }; return $1; }, function($ctx1) {$ctx1.fill(self,"environment",{}, smalltalk.HLWorkspaceModel)})}, args: [], source: "environment\x0a\x09^ environment ifNil: [ HLManager current environment ]", messageSends: ["ifNil:", "environment", "current"], referencedClasses: ["HLManager"] }), smalltalk.HLWorkspaceModel); smalltalk.addMethod( "_environment_", smalltalk.method({ selector: "environment:", category: 'accessing', fn: function (anEnvironment){ var self=this; return smalltalk.withContext(function($ctx1) { self["@environment"]=anEnvironment; return self}, function($ctx1) {$ctx1.fill(self,"environment:",{anEnvironment:anEnvironment}, smalltalk.HLWorkspaceModel)})}, args: ["anEnvironment"], source: "environment: anEnvironment\x0a\x09environment := anEnvironment", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspaceModel); smalltalk.addMethod( "_onKeyDown_", smalltalk.method({ selector: "onKeyDown:", category: 'reactions', fn: function (anEvent){ var self=this; return smalltalk.withContext(function($ctx1) { if(anEvent.ctrlKey) { if(anEvent.keyCode === 80) { //ctrl+p self._printIt(); anEvent.preventDefault(); return false; } if(anEvent.keyCode === 68) { //ctrl+d self._doIt(); anEvent.preventDefault(); return false; } if(anEvent.keyCode === 73) { //ctrl+i self._inspectIt(); anEvent.preventDefault(); return false; } }; return self}, function($ctx1) {$ctx1.fill(self,"onKeyDown:",{anEvent:anEvent}, smalltalk.HLWorkspaceModel)})}, args: ["anEvent"], source: "onKeyDown: anEvent\x0a\x0a\x09", messageSends: [], referencedClasses: [] }), smalltalk.HLWorkspaceModel); smalltalk.addMethod( "_on_", smalltalk.method({ selector: "on:", category: 'actions', fn: function (anEnvironment){ var self=this; return smalltalk.withContext(function($ctx1) { var $2,$3,$1; $2=_st(self)._new(); _st($2)._environment_(anEnvironment); $3=_st($2)._yourself(); $1=$3; return $1; }, function($ctx1) {$ctx1.fill(self,"on:",{anEnvironment:anEnvironment}, smalltalk.HLWorkspaceModel.klass)})}, args: ["anEnvironment"], source: "on: anEnvironment\x0a\x0a\x09^ self new\x0a \x09environment: anEnvironment;\x0a yourself", messageSends: ["environment:", "new", "yourself"], referencedClasses: [] }), smalltalk.HLWorkspaceModel.klass);