smalltalk.addPackage('IDE', {});
smalltalk.addClass('ClassesList', smalltalk.Widget, ['browser', 'ul', 'nodes'], 'IDE');
smalltalk.addMethod(
"_browser",
smalltalk.method({
selector: "browser",
fn: function (){
var self=this;
return self["@browser"];
}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_browser_",
smalltalk.method({
selector: "browser:",
fn: function (aBrowser){
var self=this;
self["@browser"]=aBrowser;
return self}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_category",
smalltalk.method({
selector: "category",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_browser",[]),"_selectedPackage",[]);
return $1;
}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_getNodes",
smalltalk.method({
selector: "getNodes",
fn: function (){
var self=this;
var $1,$2;
var classes;
var children;
var others;
classes=smalltalk.send(smalltalk.send(self,"_browser",[]),"_classes",[]);
children=[];
others=[];
smalltalk.send(classes,"_do_",[(function(each){
$1=smalltalk.send(classes,"_includes_",[smalltalk.send(each,"_superclass",[])]);
if(smalltalk.assert($1)){
return smalltalk.send(others,"_add_",[each]);
} else {
return smalltalk.send(children,"_add_",[each]);
};
})]);
$2=smalltalk.send(children,"_collect_",[(function(each){
return smalltalk.send((smalltalk.ClassesListNode || ClassesListNode),"_on_browser_classes_level_",[each,smalltalk.send(self,"_browser",[]),others,(0)]);
})]);
return $2;
}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_nodes",
smalltalk.method({
selector: "nodes",
fn: function (){
var self=this;
if(($receiver = self["@nodes"]) == nil || $receiver == undefined){
self["@nodes"]=smalltalk.send(self,"_getNodes",[]);
self["@nodes"];
} else {
self["@nodes"];
};
return self["@nodes"];
}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_renderOn_",
smalltalk.method({
selector: "renderOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_ul",[]);
smalltalk.send($1,"_class_",["amber_column browser classes"]);
$2=smalltalk.send($1,"_yourself",[]);
self["@ul"]=$2;
smalltalk.send(self,"_updateNodes",[]);
return self}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_resetNodes",
smalltalk.method({
selector: "resetNodes",
fn: function (){
var self=this;
self["@nodes"]=nil;
return self}
}),
smalltalk.ClassesList);

smalltalk.addMethod(
"_updateNodes",
smalltalk.method({
selector: "updateNodes",
fn: function (){
var self=this;
smalltalk.send(self["@ul"],"_contents_",[(function(html){
return smalltalk.send(smalltalk.send(self,"_nodes",[]),"_do_",[(function(each){
return smalltalk.send(each,"_renderOn_",[html]);
})]);
})]);
return self}
}),
smalltalk.ClassesList);


smalltalk.addMethod(
"_on_",
smalltalk.method({
selector: "on:",
fn: function (aBrowser){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_browser_",[aBrowser]);
$3=smalltalk.send($2,"_yourself",[]);
$1=$3;
return $1;
}
}),
smalltalk.ClassesList.klass);


smalltalk.addClass('ClassesListNode', smalltalk.Widget, ['browser', 'theClass', 'level', 'nodes'], 'IDE');
smalltalk.addMethod(
"_browser",
smalltalk.method({
selector: "browser",
fn: function (){
var self=this;
return self["@browser"];
}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_browser_",
smalltalk.method({
selector: "browser:",
fn: function (aBrowser){
var self=this;
self["@browser"]=aBrowser;
return self}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_getNodesFrom_",
smalltalk.method({
selector: "getNodesFrom:",
fn: function (aCollection){
var self=this;
var $1;
var children;
var others;
children=[];
others=[];
smalltalk.send(aCollection,"_do_",[(function(each){
$1=smalltalk.send(smalltalk.send(each,"_superclass",[]),"__eq",[smalltalk.send(self,"_theClass",[])]);
if(smalltalk.assert($1)){
return smalltalk.send(children,"_add_",[each]);
} else {
return smalltalk.send(others,"_add_",[each]);
};
})]);
self["@nodes"]=smalltalk.send(children,"_collect_",[(function(each){
return smalltalk.send((smalltalk.ClassesListNode || ClassesListNode),"_on_browser_classes_level_",[each,smalltalk.send(self,"_browser",[]),others,smalltalk.send(smalltalk.send(self,"_level",[]),"__plus",[(1)])]);
})]);
return self}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
var $1;
var str;
str=smalltalk.send(smalltalk.send((smalltalk.String || String),"_new",[]),"_writeStream",[]);
smalltalk.send(smalltalk.send(self,"_level",[]),"_timesRepeat_",[(function(){
return smalltalk.send(str,"_nextPutAll_",["    "]);
})]);
smalltalk.send(str,"_nextPutAll_",[smalltalk.send(smalltalk.send(self,"_theClass",[]),"_name",[])]);
$1=smalltalk.send(str,"_contents",[]);
return $1;
}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_level",
smalltalk.method({
selector: "level",
fn: function (){
var self=this;
return self["@level"];
}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_level_",
smalltalk.method({
selector: "level:",
fn: function (anInteger){
var self=this;
self["@level"]=anInteger;
return self}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_nodes",
smalltalk.method({
selector: "nodes",
fn: function (){
var self=this;
return self["@nodes"];
}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_renderOn_",
smalltalk.method({
selector: "renderOn:",
fn: function (html){
var self=this;
var $1,$2;
var li;
var cssClass;
cssClass="";
li=smalltalk.send(smalltalk.send(html,"_li",[]),"_onClick_",[(function(){
return smalltalk.send(smalltalk.send(self,"_browser",[]),"_selectClass_",[smalltalk.send(self,"_theClass",[])]);
})]);
smalltalk.send(smalltalk.send(li,"_asJQuery",[]),"_html_",[smalltalk.send(self,"_label",[])]);
$1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_browser",[]),"_selectedClass",[]),"__eq",[smalltalk.send(self,"_theClass",[])]);
if(smalltalk.assert($1)){
cssClass=smalltalk.send(cssClass,"__comma",[" selected"]);
cssClass;
};
$2=smalltalk.send(smalltalk.send(smalltalk.send(self,"_theClass",[]),"_comment",[]),"_isEmpty",[]);
if(! smalltalk.assert($2)){
cssClass=smalltalk.send(cssClass,"__comma",[" commented"]);
cssClass;
};
smalltalk.send(li,"_class_",[cssClass]);
smalltalk.send(smalltalk.send(self,"_nodes",[]),"_do_",[(function(each){
return smalltalk.send(each,"_renderOn_",[html]);
})]);
return self}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_theClass",
smalltalk.method({
selector: "theClass",
fn: function (){
var self=this;
return self["@theClass"];
}
}),
smalltalk.ClassesListNode);

smalltalk.addMethod(
"_theClass_",
smalltalk.method({
selector: "theClass:",
fn: function (aClass){
var self=this;
self["@theClass"]=aClass;
return self}
}),
smalltalk.ClassesListNode);


smalltalk.addMethod(
"_on_browser_classes_level_",
smalltalk.method({
selector: "on:browser:classes:level:",
fn: function (aClass,aBrowser,aCollection,anInteger){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_theClass_",[aClass]);
smalltalk.send($2,"_browser_",[aBrowser]);
smalltalk.send($2,"_level_",[anInteger]);
smalltalk.send($2,"_getNodesFrom_",[aCollection]);
$3=smalltalk.send($2,"_yourself",[]);
$1=$3;
return $1;
}
}),
smalltalk.ClassesListNode.klass);


smalltalk.addClass('DebugErrorHandler', smalltalk.ErrorHandler, [], 'IDE');
smalltalk.addMethod(
"_handleError_",
smalltalk.method({
selector: "handleError:",
fn: function (anError){
var self=this;
var $1,$2;
smalltalk.send((function(){
$1=smalltalk.send((smalltalk.Debugger || Debugger),"_new",[]);
smalltalk.send($1,"_error_",[anError]);
$2=smalltalk.send($1,"_open",[]);
return $2;
}),"_on_do_",[(smalltalk.Error || Error),(function(error){
return smalltalk.send(smalltalk.send((smalltalk.ErrorHandler || ErrorHandler),"_new",[]),"_handleError_",[error]);
})]);
return self}
}),
smalltalk.DebugErrorHandler);


smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
smalltalk.send(self,"_register",[]);
return self}
}),
smalltalk.DebugErrorHandler.klass);


smalltalk.addClass('SourceArea', smalltalk.Widget, ['editor', 'div', 'receiver', 'onDoIt'], 'IDE');
smalltalk.addMethod(
"_clear",
smalltalk.method({
selector: "clear",
fn: function (){
var self=this;
smalltalk.send(self,"_val_",[""]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_currentLine",
smalltalk.method({
selector: "currentLine",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self["@editor"],"_getLine_",[smalltalk.send(smalltalk.send(self["@editor"],"_getCursor",[]),"_line",[])]);
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_currentLineOrSelection",
smalltalk.method({
selector: "currentLineOrSelection",
fn: function (){
var self=this;
var $2,$1;
$2=smalltalk.send(self["@editor"],"_somethingSelected",[]);
if(smalltalk.assert($2)){
$1=smalltalk.send(self,"_selection",[]);
} else {
$1=smalltalk.send(self,"_currentLine",[]);
};
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_doIt",
smalltalk.method({
selector: "doIt",
fn: function (){
var self=this;
var $1;
var result;
result=smalltalk.send(self,"_eval_",[smalltalk.send(self,"_currentLineOrSelection",[])]);
$1=smalltalk.send(self,"_onDoIt",[]);
if(($receiver = $1) == nil || $receiver == undefined){
$1;
} else {
smalltalk.send(smalltalk.send(self,"_onDoIt",[]),"_value",[]);
};
return result;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_editor",
smalltalk.method({
selector: "editor",
fn: function (){
var self=this;
return self["@editor"];
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_eval_",
smalltalk.method({
selector: "eval:",
fn: function (aString){
var self=this;
var $1,$2;
var $early={};
try {
var compiler;
compiler=smalltalk.send((smalltalk.Compiler || Compiler),"_new",[]);
smalltalk.send((function(){
return smalltalk.send(compiler,"_parseExpression_",[aString]);
}),"_on_do_",[(smalltalk.Error || Error),(function(ex){
$1=smalltalk.send(window,"_alert_",[smalltalk.send(ex,"_messageText",[])]);
throw $early=[$1];
})]);
$2=smalltalk.send(smalltalk.send(smalltalk.send(compiler,"_eval_",[smalltalk.send(compiler,"_compile_forClass_",[smalltalk.send(smalltalk.send("doIt ^[","__comma",[aString]),"__comma",["] value"]),(smalltalk.DoIt || DoIt)])]),"_fn",[]),"_applyTo_arguments_",[smalltalk.send(self,"_receiver",[]),[]]);
return $2;
}
catch(e) {if(e===$early)return e[0]; throw e}
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_fileIn",
smalltalk.method({
selector: "fileIn",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send((smalltalk.Importer || Importer),"_new",[]),"_import_",[smalltalk.send(smalltalk.send(self,"_currentLineOrSelection",[]),"_readStream",[])]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_handleKeyDown_",
smalltalk.method({
selector: "handleKeyDown:",
fn: function (anEvent){
var self=this;
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}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_inspectIt",
smalltalk.method({
selector: "inspectIt",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self,"_doIt",[]),"_inspect",[]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_onDoIt",
smalltalk.method({
selector: "onDoIt",
fn: function (){
var self=this;
return self["@onDoIt"];
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_onDoIt_",
smalltalk.method({
selector: "onDoIt:",
fn: function (aBlock){
var self=this;
self["@onDoIt"]=aBlock;
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_onKeyDown_",
smalltalk.method({
selector: "onKeyDown:",
fn: function (aBlock){
var self=this;
smalltalk.send(self["@div"],"_onKeyDown_",[aBlock]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_onKeyUp_",
smalltalk.method({
selector: "onKeyUp:",
fn: function (aBlock){
var self=this;
smalltalk.send(self["@div"],"_onKeyUp_",[aBlock]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_print_",
smalltalk.method({
selector: "print:",
fn: function (aString){
var self=this;
var start;
var stop;
start=smalltalk.send((smalltalk.HashedCollection || HashedCollection),"_new",[]);
stop=smalltalk.send((smalltalk.HashedCollection || HashedCollection),"_new",[]);
smalltalk.send(start,"_at_put_",["line",smalltalk.send(smalltalk.send(self["@editor"],"_getCursor_",[false]),"_line",[])]);
smalltalk.send(start,"_at_put_",["ch",smalltalk.send(smalltalk.send(self["@editor"],"_getCursor_",[false]),"_ch",[])]);
smalltalk.send(stop,"_at_put_",["line",smalltalk.send(start,"_at_",["line"])]);
smalltalk.send(stop,"_at_put_",["ch",smalltalk.send(smalltalk.send(smalltalk.send(start,"_at_",["ch"]),"__plus",[smalltalk.send(aString,"_size",[])]),"__plus",[(2)])]);
smalltalk.send(self["@editor"],"_replaceSelection_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self["@editor"],"_getSelection",[]),"__comma",[" "]),"__comma",[aString]),"__comma",[" "])]);
smalltalk.send(self["@editor"],"_setCursor_",[smalltalk.send(self["@editor"],"_getCursor_",[true])]);
smalltalk.send(self["@editor"],"_setSelection_end_",[stop,start]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_printIt",
smalltalk.method({
selector: "printIt",
fn: function (){
var self=this;
smalltalk.send(self,"_print_",[smalltalk.send(smalltalk.send(self,"_doIt",[]),"_printString",[])]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_receiver",
smalltalk.method({
selector: "receiver",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@receiver"]) == nil || $receiver == undefined){
$1=smalltalk.send((smalltalk.DoIt || DoIt),"_new",[]);
} else {
$1=self["@receiver"];
};
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_receiver_",
smalltalk.method({
selector: "receiver:",
fn: function (anObject){
var self=this;
self["@receiver"]=anObject;
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_renderOn_",
smalltalk.method({
selector: "renderOn:",
fn: function (html){
var self=this;
var textarea;
self["@div"]=smalltalk.send(smalltalk.send(html,"_div",[]),"_class_",["source"]);
smalltalk.send(self["@div"],"_with_",[(function(){
textarea=smalltalk.send(html,"_textarea",[]);
return textarea;
})]);
smalltalk.send(self,"_setEditorOn_",[smalltalk.send(textarea,"_element",[])]);
smalltalk.send(self["@div"],"_onKeyDown_",[(function(e){
return smalltalk.send(self,"_handleKeyDown_",[e]);
})]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_selection",
smalltalk.method({
selector: "selection",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self["@editor"],"_getSelection",[]);
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_selectionEnd",
smalltalk.method({
selector: "selectionEnd",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(textarea,"_element",[]),"_selectionEnd",[]);
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_selectionEnd_",
smalltalk.method({
selector: "selectionEnd:",
fn: function (anInteger){
var self=this;
smalltalk.send(smalltalk.send(textarea,"_element",[]),"_selectionEnd_",[anInteger]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_selectionStart",
smalltalk.method({
selector: "selectionStart",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(textarea,"_element",[]),"_selectionStart",[]);
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_selectionStart_",
smalltalk.method({
selector: "selectionStart:",
fn: function (anInteger){
var self=this;
smalltalk.send(smalltalk.send(textarea,"_element",[]),"_selectionStart_",[anInteger]);
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_setEditorOn_",
smalltalk.method({
selector: "setEditorOn:",
fn: function (aTextarea){
var self=this;
self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
		theme: 'amber',
                lineNumbers: true,
                enterMode: 'flat',
                matchBrackets: true,
                electricChars: false
	});
;
return self}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_val",
smalltalk.method({
selector: "val",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self["@editor"],"_getValue",[]);
return $1;
}
}),
smalltalk.SourceArea);

smalltalk.addMethod(
"_val_",
smalltalk.method({
selector: "val:",
fn: function (aString){
var self=this;
smalltalk.send(self["@editor"],"_setValue_",[aString]);
return self}
}),
smalltalk.SourceArea);



smalltalk.addClass('TabManager', smalltalk.Widget, ['selectedTab', 'tabs', 'opened', 'ul', 'input'], 'IDE');
smalltalk.addMethod(
"_addTab_",
smalltalk.method({
selector: "addTab:",
fn: function (aWidget){
var self=this;
smalltalk.send(smalltalk.send(self,"_tabs",[]),"_add_",[aWidget]);
smalltalk.send(aWidget,"_appendToJQuery_",[smalltalk.send("#amber","_asJQuery",[])]);
smalltalk.send(aWidget,"_hide",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_close",
smalltalk.method({
selector: "close",
fn: function (){
var self=this;
if(smalltalk.assert(self["@opened"])){
smalltalk.send(smalltalk.send("#amber","_asJQuery",[]),"_hide",[]);
smalltalk.send(smalltalk.send(self["@ul"],"_asJQuery",[]),"_hide",[]);
smalltalk.send(self["@selectedTab"],"_hide",[]);
smalltalk.send(self,"_removeBodyMargin",[]);
smalltalk.send(smalltalk.send("body","_asJQuery",[]),"_removeClass_",["amberBody"]);
self["@opened"]=false;
self["@opened"];
};
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_closeTab_",
smalltalk.method({
selector: "closeTab:",
fn: function (aWidget){
var self=this;
smalltalk.send(self,"_removeTab_",[aWidget]);
smalltalk.send(self,"_selectTab_",[smalltalk.send(smalltalk.send(self,"_tabs",[]),"_last",[])]);
smalltalk.send(aWidget,"_remove",[]);
smalltalk.send(self,"_update",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
var $1,$2,$3;
smalltalk.send(self,"_initialize",[],smalltalk.Widget);
self["@opened"]=true;
smalltalk.send((function(html){
return smalltalk.send(smalltalk.send(html,"_div",[]),"_id_",["amber"]);
}),"_appendToJQuery_",[smalltalk.send("body","_asJQuery",[])]);
smalltalk.send(smalltalk.send("body","_asJQuery",[]),"_addClass_",["amberBody"]);
smalltalk.send(self,"_appendToJQuery_",[smalltalk.send("#amber","_asJQuery",[])]);
smalltalk.send(self,"_addTab_",[smalltalk.send((smalltalk.IDETranscript || IDETranscript),"_current",[])]);
smalltalk.send(self,"_addTab_",[smalltalk.send((smalltalk.Workspace || Workspace),"_new",[])]);
$1=smalltalk.send(self,"_addTab_",[smalltalk.send((smalltalk.TestRunner || TestRunner),"_new",[])]);
smalltalk.send(self,"_selectTab_",[smalltalk.send(smalltalk.send(self,"_tabs",[]),"_last",[])]);
smalltalk.send(self,"_onResize_",[(function(){
smalltalk.send(self,"_updateBodyMargin",[]);
$2=smalltalk.send(self,"_updatePosition",[]);
return $2;
})]);
$3=smalltalk.send(self,"_onWindowResize_",[(function(){
return smalltalk.send(self,"_updatePosition",[]);
})]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_labelFor_",
smalltalk.method({
selector: "labelFor:",
fn: function (aWidget){
var self=this;
var $1;
var label;
var maxSize;
maxSize=(15);
label=smalltalk.send(smalltalk.send(aWidget,"_label",[]),"_copyFrom_to_",[(0),smalltalk.send(smalltalk.send(smalltalk.send(aWidget,"_label",[]),"_size",[]),"_min_",[maxSize])]);
$1=smalltalk.send(smalltalk.send(smalltalk.send(aWidget,"_label",[]),"_size",[]),"__gt",[maxSize]);
if(smalltalk.assert($1)){
label=smalltalk.send(label,"__comma",["..."]);
label;
};
return label;
}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_newBrowserTab",
smalltalk.method({
selector: "newBrowserTab",
fn: function (){
var self=this;
smalltalk.send((smalltalk.Browser || Browser),"_open",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_onResize_",
smalltalk.method({
selector: "onResize:",
fn: function (aBlock){
var self=this;
jQuery('#amber').resizable({
	handles: 'n', 
	resize: aBlock,
	minHeight: 230
});
;
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_onWindowResize_",
smalltalk.method({
selector: "onWindowResize:",
fn: function (aBlock){
var self=this;
jQuery(window).resize(aBlock);
;
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_open",
smalltalk.method({
selector: "open",
fn: function (){
var self=this;
if(! smalltalk.assert(self["@opened"])){
smalltalk.send(smalltalk.send("body","_asJQuery",[]),"_addClass_",["amberBody"]);
smalltalk.send(smalltalk.send("#amber","_asJQuery",[]),"_show",[]);
smalltalk.send(smalltalk.send(self["@ul"],"_asJQuery",[]),"_show",[]);
smalltalk.send(self,"_updateBodyMargin",[]);
smalltalk.send(self["@selectedTab"],"_show",[]);
self["@opened"]=true;
self["@opened"];
};
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_removeBodyMargin",
smalltalk.method({
selector: "removeBodyMargin",
fn: function (){
var self=this;
smalltalk.send(self,"_setBodyMargin_",[(0)]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_removeTab_",
smalltalk.method({
selector: "removeTab:",
fn: function (aWidget){
var self=this;
smalltalk.send(smalltalk.send(self,"_tabs",[]),"_remove_",[aWidget]);
smalltalk.send(self,"_update",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_renderOn_",
smalltalk.method({
selector: "renderOn:",
fn: function (html){
var self=this;
var $1,$2;
smalltalk.send(smalltalk.send(html,"_div",[]),"_id_",["logo"]);
smalltalk.send(self,"_renderToolbarOn_",[html]);
$1=smalltalk.send(html,"_ul",[]);
smalltalk.send($1,"_id_",["amberTabs"]);
$2=smalltalk.send($1,"_yourself",[]);
self["@ul"]=$2;
smalltalk.send(self,"_renderTabs",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_renderTabFor_on_",
smalltalk.method({
selector: "renderTabFor:on:",
fn: function (aWidget,html){
var self=this;
var $1,$2,$4,$5,$6,$3,$7;
var li;
li=smalltalk.send(html,"_li",[]);
$1=smalltalk.send(self["@selectedTab"],"__eq",[aWidget]);
if(smalltalk.assert($1)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[(function(){
smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["ltab"]);
$2=smalltalk.send(html,"_span",[]);
smalltalk.send($2,"_class_",["mtab"]);
$3=smalltalk.send($2,"_with_",[(function(){
$4=smalltalk.send(aWidget,"_canBeClosed",[]);
if(smalltalk.assert($4)){
$5=smalltalk.send(html,"_span",[]);
smalltalk.send($5,"_class_",["close"]);
smalltalk.send($5,"_with_",["x"]);
$6=smalltalk.send($5,"_onClick_",[(function(){
return smalltalk.send(self,"_closeTab_",[aWidget]);
})]);
$6;
};
return smalltalk.send(smalltalk.send(html,"_span",[]),"_with_",[smalltalk.send(self,"_labelFor_",[aWidget])]);
})]);
$3;
return smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["rtab"]);
})]);
$7=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectTab_",[aWidget]);
})]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_renderTabs",
smalltalk.method({
selector: "renderTabs",
fn: function (){
var self=this;
var $1,$2,$3,$4;
smalltalk.send(self["@ul"],"_contents_",[(function(html){
smalltalk.send(smalltalk.send(self,"_tabs",[]),"_do_",[(function(each){
return smalltalk.send(self,"_renderTabFor_on_",[each,html]);
})]);
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["newtab"]);
smalltalk.send($1,"_with_",[(function(){
smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["ltab"]);
$2=smalltalk.send(html,"_span",[]);
smalltalk.send($2,"_class_",["mtab"]);
$3=smalltalk.send($2,"_with_",[" + "]);
$3;
return smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["rtab"]);
})]);
$4=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_newBrowserTab",[]);
})]);
return $4;
})]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_renderToolbarOn_",
smalltalk.method({
selector: "renderToolbarOn:",
fn: function (html){
var self=this;
var $1,$3,$4,$5,$6,$7,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_id_",["amber_toolbar"]);
$2=smalltalk.send($1,"_with_",[(function(){
$3=smalltalk.send(html,"_input",[]);
smalltalk.send($3,"_class_",["implementors"]);
$4=smalltalk.send($3,"_yourself",[]);
self["@input"]=$4;
self["@input"];
smalltalk.send(self["@input"],"_onKeyPress_",[(function(event){
$5=smalltalk.send(smalltalk.send(event,"_keyCode",[]),"__eq",[(13)]);
if(smalltalk.assert($5)){
return smalltalk.send(self,"_search_",[smalltalk.send(smalltalk.send(self["@input"],"_asJQuery",[]),"_val",[])]);
};
})]);
$6=smalltalk.send(html,"_div",[]);
smalltalk.send($6,"_id_",["amber_close"]);
$7=smalltalk.send($6,"_onClick_",[(function(){
return smalltalk.send(self,"_close",[]);
})]);
return $7;
})]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_search_",
smalltalk.method({
selector: "search:",
fn: function (aString){
var self=this;
var $1;
var searchedClass;
searchedClass=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[aString]);
$1=smalltalk.send(searchedClass,"_isClass",[]);
if(smalltalk.assert($1)){
smalltalk.send((smalltalk.Browser || Browser),"_openOn_",[searchedClass]);
} else {
smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser),"_search_",[aString]);
};
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_selectTab_",
smalltalk.method({
selector: "selectTab:",
fn: function (aWidget){
var self=this;
smalltalk.send(self,"_open",[]);
self["@selectedTab"]=aWidget;
smalltalk.send(smalltalk.send(self,"_tabs",[]),"_do_",[(function(each){
return smalltalk.send(each,"_hide",[]);
})]);
smalltalk.send(aWidget,"_show",[]);
smalltalk.send(self,"_update",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_setBodyMargin_",
smalltalk.method({
selector: "setBodyMargin:",
fn: function (anInteger){
var self=this;
smalltalk.send(smalltalk.send(".amberBody","_asJQuery",[]),"_css_put_",["margin-bottom",smalltalk.send(smalltalk.send(anInteger,"_asString",[]),"__comma",["px"])]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_tabs",
smalltalk.method({
selector: "tabs",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@tabs"]) == nil || $receiver == undefined){
self["@tabs"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@tabs"];
} else {
$1=self["@tabs"];
};
return $1;
}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_update",
smalltalk.method({
selector: "update",
fn: function (){
var self=this;
smalltalk.send(self,"_renderTabs",[]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_updateBodyMargin",
smalltalk.method({
selector: "updateBodyMargin",
fn: function (){
var self=this;
smalltalk.send(self,"_setBodyMargin_",[smalltalk.send(smalltalk.send("#amber","_asJQuery",[]),"_height",[])]);
return self}
}),
smalltalk.TabManager);

smalltalk.addMethod(
"_updatePosition",
smalltalk.method({
selector: "updatePosition",
fn: function (){
var self=this;
jQuery('#amber').css('top', '').css('bottom', '0px');
;
return self}
}),
smalltalk.TabManager);


smalltalk.TabManager.klass.iVarNames = ['current'];
smalltalk.addMethod(
"_current",
smalltalk.method({
selector: "current",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@current"]) == nil || $receiver == undefined){
self["@current"]=smalltalk.send(self,"_new",[],smalltalk.Widget.klass);
$1=self["@current"];
} else {
$1=self["@current"];
};
return $1;
}
}),
smalltalk.TabManager.klass);

smalltalk.addMethod(
"_new",
smalltalk.method({
selector: "new",
fn: function (){
var self=this;
smalltalk.send(self,"_shouldNotImplement",[]);
return self}
}),
smalltalk.TabManager.klass);


smalltalk.addClass('TabWidget', smalltalk.Widget, ['div'], 'IDE');
smalltalk.addMethod(
"_canBeClosed",
smalltalk.method({
selector: "canBeClosed",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_close",
smalltalk.method({
selector: "close",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager),"_current",[]),"_closeTab_",[self]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_hide",
smalltalk.method({
selector: "hide",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@div"],"_asJQuery",[]),"_hide",[]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
smalltalk.send(self,"_subclassResponsibility",[]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_open",
smalltalk.method({
selector: "open",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager),"_current",[]),"_addTab_",[self]);
smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager),"_current",[]),"_selectTab_",[self]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_remove",
smalltalk.method({
selector: "remove",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@div"],"_asJQuery",[]),"_remove",[]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_renderOn_",
smalltalk.method({
selector: "renderOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["amberTool"]);
$2=smalltalk.send($1,"_yourself",[]);
self["@div"]=$2;
smalltalk.send(self,"_renderTab",[]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_renderTab",
smalltalk.method({
selector: "renderTab",
fn: function (){
var self=this;
var $1,$2,$3,$4;
smalltalk.send(self["@div"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["amber_box"]);
$2=smalltalk.send($1,"_with_",[(function(){
return smalltalk.send(self,"_renderBoxOn_",[html]);
})]);
$2;
$3=smalltalk.send(html,"_div",[]);
smalltalk.send($3,"_class_",["amber_buttons"]);
$4=smalltalk.send($3,"_with_",[(function(){
return smalltalk.send(self,"_renderButtonsOn_",[html]);
})]);
return $4;
})]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_show",
smalltalk.method({
selector: "show",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@div"],"_asJQuery",[]),"_show",[]);
return self}
}),
smalltalk.TabWidget);

smalltalk.addMethod(
"_update",
smalltalk.method({
selector: "update",
fn: function (){
var self=this;
smalltalk.send(self,"_renderTab",[]);
return self}
}),
smalltalk.TabWidget);


smalltalk.addMethod(
"_open",
smalltalk.method({
selector: "open",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_new",[]),"_open",[]);
return $1;
}
}),
smalltalk.TabWidget.klass);


smalltalk.addClass('Browser', smalltalk.TabWidget, ['selectedPackage', 'selectedClass', 'selectedProtocol', 'selectedMethod', 'packagesList', 'classesList', 'protocolsList', 'methodsList', 'sourceArea', 'tabsList', 'selectedTab', 'saveButton', 'classButtons', 'methodButtons', 'unsavedChanges'], 'IDE');
smalltalk.addMethod(
"_addInstanceVariableNamed_toClass_",
smalltalk.method({
selector: "addInstanceVariableNamed:toClass:",
fn: function (aString,aClass){
var self=this;
var $1,$2;
$1=smalltalk.send(smalltalk.send(aClass,"_instanceVariableNames",[]),"_copy",[]);
smalltalk.send($1,"_add_",[aString]);
$2=smalltalk.send($1,"_yourself",[]);
smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder),"_new",[]),"_addSubclassOf_named_instanceVariableNames_package_",[smalltalk.send(aClass,"_superclass",[]),smalltalk.send(aClass,"_name",[]),$2,smalltalk.send(smalltalk.send(aClass,"_package",[]),"_name",[])]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_addNewClass",
smalltalk.method({
selector: "addNewClass",
fn: function (){
var self=this;
var $1,$2;
var className;
className=smalltalk.send(window,"_prompt_",["New class"]);
$1=smalltalk.send(smalltalk.send(className,"_notNil",[]),"_and_",[(function(){
return smalltalk.send(className,"_notEmpty",[]);
})]);
if(smalltalk.assert($1)){
smalltalk.send((smalltalk.Object || Object),"_subclass_instanceVariableNames_package_",[className,"",smalltalk.send(self,"_selectedPackage",[])]);
smalltalk.send(self,"_resetClassesList",[]);
$2=smalltalk.send(self,"_updateClassesList",[]);
$2;
smalltalk.send(self,"_selectClass_",[smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[className])]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_addNewProtocol",
smalltalk.method({
selector: "addNewProtocol",
fn: function (){
var self=this;
var $1;
var newProtocol;
newProtocol=smalltalk.send(window,"_prompt_",["New method protocol"]);
$1=smalltalk.send(smalltalk.send(newProtocol,"_notNil",[]),"_and_",[(function(){
return smalltalk.send(newProtocol,"_notEmpty",[]);
})]);
if(smalltalk.assert($1)){
smalltalk.send(self["@selectedMethod"],"_category_",[newProtocol]);
smalltalk.send(self,"_setMethodProtocol_",[newProtocol]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_ajaxPutAt_data_",
smalltalk.method({
selector: "ajaxPutAt:data:",
fn: function (anURL,aString){
var self=this;
smalltalk.send(jQuery,"_ajax_options_",[anURL,smalltalk.HashedCollection._fromPairs_([smalltalk.send("type","__minus_gt",["PUT"]),smalltalk.send("data","__minus_gt",[aString]),smalltalk.send("contentType","__minus_gt",["text/plain;charset=UTF-8"]),smalltalk.send("error","__minus_gt",[(function(){
return smalltalk.send(window,"_alert_",[smalltalk.send("PUT request failed at:  ","__comma",[anURL])]);
})])])]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_canBeClosed",
smalltalk.method({
selector: "canBeClosed",
fn: function (){
var self=this;
return true;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_cancelChanges",
smalltalk.method({
selector: "cancelChanges",
fn: function (){
var self=this;
var $1;
if(smalltalk.assert(self["@unsavedChanges"])){
$1=smalltalk.send(window,"_confirm_",["Cancel changes?"]);
} else {
$1=true;
};
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_classCommentSource",
smalltalk.method({
selector: "classCommentSource",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self["@selectedClass"],"_comment",[]);
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_classDeclarationSource",
smalltalk.method({
selector: "classDeclarationSource",
fn: function (){
var self=this;
var $1,$2,$3,$4;
var stream;
stream=smalltalk.send("","_writeStream",[]);
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
$1=smalltalk.send(self,"_classDeclarationTemplate",[]);
return $1;
} else {
self["@selectedClass"];
};
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(smalltalk.send(self["@selectedClass"],"_superclass",[]),"_asString",[])]);
smalltalk.send(stream,"_nextPutAll_",[" subclass: #"]);
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(self["@selectedClass"],"_name",[])]);
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(smalltalk.send((smalltalk.String || String),"_lf",[]),"__comma",[smalltalk.send((smalltalk.String || String),"_tab",[])])]);
$2=smalltalk.send(stream,"_nextPutAll_",["instanceVariableNames: '"]);
smalltalk.send(smalltalk.send(self["@selectedClass"],"_instanceVariableNames",[]),"_do_separatedBy_",[(function(each){
return smalltalk.send(stream,"_nextPutAll_",[each]);
}),(function(){
return smalltalk.send(stream,"_nextPutAll_",[" "]);
})]);
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(smalltalk.send("'","__comma",[smalltalk.send((smalltalk.String || String),"_lf",[])]),"__comma",[smalltalk.send((smalltalk.String || String),"_tab",[])])]);
smalltalk.send(stream,"_nextPutAll_",["package: '"]);
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(self["@selectedClass"],"_category",[])]);
$3=smalltalk.send(stream,"_nextPutAll_",["'"]);
$4=smalltalk.send(stream,"_contents",[]);
return $4;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_classDeclarationTemplate",
smalltalk.method({
selector: "classDeclarationTemplate",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send("Object subclass: #NameOfSubclass\x0a\x09instanceVariableNames: ''\x0a\x09package: '","__comma",[smalltalk.send(self,"_selectedPackage",[])]),"__comma",["'"]);
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_classes",
smalltalk.method({
selector: "classes",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"_select_",[(function(each){
return smalltalk.send(smalltalk.send(each,"_category",[]),"__eq",[self["@selectedPackage"]]);
})]),"_sort_",[(function(a,b){
return smalltalk.send(smalltalk.send(a,"_name",[]),"__lt",[smalltalk.send(b,"_name",[])]);
})]),"_asSet",[]);
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_commitPackage",
smalltalk.method({
selector: "commitPackage",
fn: function (){
var self=this;
if(($receiver = self["@selectedPackage"]) == nil || $receiver == undefined){
self["@selectedPackage"];
} else {
var package;
package=smalltalk.send((smalltalk.Package || Package),"_named_",[self["@selectedPackage"]]);
package;
smalltalk.send([smalltalk.send((smalltalk.Exporter || Exporter),"__minus_gt",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(package,"_commitPathJs",[]),"__comma",["/"]),"__comma",[self["@selectedPackage"]]),"__comma",[".js"])]),smalltalk.send((smalltalk.StrippedExporter || StrippedExporter),"__minus_gt",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(package,"_commitPathJs",[]),"__comma",["/"]),"__comma",[self["@selectedPackage"]]),"__comma",[".deploy.js"])]),smalltalk.send((smalltalk.ChunkExporter || ChunkExporter),"__minus_gt",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(package,"_commitPathSt",[]),"__comma",["/"]),"__comma",[self["@selectedPackage"]]),"__comma",[".st"])])],"_do_",[(function(commitStrategy){
var fileContents;
fileContents=smalltalk.send(smalltalk.send(smalltalk.send(commitStrategy,"_key",[]),"_new",[]),"_exportPackage_",[self["@selectedPackage"]]);
fileContents;
return smalltalk.send(self,"_ajaxPutAt_data_",[smalltalk.send(commitStrategy,"_value",[]),fileContents]);
})]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_compile",
smalltalk.method({
selector: "compile",
fn: function (){
var self=this;
var $1,$2;
var currentEditLine;
smalltalk.send(self,"_disableSaveButton",[]);
currentEditLine=smalltalk.send(smalltalk.send(self["@sourceArea"],"_editor",[]),"_getCursor",[]);
$1=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("comment")]);
if(smalltalk.assert($1)){
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
self["@selectedClass"];
} else {
smalltalk.send(self,"_compileClassComment",[]);
};
} else {
$2=smalltalk.send(smalltalk.send(self["@selectedProtocol"],"_notNil",[]),"_or_",[(function(){
return smalltalk.send(self["@selectedMethod"],"_notNil",[]);
})]);
if(smalltalk.assert($2)){
smalltalk.send(self,"_compileMethodDefinition",[]);
} else {
smalltalk.send(self,"_compileDefinition",[]);
};
};
smalltalk.send(smalltalk.send(self["@sourceArea"],"_editor",[]),"_setCursor_",[currentEditLine]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_compileClassComment",
smalltalk.method({
selector: "compileClassComment",
fn: function (){
var self=this;
smalltalk.send(self["@selectedClass"],"_comment_",[smalltalk.send(self["@sourceArea"],"_val",[])]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_compileDefinition",
smalltalk.method({
selector: "compileDefinition",
fn: function (){
var self=this;
var $1;
var newClass;
newClass=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler),"_new",[]),"_evaluateExpression_",[smalltalk.send(self["@sourceArea"],"_val",[])]);
smalltalk.send(self,"_resetClassesList",[]);
smalltalk.send(self,"_updateCategoriesList",[]);
$1=smalltalk.send(self,"_updateClassesList",[]);
smalltalk.send(self,"_selectClass_",[newClass]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_compileMethodDefinition",
smalltalk.method({
selector: "compileMethodDefinition",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("instance")]);
if(smalltalk.assert($1)){
smalltalk.send(self,"_compileMethodDefinitionFor_",[self["@selectedClass"]]);
} else {
smalltalk.send(self,"_compileMethodDefinitionFor_",[smalltalk.send(self["@selectedClass"],"_class",[])]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_compileMethodDefinitionFor_",
smalltalk.method({
selector: "compileMethodDefinitionFor:",
fn: function (aClass){
var self=this;
var $1,$2,$3,$4,$5;
var $early={};
try {
var compiler;
var method;
var source;
var node;
source=smalltalk.send(self["@sourceArea"],"_val",[]);
if(($receiver = self["@selectedProtocol"]) == nil || $receiver == undefined){
self["@selectedProtocol"]=smalltalk.send(self["@selectedMethod"],"_category",[]);
self["@selectedProtocol"];
} else {
self["@selectedProtocol"];
};
compiler=smalltalk.send((smalltalk.Compiler || Compiler),"_new",[]);
smalltalk.send(compiler,"_source_",[source]);
node=smalltalk.send(compiler,"_parse_",[source]);
$1=smalltalk.send(node,"_isParseFailure",[]);
if(smalltalk.assert($1)){
$2=smalltalk.send(window,"_alert_",[smalltalk.send(smalltalk.send(smalltalk.send("PARSE ERROR: ","__comma",[smalltalk.send(node,"_reason",[])]),"__comma",[", position: "]),"__comma",[smalltalk.send(smalltalk.send(node,"_position",[]),"_asString",[])])]);
return $2;
};
smalltalk.send(compiler,"_currentClass_",[aClass]);
method=smalltalk.send(compiler,"_eval_",[smalltalk.send(compiler,"_compileNode_",[node])]);
smalltalk.send(method,"_category_",[self["@selectedProtocol"]]);
smalltalk.send(smalltalk.send(compiler,"_unknownVariables",[]),"_do_",[(function(each){
$3=smalltalk.send(window,"_at_",[each]);
if(($receiver = $3) == nil || $receiver == undefined){
$4=smalltalk.send(window,"_confirm_",[smalltalk.send(smalltalk.send("Declare '","__comma",[each]),"__comma",["' as instance variable?"])]);
if(smalltalk.assert($4)){
smalltalk.send(self,"_addInstanceVariableNamed_toClass_",[each,aClass]);
$5=smalltalk.send(self,"_compileMethodDefinitionFor_",[aClass]);
throw $early=[$5];
};
} else {
return $3;
};
})]);
smalltalk.send(aClass,"_addCompiledMethod_",[method]);
smalltalk.send(compiler,"_setupClass_",[aClass]);
smalltalk.send(self,"_updateMethodsList",[]);
smalltalk.send(self,"_selectMethod_",[method]);
return self}
catch(e) {if(e===$early)return e[0]; throw e}
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_copyClass",
smalltalk.method({
selector: "copyClass",
fn: function (){
var self=this;
var $1,$2;
var className;
className=smalltalk.send(window,"_prompt_",["Copy class"]);
$1=smalltalk.send(smalltalk.send(className,"_notNil",[]),"_and_",[(function(){
return smalltalk.send(className,"_notEmpty",[]);
})]);
if(smalltalk.assert($1)){
smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder),"_new",[]),"_copyClass_named_",[smalltalk.send(self,"_selectedClass",[]),className]);
smalltalk.send(self,"_resetClassesList",[]);
$2=smalltalk.send(self,"_updateClassesList",[]);
$2;
smalltalk.send(self,"_selectClass_",[smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[className])]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_declarationSource",
smalltalk.method({
selector: "declarationSource",
fn: function (){
var self=this;
var $2,$1;
$2=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("instance")]);
if(smalltalk.assert($2)){
$1=smalltalk.send(self,"_classDeclarationSource",[]);
} else {
$1=smalltalk.send(self,"_metaclassDeclarationSource",[]);
};
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_disableSaveButton",
smalltalk.method({
selector: "disableSaveButton",
fn: function (){
var self=this;
if(($receiver = self["@saveButton"]) == nil || $receiver == undefined){
self["@saveButton"];
} else {
smalltalk.send(self["@saveButton"],"_at_put_",["disabled",true]);
};
self["@unsavedChanges"]=false;
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_dummyMethodSource",
smalltalk.method({
selector: "dummyMethodSource",
fn: function (){
var self=this;
return "messageSelectorAndArgumentNames\x0a\x09\x22comment stating purpose of message\x22\x0a\x0a\x09| temporary variable names |\x0a\x09statements";
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_handleSourceAreaKeyDown_",
smalltalk.method({
selector: "handleSourceAreaKeyDown:",
fn: function (anEvent){
var self=this;
if(anEvent.ctrlKey) {
		if(anEvent.keyCode === 83) { //ctrl+s
			self._compile();
			anEvent.preventDefault();
			return false;
		}
	}
	;
;
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_hideClassButtons",
smalltalk.method({
selector: "hideClassButtons",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@classButtons"],"_asJQuery",[]),"_hide",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_hideMethodButtons",
smalltalk.method({
selector: "hideMethodButtons",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@methodButtons"],"_asJQuery",[]),"_hide",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
smalltalk.send(self,"_initialize",[],smalltalk.TabWidget);
self["@selectedTab"]=smalltalk.symbolFor("instance");
self["@selectedPackage"]=smalltalk.send(smalltalk.send(self,"_packages",[]),"_first",[]);
self["@unsavedChanges"]=false;
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
$1="Browser (nil)";
} else {
$1=smalltalk.send("Browser: ","__comma",[smalltalk.send(self["@selectedClass"],"_name",[])]);
};
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_metaclassDeclarationSource",
smalltalk.method({
selector: "metaclassDeclarationSource",
fn: function (){
var self=this;
var $1,$2;
var stream;
stream=smalltalk.send("","_writeStream",[]);
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
self["@selectedClass"];
} else {
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(self["@selectedClass"],"_asString",[])]);
smalltalk.send(stream,"_nextPutAll_",[" class "]);
$1=smalltalk.send(stream,"_nextPutAll_",["instanceVariableNames: '"]);
$1;
smalltalk.send(smalltalk.send(smalltalk.send(self["@selectedClass"],"_class",[]),"_instanceVariableNames",[]),"_do_separatedBy_",[(function(each){
return smalltalk.send(stream,"_nextPutAll_",[each]);
}),(function(){
return smalltalk.send(stream,"_nextPutAll_",[" "]);
})]);
smalltalk.send(stream,"_nextPutAll_",["'"]);
};
$2=smalltalk.send(stream,"_contents",[]);
return $2;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_methodSource",
smalltalk.method({
selector: "methodSource",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@selectedMethod"]) == nil || $receiver == undefined){
$1=smalltalk.send(self,"_dummyMethodSource",[]);
} else {
$1=smalltalk.send(self["@selectedMethod"],"_source",[]);
};
return $1;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_methods",
smalltalk.method({
selector: "methods",
fn: function (){
var self=this;
var $1,$2,$4,$3;
var klass;
$1=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("comment")]);
if(smalltalk.assert($1)){
return [];
};
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
self["@selectedClass"];
} else {
$2=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("instance")]);
if(smalltalk.assert($2)){
klass=self["@selectedClass"];
} else {
klass=smalltalk.send(self["@selectedClass"],"_class",[]);
};
klass;
};
if(($receiver = self["@selectedProtocol"]) == nil || $receiver == undefined){
if(($receiver = klass) == nil || $receiver == undefined){
$4=[];
} else {
$4=smalltalk.send(smalltalk.send(klass,"_methodDictionary",[]),"_values",[]);
};
} else {
$4=smalltalk.send(smalltalk.send(smalltalk.send(klass,"_methodDictionary",[]),"_values",[]),"_select_",[(function(each){
return smalltalk.send(smalltalk.send(each,"_category",[]),"__eq",[self["@selectedProtocol"]]);
})]);
};
$3=smalltalk.send($4,"_sort_",[(function(a,b){
return smalltalk.send(smalltalk.send(a,"_selector",[]),"__lt",[smalltalk.send(b,"_selector",[])]);
})]);
return $3;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_packages",
smalltalk.method({
selector: "packages",
fn: function (){
var self=this;
var $1,$2;
var packages;
packages=smalltalk.send((smalltalk.Array || Array),"_new",[]);
smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"_do_",[(function(each){
$1=smalltalk.send(packages,"_includes_",[smalltalk.send(each,"_category",[])]);
if(! smalltalk.assert($1)){
return smalltalk.send(packages,"_add_",[smalltalk.send(each,"_category",[])]);
};
})]);
$2=smalltalk.send(packages,"_sort",[]);
return $2;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_protocols",
smalltalk.method({
selector: "protocols",
fn: function (){
var self=this;
var $1,$2,$3,$4,$5,$6;
var klass;
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
self["@selectedClass"];
} else {
$1=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("comment")]);
if(smalltalk.assert($1)){
return [];
};
$2=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("instance")]);
if(smalltalk.assert($2)){
klass=self["@selectedClass"];
} else {
klass=smalltalk.send(self["@selectedClass"],"_class",[]);
};
klass;
$3=smalltalk.send(smalltalk.send(klass,"_methodDictionary",[]),"_isEmpty",[]);
if(smalltalk.assert($3)){
$4=smalltalk.send((smalltalk.Array || Array),"_with_",["not yet classified"]);
return $4;
};
$5=smalltalk.send(klass,"_protocols",[]);
return $5;
};
$6=smalltalk.send((smalltalk.Array || Array),"_new",[]);
return $6;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_removeClass",
smalltalk.method({
selector: "removeClass",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(window,"_confirm_",[smalltalk.send(smalltalk.send("Do you really want to remove ","__comma",[smalltalk.send(self["@selectedClass"],"_name",[])]),"__comma",["?"])]);
if(smalltalk.assert($1)){
smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_removeClass_",[self["@selectedClass"]]);
smalltalk.send(self,"_resetClassesList",[]);
smalltalk.send(self,"_selectClass_",[nil]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_removeMethod",
smalltalk.method({
selector: "removeMethod",
fn: function (){
var self=this;
var $1,$2,$3;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
$2=smalltalk.send(window,"_confirm_",[smalltalk.send(smalltalk.send("Do you really want to remove #","__comma",[smalltalk.send(self["@selectedMethod"],"_selector",[])]),"__comma",["?"])]);
if(smalltalk.assert($2)){
$3=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("instance")]);
if(smalltalk.assert($3)){
smalltalk.send(self["@selectedClass"],"_removeCompiledMethod_",[self["@selectedMethod"]]);
} else {
smalltalk.send(smalltalk.send(self["@selectedClass"],"_class",[]),"_removeCompiledMethod_",[self["@selectedMethod"]]);
};
smalltalk.send(self,"_selectMethod_",[nil]);
};
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_removePackage",
smalltalk.method({
selector: "removePackage",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(window,"_confirm_",[smalltalk.send(smalltalk.send("Do you really want to remove the whole package ","__comma",[self["@selectedPackage"]]),"__comma",[" with all its classes?"])]);
if(smalltalk.assert($1)){
smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_removePackage_",[self["@selectedPackage"]]);
smalltalk.send(self,"_updateCategoriesList",[]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renameClass",
smalltalk.method({
selector: "renameClass",
fn: function (){
var self=this;
var $1,$2;
var newName;
newName=smalltalk.send(window,"_prompt_",[smalltalk.send("Rename class ","__comma",[smalltalk.send(self["@selectedClass"],"_name",[])])]);
$1=smalltalk.send(smalltalk.send(newName,"_notNil",[]),"_and_",[(function(){
return smalltalk.send(newName,"_notEmpty",[]);
})]);
if(smalltalk.assert($1)){
smalltalk.send(self["@selectedClass"],"_rename_",[newName]);
smalltalk.send(self,"_updateClassesList",[]);
$2=smalltalk.send(self,"_updateSourceAndButtons",[]);
$2;
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renamePackage",
smalltalk.method({
selector: "renamePackage",
fn: function (){
var self=this;
var $1;
var newName;
newName=smalltalk.send(window,"_prompt_",[smalltalk.send("Rename package ","__comma",[self["@selectedPackage"]])]);
if(($receiver = newName) == nil || $receiver == undefined){
newName;
} else {
$1=smalltalk.send(newName,"_notEmpty",[]);
if(smalltalk.assert($1)){
smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_renamePackage_to_",[self["@selectedPackage"],newName]);
smalltalk.send(self,"_updateCategoriesList",[]);
};
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renderBottomPanelOn_",
smalltalk.method({
selector: "renderBottomPanelOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["amber_sourceCode"]);
$2=smalltalk.send($1,"_with_",[(function(){
self["@sourceArea"]=smalltalk.send((smalltalk.SourceArea || SourceArea),"_new",[]);
self["@sourceArea"];
smalltalk.send(self["@sourceArea"],"_renderOn_",[html]);
smalltalk.send(self["@sourceArea"],"_onKeyDown_",[(function(e){
return smalltalk.send(self,"_handleSourceAreaKeyDown_",[e]);
})]);
return smalltalk.send(self["@sourceArea"],"_onKeyUp_",[(function(){
return smalltalk.send(self,"_updateStatus",[]);
})]);
})]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
var $1;
smalltalk.send(self,"_renderTopPanelOn_",[html]);
smalltalk.send(self,"_renderTabsOn_",[html]);
$1=smalltalk.send(self,"_renderBottomPanelOn_",[html]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
var $1,$2,$4,$5,$6,$7,$8,$9,$3;
self["@saveButton"]=smalltalk.send(html,"_button",[]);
smalltalk.send(self["@saveButton"],"_with_",["Save"]);
$1=smalltalk.send(self["@saveButton"],"_onClick_",[(function(){
return smalltalk.send(self,"_compile",[]);
})]);
self["@methodButtons"]=smalltalk.send(html,"_span",[]);
self["@classButtons"]=smalltalk.send(html,"_span",[]);
$2=smalltalk.send(html,"_div",[]);
smalltalk.send($2,"_class_",["right"]);
$3=smalltalk.send($2,"_with_",[(function(){
$4=smalltalk.send(html,"_button",[]);
smalltalk.send($4,"_with_",["DoIt"]);
$5=smalltalk.send($4,"_onClick_",[(function(){
return smalltalk.send(self["@sourceArea"],"_doIt",[]);
})]);
$5;
$6=smalltalk.send(html,"_button",[]);
smalltalk.send($6,"_with_",["PrintIt"]);
$7=smalltalk.send($6,"_onClick_",[(function(){
return smalltalk.send(self["@sourceArea"],"_printIt",[]);
})]);
$7;
$8=smalltalk.send(html,"_button",[]);
smalltalk.send($8,"_with_",["InspectIt"]);
$9=smalltalk.send($8,"_onClick_",[(function(){
return smalltalk.send(self["@sourceArea"],"_inspectIt",[]);
})]);
return $9;
})]);
smalltalk.send(self,"_updateSourceAndButtons",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renderTabsOn_",
smalltalk.method({
selector: "renderTabsOn:",
fn: function (html){
var self=this;
self["@tabsList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_tabs amber_browser"]);
smalltalk.send(self,"_updateTabsList",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_renderTopPanelOn_",
smalltalk.method({
selector: "renderTopPanelOn:",
fn: function (html){
var self=this;
var $1,$3,$5,$6,$7,$8,$9,$10,$4,$11,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["top"]);
$2=smalltalk.send($1,"_with_",[(function(){
self["@packagesList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column browser packages"]);
self["@packagesList"];
$3=smalltalk.send(html,"_div",[]);
smalltalk.send($3,"_class_",["amber_packagesButtons"]);
$4=smalltalk.send($3,"_with_",[(function(){
$5=smalltalk.send(html,"_button",[]);
smalltalk.send($5,"_title_",["Commit classes in this package to disk"]);
smalltalk.send($5,"_onClick_",[(function(){
return smalltalk.send(self,"_commitPackage",[]);
})]);
$6=smalltalk.send($5,"_with_",["Commit"]);
$6;
$7=smalltalk.send(html,"_button",[]);
smalltalk.send($7,"_title_",["Rename package"]);
smalltalk.send($7,"_onClick_",[(function(){
return smalltalk.send(self,"_renamePackage",[]);
})]);
$8=smalltalk.send($7,"_with_",["Rename"]);
$8;
$9=smalltalk.send(html,"_button",[]);
smalltalk.send($9,"_title_",["Remove this package from the system"]);
smalltalk.send($9,"_onClick_",[(function(){
return smalltalk.send(self,"_removePackage",[]);
})]);
$10=smalltalk.send($9,"_with_",["Remove"]);
return $10;
})]);
$4;
self["@classesList"]=smalltalk.send((smalltalk.ClassesList || ClassesList),"_on_",[self]);
self["@classesList"];
smalltalk.send(self["@classesList"],"_renderOn_",[html]);
self["@protocolsList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column browser protocols"]);
self["@protocolsList"];
self["@methodsList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column browser methods"]);
self["@methodsList"];
smalltalk.send(self,"_updateCategoriesList",[]);
smalltalk.send(self,"_updateClassesList",[]);
smalltalk.send(self,"_updateProtocolsList",[]);
$11=smalltalk.send(self,"_updateMethodsList",[]);
$11;
return smalltalk.send(smalltalk.send(html,"_div",[]),"_class_",["amber_clear"]);
})]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_resetClassesList",
smalltalk.method({
selector: "resetClassesList",
fn: function (){
var self=this;
smalltalk.send(self["@classesList"],"_resetNodes",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_search_",
smalltalk.method({
selector: "search:",
fn: function (aString){
var self=this;
var $1,$2;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
var searchedClass;
searchedClass=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[aString]);
searchedClass;
$2=smalltalk.send(searchedClass,"_isClass",[]);
if(smalltalk.assert($2)){
smalltalk.send(smalltalk.send(self,"_class",[]),"_openOn_",[searchedClass]);
} else {
smalltalk.send(self,"_searchReferencesOf_",[aString]);
};
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_searchClassReferences",
smalltalk.method({
selector: "searchClassReferences",
fn: function (){
var self=this;
smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser),"_search_",[smalltalk.send(self["@selectedClass"],"_name",[])]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_searchReferencesOf_",
smalltalk.method({
selector: "searchReferencesOf:",
fn: function (aString){
var self=this;
smalltalk.send((smalltalk.ReferencesBrowser || ReferencesBrowser),"_search_",[aString]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectCategory_",
smalltalk.method({
selector: "selectCategory:",
fn: function (aCategory){
var self=this;
var $1,$2;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
self["@selectedPackage"]=aCategory;
self["@selectedPackage"];
self["@selectedMethod"]=nil;
self["@selectedProtocol"]=self["@selectedMethod"];
self["@selectedClass"]=self["@selectedProtocol"];
self["@selectedClass"];
smalltalk.send(self,"_resetClassesList",[]);
smalltalk.send(self,"_updateCategoriesList",[]);
smalltalk.send(self,"_updateClassesList",[]);
smalltalk.send(self,"_updateProtocolsList",[]);
smalltalk.send(self,"_updateMethodsList",[]);
$2=smalltalk.send(self,"_updateSourceAndButtons",[]);
$2;
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectClass_",
smalltalk.method({
selector: "selectClass:",
fn: function (aClass){
var self=this;
var $1,$2;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
self["@selectedClass"]=aClass;
self["@selectedClass"];
self["@selectedMethod"]=nil;
self["@selectedProtocol"]=self["@selectedMethod"];
self["@selectedProtocol"];
smalltalk.send(self,"_updateClassesList",[]);
smalltalk.send(self,"_updateProtocolsList",[]);
smalltalk.send(self,"_updateMethodsList",[]);
$2=smalltalk.send(self,"_updateSourceAndButtons",[]);
$2;
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectMethod_",
smalltalk.method({
selector: "selectMethod:",
fn: function (aMethod){
var self=this;
var $1,$2;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
self["@selectedMethod"]=aMethod;
self["@selectedMethod"];
smalltalk.send(self,"_updateProtocolsList",[]);
smalltalk.send(self,"_updateMethodsList",[]);
$2=smalltalk.send(self,"_updateSourceAndButtons",[]);
$2;
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectProtocol_",
smalltalk.method({
selector: "selectProtocol:",
fn: function (aString){
var self=this;
var $1,$2;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
self["@selectedProtocol"]=aString;
self["@selectedProtocol"];
self["@selectedMethod"]=nil;
self["@selectedMethod"];
smalltalk.send(self,"_updateProtocolsList",[]);
smalltalk.send(self,"_updateMethodsList",[]);
$2=smalltalk.send(self,"_updateSourceAndButtons",[]);
$2;
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectTab_",
smalltalk.method({
selector: "selectTab:",
fn: function (aString){
var self=this;
var $1;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
self["@selectedTab"]=aString;
self["@selectedTab"];
smalltalk.send(self,"_selectProtocol_",[nil]);
smalltalk.send(self,"_updateTabsList",[]);
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectedClass",
smalltalk.method({
selector: "selectedClass",
fn: function (){
var self=this;
return self["@selectedClass"];
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_selectedPackage",
smalltalk.method({
selector: "selectedPackage",
fn: function (){
var self=this;
return self["@selectedPackage"];
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_setMethodProtocol_",
smalltalk.method({
selector: "setMethodProtocol:",
fn: function (aString){
var self=this;
var $1,$2,$3;
$1=smalltalk.send(self,"_cancelChanges",[]);
if(smalltalk.assert($1)){
$2=smalltalk.send(smalltalk.send(self,"_protocols",[]),"_includes_",[aString]);
if(smalltalk.assert($2)){
smalltalk.send(self["@selectedMethod"],"_category_",[aString]);
self["@selectedProtocol"]=aString;
self["@selectedProtocol"];
self["@selectedMethod"]=self["@selectedMethod"];
self["@selectedMethod"];
smalltalk.send(self,"_updateProtocolsList",[]);
smalltalk.send(self,"_updateMethodsList",[]);
$3=smalltalk.send(self,"_updateSourceAndButtons",[]);
$3;
} else {
smalltalk.send(self,"_addNewProtocol",[]);
};
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_showClassButtons",
smalltalk.method({
selector: "showClassButtons",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@classButtons"],"_asJQuery",[]),"_show",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_showMethodButtons",
smalltalk.method({
selector: "showMethodButtons",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@methodButtons"],"_asJQuery",[]),"_show",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_source",
smalltalk.method({
selector: "source",
fn: function (){
var self=this;
var $1,$3,$2,$4;
$1=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("comment")]);
if(! smalltalk.assert($1)){
$3=smalltalk.send(smalltalk.send(self["@selectedProtocol"],"_notNil",[]),"_or_",[(function(){
return smalltalk.send(self["@selectedMethod"],"_notNil",[]);
})]);
if(smalltalk.assert($3)){
$2=smalltalk.send(self,"_methodSource",[]);
} else {
$2=smalltalk.send(self,"_declarationSource",[]);
};
return $2;
};
if(($receiver = self["@selectedClass"]) == nil || $receiver == undefined){
$4="";
} else {
$4=smalltalk.send(self,"_classCommentSource",[]);
};
return $4;
}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateCategoriesList",
smalltalk.method({
selector: "updateCategoriesList",
fn: function (){
var self=this;
var $1,$2,$3;
smalltalk.send(self["@packagesList"],"_contents_",[(function(html){
return smalltalk.send(smalltalk.send(self,"_packages",[]),"_do_",[(function(each){
var li;
var label;
$1=smalltalk.send(each,"_isEmpty",[]);
if(smalltalk.assert($1)){
label="Unclassified";
label;
} else {
label=each;
label;
};
li=smalltalk.send(html,"_li",[]);
li;
$2=smalltalk.send(self["@selectedPackage"],"__eq",[each]);
if(smalltalk.assert($2)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[label]);
$3=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectCategory_",[each]);
})]);
return $3;
})]);
})]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateClassesList",
smalltalk.method({
selector: "updateClassesList",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send((smalltalk.TabManager || TabManager),"_current",[]),"_update",[]);
smalltalk.send(self["@classesList"],"_updateNodes",[]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateMethodsList",
smalltalk.method({
selector: "updateMethodsList",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(self["@methodsList"],"_contents_",[(function(html){
return smalltalk.send(smalltalk.send(self,"_methods",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
$1=smalltalk.send(self["@selectedMethod"],"__eq",[each]);
if(smalltalk.assert($1)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[smalltalk.send(each,"_selector",[])]);
$2=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectMethod_",[each]);
})]);
return $2;
})]);
})]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateProtocolsList",
smalltalk.method({
selector: "updateProtocolsList",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(self["@protocolsList"],"_contents_",[(function(html){
return smalltalk.send(smalltalk.send(self,"_protocols",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
$1=smalltalk.send(self["@selectedProtocol"],"__eq",[each]);
if(smalltalk.assert($1)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[each]);
$2=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectProtocol_",[each]);
})]);
return $2;
})]);
})]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateSourceAndButtons",
smalltalk.method({
selector: "updateSourceAndButtons",
fn: function (){
var self=this;
var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$14,$15,$16,$17,$18,$13,$19,$21,$22,$23,$24,$20,$25,$26;
smalltalk.send(self,"_disableSaveButton",[]);
smalltalk.send(self["@classButtons"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_button",[]);
smalltalk.send($1,"_title_",["Create a new class"]);
smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_addNewClass",[]);
})]);
$2=smalltalk.send($1,"_with_",["New class"]);
$2;
$3=smalltalk.send(html,"_button",[]);
smalltalk.send($3,"_with_",["Rename class"]);
$4=smalltalk.send($3,"_onClick_",[(function(){
return smalltalk.send(self,"_renameClass",[]);
})]);
$4;
$5=smalltalk.send(html,"_button",[]);
smalltalk.send($5,"_with_",["Copy class"]);
$6=smalltalk.send($5,"_onClick_",[(function(){
return smalltalk.send(self,"_copyClass",[]);
})]);
$6;
$7=smalltalk.send(html,"_button",[]);
smalltalk.send($7,"_with_",["Remove class"]);
$8=smalltalk.send($7,"_onClick_",[(function(){
return smalltalk.send(self,"_removeClass",[]);
})]);
$8;
$9=smalltalk.send(html,"_button",[]);
smalltalk.send($9,"_with_",["References"]);
$10=smalltalk.send($9,"_onClick_",[(function(){
return smalltalk.send(self,"_searchClassReferences",[]);
})]);
return $10;
})]);
smalltalk.send(self["@methodButtons"],"_contents_",[(function(html){
var protocolSelect;
var referencesSelect;
$11=smalltalk.send(html,"_button",[]);
smalltalk.send($11,"_with_",["Remove method"]);
$12=smalltalk.send($11,"_onClick_",[(function(){
return smalltalk.send(self,"_removeMethod",[]);
})]);
$12;
protocolSelect=smalltalk.send(html,"_select",[]);
protocolSelect;
smalltalk.send(protocolSelect,"_onChange_",[(function(){
return smalltalk.send(self,"_setMethodProtocol_",[smalltalk.send(smalltalk.send(protocolSelect,"_asJQuery",[]),"_val",[])]);
})]);
$13=smalltalk.send(protocolSelect,"_with_",[(function(){
$14=smalltalk.send(html,"_option",[]);
smalltalk.send($14,"_with_",["Method protocol"]);
$15=smalltalk.send($14,"_at_put_",["disabled","disabled"]);
$15;
$16=smalltalk.send(html,"_option",[]);
smalltalk.send($16,"_class_",["important"]);
$17=smalltalk.send($16,"_with_",["New..."]);
$17;
return smalltalk.send(smalltalk.send(self,"_protocols",[]),"_do_",[(function(each){
option=smalltalk.send(smalltalk.send(html,"_option",[]),"_with_",[each]);
option;
$18=smalltalk.send(self["@selectedProtocol"],"__eq",[each]);
if(smalltalk.assert($18)){
return smalltalk.send(option,"_at_put_",["selected","selected"]);
};
})]);
})]);
$13;
$19=smalltalk.send(self["@selectedMethod"],"_isNil",[]);
if(! smalltalk.assert($19)){
referencesSelect=smalltalk.send(html,"_select",[]);
referencesSelect;
smalltalk.send(referencesSelect,"_onChange_",[(function(){
return smalltalk.send(self,"_searchReferencesOf_",[smalltalk.send(smalltalk.send(referencesSelect,"_asJQuery",[]),"_val",[])]);
})]);
$20=smalltalk.send(referencesSelect,"_with_",[(function(){
var option;
$21=smalltalk.send(html,"_option",[]);
smalltalk.send($21,"_with_",["References"]);
$22=smalltalk.send($21,"_at_put_",["disabled","disabled"]);
$22;
$23=smalltalk.send(html,"_option",[]);
smalltalk.send($23,"_class_",["important"]);
$24=smalltalk.send($23,"_with_",[smalltalk.send(self["@selectedMethod"],"_selector",[])]);
$24;
return smalltalk.send(smalltalk.send(smalltalk.send(self["@selectedMethod"],"_messageSends",[]),"_sorted",[]),"_do_",[(function(each){
return smalltalk.send(smalltalk.send(html,"_option",[]),"_with_",[each]);
})]);
})]);
return $20;
};
})]);
$25=smalltalk.send(self["@selectedMethod"],"_isNil",[]);
if(smalltalk.assert($25)){
smalltalk.send(self,"_hideMethodButtons",[]);
$26=smalltalk.send(smalltalk.send(self["@selectedClass"],"_isNil",[]),"_or_",[(function(){
return smalltalk.send(self["@selectedProtocol"],"_notNil",[]);
})]);
if(smalltalk.assert($26)){
smalltalk.send(self,"_hideClassButtons",[]);
} else {
smalltalk.send(self,"_showClassButtons",[]);
};
} else {
smalltalk.send(self,"_hideClassButtons",[]);
smalltalk.send(self,"_showMethodButtons",[]);
};
smalltalk.send(self["@sourceArea"],"_val_",[smalltalk.send(self,"_source",[])]);
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateStatus",
smalltalk.method({
selector: "updateStatus",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self["@sourceArea"],"_val",[]),"__eq",[smalltalk.send(self,"_source",[])]);
if(smalltalk.assert($1)){
if(($receiver = self["@saveButton"]) == nil || $receiver == undefined){
self["@saveButton"];
} else {
smalltalk.send(self["@saveButton"],"_at_put_",["disabled",true]);
};
self["@unsavedChanges"]=false;
self["@unsavedChanges"];
} else {
if(($receiver = self["@saveButton"]) == nil || $receiver == undefined){
self["@saveButton"];
} else {
smalltalk.send(self["@saveButton"],"_removeAt_",["disabled"]);
};
self["@unsavedChanges"]=true;
self["@unsavedChanges"];
};
return self}
}),
smalltalk.Browser);

smalltalk.addMethod(
"_updateTabsList",
smalltalk.method({
selector: "updateTabsList",
fn: function (){
var self=this;
var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12;
smalltalk.send(self["@tabsList"],"_contents_",[(function(html){
var li;
li=smalltalk.send(html,"_li",[]);
li;
$1=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("instance")]);
if(smalltalk.assert($1)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[(function(){
smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["ltab"]);
$2=smalltalk.send(html,"_span",[]);
smalltalk.send($2,"_class_",["mtab"]);
$3=smalltalk.send($2,"_with_",["Instance"]);
$3;
return smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["rtab"]);
})]);
$4=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectTab_",[smalltalk.symbolFor("instance")]);
})]);
$4;
li=smalltalk.send(html,"_li",[]);
li;
$5=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("class")]);
if(smalltalk.assert($5)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[(function(){
smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["ltab"]);
$6=smalltalk.send(html,"_span",[]);
smalltalk.send($6,"_class_",["mtab"]);
$7=smalltalk.send($6,"_with_",["Class"]);
$7;
return smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["rtab"]);
})]);
$8=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectTab_",[smalltalk.symbolFor("class")]);
})]);
$8;
li=smalltalk.send(html,"_li",[]);
li;
$9=smalltalk.send(self["@selectedTab"],"__eq",[smalltalk.symbolFor("comment")]);
if(smalltalk.assert($9)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[(function(){
smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["ltab"]);
$10=smalltalk.send(html,"_span",[]);
smalltalk.send($10,"_class_",["mtab"]);
$11=smalltalk.send($10,"_with_",["Comment"]);
$11;
return smalltalk.send(smalltalk.send(html,"_span",[]),"_class_",["rtab"]);
})]);
$12=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectTab_",[smalltalk.symbolFor("comment")]);
})]);
return $12;
})]);
return self}
}),
smalltalk.Browser);


smalltalk.addMethod(
"_commitPathJs",
smalltalk.method({
selector: "commitPathJs",
fn: function (){
var self=this;
return "js";
}
}),
smalltalk.Browser.klass);

smalltalk.addMethod(
"_commitPathSt",
smalltalk.method({
selector: "commitPathSt",
fn: function (){
var self=this;
return "st";
}
}),
smalltalk.Browser.klass);

smalltalk.addMethod(
"_open",
smalltalk.method({
selector: "open",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self,"_new",[]),"_open",[]);
return self}
}),
smalltalk.Browser.klass);

smalltalk.addMethod(
"_openOn_",
smalltalk.method({
selector: "openOn:",
fn: function (aClass){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_open",[]);
smalltalk.send($2,"_selectCategory_",[smalltalk.send(aClass,"_category",[])]);
$3=smalltalk.send($2,"_selectClass_",[aClass]);
$1=$3;
return $1;
}
}),
smalltalk.Browser.klass);


smalltalk.addClass('Debugger', smalltalk.TabWidget, ['error', 'selectedContext', 'sourceArea', 'ul', 'ul2', 'inspector', 'saveButton', 'unsavedChanges', 'selectedVariable', 'selectedVariableName', 'inspectButton'], 'IDE');
smalltalk.addMethod(
"_arguments",
smalltalk.method({
selector: "arguments",
fn: function (){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"_method",[]);
if(($receiver = $2) == nil || $receiver == undefined){
$1=smalltalk.send(smalltalk.send(self["@selectedContext"],"_temps",[]),"_collect_",[(function(each){
return nil;
})]);
} else {
$1=smalltalk.send(smalltalk.send(self,"_method",[]),"_arguments",[]);
};
return $1;
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_canBeClosed",
smalltalk.method({
selector: "canBeClosed",
fn: function (){
var self=this;
return true;
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_error",
smalltalk.method({
selector: "error",
fn: function (){
var self=this;
return self["@error"];
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_error_",
smalltalk.method({
selector: "error:",
fn: function (anError){
var self=this;
self["@error"]=anError;
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
smalltalk.send(self,"_initialize",[],smalltalk.TabWidget);
smalltalk.send(self["@unsavedChanges"],"__eq",[false]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_inspectSelectedVariable",
smalltalk.method({
selector: "inspectSelectedVariable",
fn: function (){
var self=this;
smalltalk.send(self["@selectedVariable"],"_inspect",[]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
return "[Debugger]";
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_method",
smalltalk.method({
selector: "method",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(self["@selectedContext"],"_receiver",[]),"_class",[]),"_methodAt_",[smalltalk.send(self["@selectedContext"],"_selector",[])]);
return $1;
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_proceed",
smalltalk.method({
selector: "proceed",
fn: function (){
var self=this;
smalltalk.send(self,"_close",[]);
smalltalk.send(smalltalk.send(self["@selectedContext"],"_receiver",[]),"_perform_withArguments_",[smalltalk.send(self["@selectedContext"],"_selector",[]),smalltalk.send(self["@selectedContext"],"_temps",[])]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_receiver",
smalltalk.method({
selector: "receiver",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self["@selectedContext"],"_receiver",[]);
return $1;
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_renderBottomPanelOn_",
smalltalk.method({
selector: "renderBottomPanelOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["amber_sourceCode debugger"]);
$2=smalltalk.send($1,"_with_",[(function(){
self["@sourceArea"]=smalltalk.send((smalltalk.SourceArea || SourceArea),"_new",[]);
self["@sourceArea"];
return smalltalk.send(self["@sourceArea"],"_renderOn_",[html]);
})]);
self["@ul2"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column debugger variables"]);
self["@inspector"]=smalltalk.send(smalltalk.send(html,"_div",[]),"_class_",["amber_column debugger inspector"]);
smalltalk.send(self["@sourceArea"],"_onKeyUp_",[(function(){
return smalltalk.send(self,"_updateStatus",[]);
})]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
var $1;
smalltalk.send(self,"_renderTopPanelOn_",[html]);
$1=smalltalk.send(self,"_renderBottomPanelOn_",[html]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15;
$1=smalltalk.send(html,"_button",[]);
smalltalk.send($1,"_with_",["Save"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_save",[]);
})]);
self["@saveButton"]=$2;
$3=smalltalk.send(html,"_button",[]);
smalltalk.send($3,"_with_",["DoIt"]);
$4=smalltalk.send($3,"_onClick_",[(function(){
return smalltalk.send(self["@sourceArea"],"_doIt",[]);
})]);
$5=smalltalk.send(html,"_button",[]);
smalltalk.send($5,"_with_",["PrintIt"]);
$6=smalltalk.send($5,"_onClick_",[(function(){
return smalltalk.send(self["@sourceArea"],"_printIt",[]);
})]);
$7=smalltalk.send(html,"_button",[]);
smalltalk.send($7,"_with_",["InspectIt"]);
$8=smalltalk.send($7,"_onClick_",[(function(){
return smalltalk.send(self["@sourceArea"],"_inspectIt",[]);
})]);
$9=smalltalk.send(html,"_button",[]);
smalltalk.send($9,"_with_",["Proceed"]);
$10=smalltalk.send($9,"_onClick_",[(function(){
return smalltalk.send(self,"_proceed",[]);
})]);
$11=smalltalk.send(html,"_button",[]);
smalltalk.send($11,"_with_",["Abandon"]);
$12=smalltalk.send($11,"_onClick_",[(function(){
return smalltalk.send(self,"_close",[]);
})]);
$13=smalltalk.send(html,"_button",[]);
smalltalk.send($13,"_class_",["amber_button debugger inspect"]);
smalltalk.send($13,"_with_",["Inspect"]);
$14=smalltalk.send($13,"_onClick_",[(function(){
return smalltalk.send(self,"_inspectSelectedVariable",[]);
})]);
self["@inspectButton"]=$14;
smalltalk.send(self,"_updateSourceArea",[]);
smalltalk.send(self,"_updateStatus",[]);
smalltalk.send(self,"_updateVariablesList",[]);
$15=smalltalk.send(self,"_updateInspector",[]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_renderContext_on_",
smalltalk.method({
selector: "renderContext:on:",
fn: function (aContext,html){
var self=this;
var $1,$2,$3;
var li;
li=smalltalk.send(html,"_li",[]);
$1=smalltalk.send(self["@selectedContext"],"__eq",[aContext]);
if(smalltalk.assert($1)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[smalltalk.send(aContext,"_asString",[])]);
$2=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectContext_",[aContext]);
})]);
$3=smalltalk.send(aContext,"_home",[]);
if(($receiver = $3) == nil || $receiver == undefined){
$3;
} else {
smalltalk.send(self,"_renderContext_on_",[smalltalk.send(aContext,"_home",[]),html]);
};
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_renderTopPanelOn_",
smalltalk.method({
selector: "renderTopPanelOn:",
fn: function (html){
var self=this;
var $1,$3,$4,$5,$6,$2;
self["@selectedContext"]=smalltalk.send(smalltalk.send(self,"_error",[]),"_context",[]);
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["top"]);
$2=smalltalk.send($1,"_with_",[(function(){
$3=smalltalk.send(html,"_div",[]);
smalltalk.send($3,"_class_",["label"]);
$4=smalltalk.send($3,"_with_",[smalltalk.send(smalltalk.send(self,"_error",[]),"_messageText",[])]);
$4;
$5=smalltalk.send(html,"_ul",[]);
smalltalk.send($5,"_class_",["amber_column debugger contexts"]);
$6=smalltalk.send($5,"_with_",[(function(){
return smalltalk.send(self,"_renderContext_on_",[smalltalk.send(smalltalk.send(self,"_error",[]),"_context",[]),html]);
})]);
self["@ul"]=$6;
return self["@ul"];
})]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_save",
smalltalk.method({
selector: "save",
fn: function (){
var self=this;
var protocol;
protocol=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self["@selectedContext"],"_receiver",[]),"_class",[]),"_methodDictionary",[]),"_at_",[smalltalk.send(self["@selectedContext"],"_selector",[])]),"_category",[]);
smalltalk.send(smalltalk.send(smalltalk.send(self["@selectedContext"],"_receiver",[]),"_class",[]),"_compile_category_",[smalltalk.send(self["@sourceArea"],"_val",[]),protocol]);
smalltalk.send(self,"_updateStatus",[]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_selectContext_",
smalltalk.method({
selector: "selectContext:",
fn: function (aContext){
var self=this;
var $1;
self["@selectedContext"]=aContext;
self["@selectedVariable"]=nil;
self["@selectedVariableName"]=nil;
smalltalk.send(self,"_updateContextsList",[]);
smalltalk.send(self,"_updateSourceArea",[]);
smalltalk.send(self,"_updateInspector",[]);
smalltalk.send(self,"_updateVariablesList",[]);
$1=smalltalk.send(self,"_updateStatus",[]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_selectVariable_named_",
smalltalk.method({
selector: "selectVariable:named:",
fn: function (anObject,aString){
var self=this;
self["@selectedVariable"]=anObject;
self["@selectedVariableName"]=aString;
smalltalk.send(self["@inspector"],"_contents_",[(function(html){
return smalltalk.send(html,"_with_",[smalltalk.send(anObject,"_printString",[])]);
})]);
smalltalk.send(self,"_updateVariablesList",[]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_source",
smalltalk.method({
selector: "source",
fn: function (){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"_method",[]);
if(($receiver = $2) == nil || $receiver == undefined){
$1="Method doesn't exist!";
} else {
$1=smalltalk.send(smalltalk.send(self,"_method",[]),"_source",[]);
};
return $1;
}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_updateContextsList",
smalltalk.method({
selector: "updateContextsList",
fn: function (){
var self=this;
smalltalk.send(self["@ul"],"_contents_",[(function(html){
return smalltalk.send(self,"_renderContext_on_",[smalltalk.send(smalltalk.send(self,"_error",[]),"_context",[]),html]);
})]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_updateInspector",
smalltalk.method({
selector: "updateInspector",
fn: function (){
var self=this;
smalltalk.send(self["@inspector"],"_contents_",[(function(html){
})]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_updateSourceArea",
smalltalk.method({
selector: "updateSourceArea",
fn: function (){
var self=this;
smalltalk.send(self["@sourceArea"],"_val_",[smalltalk.send(self,"_source",[])]);
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_updateStatus",
smalltalk.method({
selector: "updateStatus",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self["@sourceArea"],"_val",[]),"__eq",[smalltalk.send(self,"_source",[])]);
if(smalltalk.assert($1)){
if(($receiver = self["@saveButton"]) == nil || $receiver == undefined){
self["@saveButton"];
} else {
smalltalk.send(self["@saveButton"],"_at_put_",["disabled",true]);
};
self["@unsavedChanges"]=false;
self["@unsavedChanges"];
} else {
if(($receiver = self["@saveButton"]) == nil || $receiver == undefined){
self["@saveButton"];
} else {
smalltalk.send(self["@saveButton"],"_removeAt_",["disabled"]);
};
self["@unsavedChanges"]=true;
self["@unsavedChanges"];
};
return self}
}),
smalltalk.Debugger);

smalltalk.addMethod(
"_updateVariablesList",
smalltalk.method({
selector: "updateVariablesList",
fn: function (){
var self=this;
var $1,$2,$3,$4,$5,$6,$7,$8,$9;
smalltalk.send(self["@ul2"],"_contents_",[(function(html){
var li;
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_with_",["self"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_selectVariable_named_",[smalltalk.send(self,"_receiver",[]),"self"]);
})]);
li=$2;
li;
$3=smalltalk.send(self["@selectedVariableName"],"__eq",["self"]);
if(smalltalk.assert($3)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(smalltalk.send(self,"_arguments",[]),"_withIndexDo_",[(function(each,index){
var param;
param=smalltalk.send(smalltalk.send(self["@selectedContext"],"_temps",[]),"_at_",[index]);
param;
$4=smalltalk.send(html,"_li",[]);
smalltalk.send($4,"_with_",[each]);
$5=smalltalk.send($4,"_onClick_",[(function(){
return smalltalk.send(self,"_selectVariable_named_",[param,each]);
})]);
li=$5;
li;
$6=smalltalk.send(self["@selectedVariableName"],"__eq",[each]);
if(smalltalk.assert($6)){
return smalltalk.send(li,"_class_",["selected"]);
};
})]);
return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_receiver",[]),"_class",[]),"_allInstanceVariableNames",[]),"_do_",[(function(each){
var ivar;
ivar=smalltalk.send(smalltalk.send(self,"_receiver",[]),"_instVarAt_",[each]);
ivar;
$7=smalltalk.send(html,"_li",[]);
smalltalk.send($7,"_with_",[each]);
$8=smalltalk.send($7,"_onClick_",[(function(){
return smalltalk.send(self,"_selectVariable_named_",[ivar,each]);
})]);
li=$8;
li;
$9=smalltalk.send(self["@selectedVariableName"],"__eq",[each]);
if(smalltalk.assert($9)){
return smalltalk.send(li,"_class_",["selected"]);
};
})]);
})]);
if(($receiver = self["@selectedVariable"]) == nil || $receiver == undefined){
smalltalk.send(self["@inspectButton"],"_at_put_",["disabled",true]);
} else {
smalltalk.send(self["@inspectButton"],"_removeAt_",["disabled"]);
};
return self}
}),
smalltalk.Debugger);



smalltalk.addClass('IDETranscript', smalltalk.TabWidget, ['textarea'], 'IDE');
smalltalk.addMethod(
"_clear",
smalltalk.method({
selector: "clear",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@textarea"],"_asJQuery",[]),"_val_",[""]);
return self}
}),
smalltalk.IDETranscript);

smalltalk.addMethod(
"_cr",
smalltalk.method({
selector: "cr",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(self["@textarea"],"_asJQuery",[]),"_val_",[smalltalk.send(smalltalk.send(smalltalk.send(self["@textarea"],"_asJQuery",[]),"_val",[]),"__comma",[smalltalk.send((smalltalk.String || String),"_cr",[])])]);
return self}
}),
smalltalk.IDETranscript);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
return "Transcript";
}
}),
smalltalk.IDETranscript);

smalltalk.addMethod(
"_open",
smalltalk.method({
selector: "open",
fn: function (){
var self=this;
var $1,$2;
$1=smalltalk.send((smalltalk.TabManager || TabManager),"_current",[]);
smalltalk.send($1,"_open",[]);
$2=smalltalk.send($1,"_selectTab_",[self]);
return self}
}),
smalltalk.IDETranscript);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
var $1;
self["@textarea"]=smalltalk.send(html,"_textarea",[]);
smalltalk.send(self["@textarea"],"_class_",["amber_transcript"]);
$1=smalltalk.send(self["@textarea"],"_at_put_",["spellcheck","false"]);
return self}
}),
smalltalk.IDETranscript);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_button",[]);
smalltalk.send($1,"_with_",["Clear transcript"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_clear",[]);
})]);
return self}
}),
smalltalk.IDETranscript);

smalltalk.addMethod(
"_show_",
smalltalk.method({
selector: "show:",
fn: function (anObject){
var self=this;
if(($receiver = self["@textarea"]) == nil || $receiver == undefined){
smalltalk.send(self,"_open",[]);
} else {
self["@textarea"];
};
smalltalk.send(smalltalk.send(self["@textarea"],"_asJQuery",[]),"_val_",[smalltalk.send(smalltalk.send(smalltalk.send(self["@textarea"],"_asJQuery",[]),"_val",[]),"__comma",[smalltalk.send(anObject,"_asString",[])])]);
return self}
}),
smalltalk.IDETranscript);


smalltalk.IDETranscript.klass.iVarNames = ['current'];
smalltalk.addMethod(
"_current",
smalltalk.method({
selector: "current",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@current"]) == nil || $receiver == undefined){
self["@current"]=smalltalk.send(self,"_new",[],smalltalk.TabWidget.klass);
$1=self["@current"];
} else {
$1=self["@current"];
};
return $1;
}
}),
smalltalk.IDETranscript.klass);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
smalltalk.send((smalltalk.Transcript || Transcript),"_register_",[smalltalk.send(self,"_current",[])]);
return self}
}),
smalltalk.IDETranscript.klass);

smalltalk.addMethod(
"_new",
smalltalk.method({
selector: "new",
fn: function (){
var self=this;
smalltalk.send(self,"_shouldNotImplement",[]);
return self}
}),
smalltalk.IDETranscript.klass);

smalltalk.addMethod(
"_open",
smalltalk.method({
selector: "open",
fn: function (){
var self=this;
var $1,$2;
$1=smalltalk.send((smalltalk.TabManager || TabManager),"_current",[]);
smalltalk.send($1,"_open",[]);
$2=smalltalk.send($1,"_selectTab_",[smalltalk.send(self,"_current",[])]);
return self}
}),
smalltalk.IDETranscript.klass);


smalltalk.addClass('Inspector', smalltalk.TabWidget, ['label', 'variables', 'object', 'selectedVariable', 'variablesList', 'valueTextarea', 'diveButton', 'sourceArea'], 'IDE');
smalltalk.addMethod(
"_canBeClosed",
smalltalk.method({
selector: "canBeClosed",
fn: function (){
var self=this;
return true;
}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_dive",
smalltalk.method({
selector: "dive",
fn: function (){
var self=this;
smalltalk.send(smalltalk.send(smalltalk.send(self,"_variables",[]),"_at_",[smalltalk.send(self,"_selectedVariable",[])]),"_inspect",[]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_inspect_",
smalltalk.method({
selector: "inspect:",
fn: function (anObject){
var self=this;
self["@object"]=anObject;
self["@variables"]=[];
smalltalk.send(self["@object"],"_inspectOn_",[self]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@label"]) == nil || $receiver == undefined){
$1="Inspector (nil)";
} else {
$1=self["@label"];
};
return $1;
}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_refresh",
smalltalk.method({
selector: "refresh",
fn: function (){
var self=this;
var $1;
smalltalk.send(self,"_inspect_",[self["@object"]]);
smalltalk.send(self,"_updateVariablesList",[]);
$1=smalltalk.send(self,"_updateValueTextarea",[]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_renderBottomPanelOn_",
smalltalk.method({
selector: "renderBottomPanelOn:",
fn: function (html){
var self=this;
var $1,$3,$4,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["amber_sourceCode"]);
$2=smalltalk.send($1,"_with_",[(function(){
$3=smalltalk.send((smalltalk.SourceArea || SourceArea),"_new",[]);
smalltalk.send($3,"_receiver_",[self["@object"]]);
smalltalk.send($3,"_onDoIt_",[(function(){
return smalltalk.send(self,"_refresh",[]);
})]);
$4=smalltalk.send($3,"_yourself",[]);
self["@sourceArea"]=$4;
self["@sourceArea"];
return smalltalk.send(self["@sourceArea"],"_renderOn_",[html]);
})]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
var $1;
smalltalk.send(self,"_renderTopPanelOn_",[html]);
$1=smalltalk.send(self,"_renderBottomPanelOn_",[html]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
var $1,$2,$3,$4,$5,$6;
$1=smalltalk.send(html,"_button",[]);
smalltalk.send($1,"_with_",["DoIt"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(smalltalk.send(self,"_sourceArea",[]),"_doIt",[]);
})]);
$3=smalltalk.send(html,"_button",[]);
smalltalk.send($3,"_with_",["PrintIt"]);
$4=smalltalk.send($3,"_onClick_",[(function(){
return smalltalk.send(smalltalk.send(self,"_sourceArea",[]),"_printIt",[]);
})]);
$5=smalltalk.send(html,"_button",[]);
smalltalk.send($5,"_with_",["InspectIt"]);
$6=smalltalk.send($5,"_onClick_",[(function(){
return smalltalk.send(smalltalk.send(self,"_sourceArea",[]),"_inspectIt",[]);
})]);
smalltalk.send(self,"_updateButtons",[]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_renderTopPanelOn_",
smalltalk.method({
selector: "renderTopPanelOn:",
fn: function (html){
var self=this;
var $1,$3,$4,$5,$7,$8,$9,$10,$6,$2,$11;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["top"]);
$2=smalltalk.send($1,"_with_",[(function(){
self["@variablesList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column variables"]);
self["@variablesList"];
$3=smalltalk.send(html,"_textarea",[]);
smalltalk.send($3,"_class_",["amber_column value"]);
$4=smalltalk.send($3,"_at_put_",["readonly","readonly"]);
self["@valueTextarea"]=$4;
self["@valueTextarea"];
$5=smalltalk.send(html,"_div",[]);
smalltalk.send($5,"_class_",["amber_tabs inspector"]);
$6=smalltalk.send($5,"_with_",[(function(){
$7=smalltalk.send(html,"_button",[]);
smalltalk.send($7,"_class_",["amber_button inspector refresh"]);
smalltalk.send($7,"_with_",["Refresh"]);
$8=smalltalk.send($7,"_onClick_",[(function(){
return smalltalk.send(self,"_refresh",[]);
})]);
$8;
$9=smalltalk.send(html,"_button",[]);
smalltalk.send($9,"_class_",["amber_button inspector dive"]);
smalltalk.send($9,"_with_",["Dive"]);
$10=smalltalk.send($9,"_onClick_",[(function(){
return smalltalk.send(self,"_dive",[]);
})]);
self["@diveButton"]=$10;
return self["@diveButton"];
})]);
$6;
return smalltalk.send(smalltalk.send(html,"_div",[]),"_class_",["amber_clear"]);
})]);
smalltalk.send(self,"_updateVariablesList",[]);
$11=smalltalk.send(self,"_updateValueTextarea",[]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_selectVariable_",
smalltalk.method({
selector: "selectVariable:",
fn: function (aString){
var self=this;
var $1;
smalltalk.send(self,"_selectedVariable_",[aString]);
smalltalk.send(self,"_updateVariablesList",[]);
smalltalk.send(self,"_updateValueTextarea",[]);
$1=smalltalk.send(self,"_updateButtons",[]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_selectedVariable",
smalltalk.method({
selector: "selectedVariable",
fn: function (){
var self=this;
return self["@selectedVariable"];
}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_selectedVariable_",
smalltalk.method({
selector: "selectedVariable:",
fn: function (aString){
var self=this;
self["@selectedVariable"]=aString;
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_setLabel_",
smalltalk.method({
selector: "setLabel:",
fn: function (aString){
var self=this;
self["@label"]=aString;
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_setVariables_",
smalltalk.method({
selector: "setVariables:",
fn: function (aCollection){
var self=this;
self["@variables"]=aCollection;
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_sourceArea",
smalltalk.method({
selector: "sourceArea",
fn: function (){
var self=this;
return self["@sourceArea"];
}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_updateButtons",
smalltalk.method({
selector: "updateButtons",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_selectedVariable",[]),"_notNil",[]),"_and_",[(function(){
return smalltalk.send(smalltalk.send(smalltalk.send(self,"_variables",[]),"_at_",[smalltalk.send(self,"_selectedVariable",[])]),"_notNil",[]);
})]);
if(smalltalk.assert($1)){
smalltalk.send(self["@diveButton"],"_removeAt_",["disabled"]);
} else {
smalltalk.send(self["@diveButton"],"_at_put_",["disabled",true]);
};
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_updateValueTextarea",
smalltalk.method({
selector: "updateValueTextarea",
fn: function (){
var self=this;
var $2,$1;
$2=smalltalk.send(smalltalk.send(self,"_selectedVariable",[]),"_isNil",[]);
if(smalltalk.assert($2)){
$1="";
} else {
$1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_variables",[]),"_at_",[smalltalk.send(self,"_selectedVariable",[])]),"_printString",[]);
};
smalltalk.send(smalltalk.send(self["@valueTextarea"],"_asJQuery",[]),"_val_",[$1]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_updateVariablesList",
smalltalk.method({
selector: "updateVariablesList",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(self["@variablesList"],"_contents_",[(function(html){
return smalltalk.send(smalltalk.send(smalltalk.send(self,"_variables",[]),"_keys",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
smalltalk.send(li,"_with_",[each]);
$1=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_selectVariable_",[each]);
})]);
$1;
$2=smalltalk.send(smalltalk.send(self,"_selectedVariable",[]),"__eq",[each]);
if(smalltalk.assert($2)){
return smalltalk.send(li,"_class_",["selected"]);
};
})]);
})]);
return self}
}),
smalltalk.Inspector);

smalltalk.addMethod(
"_variables",
smalltalk.method({
selector: "variables",
fn: function (){
var self=this;
return self["@variables"];
}
}),
smalltalk.Inspector);


smalltalk.addMethod(
"_on_",
smalltalk.method({
selector: "on:",
fn: function (anObject){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_inspect_",[anObject]);
$3=smalltalk.send($2,"_yourself",[]);
$1=$3;
return $1;
}
}),
smalltalk.Inspector.klass);


smalltalk.addClass('ProgressBar', smalltalk.TabWidget, ['percent', 'progressDiv', 'div'], 'IDE');
smalltalk.addMethod(
"_percent",
smalltalk.method({
selector: "percent",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@percent"]) == nil || $receiver == undefined){
$1=(0);
} else {
$1=self["@percent"];
};
return $1;
}
}),
smalltalk.ProgressBar);

smalltalk.addMethod(
"_percent_",
smalltalk.method({
selector: "percent:",
fn: function (aNumber){
var self=this;
self["@percent"]=aNumber;
return self}
}),
smalltalk.ProgressBar);

smalltalk.addMethod(
"_renderOn_",
smalltalk.method({
selector: "renderOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["progress_bar"]);
$2=smalltalk.send($1,"_yourself",[]);
self["@div"]=$2;
smalltalk.send(self,"_renderProgressBar",[]);
return self}
}),
smalltalk.ProgressBar);

smalltalk.addMethod(
"_renderProgressBar",
smalltalk.method({
selector: "renderProgressBar",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(self["@div"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_div",[]);
smalltalk.send($1,"_class_",["progress"]);
$2=smalltalk.send($1,"_style_",[smalltalk.send(smalltalk.send("width:","__comma",[smalltalk.send(smalltalk.send(self,"_percent",[]),"_asString",[])]),"__comma",["%"])]);
return $2;
})]);
return self}
}),
smalltalk.ProgressBar);

smalltalk.addMethod(
"_updatePercent_",
smalltalk.method({
selector: "updatePercent:",
fn: function (aNumber){
var self=this;
smalltalk.send(self,"_percent_",[aNumber]);
smalltalk.send(self,"_renderProgressBar",[]);
return self}
}),
smalltalk.ProgressBar);



smalltalk.addClass('ReferencesBrowser', smalltalk.TabWidget, ['implementors', 'senders', 'implementorsList', 'input', 'timer', 'selector', 'sendersList', 'referencedClasses', 'referencedClassesList', 'matches', 'matchesList'], 'IDE');
smalltalk.addMethod(
"_canBeClosed",
smalltalk.method({
selector: "canBeClosed",
fn: function (){
var self=this;
return true;
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_classesAndMetaclasses",
smalltalk.method({
selector: "classesAndMetaclasses",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"__comma",[smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"_collect_",[(function(each){
return smalltalk.send(each,"_class",[]);
})])]);
return $1;
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_implementors",
smalltalk.method({
selector: "implementors",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@implementors"]) == nil || $receiver == undefined){
self["@implementors"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@implementors"];
} else {
$1=self["@implementors"];
};
return $1;
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
smalltalk.send(self,"_initialize",[],smalltalk.TabWidget);
self["@selector"]="";
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
return "[References]";
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_matches",
smalltalk.method({
selector: "matches",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@matches"]) == nil || $receiver == undefined){
self["@matches"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@matches"];
} else {
$1=self["@matches"];
};
return $1;
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_openBrowserOn_",
smalltalk.method({
selector: "openBrowserOn:",
fn: function (aMethod){
var self=this;
var $2,$1,$3,$4;
var browser;
$2=smalltalk.send(smalltalk.send(aMethod,"_methodClass",[]),"_isMetaclass",[]);
if(smalltalk.assert($2)){
$1=smalltalk.send(smalltalk.send(aMethod,"_methodClass",[]),"_instanceClass",[]);
} else {
$1=smalltalk.send(aMethod,"_methodClass",[]);
};
browser=smalltalk.send((smalltalk.Browser || Browser),"_openOn_",[$1]);
$3=smalltalk.send(smalltalk.send(aMethod,"_methodClass",[]),"_isMetaclass",[]);
if(smalltalk.assert($3)){
smalltalk.send(browser,"_selectTab_",[smalltalk.symbolFor("class")]);
};
smalltalk.send(browser,"_selectProtocol_",[smalltalk.send(aMethod,"_category",[])]);
$4=smalltalk.send(browser,"_selectMethod_",[aMethod]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_referencedClasses",
smalltalk.method({
selector: "referencedClasses",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@referencedClasses"]) == nil || $receiver == undefined){
self["@referencedClasses"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@referencedClasses"];
} else {
$1=self["@referencedClasses"];
};
return $1;
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
var $1;
smalltalk.send(self,"_renderInputOn_",[html]);
smalltalk.send(self,"_renderImplementorsOn_",[html]);
smalltalk.send(self,"_renderSendersOn_",[html]);
smalltalk.send(self,"_renderReferencedClassesOn_",[html]);
$1=smalltalk.send(self,"_renderMatchesOn_",[html]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_renderImplementorsOn_",
smalltalk.method({
selector: "renderImplementorsOn:",
fn: function (html){
var self=this;
self["@implementorsList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column implementors"]);
smalltalk.send(self,"_updateImplementorsList",[]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_renderInputOn_",
smalltalk.method({
selector: "renderInputOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_input",[]);
smalltalk.send($1,"_class_",["implementors"]);
$2=smalltalk.send($1,"_yourself",[]);
self["@input"]=$2;
smalltalk.send(smalltalk.send(self["@input"],"_asJQuery",[]),"_val_",[self["@selector"]]);
smalltalk.send(self,"_setInputEvents",[]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_renderMatchesOn_",
smalltalk.method({
selector: "renderMatchesOn:",
fn: function (html){
var self=this;
self["@matchesList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column matches"]);
smalltalk.send(self,"_updateMatchesList",[]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_renderReferencedClassesOn_",
smalltalk.method({
selector: "renderReferencedClassesOn:",
fn: function (html){
var self=this;
self["@referencedClassesList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column referenced_classes"]);
smalltalk.send(self,"_updateReferencedClassesList",[]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_renderSendersOn_",
smalltalk.method({
selector: "renderSendersOn:",
fn: function (html){
var self=this;
self["@sendersList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column senders"]);
smalltalk.send(self,"_updateSendersList",[]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_search_",
smalltalk.method({
selector: "search:",
fn: function (aString){
var self=this;
var $1;
smalltalk.send(self,"_searchReferencesFor_",[aString]);
smalltalk.send(self,"_updateImplementorsList",[]);
smalltalk.send(self,"_updateSendersList",[]);
smalltalk.send(self,"_updateReferencedClassesList",[]);
$1=smalltalk.send(self,"_updateMatchesList",[]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_searchMethodSource",
smalltalk.method({
selector: "searchMethodSource",
fn: function (){
var self=this;
var $1;
var regex;
regex=smalltalk.send(self["@selector"],"_allButFirst",[]);
smalltalk.send(smalltalk.send(self,"_classesAndMetaclasses",[]),"_do_",[(function(each){
return smalltalk.send(smalltalk.send(smalltalk.send(each,"_methodDictionary",[]),"_values",[]),"_do_",[(function(value){
$1=smalltalk.send(smalltalk.send(value,"_source",[]),"_match_",[regex]);
if(smalltalk.assert($1)){
return smalltalk.send(smalltalk.send(self,"_matches",[]),"_add_",[value]);
};
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_searchReferencedClasses",
smalltalk.method({
selector: "searchReferencedClasses",
fn: function (){
var self=this;
var $1;
smalltalk.send(smalltalk.send(self,"_classesAndMetaclasses",[]),"_do_",[(function(each){
return smalltalk.send(smalltalk.send(smalltalk.send(each,"_methodDictionary",[]),"_values",[]),"_do_",[(function(value){
$1=smalltalk.send(smalltalk.send(value,"_referencedClasses",[]),"_includes_",[self["@selector"]]);
if(smalltalk.assert($1)){
return smalltalk.send(smalltalk.send(self,"_referencedClasses",[]),"_add_",[value]);
};
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_searchReferencesFor_",
smalltalk.method({
selector: "searchReferencesFor:",
fn: function (aString){
var self=this;
var $1;
self["@selector"]=aString;
self["@implementors"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
self["@senders"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
self["@referencedClasses"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
self["@matches"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
smalltalk.send(self,"_searchMethodSource",[]);
$1=smalltalk.send(self["@selector"],"_match_",["^[A-Z]"]);
if(smalltalk.assert($1)){
smalltalk.send(self,"_searchReferencedClasses",[]);
} else {
smalltalk.send(self,"_searchSelectorReferences",[]);
};
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_searchSelectorReferences",
smalltalk.method({
selector: "searchSelectorReferences",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(smalltalk.send(self,"_classesAndMetaclasses",[]),"_do_",[(function(each){
return smalltalk.send(smalltalk.send(each,"_methodDictionary",[]),"_keysAndValuesDo_",[(function(key,value){
$1=smalltalk.send(key,"__eq",[self["@selector"]]);
if(smalltalk.assert($1)){
smalltalk.send(smalltalk.send(self,"_implementors",[]),"_add_",[value]);
};
$2=smalltalk.send(smalltalk.send(value,"_messageSends",[]),"_includes_",[self["@selector"]]);
if(smalltalk.assert($2)){
return smalltalk.send(smalltalk.send(self,"_senders",[]),"_add_",[value]);
};
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_selector",
smalltalk.method({
selector: "selector",
fn: function (){
var self=this;
return self["@selector"];
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_senders",
smalltalk.method({
selector: "senders",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@senders"]) == nil || $receiver == undefined){
self["@senders"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@senders"];
} else {
$1=self["@senders"];
};
return $1;
}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_setInputEvents",
smalltalk.method({
selector: "setInputEvents",
fn: function (){
var self=this;
var $1;
smalltalk.send(self["@input"],"_onKeyUp_",[(function(){
self["@timer"]=smalltalk.send((function(){
return smalltalk.send(self,"_search_",[smalltalk.send(smalltalk.send(self["@input"],"_asJQuery",[]),"_val",[])]);
}),"_valueWithTimeout_",[(100)]);
return self["@timer"];
})]);
$1=smalltalk.send(self["@input"],"_onKeyDown_",[(function(){
if(($receiver = self["@timer"]) == nil || $receiver == undefined){
return self["@timer"];
} else {
return smalltalk.send(self["@timer"],"_clearTimeout",[]);
};
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_updateImplementorsList",
smalltalk.method({
selector: "updateImplementorsList",
fn: function (){
var self=this;
var $1,$2,$3;
smalltalk.send(self["@implementorsList"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["column_label"]);
smalltalk.send($1,"_with_",[smalltalk.send(smalltalk.send("Implementors (","__comma",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_implementors",[]),"_size",[]),"_asString",[])]),"__comma",[")"])]);
$2=smalltalk.send($1,"_style_",["font-weight: bold"]);
$2;
return smalltalk.send(smalltalk.send(self,"_implementors",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
smalltalk.send(li,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each,"_methodClass",[]),"_asString",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(self,"_selector",[])])]);
$3=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_openBrowserOn_",[each]);
})]);
return $3;
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_updateMatchesList",
smalltalk.method({
selector: "updateMatchesList",
fn: function (){
var self=this;
var $1,$2,$3;
smalltalk.send(self["@matchesList"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["column_label"]);
smalltalk.send($1,"_with_",[smalltalk.send(smalltalk.send("Regex matches (","__comma",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_matches",[]),"_size",[]),"_asString",[])]),"__comma",[")"])]);
$2=smalltalk.send($1,"_style_",["font-weight: bold"]);
$2;
return smalltalk.send(smalltalk.send(self,"_matches",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
smalltalk.send(li,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each,"_methodClass",[]),"_asString",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(each,"_selector",[])])]);
$3=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_openBrowserOn_",[each]);
})]);
return $3;
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_updateReferencedClassesList",
smalltalk.method({
selector: "updateReferencedClassesList",
fn: function (){
var self=this;
var $1,$2,$3,$4;
smalltalk.send(self["@referencedClassesList"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["column_label"]);
smalltalk.send($1,"_with_",[smalltalk.send(smalltalk.send("Class references (","__comma",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_referencedClasses",[]),"_size",[]),"_asString",[])]),"__comma",[")"])]);
$2=smalltalk.send($1,"_style_",["font-weight: bold"]);
$2;
return smalltalk.send(smalltalk.send(self,"_referencedClasses",[]),"_do_",[(function(each){
$3=smalltalk.send(html,"_li",[]);
smalltalk.send($3,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each,"_methodClass",[]),"_asString",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(each,"_selector",[])])]);
$4=smalltalk.send($3,"_onClick_",[(function(){
return smalltalk.send(self,"_openBrowserOn_",[each]);
})]);
return $4;
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);

smalltalk.addMethod(
"_updateSendersList",
smalltalk.method({
selector: "updateSendersList",
fn: function (){
var self=this;
var $1,$2,$3,$4;
smalltalk.send(self["@sendersList"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["column_label"]);
smalltalk.send($1,"_with_",[smalltalk.send(smalltalk.send("Senders (","__comma",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_senders",[]),"_size",[]),"_asString",[])]),"__comma",[")"])]);
$2=smalltalk.send($1,"_style_",["font-weight: bold"]);
$2;
return smalltalk.send(smalltalk.send(self,"_senders",[]),"_do_",[(function(each){
$3=smalltalk.send(html,"_li",[]);
smalltalk.send($3,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each,"_methodClass",[]),"_asString",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(each,"_selector",[])])]);
$4=smalltalk.send($3,"_onClick_",[(function(){
return smalltalk.send(self,"_openBrowserOn_",[each]);
})]);
return $4;
})]);
})]);
return self}
}),
smalltalk.ReferencesBrowser);


smalltalk.addMethod(
"_search_",
smalltalk.method({
selector: "search:",
fn: function (aString){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_searchReferencesFor_",[aString]);
$3=smalltalk.send($2,"_open",[]);
$1=$3;
return $1;
}
}),
smalltalk.ReferencesBrowser.klass);


smalltalk.addClass('TestRunner', smalltalk.TabWidget, ['selectedCategories', 'packagesList', 'selectedClasses', 'classesList', 'selectedMethods', 'progressBar', 'methodsList', 'result', 'statusDiv'], 'IDE');
smalltalk.addMethod(
"_allClasses",
smalltalk.method({
selector: "allClasses",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send((smalltalk.TestCase || TestCase),"_allSubclasses",[]),"_select_",[(function(each){
return smalltalk.send(smalltalk.send(each,"_isAbstract",[]),"_not",[]);
})]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_classes",
smalltalk.method({
selector: "classes",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_allClasses",[]),"_select_",[(function(each){
return smalltalk.send(smalltalk.send(self,"_selectedCategories",[]),"_includes_",[smalltalk.send(each,"_category",[])]);
})]),"_sort_",[(function(a,b){
return smalltalk.send(smalltalk.send(a,"_name",[]),"__gt",[smalltalk.send(b,"_name",[])]);
})]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
smalltalk.send(self,"_initialize",[],smalltalk.TabWidget);
self["@result"]=smalltalk.send((smalltalk.TestResult || TestResult),"_new",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_isSelectedCategory_",
smalltalk.method({
selector: "isSelectedCategory:",
fn: function (aCategory){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_selectedCategories",[]),"_includes_",[aCategory]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_isSelectedClass_",
smalltalk.method({
selector: "isSelectedClass:",
fn: function (aClass){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_selectedClasses",[]),"_includes_",[aClass]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
return "SUnit";
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_packages",
smalltalk.method({
selector: "packages",
fn: function (){
var self=this;
var $1,$2;
var packages;
packages=smalltalk.send((smalltalk.Array || Array),"_new",[]);
smalltalk.send(smalltalk.send(self,"_allClasses",[]),"_do_",[(function(each){
$1=smalltalk.send(packages,"_includes_",[smalltalk.send(each,"_category",[])]);
if(! smalltalk.assert($1)){
return smalltalk.send(packages,"_add_",[smalltalk.send(each,"_category",[])]);
};
})]);
$2=smalltalk.send(packages,"_sort",[]);
return $2;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_performFailure_",
smalltalk.method({
selector: "performFailure:",
fn: function (aTestCase){
var self=this;
smalltalk.send(aTestCase,"_perform_",[smalltalk.send(aTestCase,"_selector",[])]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_printErrors",
smalltalk.method({
selector: "printErrors",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_errors",[]),"_size",[]),"_asString",[]),"__comma",[" errors, "]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_printFailures",
smalltalk.method({
selector: "printFailures",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_failures",[]),"_size",[]),"_asString",[]),"__comma",[" failures"]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_printPasses",
smalltalk.method({
selector: "printPasses",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_total",[]),"__minus",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_errors",[]),"_size",[])]),"__minus",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_failures",[]),"_size",[])]),"_asString",[]),"__comma",[" passes, "]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_printTotal",
smalltalk.method({
selector: "printTotal",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_total",[]),"_asString",[]),"__comma",[" runs, "]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_progressBar",
smalltalk.method({
selector: "progressBar",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@progressBar"]) == nil || $receiver == undefined){
self["@progressBar"]=smalltalk.send((smalltalk.ProgressBar || ProgressBar),"_new",[]);
$1=self["@progressBar"];
} else {
$1=self["@progressBar"];
};
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
var $1;
smalltalk.send(self,"_renderCategoriesOn_",[html]);
smalltalk.send(self,"_renderClassesOn_",[html]);
$1=smalltalk.send(self,"_renderResultsOn_",[html]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
var $1,$2;
$1=smalltalk.send(html,"_button",[]);
smalltalk.send($1,"_with_",["Run selected"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_run_",[smalltalk.send(self,"_testCases",[])]);
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderCategoriesOn_",
smalltalk.method({
selector: "renderCategoriesOn:",
fn: function (html){
var self=this;
self["@packagesList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column sunit packages"]);
smalltalk.send(self,"_updateCategoriesList",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderClassesOn_",
smalltalk.method({
selector: "renderClassesOn:",
fn: function (html){
var self=this;
self["@classesList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column sunit classes"]);
smalltalk.send(self,"_updateClassesList",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderErrorsOn_",
smalltalk.method({
selector: "renderErrorsOn:",
fn: function (html){
var self=this;
var $1,$2;
smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_errors",[]),"_do_",[(function(each){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["errors"]);
smalltalk.send($1,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each,"_class",[]),"_name",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(each,"_selector",[])])]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_performFailure_",[each]);
})]);
return $2;
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderFailuresOn_",
smalltalk.method({
selector: "renderFailuresOn:",
fn: function (html){
var self=this;
var $1,$2;
smalltalk.send(smalltalk.send(smalltalk.send(self,"_result",[]),"_failures",[]),"_do_",[(function(each){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["failures"]);
smalltalk.send($1,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each,"_class",[]),"_name",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(each,"_selector",[])])]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_performFailure_",[each]);
})]);
return $2;
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_renderResultsOn_",
smalltalk.method({
selector: "renderResultsOn:",
fn: function (html){
var self=this;
self["@statusDiv"]=smalltalk.send(html,"_div",[]);
smalltalk.send(html,"_with_",[smalltalk.send(self,"_progressBar",[])]);
self["@methodsList"]=smalltalk.send(smalltalk.send(html,"_ul",[]),"_class_",["amber_column sunit results"]);
smalltalk.send(self,"_updateMethodsList",[]);
smalltalk.send(self,"_updateStatusDiv",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_result",
smalltalk.method({
selector: "result",
fn: function (){
var self=this;
return self["@result"];
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_run_",
smalltalk.method({
selector: "run:",
fn: function (aCollection){
var self=this;
var $1;
self["@result"]=smalltalk.send((smalltalk.TestResult || TestResult),"_new",[]);
smalltalk.send(self,"_updateStatusDiv",[]);
$1=smalltalk.send(self,"_updateMethodsList",[]);
smalltalk.send(smalltalk.send(self,"_progressBar",[]),"_updatePercent_",[(0)]);
smalltalk.send(self["@result"],"_total_",[smalltalk.send(aCollection,"_size",[])]);
smalltalk.send(aCollection,"_do_",[(function(each){
return smalltalk.send((function(){
smalltalk.send(each,"_runCaseFor_",[self["@result"]]);
smalltalk.send(smalltalk.send(self,"_progressBar",[]),"_updatePercent_",[smalltalk.send(smalltalk.send(smalltalk.send(self["@result"],"_runs",[]),"__slash",[smalltalk.send(self["@result"],"_total",[])]),"__star",[(100)])]);
smalltalk.send(self,"_updateStatusDiv",[]);
return smalltalk.send(self,"_updateMethodsList",[]);
}),"_valueWithTimeout_",[(100)]);
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_selectAllCategories",
smalltalk.method({
selector: "selectAllCategories",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(smalltalk.send(self,"_packages",[]),"_do_",[(function(each){
$1=smalltalk.send(self["@selectedCategories"],"_includes_",[each]);
if(! smalltalk.assert($1)){
return smalltalk.send(smalltalk.send(self,"_selectedCategories",[]),"_add_",[each]);
};
})]);
smalltalk.send(self,"_updateCategoriesList",[]);
$2=smalltalk.send(self,"_updateClassesList",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_selectAllClasses",
smalltalk.method({
selector: "selectAllClasses",
fn: function (){
var self=this;
var $1,$2;
smalltalk.send(smalltalk.send(self,"_classes",[]),"_do_",[(function(each){
$1=smalltalk.send(self["@selectedClasses"],"_includes_",[each]);
if(! smalltalk.assert($1)){
return smalltalk.send(smalltalk.send(self,"_selectedClasses",[]),"_add_",[each]);
};
})]);
smalltalk.send(self,"_updateCategoriesList",[]);
$2=smalltalk.send(self,"_updateClassesList",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_selectedCategories",
smalltalk.method({
selector: "selectedCategories",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@selectedCategories"]) == nil || $receiver == undefined){
self["@selectedCategories"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@selectedCategories"];
} else {
$1=self["@selectedCategories"];
};
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_selectedClasses",
smalltalk.method({
selector: "selectedClasses",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@selectedClasses"]) == nil || $receiver == undefined){
self["@selectedClasses"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
$1=self["@selectedClasses"];
} else {
$1=self["@selectedClasses"];
};
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_statusInfo",
smalltalk.method({
selector: "statusInfo",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_printTotal",[]),"__comma",[smalltalk.send(self,"_printPasses",[])]),"__comma",[smalltalk.send(self,"_printErrors",[])]),"__comma",[smalltalk.send(self,"_printFailures",[])]);
return $1;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_testCases",
smalltalk.method({
selector: "testCases",
fn: function (){
var self=this;
var testCases;
testCases=[];
smalltalk.send(smalltalk.send(smalltalk.send(self,"_selectedClasses",[]),"_select_",[(function(each){
return smalltalk.send(smalltalk.send(self,"_selectedCategories",[]),"_includes_",[smalltalk.send(each,"_category",[])]);
})]),"_do_",[(function(each){
return smalltalk.send(testCases,"_addAll_",[smalltalk.send(each,"_buildSuite",[])]);
})]);
return testCases;
}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_toggleCategory_",
smalltalk.method({
selector: "toggleCategory:",
fn: function (aCategory){
var self=this;
var $1,$2;
$1=smalltalk.send(self,"_isSelectedCategory_",[aCategory]);
if(smalltalk.assert($1)){
smalltalk.send(self["@selectedCategories"],"_remove_",[aCategory]);
} else {
smalltalk.send(self["@selectedCategories"],"_add_",[aCategory]);
};
smalltalk.send(self,"_updateCategoriesList",[]);
$2=smalltalk.send(self,"_updateClassesList",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_toggleClass_",
smalltalk.method({
selector: "toggleClass:",
fn: function (aClass){
var self=this;
var $1;
$1=smalltalk.send(self,"_isSelectedClass_",[aClass]);
if(smalltalk.assert($1)){
smalltalk.send(self["@selectedClasses"],"_remove_",[aClass]);
} else {
smalltalk.send(self["@selectedClasses"],"_add_",[aClass]);
};
smalltalk.send(self,"_updateClassesList",[]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_updateCategoriesList",
smalltalk.method({
selector: "updateCategoriesList",
fn: function (){
var self=this;
var $1,$2,$3,$4;
smalltalk.send(self["@packagesList"],"_contents_",[(function(html){
$1=smalltalk.send(html,"_li",[]);
smalltalk.send($1,"_class_",["all"]);
smalltalk.send($1,"_with_",["All"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_selectAllCategories",[]);
})]);
$2;
return smalltalk.send(smalltalk.send(self,"_packages",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
$3=smalltalk.send(smalltalk.send(self,"_selectedCategories",[]),"_includes_",[each]);
if(smalltalk.assert($3)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[each]);
$4=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_toggleCategory_",[each]);
})]);
return $4;
})]);
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_updateClassesList",
smalltalk.method({
selector: "updateClassesList",
fn: function (){
var self=this;
var $1,$2,$3,$4,$5;
smalltalk.send(self["@classesList"],"_contents_",[(function(html){
$1=smalltalk.send(smalltalk.send(self,"_selectedCategories",[]),"_isEmpty",[]);
if(! smalltalk.assert($1)){
$2=smalltalk.send(html,"_li",[]);
smalltalk.send($2,"_class_",["all"]);
smalltalk.send($2,"_with_",["All"]);
$3=smalltalk.send($2,"_onClick_",[(function(){
return smalltalk.send(self,"_selectAllClasses",[]);
})]);
$3;
};
return smalltalk.send(smalltalk.send(self,"_classes",[]),"_do_",[(function(each){
var li;
li=smalltalk.send(html,"_li",[]);
li;
$4=smalltalk.send(smalltalk.send(self,"_selectedClasses",[]),"_includes_",[each]);
if(smalltalk.assert($4)){
smalltalk.send(li,"_class_",["selected"]);
};
smalltalk.send(li,"_with_",[smalltalk.send(each,"_name",[])]);
$5=smalltalk.send(li,"_onClick_",[(function(){
return smalltalk.send(self,"_toggleClass_",[each]);
})]);
return $5;
})]);
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_updateMethodsList",
smalltalk.method({
selector: "updateMethodsList",
fn: function (){
var self=this;
smalltalk.send(self["@methodsList"],"_contents_",[(function(html){
smalltalk.send(self,"_renderErrorsOn_",[html]);
return smalltalk.send(self,"_renderFailuresOn_",[html]);
})]);
return self}
}),
smalltalk.TestRunner);

smalltalk.addMethod(
"_updateStatusDiv",
smalltalk.method({
selector: "updateStatusDiv",
fn: function (){
var self=this;
smalltalk.send(self["@statusDiv"],"_class_",[smalltalk.send("sunit status ","__comma",[smalltalk.send(self["@result"],"_status",[])])]);
smalltalk.send(self["@statusDiv"],"_contents_",[(function(html){
return smalltalk.send(smalltalk.send(html,"_span",[]),"_with_",[smalltalk.send(self,"_statusInfo",[])]);
})]);
return self}
}),
smalltalk.TestRunner);



smalltalk.addClass('Workspace', smalltalk.TabWidget, ['sourceArea'], 'IDE');
smalltalk.addMethod(
"_clearWorkspace",
smalltalk.method({
selector: "clearWorkspace",
fn: function (){
var self=this;
smalltalk.send(self["@sourceArea"],"_clear",[]);
return self}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_doIt",
smalltalk.method({
selector: "doIt",
fn: function (){
var self=this;
smalltalk.send(self["@sourceArea"],"_doIt",[]);
return self}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_fileIn",
smalltalk.method({
selector: "fileIn",
fn: function (){
var self=this;
smalltalk.send(self["@sourceArea"],"_fileIn",[]);
return self}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_inspectIt",
smalltalk.method({
selector: "inspectIt",
fn: function (){
var self=this;
smalltalk.send(self["@sourceArea"],"_inspectIt",[]);
return self}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_label",
smalltalk.method({
selector: "label",
fn: function (){
var self=this;
return "Workspace";
}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_printIt",
smalltalk.method({
selector: "printIt",
fn: function (){
var self=this;
smalltalk.send(self["@sourceArea"],"_printIt",[]);
return self}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_renderBoxOn_",
smalltalk.method({
selector: "renderBoxOn:",
fn: function (html){
var self=this;
self["@sourceArea"]=smalltalk.send((smalltalk.SourceArea || SourceArea),"_new",[]);
smalltalk.send(self["@sourceArea"],"_renderOn_",[html]);
return self}
}),
smalltalk.Workspace);

smalltalk.addMethod(
"_renderButtonsOn_",
smalltalk.method({
selector: "renderButtonsOn:",
fn: function (html){
var self=this;
var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10;
$1=smalltalk.send(html,"_button",[]);
smalltalk.send($1,"_with_",["DoIt"]);
smalltalk.send($1,"_title_",["ctrl+d"]);
$2=smalltalk.send($1,"_onClick_",[(function(){
return smalltalk.send(self,"_doIt",[]);
})]);
$3=smalltalk.send(html,"_button",[]);
smalltalk.send($3,"_with_",["PrintIt"]);
smalltalk.send($3,"_title_",["ctrl+p"]);
$4=smalltalk.send($3,"_onClick_",[(function(){
return smalltalk.send(self,"_printIt",[]);
})]);
$5=smalltalk.send(html,"_button",[]);
smalltalk.send($5,"_with_",["InspectIt"]);
smalltalk.send($5,"_title_",["ctrl+i"]);
$6=smalltalk.send($5,"_onClick_",[(function(){
return smalltalk.send(self,"_inspectIt",[]);
})]);
$7=smalltalk.send(html,"_button",[]);
smalltalk.send($7,"_with_",["FileIn"]);
smalltalk.send($7,"_title_",["ctrl+f"]);
$8=smalltalk.send($7,"_onClick_",[(function(){
return smalltalk.send(self,"_fileIn",[]);
})]);
$9=smalltalk.send(html,"_button",[]);
smalltalk.send($9,"_with_",["Clear workspace"]);
$10=smalltalk.send($9,"_onClick_",[(function(){
return smalltalk.send(self,"_clearWorkspace",[]);
})]);
return self}
}),
smalltalk.Workspace);



smalltalk.addMethod(
"_inspect",
smalltalk.method({
selector: "inspect",
fn: function (){
var self=this;
var $1,$2;
$1=smalltalk.send((smalltalk.Inspector || Inspector),"_new",[]);
smalltalk.send($1,"_inspect_",[self]);
$2=smalltalk.send($1,"_open",[]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(smalltalk.send(smalltalk.send(self,"_class",[]),"_allInstanceVariableNames",[]),"_do_",[(function(each){
return smalltalk.send(variables,"_at_put_",[each,smalltalk.send(self,"_instVarAt_",[each])]);
})]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(self,"_withIndexDo_",[(function(each,i){
return smalltalk.send(variables,"_at_put_",[i,each]);
})]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.Collection);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(variables,"_at_put_",["#keys",smalltalk.send(self,"_keys",[])]);
smalltalk.send(self,"_keysAndValuesDo_",[(function(key,value){
return smalltalk.send(variables,"_at_put_",[key,value]);
})]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.HashedCollection);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var label;
smalltalk.send(self,"_inspectOn_",[anInspector],smalltalk.CharacterArray);
$1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_printString",[]),"_size",[]),"__gt",[(30)]);
if(smalltalk.assert($1)){
label=smalltalk.send(smalltalk.send(smalltalk.send(self,"_printString",[]),"_copyFrom_to_",[(1),(30)]),"__comma",["...'"]);
label;
} else {
label=smalltalk.send(self,"_printString",[]);
label;
};
smalltalk.send(anInspector,"_setLabel_",[label]);
return self}
}),
smalltalk.String);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(self["@elements"],"_withIndexDo_",[(function(each,i){
return smalltalk.send(variables,"_at_put_",[i,each]);
})]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.Set);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(variables,"_at_put_",["#year",smalltalk.send(self,"_year",[])]);
smalltalk.send(variables,"_at_put_",["#month",smalltalk.send(self,"_month",[])]);
smalltalk.send(variables,"_at_put_",["#day",smalltalk.send(self,"_day",[])]);
smalltalk.send(variables,"_at_put_",["#hours",smalltalk.send(self,"_hours",[])]);
smalltalk.send(variables,"_at_put_",["#minutes",smalltalk.send(self,"_minutes",[])]);
smalltalk.send(variables,"_at_put_",["#seconds",smalltalk.send(self,"_seconds",[])]);
smalltalk.send(variables,"_at_put_",["#milliseconds",smalltalk.send(self,"_milliseconds",[])]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(variables,"_at_put_",["#year",smalltalk.send(self,"_year",[])]);
smalltalk.send(variables,"_at_put_",["#month",smalltalk.send(self,"_month",[])]);
smalltalk.send(variables,"_at_put_",["#day",smalltalk.send(self,"_day",[])]);
smalltalk.send(variables,"_at_put_",["#hours",smalltalk.send(self,"_hours",[])]);
smalltalk.send(variables,"_at_put_",["#minutes",smalltalk.send(self,"_minutes",[])]);
smalltalk.send(variables,"_at_put_",["#seconds",smalltalk.send(self,"_seconds",[])]);
smalltalk.send(variables,"_at_put_",["#milliseconds",smalltalk.send(self,"_milliseconds",[])]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var $1;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",self]);
smalltalk.send(variables,"_at_put_",["#home",smalltalk.send(self,"_home",[])]);
smalltalk.send(variables,"_at_put_",["#receiver",smalltalk.send(self,"_receiver",[])]);
smalltalk.send(variables,"_at_put_",["#selector",smalltalk.send(self,"_selector",[])]);
smalltalk.send(variables,"_at_put_",["#temps",smalltalk.send(self,"_temps",[])]);
smalltalk.send(smalltalk.send(smalltalk.send(self,"_class",[]),"_instanceVariableNames",[]),"_do_",[(function(each){
return smalltalk.send(variables,"_at_put_",[each,smalltalk.send(self,"_instVarAt_",[each])]);
})]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
$1=smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.MethodContext);