Browse Source

Helios: More models refactorings

Nicolas Petton 11 years ago
parent
commit
056583e6d1

+ 1 - 1
helios.html

@@ -14,7 +14,7 @@
   </head> 
   <body> 
     
-    <script type='text/javascript'> loadAmber({packages: ['Spaces', 'Helios-Core', 'Helios-Exceptions', 'Helios-Commands-Core','Helios-Commands-Browser', 'Helios-Layout','Helios-KeyBindings', 'Helios-Browser', 'Helios-Workspace', 'Helios-Inspector', 'Helios-References', 'Helios-Announcements']}) </script>
+    <script type='text/javascript'> loadAmber({packages: ['Spaces', 'Helios-Core', 'Helios-Exceptions', 'Helios-Commands-Core','Helios-Commands-Tools', 'Helios-Layout','Helios-KeyBindings', 'Helios-Browser', 'Helios-Workspace', 'Helios-Inspector', 'Helios-References', 'Helios-Announcements']}) </script>
     <link rel="stylesheet" type="text/css" href='css/helios.css' />
     
     <div id="helper">Loading Helios...</div>

+ 393 - 1344
js/Helios-Browser.deploy.js

@@ -462,302 +462,421 @@ smalltalk.HLBrowserBottomWidget);
 
 
 
-smalltalk.addClass('HLBrowserListWidget', smalltalk.HLNavigationListWidget, ['model'], 'Helios-Browser');
+smalltalk.addClass('HLBrowserModel', smalltalk.HLToolModel, ['showInstance', 'showComment'], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({
-selector: "activateListItem:",
-fn: function (anItem){
+selector: "focusOnClasses",
+fn: function (){
 var self=this;
+function $HLClassesFocusRequested(){return smalltalk.HLClassesFocusRequested||(typeof HLClassesFocusRequested=="undefined"?nil:HLClassesFocusRequested)}
 return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLNavigationListWidget.fn.prototype._activateListItem_.apply(_st(self), [anItem]);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"activateListItem:",{anItem:anItem},smalltalk.HLBrowserListWidget)})},
-messageSends: ["withChangesDo:", "activateListItem:", "model"]}),
-smalltalk.HLBrowserListWidget);
+_st(_st(self)._announcer())._announce_(_st($HLClassesFocusRequested())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusOnClasses",{},smalltalk.HLBrowserModel)})},
+messageSends: ["announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "activateNextListItem",
+selector: "focusOnMethods",
 fn: function (){
 var self=this;
+function $HLMethodsFocusRequested(){return smalltalk.HLMethodsFocusRequested||(typeof HLMethodsFocusRequested=="undefined"?nil:HLMethodsFocusRequested)}
 return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLNavigationListWidget.fn.prototype._activateNextListItem.apply(_st(self), []);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"activateNextListItem",{},smalltalk.HLBrowserListWidget)})},
-messageSends: ["withChangesDo:", "activateNextListItem", "model"]}),
-smalltalk.HLBrowserListWidget);
+_st(_st(self)._announcer())._announce_(_st($HLMethodsFocusRequested())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusOnMethods",{},smalltalk.HLBrowserModel)})},
+messageSends: ["announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "activatePreviousListItem",
+selector: "focusOnPackages",
 fn: function (){
 var self=this;
+function $HLPackagesFocusRequested(){return smalltalk.HLPackagesFocusRequested||(typeof HLPackagesFocusRequested=="undefined"?nil:HLPackagesFocusRequested)}
 return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLNavigationListWidget.fn.prototype._activatePreviousListItem.apply(_st(self), []);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"activatePreviousListItem",{},smalltalk.HLBrowserListWidget)})},
-messageSends: ["withChangesDo:", "activatePreviousListItem", "model"]}),
-smalltalk.HLBrowserListWidget);
+_st(_st(self)._announcer())._announce_(_st($HLPackagesFocusRequested())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusOnPackages",{},smalltalk.HLBrowserModel)})},
+messageSends: ["announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "commandCategory",
+selector: "focusOnProtocols",
 fn: function (){
 var self=this;
+function $HLProtocolsFocusRequested(){return smalltalk.HLProtocolsFocusRequested||(typeof HLProtocolsFocusRequested=="undefined"?nil:HLProtocolsFocusRequested)}
 return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(self)._label();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"commandCategory",{},smalltalk.HLBrowserListWidget)})},
-messageSends: ["label"]}),
-smalltalk.HLBrowserListWidget);
+_st(_st(self)._announcer())._announce_(_st($HLProtocolsFocusRequested())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusOnProtocols",{},smalltalk.HLBrowserModel)})},
+messageSends: ["announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "label",
+selector: "focusOnSourceCode",
 fn: function (){
 var self=this;
+function $HLSourceCodeFocusRequested(){return smalltalk.HLSourceCodeFocusRequested||(typeof HLSourceCodeFocusRequested=="undefined"?nil:HLSourceCodeFocusRequested)}
 return smalltalk.withContext(function($ctx1) { 
-return "List";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLBrowserListWidget)})},
-messageSends: []}),
-smalltalk.HLBrowserListWidget);
+_st(_st(self)._announcer())._announce_(_st($HLSourceCodeFocusRequested())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusOnSourceCode",{},smalltalk.HLBrowserModel)})},
+messageSends: ["announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "menuCommands",
+selector: "isBrowserModel",
 fn: function (){
 var self=this;
-function $HLBrowserCommand(){return smalltalk.HLBrowserCommand||(typeof HLBrowserCommand=="undefined"?nil:HLBrowserCommand)}
 return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st($HLBrowserCommand())._concreteClasses())._collect_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(each)._for_(_st(self)._model());
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._select_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(_st(each)._category()).__eq(_st(self)._commandCategory()))._and_((function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(_st(each)._isAction())._and_((function(){
-return smalltalk.withContext(function($ctx4) {
-return _st(each)._isActive();
-}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"menuCommands",{},smalltalk.HLBrowserListWidget)})},
-messageSends: ["select:", "and:", "isActive", "isAction", "=", "commandCategory", "category", "collect:", "for:", "model", "concreteClasses"]}),
-smalltalk.HLBrowserListWidget);
+return true;
+}, function($ctx1) {$ctx1.fill(self,"isBrowserModel",{},smalltalk.HLBrowserModel)})},
+messageSends: []}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "model",
+selector: "showComment",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@model"];
+var $2,$1;
+$2=self["@showComment"];
+if(($receiver = $2) == nil || $receiver == undefined){
+$1=false;
+} else {
+$1=$2;
+};
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"model",{},smalltalk.HLBrowserListWidget)})},
-messageSends: []}),
-smalltalk.HLBrowserListWidget);
+}, function($ctx1) {$ctx1.fill(self,"showComment",{},smalltalk.HLBrowserModel)})},
+messageSends: ["ifNil:"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "model:",
-fn: function (aBrowserModel){
+selector: "showComment:",
+fn: function (aBoolean){
 var self=this;
+function $HLShowCommentToggled(){return smalltalk.HLShowCommentToggled||(typeof HLShowCommentToggled=="undefined"?nil:HLShowCommentToggled)}
 return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-self["@model"]=aBrowserModel;
-$1=self;
-_st($1)._observeSystem();
-$2=_st($1)._observeModel();
-return self}, function($ctx1) {$ctx1.fill(self,"model:",{aBrowserModel:aBrowserModel},smalltalk.HLBrowserListWidget)})},
-messageSends: ["observeSystem", "observeModel"]}),
-smalltalk.HLBrowserListWidget);
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+self["@showComment"]=aBoolean;
+self["@showComment"];
+return _st(_st(self)._announcer())._announce_(_st($HLShowCommentToggled())._new());
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"showComment:",{aBoolean:aBoolean},smalltalk.HLBrowserModel)})},
+messageSends: ["withChangesDo:", "announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "observeModel",
+selector: "showInstance",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-return self}, function($ctx1) {$ctx1.fill(self,"observeModel",{},smalltalk.HLBrowserListWidget)})},
-messageSends: []}),
-smalltalk.HLBrowserListWidget);
+var $2,$1;
+$2=self["@showInstance"];
+if(($receiver = $2) == nil || $receiver == undefined){
+$1=true;
+} else {
+$1=$2;
+};
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"showInstance",{},smalltalk.HLBrowserModel)})},
+messageSends: ["ifNil:"]}),
+smalltalk.HLBrowserModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "observeSystem",
-fn: function (){
+selector: "showInstance:",
+fn: function (aBoolean){
 var self=this;
+function $HLShowInstanceToggled(){return smalltalk.HLShowInstanceToggled||(typeof HLShowInstanceToggled=="undefined"?nil:HLShowInstanceToggled)}
 return smalltalk.withContext(function($ctx1) { 
-return self}, function($ctx1) {$ctx1.fill(self,"observeSystem",{},smalltalk.HLBrowserListWidget)})},
-messageSends: []}),
-smalltalk.HLBrowserListWidget);
+var $1,$2,$4,$3;
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+self["@showInstance"]=aBoolean;
+self["@showInstance"];
+self["@showComment"]=false;
+self["@showComment"];
+$1=_st(self)._selectedClass();
+if(($receiver = $1) == nil || $receiver == undefined){
+$1;
+} else {
+$2=self;
+$4=aBoolean;
+if(smalltalk.assert($4)){
+$3=_st(_st(self)._selectedClass())._theNonMetaClass();
+} else {
+$3=_st(_st(self)._selectedClass())._theMetaClass();
+};
+_st($2)._selectedClass_($3);
+};
+return _st(_st(self)._announcer())._announce_(_st($HLShowInstanceToggled())._new());
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"showInstance:",{aBoolean:aBoolean},smalltalk.HLBrowserModel)})},
+messageSends: ["withChangesDo:", "ifNotNil:", "selectedClass:", "ifTrue:ifFalse:", "theNonMetaClass", "selectedClass", "theMetaClass", "announce:", "new", "announcer"]}),
+smalltalk.HLBrowserModel);
+
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "renderContentOn:",
-fn: function (html){
+selector: "on:",
+fn: function (anEnvironment){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-_st(self)._renderHeadOn_(html);
-smalltalk.HLNavigationListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
-return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.HLBrowserListWidget)})},
-messageSends: ["renderHeadOn:", "renderContentOn:"]}),
-smalltalk.HLBrowserListWidget);
+var $2,$3,$1;
+$2=_st(self)._new();
+_st($2)._environment_(anEnvironment);
+$3=_st($2)._yourself();
+$1=$3;
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"on:",{anEnvironment:anEnvironment},smalltalk.HLBrowserModel.klass)})},
+messageSends: ["environment:", "new", "yourself"]}),
+smalltalk.HLBrowserModel.klass);
+
 
+smalltalk.addClass('HLClassCache', smalltalk.Object, ['class', 'selectorsCache', 'overrideCache', 'overriddenCache'], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({
-selector: "renderHeadOn:",
-fn: function (html){
+selector: "invalidateChildrenSelector:",
+fn: function (aSelector){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $1,$2;
-$1=_st(html)._div();
-_st($1)._class_("list-label");
-$2=_st($1)._with_((function(){
+_st(_st(_st(self)._theClass())._subclasses())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
-_st(html)._with_(_st(self)._label());
-return _st(self)._renderMenuOn_(html);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renderHeadOn:",{html:html},smalltalk.HLBrowserListWidget)})},
-messageSends: ["class:", "div", "with:", "label", "renderMenuOn:"]}),
-smalltalk.HLBrowserListWidget);
+$1=_st(_st(self)._selectorsCache())._cacheFor_(each);
+_st($1)._removeSelector_(aSelector);
+$2=_st($1)._invalidateChildrenSelector_(aSelector);
+return $2;
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"invalidateChildrenSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
+messageSends: ["do:", "removeSelector:", "cacheFor:", "selectorsCache", "invalidateChildrenSelector:", "subclasses", "theClass"]}),
+smalltalk.HLClassCache);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "renderMenuOn:",
-fn: function (html){
+selector: "invalidateParentSelector:",
+fn: function (aSelector){
 var self=this;
-var commands;
 return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$5,$6,$7,$9,$10,$8,$4;
-commands=_st(self)._menuCommands();
-$1=_st(commands)._isEmpty();
-if(smalltalk.assert($1)){
-$2=self;
-return $2;
+var $1,$2,$3;
+$1=_st(_st(self)._theClass())._superclass();
+if(($receiver = $1) == nil || $receiver == undefined){
+$1;
+} else {
+$2=_st(_st(self)._selectorsCache())._cacheFor_(_st(_st(self)._theClass())._superclass());
+_st($2)._removeSelector_(aSelector);
+$3=_st($2)._invalidateParentSelector_(aSelector);
+$3;
 };
-$3=_st(html)._div();
-_st($3)._class_("btn-group cog");
-$4=_st($3)._with_((function(){
-return smalltalk.withContext(function($ctx2) {
-$5=_st(html)._a();
-_st($5)._class_("btn dropdown-toggle");
-_st($5)._at_put_("data-toggle","dropdown");
-$6=_st($5)._with_((function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(_st(html)._tag_("i"))._class_("icon-cog");
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
-$6;
-$7=_st(html)._ul();
-_st($7)._class_("dropdown-menu pull-right");
-$8=_st($7)._with_((function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(_st(self)._menuCommands())._do_((function(each){
-return smalltalk.withContext(function($ctx4) {
-return _st(_st(html)._li())._with_((function(){
-return smalltalk.withContext(function($ctx5) {
-$9=_st(html)._a();
-_st($9)._with_(_st(each)._menuLabel());
-$10=_st($9)._onClick_((function(){
-return smalltalk.withContext(function($ctx6) {
-return _st(self)._execute_(each);
-}, function($ctx6) {$ctx6.fillBlock({},$ctx1)})}));
-return $10;
-}, function($ctx5) {$ctx5.fillBlock({},$ctx1)})}));
-}, function($ctx4) {$ctx4.fillBlock({each:each},$ctx1)})}));
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
-return $8;
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renderMenuOn:",{html:html,commands:commands},smalltalk.HLBrowserListWidget)})},
-messageSends: ["menuCommands", "ifTrue:", "isEmpty", "class:", "div", "with:", "a", "at:put:", "tag:", "ul", "do:", "menuLabel", "onClick:", "execute:", "li"]}),
-smalltalk.HLBrowserListWidget);
+return self}, function($ctx1) {$ctx1.fill(self,"invalidateParentSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
+messageSends: ["ifNotNil:", "removeSelector:", "cacheFor:", "superclass", "theClass", "selectorsCache", "invalidateParentSelector:"]}),
+smalltalk.HLClassCache);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "selectedItem:",
-fn: function (anItem){
+selector: "invalidateSelector:",
+fn: function (aSelector){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-smalltalk.HLNavigationListWidget.fn.prototype._selectedItem_.apply(_st(self), [anItem]);
-_st(self)._updateMenu();
-return self}, function($ctx1) {$ctx1.fill(self,"selectedItem:",{anItem:anItem},smalltalk.HLBrowserListWidget)})},
-messageSends: ["selectedItem:", "updateMenu"]}),
-smalltalk.HLBrowserListWidget);
+var $1,$2;
+$1=self;
+_st($1)._invalidateParentSelector_(aSelector);
+_st($1)._invalidateChildrenSelector_(aSelector);
+$2=_st($1)._removeSelector_(aSelector);
+return self}, function($ctx1) {$ctx1.fill(self,"invalidateSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
+messageSends: ["invalidateParentSelector:", "invalidateChildrenSelector:", "removeSelector:"]}),
+smalltalk.HLClassCache);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "updateMenu",
-fn: function (){
+selector: "isOverridden:",
+fn: function (aMethod){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-_st(_st(_st(_st(self)._wrapper())._asJQuery())._find_(".cog"))._remove();
-_st((function(html){
+var $1;
+$1=_st(_st(self)._overriddenCache())._at_ifAbsentPut_(_st(aMethod)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
-return _st(self)._renderMenuOn_(html);
-}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st(_st(_st(self)._wrapper())._asJQuery())._find_(".list-label"));
-return self}, function($ctx1) {$ctx1.fill(self,"updateMenu",{},smalltalk.HLBrowserListWidget)})},
-messageSends: ["remove", "find:", "asJQuery", "wrapper", "appendToJQuery:", "renderMenuOn:"]}),
-smalltalk.HLBrowserListWidget);
-
+return _st(aMethod)._isOverridden();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"isOverridden:",{aMethod:aMethod},smalltalk.HLClassCache)})},
+messageSends: ["at:ifAbsentPut:", "selector", "isOverridden", "overriddenCache"]}),
+smalltalk.HLClassCache);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "on:",
-fn: function (aModel){
+selector: "isOverride:",
+fn: function (aMethod){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(self)._new();
-_st($2)._model_(aModel);
-$3=_st($2)._yourself();
-$1=$3;
+var $1;
+$1=_st(_st(self)._overrideCache())._at_ifAbsentPut_(_st(aMethod)._selector(),(function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(aMethod)._isOverride();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aModel:aModel},smalltalk.HLBrowserListWidget.klass)})},
-messageSends: ["model:", "new", "yourself"]}),
-smalltalk.HLBrowserListWidget.klass);
-
+}, function($ctx1) {$ctx1.fill(self,"isOverride:",{aMethod:aMethod},smalltalk.HLClassCache)})},
+messageSends: ["at:ifAbsentPut:", "selector", "isOverride", "overrideCache"]}),
+smalltalk.HLClassCache);
 
-smalltalk.addClass('HLClassesListWidget', smalltalk.HLBrowserListWidget, [], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({
-selector: "focusMethodsListWidget",
+selector: "overriddenCache",
 fn: function (){
 var self=this;
-function $HLMethodsListFocus(){return smalltalk.HLMethodsListFocus||(typeof HLMethodsListFocus=="undefined"?nil:HLMethodsListFocus)}
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
-_st(_st(_st(self)._model())._announcer())._announce_(_st($HLMethodsListFocus())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusMethodsListWidget",{},smalltalk.HLClassesListWidget)})},
-messageSends: ["announce:", "new", "announcer", "model"]}),
-smalltalk.HLClassesListWidget);
+var $2,$1;
+$2=self["@overriddenCache"];
+if(($receiver = $2) == nil || $receiver == undefined){
+self["@overriddenCache"]=_st($HashedCollection())._new();
+$1=self["@overriddenCache"];
+} else {
+$1=$2;
+};
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"overriddenCache",{},smalltalk.HLClassCache)})},
+messageSends: ["ifNil:", "new"]}),
+smalltalk.HLClassCache);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "focusProtocolsListWidget",
+selector: "overrideCache",
 fn: function (){
 var self=this;
-function $HLProtocolsListFocus(){return smalltalk.HLProtocolsListFocus||(typeof HLProtocolsListFocus=="undefined"?nil:HLProtocolsListFocus)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(_st(self)._model())._announcer())._announce_(_st($HLProtocolsListFocus())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusProtocolsListWidget",{},smalltalk.HLClassesListWidget)})},
-messageSends: ["announce:", "new", "announcer", "model"]}),
-smalltalk.HLClassesListWidget);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "getChildrenOf:",
-fn: function (aClass){
-var self=this;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
+return smalltalk.withContext(function($ctx1) { 
+var $2,$1;
+$2=self["@overrideCache"];
+if(($receiver = $2) == nil || $receiver == undefined){
+self["@overrideCache"]=_st($HashedCollection())._new();
+$1=self["@overrideCache"];
+} else {
+$1=$2;
+};
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"overrideCache",{},smalltalk.HLClassCache)})},
+messageSends: ["ifNil:", "new"]}),
+smalltalk.HLClassCache);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "removeSelector:",
+fn: function (aSelector){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._overriddenCache())._removeKey_ifAbsent_(aSelector,(function(){
+return smalltalk.withContext(function($ctx2) {
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+_st(_st(self)._overrideCache())._removeKey_ifAbsent_(aSelector,(function(){
+return smalltalk.withContext(function($ctx2) {
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"removeSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
+messageSends: ["removeKey:ifAbsent:", "overriddenCache", "overrideCache"]}),
+smalltalk.HLClassCache);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectorsCache",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self["@selectorsCache"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"selectorsCache",{},smalltalk.HLClassCache)})},
+messageSends: []}),
+smalltalk.HLClassCache);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectorsCache:",
+fn: function (aCache){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+self["@selectorsCache"]=aCache;
+return self}, function($ctx1) {$ctx1.fill(self,"selectorsCache:",{aCache:aCache},smalltalk.HLClassCache)})},
+messageSends: []}),
+smalltalk.HLClassCache);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "theClass",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self["@class"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.HLClassCache)})},
+messageSends: []}),
+smalltalk.HLClassCache);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "theClass:",
+fn: function (aClass){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+self["@class"]=aClass;
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.HLClassCache)})},
+messageSends: []}),
+smalltalk.HLClassCache);
+
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "on:selectorsCache:",
+fn: function (aClass,aSelectorsCache){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $2,$3,$1;
+$2=_st(self)._new();
+_st($2)._theClass_(aClass);
+_st($2)._selectorsCache_(aSelectorsCache);
+$3=_st($2)._yourself();
+$1=$3;
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"on:selectorsCache:",{aClass:aClass,aSelectorsCache:aSelectorsCache},smalltalk.HLClassCache.klass)})},
+messageSends: ["theClass:", "new", "selectorsCache:", "yourself"]}),
+smalltalk.HLClassCache.klass);
+
+
+smalltalk.addClass('HLClassesListWidget', smalltalk.HLToolListWidget, [], 'Helios-Browser');
+smalltalk.addMethod(
+smalltalk.method({
+selector: "focusMethodsListWidget",
+fn: function (){
+var self=this;
+function $HLMethodsListFocus(){return smalltalk.HLMethodsListFocus||(typeof HLMethodsListFocus=="undefined"?nil:HLMethodsListFocus)}
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(_st(self)._model())._announcer())._announce_(_st($HLMethodsListFocus())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusMethodsListWidget",{},smalltalk.HLClassesListWidget)})},
+messageSends: ["announce:", "new", "announcer", "model"]}),
+smalltalk.HLClassesListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "focusProtocolsListWidget",
+fn: function (){
+var self=this;
+function $HLProtocolsListFocus(){return smalltalk.HLProtocolsListFocus||(typeof HLProtocolsListFocus=="undefined"?nil:HLProtocolsListFocus)}
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(_st(self)._model())._announcer())._announce_(_st($HLProtocolsListFocus())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"focusProtocolsListWidget",{},smalltalk.HLClassesListWidget)})},
+messageSends: ["announce:", "new", "announcer", "model"]}),
+smalltalk.HLClassesListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "getChildrenOf:",
+fn: function (aClass){
+var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $1;
 $1=_st(_st(self)._items())._select_((function(each){
@@ -1149,7 +1268,7 @@ selector: "renderItem:on:",
 fn: function (aClass,html){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-smalltalk.HLBrowserListWidget.fn.prototype._renderItem_on_.apply(_st(self), [aClass,html]);
+smalltalk.HLToolListWidget.fn.prototype._renderItem_on_.apply(_st(self), [aClass,html]);
 _st(_st(self)._getChildrenOf_(aClass))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
 return _st(self)._renderItem_level_on_(each,(1),html);
@@ -1318,7 +1437,79 @@ smalltalk.HLClassesListWidget);
 
 
 
-smalltalk.addClass('HLMethodsListWidget', smalltalk.HLBrowserListWidget, ['selectorsCache'], 'Helios-Browser');
+smalltalk.addClass('HLDocumentationWidget', smalltalk.HLFocusableWidget, ['model'], 'Helios-Browser');
+smalltalk.addMethod(
+smalltalk.method({
+selector: "defaultDocumentation",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return "#No documentation available. \x0a##That's bad. Seriously.";
+}, function($ctx1) {$ctx1.fill(self,"defaultDocumentation",{},smalltalk.HLDocumentationWidget)})},
+messageSends: []}),
+smalltalk.HLDocumentationWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "documentation",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $2,$1;
+$2=_st(_st(_st(_st(self)._model())._selectedClass())._theNonMetaClass())._comment();
+if(($receiver = $2) == nil || $receiver == undefined){
+$1=_st(self)._defaultDocumentation();
+} else {
+$1=$2;
+};
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"documentation",{},smalltalk.HLDocumentationWidget)})},
+messageSends: ["ifNil:", "defaultDocumentation", "comment", "theNonMetaClass", "selectedClass", "model"]}),
+smalltalk.HLDocumentationWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "model",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self["@model"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"model",{},smalltalk.HLDocumentationWidget)})},
+messageSends: []}),
+smalltalk.HLDocumentationWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "model:",
+fn: function (aModel){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+self["@model"]=aModel;
+return self}, function($ctx1) {$ctx1.fill(self,"model:",{aModel:aModel},smalltalk.HLDocumentationWidget)})},
+messageSends: []}),
+smalltalk.HLDocumentationWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renderContentOn:",
+fn: function (html){
+var self=this;
+function $Showdown(){return smalltalk.Showdown||(typeof Showdown=="undefined"?nil:Showdown)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st(html)._div();
+_st($1)._class_("markdown");
+$2=_st($1)._asJQuery();
+_st($2)._html_(_st(_st(_st($Showdown())._at_("converter"))._new())._makeHtml_(_st(self)._documentation()));
+return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.HLDocumentationWidget)})},
+messageSends: ["html:", "makeHtml:", "documentation", "new", "at:", "class:", "div", "asJQuery"]}),
+smalltalk.HLDocumentationWidget);
+
+
+
+smalltalk.addClass('HLMethodsListWidget', smalltalk.HLToolListWidget, ['selectorsCache'], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "allProtocol",
@@ -1729,13 +1920,13 @@ return smalltalk.withContext(function($ctx1) {
 var $1,$2,$3;
 $1=_st(_st(self)._model())._showInstance();
 if(smalltalk.assert($1)){
-smalltalk.HLBrowserListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
+smalltalk.HLToolListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
 } else {
 $2=_st(html)._div();
 _st($2)._class_("class_side");
 $3=_st($2)._with_((function(){
 return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLBrowserListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
+return smalltalk.HLToolListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3;
 };
@@ -1850,7 +2041,7 @@ messageSends: ["current"]}),
 smalltalk.HLMethodsListWidget.klass);
 
 
-smalltalk.addClass('HLPackagesListWidget', smalltalk.HLBrowserListWidget, [], 'Helios-Browser');
+smalltalk.addClass('HLPackagesListWidget', smalltalk.HLToolListWidget, [], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "commitPackage",
@@ -2053,7 +2244,7 @@ smalltalk.HLPackagesListWidget);
 
 
 
-smalltalk.addClass('HLProtocolsListWidget', smalltalk.HLBrowserListWidget, [], 'Helios-Browser');
+smalltalk.addClass('HLProtocolsListWidget', smalltalk.HLToolListWidget, [], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "allProtocol",
@@ -2234,13 +2425,13 @@ return smalltalk.withContext(function($ctx1) {
 var $1,$2,$3;
 $1=_st(_st(self)._model())._showInstance();
 if(smalltalk.assert($1)){
-smalltalk.HLBrowserListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
+smalltalk.HLToolListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
 } else {
 $2=_st(html)._div();
 _st($2)._class_("class_side");
 $3=_st($2)._with_((function(){
 return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLBrowserListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
+return smalltalk.HLToolListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3;
 };
@@ -2266,7 +2457,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=smalltalk.HLBrowserListWidget.fn.prototype._selectedItem.apply(_st(self), []);
+$1=smalltalk.HLToolListWidget.fn.prototype._selectedItem.apply(_st(self), []);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"selectedItem",{},smalltalk.HLProtocolsListWidget)})},
 messageSends: ["selectedItem"]}),
@@ -2308,1148 +2499,6 @@ smalltalk.HLProtocolsListWidget);
 
 
 
-smalltalk.addClass('HLBrowserModel', smalltalk.HLModel, ['selectedPackage', 'selectedClass', 'selectedProtocol', 'selectedSelector', 'showInstance', 'showComment'], 'Helios-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "addInstVarNamed:",
-fn: function (aString){
-var self=this;
-function $HLInstVarAdded(){return smalltalk.HLInstVarAdded||(typeof HLInstVarAdded=="undefined"?nil:HLInstVarAdded)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-_st(_st(self)._environment())._addInstVarNamed_to_(aString,_st(self)._selectedClass());
-$1=_st($HLInstVarAdded())._new();
-_st($1)._theClass_(_st(self)._selectedClass());
-_st($1)._variableName_(aString);
-$2=_st($1)._yourself();
-_st(_st(self)._announcer())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"addInstVarNamed:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["addInstVarNamed:to:", "selectedClass", "environment", "announce:", "theClass:", "new", "variableName:", "yourself", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "allProtocol",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "-- all --";
-}, function($ctx1) {$ctx1.fill(self,"allProtocol",{},smalltalk.HLBrowserModel)})},
-messageSends: []}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "allSelectors",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._environment())._allSelectors();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSelectors",{},smalltalk.HLBrowserModel)})},
-messageSends: ["allSelectors", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "availableClassNames",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._environment())._availableClassNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"availableClassNames",{},smalltalk.HLBrowserModel)})},
-messageSends: ["availableClassNames", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "availablePackageNames",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._environment())._availablePackageNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"availablePackageNames",{},smalltalk.HLBrowserModel)})},
-messageSends: ["availablePackageNames", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "availablePackages",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._environment())._availablePackageNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"availablePackages",{},smalltalk.HLBrowserModel)})},
-messageSends: ["availablePackageNames", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "availableProtocols",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._environment())._availableProtocolsFor_(_st(self)._selectedClass());
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"availableProtocols",{},smalltalk.HLBrowserModel)})},
-messageSends: ["availableProtocolsFor:", "selectedClass", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "commitPackage",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withHelperLabelled_do_(_st(_st("Committing package ").__comma(_st(_st(self)._selectedPackage())._name())).__comma("..."),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._commitPackage_(_st(self)._selectedPackage());
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"commitPackage",{},smalltalk.HLBrowserModel)})},
-messageSends: ["withHelperLabelled:do:", ",", "name", "selectedPackage", "commitPackage:", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "compilationProtocol",
-fn: function (){
-var self=this;
-var currentProtocol;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$4,$3;
-currentProtocol=_st(self)._selectedProtocol();
-$1=currentProtocol;
-if(($receiver = $1) == nil || $receiver == undefined){
-currentProtocol=_st(self)._unclassifiedProtocol();
-currentProtocol;
-} else {
-$1;
-};
-$2=_st(self)._selectedMethod();
-if(($receiver = $2) == nil || $receiver == undefined){
-$2;
-} else {
-currentProtocol=_st(_st(self)._selectedMethod())._protocol();
-currentProtocol;
-};
-$4=_st(currentProtocol).__eq(_st(self)._allProtocol());
-if(smalltalk.assert($4)){
-$3=_st(self)._unclassifiedProtocol();
-} else {
-$3=currentProtocol;
-};
-return $3;
-}, function($ctx1) {$ctx1.fill(self,"compilationProtocol",{currentProtocol:currentProtocol},smalltalk.HLBrowserModel)})},
-messageSends: ["selectedProtocol", "ifNil:", "unclassifiedProtocol", "ifNotNil:", "protocol", "selectedMethod", "ifTrue:ifFalse:", "=", "allProtocol"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "compileClassComment:",
-fn: function (aString){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._environment())._compileClassComment_for_(aString,_st(self)._selectedClass());
-return self}, function($ctx1) {$ctx1.fill(self,"compileClassComment:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["compileClassComment:for:", "selectedClass", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "compileClassDefinition:",
-fn: function (aString){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._environment())._compileClassDefinition_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"compileClassDefinition:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["compileClassDefinition:", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "compileMethod:",
-fn: function (aString){
-var self=this;
-var method;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withCompileErrorHandling_((function(){
-return smalltalk.withContext(function($ctx2) {
-method=_st(_st(self)._environment())._compileMethod_for_protocol_(aString,_st(self)._selectedClass(),_st(self)._compilationProtocol());
-method;
-return _st(self)._selectedMethod_(method);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString,method:method},smalltalk.HLBrowserModel)})},
-messageSends: ["withCompileErrorHandling:", "compileMethod:for:protocol:", "selectedClass", "compilationProtocol", "environment", "selectedMethod:"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "copyClassTo:",
-fn: function (aClassName){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._copyClass_to_(_st(_st(self)._selectedClass())._theNonMetaClass(),aClassName);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"copyClassTo:",{aClassName:aClassName},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "copyClass:to:", "theNonMetaClass", "selectedClass", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "focusOnClasses",
-fn: function (){
-var self=this;
-function $HLClassesFocusRequested(){return smalltalk.HLClassesFocusRequested||(typeof HLClassesFocusRequested=="undefined"?nil:HLClassesFocusRequested)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._announcer())._announce_(_st($HLClassesFocusRequested())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusOnClasses",{},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "focusOnMethods",
-fn: function (){
-var self=this;
-function $HLMethodsFocusRequested(){return smalltalk.HLMethodsFocusRequested||(typeof HLMethodsFocusRequested=="undefined"?nil:HLMethodsFocusRequested)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._announcer())._announce_(_st($HLMethodsFocusRequested())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusOnMethods",{},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "focusOnPackages",
-fn: function (){
-var self=this;
-function $HLPackagesFocusRequested(){return smalltalk.HLPackagesFocusRequested||(typeof HLPackagesFocusRequested=="undefined"?nil:HLPackagesFocusRequested)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._announcer())._announce_(_st($HLPackagesFocusRequested())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusOnPackages",{},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "focusOnProtocols",
-fn: function (){
-var self=this;
-function $HLProtocolsFocusRequested(){return smalltalk.HLProtocolsFocusRequested||(typeof HLProtocolsFocusRequested=="undefined"?nil:HLProtocolsFocusRequested)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._announcer())._announce_(_st($HLProtocolsFocusRequested())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusOnProtocols",{},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "focusOnSourceCode",
-fn: function (){
-var self=this;
-function $HLSourceCodeFocusRequested(){return smalltalk.HLSourceCodeFocusRequested||(typeof HLSourceCodeFocusRequested=="undefined"?nil:HLSourceCodeFocusRequested)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._announcer())._announce_(_st($HLSourceCodeFocusRequested())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"focusOnSourceCode",{},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "handleCompileError:",
-fn: function (anError){
-var self=this;
-function $HLCompileErrorRaised(){return smalltalk.HLCompileErrorRaised||(typeof HLCompileErrorRaised=="undefined"?nil:HLCompileErrorRaised)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st($HLCompileErrorRaised())._new();
-_st($1)._error_(anError);
-$2=_st($1)._yourself();
-_st(_st(self)._announcer())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"handleCompileError:",{anError:anError},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "error:", "new", "yourself", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "handleParseError:",
-fn: function (anError){
-var self=this;
-var split,line,column,messageToInsert;
-function $HLParseErrorRaised(){return smalltalk.HLParseErrorRaised||(typeof HLParseErrorRaised=="undefined"?nil:HLParseErrorRaised)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-split=_st(_st(anError)._messageText())._tokenize_(" : ");
-messageToInsert=_st(split)._second();
-split=_st(_st(split)._first())._copyFrom_to_((21),_st(_st(split)._first())._size());
-split=_st(split)._tokenize_(" column ");
-line=_st(split)._first();
-column=_st(split)._second();
-$1=_st($HLParseErrorRaised())._new();
-_st($1)._line_(_st(line)._asNumber());
-_st($1)._column_(_st(column)._asNumber());
-_st($1)._message_(messageToInsert);
-_st($1)._error_(anError);
-$2=_st($1)._yourself();
-_st(_st(self)._announcer())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"handleParseError:",{anError:anError,split:split,line:line,column:column,messageToInsert:messageToInsert},smalltalk.HLBrowserModel)})},
-messageSends: ["tokenize:", "messageText", "second", "copyFrom:to:", "size", "first", "announce:", "line:", "asNumber", "new", "column:", "message:", "error:", "yourself", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "handleUnkownVariableError:",
-fn: function (anError){
-var self=this;
-function $HLUnknownVariableErrorRaised(){return smalltalk.HLUnknownVariableErrorRaised||(typeof HLUnknownVariableErrorRaised=="undefined"?nil:HLUnknownVariableErrorRaised)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st($HLUnknownVariableErrorRaised())._new();
-_st($1)._error_(anError);
-$2=_st($1)._yourself();
-_st(_st(self)._announcer())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"handleUnkownVariableError:",{anError:anError},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "error:", "new", "yourself", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "moveClassToPackage:",
-fn: function (aPackageName){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._moveClass_toPackage_(_st(_st(self)._selectedClass())._theNonMetaClass(),aPackageName);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"moveClassToPackage:",{aPackageName:aPackageName},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "moveClass:toPackage:", "theNonMetaClass", "selectedClass", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "moveMethodToClass:",
-fn: function (aClassName){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._moveMethod_toClass_(_st(self)._selectedMethod(),aClassName);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"moveMethodToClass:",{aClassName:aClassName},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "moveMethod:toClass:", "selectedMethod", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "moveMethodToProtocol:",
-fn: function (aProtocol){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._moveMethod_toProtocol_(_st(self)._selectedMethod(),aProtocol);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"moveMethodToProtocol:",{aProtocol:aProtocol},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "moveMethod:toProtocol:", "selectedMethod", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "openClassNamed:",
-fn: function (aString){
-var self=this;
-var class_;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-class_=_st(_st(self)._environment())._classNamed_(aString);
-class_;
-_st(self)._selectedPackage_(_st(class_)._package());
-return _st(self)._selectedClass_(class_);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"openClassNamed:",{aString:aString,class_:class_},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "classNamed:", "environment", "selectedPackage:", "package", "selectedClass:"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "packages",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._environment())._packages();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"packages",{},smalltalk.HLBrowserModel)})},
-messageSends: ["packages", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "removeClass",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._manager())._confirm_ifTrue_(_st("Do you REALLY want to remove class ").__comma(_st(_st(self)._selectedClass())._name()),(function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(_st(self)._environment())._removeClass_(_st(self)._selectedClass());
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeClass",{},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "confirm:ifTrue:", ",", "name", "selectedClass", "removeClass:", "environment", "manager"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "removeMethod",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._manager())._confirm_ifTrue_(_st(_st(_st("Do you REALLY want to remove method ").__comma(_st(_st(_st(self)._selectedMethod())._methodClass())._name())).__comma(" >> #")).__comma(_st(_st(self)._selectedMethod())._selector()),(function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(_st(self)._environment())._removeMethod_(_st(self)._selectedMethod());
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeMethod",{},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "confirm:ifTrue:", ",", "selector", "selectedMethod", "name", "methodClass", "removeMethod:", "environment", "manager"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "removeProtocol",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._manager())._confirm_ifTrue_(_st("Do you REALLY want to remove protocol ").__comma(_st(self)._selectedProtocol()),(function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(_st(self)._environment())._removeProtocol_from_(_st(self)._selectedProtocol(),_st(self)._selectedClass());
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeProtocol",{},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "confirm:ifTrue:", ",", "selectedProtocol", "removeProtocol:from:", "selectedClass", "environment", "manager"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "renameClassTo:",
-fn: function (aClassName){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._renameClass_to_(_st(_st(self)._selectedClass())._theNonMetaClass(),aClassName);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renameClassTo:",{aClassName:aClassName},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "renameClass:to:", "theNonMetaClass", "selectedClass", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "renameProtocolTo:",
-fn: function (aString){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(self)._environment())._renameProtocol_to_in_(_st(self)._selectedProtocol(),aString,_st(self)._selectedClass());
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renameProtocolTo:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "renameProtocol:to:in:", "selectedProtocol", "selectedClass", "environment"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "save:",
-fn: function (aString){
-var self=this;
-function $HLSourceCodeSaved(){return smalltalk.HLSourceCodeSaved||(typeof HLSourceCodeSaved=="undefined"?nil:HLSourceCodeSaved)}
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-_st(_st(self)._announcer())._announce_(_st($HLSourceCodeSaved())._new());
-$1=_st(self)._shouldCompileClassDefinition_(aString);
-if(smalltalk.assert($1)){
-_st(self)._compileClassDefinition_(aString);
-} else {
-_st(self)._compileMethod_(aString);
-};
-return self}, function($ctx1) {$ctx1.fill(self,"save:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer", "ifTrue:ifFalse:", "compileClassDefinition:", "compileMethod:", "shouldCompileClassDefinition:"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "saveSourceCode",
-fn: function (){
-var self=this;
-function $HLSaveSourceCode(){return smalltalk.HLSaveSourceCode||(typeof HLSaveSourceCode=="undefined"?nil:HLSaveSourceCode)}
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._announcer())._announce_(_st($HLSaveSourceCode())._new());
-return self}, function($ctx1) {$ctx1.fill(self,"saveSourceCode",{},smalltalk.HLBrowserModel)})},
-messageSends: ["announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedClass",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@selectedClass"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedClass",{},smalltalk.HLBrowserModel)})},
-messageSends: []}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedClass:",
-fn: function (aClass){
-var self=this;
-function $HLClassSelected(){return smalltalk.HLClassSelected||(typeof HLClassSelected=="undefined"?nil:HLClassSelected)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5;
-$1=_st(_st(_st(self)._selectedClass()).__eq(aClass))._and_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aClass)._isNil();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-if(smalltalk.assert($1)){
-$2=self;
-return $2;
-};
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-$3=_st(self["@selectedClass"]).__eq(aClass);
-if(smalltalk.assert($3)){
-_st(self)._selectedProtocol_(nil);
-};
-$4=aClass;
-if(($receiver = $4) == nil || $receiver == undefined){
-self["@selectedClass"]=nil;
-self["@selectedClass"];
-} else {
-$5=_st(self)._showInstance();
-if(smalltalk.assert($5)){
-self["@selectedClass"]=_st(aClass)._theNonMetaClass();
-self["@selectedClass"];
-} else {
-self["@selectedClass"]=_st(aClass)._theMetaClass();
-self["@selectedClass"];
-};
-};
-_st(self)._selectedProtocol_(nil);
-return _st(_st(self)._announcer())._announce_(_st($HLClassSelected())._on_(_st(self)._selectedClass()));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"selectedClass:",{aClass:aClass},smalltalk.HLBrowserModel)})},
-messageSends: ["ifTrue:", "and:", "isNil", "=", "selectedClass", "withChangesDo:", "selectedProtocol:", "ifNil:ifNotNil:", "ifTrue:ifFalse:", "theNonMetaClass", "theMetaClass", "showInstance", "announce:", "on:", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedMethod",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=_st(self)._selectedClass();
-if(($receiver = $2) == nil || $receiver == undefined){
-$1=$2;
-} else {
-$1=_st(_st(_st(self)._selectedClass())._methodDictionary())._at_ifAbsent_(self["@selectedSelector"],(function(){
-return smalltalk.withContext(function($ctx2) {
-return nil;
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedMethod",{},smalltalk.HLBrowserModel)})},
-messageSends: ["ifNotNil:", "at:ifAbsent:", "methodDictionary", "selectedClass"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedMethod:",
-fn: function (aCompiledMethod){
-var self=this;
-function $HLMethodSelected(){return smalltalk.HLMethodSelected||(typeof HLMethodSelected=="undefined"?nil:HLMethodSelected)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3;
-$1=_st(self["@selectedSelector"]).__eq(aCompiledMethod);
-if(smalltalk.assert($1)){
-$2=self;
-return $2;
-};
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-$3=aCompiledMethod;
-if(($receiver = $3) == nil || $receiver == undefined){
-self["@selectedSelector"]=nil;
-self["@selectedSelector"];
-} else {
-self["@selectedSelector"]=_st(aCompiledMethod)._selector();
-self["@selectedSelector"];
-};
-return _st(_st(self)._announcer())._announce_(_st($HLMethodSelected())._on_(aCompiledMethod));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"selectedMethod:",{aCompiledMethod:aCompiledMethod},smalltalk.HLBrowserModel)})},
-messageSends: ["ifTrue:", "=", "withChangesDo:", "ifNil:ifNotNil:", "selector", "announce:", "on:", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedPackage",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@selectedPackage"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedPackage",{},smalltalk.HLBrowserModel)})},
-messageSends: []}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedPackage:",
-fn: function (aPackage){
-var self=this;
-function $HLPackageSelected(){return smalltalk.HLPackageSelected||(typeof HLPackageSelected=="undefined"?nil:HLPackageSelected)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st(self["@selectedPackage"]).__eq(aPackage);
-if(smalltalk.assert($1)){
-$2=self;
-return $2;
-};
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-self["@selectedPackage"]=aPackage;
-self["@selectedPackage"];
-_st(self)._selectedClass_(nil);
-return _st(_st(self)._announcer())._announce_(_st($HLPackageSelected())._on_(aPackage));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"selectedPackage:",{aPackage:aPackage},smalltalk.HLBrowserModel)})},
-messageSends: ["ifTrue:", "=", "withChangesDo:", "selectedClass:", "announce:", "on:", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedProtocol",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@selectedProtocol"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedProtocol",{},smalltalk.HLBrowserModel)})},
-messageSends: []}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedProtocol:",
-fn: function (aString){
-var self=this;
-function $HLProtocolSelected(){return smalltalk.HLProtocolSelected||(typeof HLProtocolSelected=="undefined"?nil:HLProtocolSelected)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st(self["@selectedProtocol"]).__eq(aString);
-if(smalltalk.assert($1)){
-$2=self;
-return $2;
-};
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-self["@selectedProtocol"]=aString;
-self["@selectedProtocol"];
-_st(self)._selectedMethod_(nil);
-return _st(_st(self)._announcer())._announce_(_st($HLProtocolSelected())._on_(aString));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"selectedProtocol:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["ifTrue:", "=", "withChangesDo:", "selectedMethod:", "announce:", "on:", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "shouldCompileClassDefinition:",
-fn: function (aString){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._selectedClass())._isNil())._or_((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(_st(aString)._first())._asUppercase()).__eq(_st(aString)._first());
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldCompileClassDefinition:",{aString:aString},smalltalk.HLBrowserModel)})},
-messageSends: ["or:", "=", "first", "asUppercase", "isNil", "selectedClass"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "showComment",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=self["@showComment"];
-if(($receiver = $2) == nil || $receiver == undefined){
-$1=false;
-} else {
-$1=$2;
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"showComment",{},smalltalk.HLBrowserModel)})},
-messageSends: ["ifNil:"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "showComment:",
-fn: function (aBoolean){
-var self=this;
-function $HLShowCommentToggled(){return smalltalk.HLShowCommentToggled||(typeof HLShowCommentToggled=="undefined"?nil:HLShowCommentToggled)}
-return smalltalk.withContext(function($ctx1) { 
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-self["@showComment"]=aBoolean;
-self["@showComment"];
-return _st(_st(self)._announcer())._announce_(_st($HLShowCommentToggled())._new());
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"showComment:",{aBoolean:aBoolean},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "showInstance",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=self["@showInstance"];
-if(($receiver = $2) == nil || $receiver == undefined){
-$1=true;
-} else {
-$1=$2;
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"showInstance",{},smalltalk.HLBrowserModel)})},
-messageSends: ["ifNil:"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "showInstance:",
-fn: function (aBoolean){
-var self=this;
-function $HLShowInstanceToggled(){return smalltalk.HLShowInstanceToggled||(typeof HLShowInstanceToggled=="undefined"?nil:HLShowInstanceToggled)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$4,$3;
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-self["@showInstance"]=aBoolean;
-self["@showInstance"];
-self["@showComment"]=false;
-self["@showComment"];
-$1=_st(self)._selectedClass();
-if(($receiver = $1) == nil || $receiver == undefined){
-$1;
-} else {
-$2=self;
-$4=aBoolean;
-if(smalltalk.assert($4)){
-$3=_st(_st(self)._selectedClass())._theNonMetaClass();
-} else {
-$3=_st(_st(self)._selectedClass())._theMetaClass();
-};
-_st($2)._selectedClass_($3);
-};
-return _st(_st(self)._announcer())._announce_(_st($HLShowInstanceToggled())._new());
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"showInstance:",{aBoolean:aBoolean},smalltalk.HLBrowserModel)})},
-messageSends: ["withChangesDo:", "ifNotNil:", "selectedClass:", "ifTrue:ifFalse:", "theNonMetaClass", "selectedClass", "theMetaClass", "announce:", "new", "announcer"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "unclassifiedProtocol",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "as yet unclassified";
-}, function($ctx1) {$ctx1.fill(self,"unclassifiedProtocol",{},smalltalk.HLBrowserModel)})},
-messageSends: []}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "withCompileErrorHandling:",
-fn: function (aBlock){
-var self=this;
-function $CompilerError(){return smalltalk.CompilerError||(typeof CompilerError=="undefined"?nil:CompilerError)}
-function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
-function $ParseError(){return smalltalk.ParseError||(typeof ParseError=="undefined"?nil:ParseError)}
-return smalltalk.withContext(function($ctx1) { 
-_st((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st((function(){
-return smalltalk.withContext(function($ctx3) {
-return _st(aBlock)._on_do_($ParseError(),(function(ex){
-return smalltalk.withContext(function($ctx4) {
-return _st(self)._handleParseError_(ex);
-}, function($ctx4) {$ctx4.fillBlock({ex:ex},$ctx1)})}));
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_($UnknownVariableError(),(function(ex){
-return smalltalk.withContext(function($ctx3) {
-return _st(self)._handleUnkownVariableError_(ex);
-}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($CompilerError(),(function(ex){
-return smalltalk.withContext(function($ctx2) {
-return _st(self)._handleCompileError_(ex);
-}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"withCompileErrorHandling:",{aBlock:aBlock},smalltalk.HLBrowserModel)})},
-messageSends: ["on:do:", "handleCompileError:", "handleUnkownVariableError:", "handleParseError:"]}),
-smalltalk.HLBrowserModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "withHelperLabelled:do:",
-fn: function (aString,aBlock){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-_st(_st(window)._jQuery_("#helper"))._remove();
-_st((function(html){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(html)._div();
-_st($1)._id_("helper");
-$2=_st($1)._with_(aString);
-return $2;
-}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st("body")._asJQuery());
-_st((function(){
-return smalltalk.withContext(function($ctx2) {
-_st(aBlock)._value();
-return _st(_st(window)._jQuery_("#helper"))._remove();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithTimeout_((10));
-return self}, function($ctx1) {$ctx1.fill(self,"withHelperLabelled:do:",{aString:aString,aBlock:aBlock},smalltalk.HLBrowserModel)})},
-messageSends: ["remove", "jQuery:", "appendToJQuery:", "asJQuery", "id:", "div", "with:", "valueWithTimeout:", "value"]}),
-smalltalk.HLBrowserModel);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "on:",
-fn: function (anEnvironment){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(self)._new();
-_st($2)._environment_(anEnvironment);
-$3=_st($2)._yourself();
-$1=$3;
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{anEnvironment:anEnvironment},smalltalk.HLBrowserModel.klass)})},
-messageSends: ["environment:", "new", "yourself"]}),
-smalltalk.HLBrowserModel.klass);
-
-
-smalltalk.addClass('HLClassCache', smalltalk.Object, ['class', 'selectorsCache', 'overrideCache', 'overriddenCache'], 'Helios-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "invalidateChildrenSelector:",
-fn: function (aSelector){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-_st(_st(_st(self)._theClass())._subclasses())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(_st(self)._selectorsCache())._cacheFor_(each);
-_st($1)._removeSelector_(aSelector);
-$2=_st($1)._invalidateChildrenSelector_(aSelector);
-return $2;
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"invalidateChildrenSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
-messageSends: ["do:", "removeSelector:", "cacheFor:", "selectorsCache", "invalidateChildrenSelector:", "subclasses", "theClass"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "invalidateParentSelector:",
-fn: function (aSelector){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3;
-$1=_st(_st(self)._theClass())._superclass();
-if(($receiver = $1) == nil || $receiver == undefined){
-$1;
-} else {
-$2=_st(_st(self)._selectorsCache())._cacheFor_(_st(_st(self)._theClass())._superclass());
-_st($2)._removeSelector_(aSelector);
-$3=_st($2)._invalidateParentSelector_(aSelector);
-$3;
-};
-return self}, function($ctx1) {$ctx1.fill(self,"invalidateParentSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
-messageSends: ["ifNotNil:", "removeSelector:", "cacheFor:", "superclass", "theClass", "selectorsCache", "invalidateParentSelector:"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "invalidateSelector:",
-fn: function (aSelector){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=self;
-_st($1)._invalidateParentSelector_(aSelector);
-_st($1)._invalidateChildrenSelector_(aSelector);
-$2=_st($1)._removeSelector_(aSelector);
-return self}, function($ctx1) {$ctx1.fill(self,"invalidateSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
-messageSends: ["invalidateParentSelector:", "invalidateChildrenSelector:", "removeSelector:"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isOverridden:",
-fn: function (aMethod){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._overriddenCache())._at_ifAbsentPut_(_st(aMethod)._selector(),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aMethod)._isOverridden();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isOverridden:",{aMethod:aMethod},smalltalk.HLClassCache)})},
-messageSends: ["at:ifAbsentPut:", "selector", "isOverridden", "overriddenCache"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isOverride:",
-fn: function (aMethod){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._overrideCache())._at_ifAbsentPut_(_st(aMethod)._selector(),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aMethod)._isOverride();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isOverride:",{aMethod:aMethod},smalltalk.HLClassCache)})},
-messageSends: ["at:ifAbsentPut:", "selector", "isOverride", "overrideCache"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "overriddenCache",
-fn: function (){
-var self=this;
-function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=self["@overriddenCache"];
-if(($receiver = $2) == nil || $receiver == undefined){
-self["@overriddenCache"]=_st($HashedCollection())._new();
-$1=self["@overriddenCache"];
-} else {
-$1=$2;
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"overriddenCache",{},smalltalk.HLClassCache)})},
-messageSends: ["ifNil:", "new"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "overrideCache",
-fn: function (){
-var self=this;
-function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=self["@overrideCache"];
-if(($receiver = $2) == nil || $receiver == undefined){
-self["@overrideCache"]=_st($HashedCollection())._new();
-$1=self["@overrideCache"];
-} else {
-$1=$2;
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"overrideCache",{},smalltalk.HLClassCache)})},
-messageSends: ["ifNil:", "new"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "removeSelector:",
-fn: function (aSelector){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._overriddenCache())._removeKey_ifAbsent_(aSelector,(function(){
-return smalltalk.withContext(function($ctx2) {
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-_st(_st(self)._overrideCache())._removeKey_ifAbsent_(aSelector,(function(){
-return smalltalk.withContext(function($ctx2) {
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeSelector:",{aSelector:aSelector},smalltalk.HLClassCache)})},
-messageSends: ["removeKey:ifAbsent:", "overriddenCache", "overrideCache"]}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectorsCache",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@selectorsCache"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectorsCache",{},smalltalk.HLClassCache)})},
-messageSends: []}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectorsCache:",
-fn: function (aCache){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-self["@selectorsCache"]=aCache;
-return self}, function($ctx1) {$ctx1.fill(self,"selectorsCache:",{aCache:aCache},smalltalk.HLClassCache)})},
-messageSends: []}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "theClass",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@class"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.HLClassCache)})},
-messageSends: []}),
-smalltalk.HLClassCache);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "theClass:",
-fn: function (aClass){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-self["@class"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.HLClassCache)})},
-messageSends: []}),
-smalltalk.HLClassCache);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "on:selectorsCache:",
-fn: function (aClass,aSelectorsCache){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(self)._new();
-_st($2)._theClass_(aClass);
-_st($2)._selectorsCache_(aSelectorsCache);
-$3=_st($2)._yourself();
-$1=$3;
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:selectorsCache:",{aClass:aClass,aSelectorsCache:aSelectorsCache},smalltalk.HLClassCache.klass)})},
-messageSends: ["theClass:", "new", "selectorsCache:", "yourself"]}),
-smalltalk.HLClassCache.klass);
-
-
-smalltalk.addClass('HLDocumentationWidget', smalltalk.HLFocusableWidget, ['model'], 'Helios-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultDocumentation",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "#No documentation available. \x0a##That's bad. Seriously.";
-}, function($ctx1) {$ctx1.fill(self,"defaultDocumentation",{},smalltalk.HLDocumentationWidget)})},
-messageSends: []}),
-smalltalk.HLDocumentationWidget);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "documentation",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=_st(_st(_st(_st(self)._model())._selectedClass())._theNonMetaClass())._comment();
-if(($receiver = $2) == nil || $receiver == undefined){
-$1=_st(self)._defaultDocumentation();
-} else {
-$1=$2;
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"documentation",{},smalltalk.HLDocumentationWidget)})},
-messageSends: ["ifNil:", "defaultDocumentation", "comment", "theNonMetaClass", "selectedClass", "model"]}),
-smalltalk.HLDocumentationWidget);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "model",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@model"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"model",{},smalltalk.HLDocumentationWidget)})},
-messageSends: []}),
-smalltalk.HLDocumentationWidget);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "model:",
-fn: function (aModel){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-self["@model"]=aModel;
-return self}, function($ctx1) {$ctx1.fill(self,"model:",{aModel:aModel},smalltalk.HLDocumentationWidget)})},
-messageSends: []}),
-smalltalk.HLDocumentationWidget);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "renderContentOn:",
-fn: function (html){
-var self=this;
-function $Showdown(){return smalltalk.Showdown||(typeof Showdown=="undefined"?nil:Showdown)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st(html)._div();
-_st($1)._class_("markdown");
-$2=_st($1)._asJQuery();
-_st($2)._html_(_st(_st(_st($Showdown())._at_("converter"))._new())._makeHtml_(_st(self)._documentation()));
-return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.HLDocumentationWidget)})},
-messageSends: ["html:", "makeHtml:", "documentation", "new", "at:", "class:", "div", "asJQuery"]}),
-smalltalk.HLDocumentationWidget);
-
-
-
 smalltalk.addClass('HLSelectorsCache', smalltalk.Object, ['classesCache'], 'Helios-Browser');
 smalltalk.addMethod(
 smalltalk.method({

File diff suppressed because it is too large
+ 520 - 264
js/Helios-Browser.js


+ 0 - 1655
js/Helios-Commands-Browser.deploy.js

@@ -1,1655 +0,0 @@
-smalltalk.addPackage('Helios-Commands-Browser');
-smalltalk.addClass('HLBrowserCommand', smalltalk.HLModelCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return nil;
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLBrowserCommand)})},
-messageSends: []}),
-smalltalk.HLBrowserCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "for:",
-fn: function (aBrowserModel){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(self)._new();
-_st($2)._model_(aBrowserModel);
-$3=_st($2)._yourself();
-$1=$3;
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"for:",{aBrowserModel:aBrowserModel},smalltalk.HLBrowserCommand.klass)})},
-messageSends: ["model:", "new", "yourself"]}),
-smalltalk.HLBrowserCommand.klass);
-
-
-smalltalk.addClass('HLBrowserGoToCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "g";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLBrowserGoToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLBrowserGoToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Go to";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLBrowserGoToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLBrowserGoToCommand.klass);
-
-
-smalltalk.addClass('HLGoToClassesCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnClasses();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToClassesCommand)})},
-messageSends: ["focusOnClasses", "model"]}),
-smalltalk.HLGoToClassesCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToClassesCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToClassesCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToClassesCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToClassesCommand.klass);
-
-
-smalltalk.addClass('HLGoToMethodsCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnMethods();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToMethodsCommand)})},
-messageSends: ["focusOnMethods", "model"]}),
-smalltalk.HLGoToMethodsCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToMethodsCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToMethodsCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Methods";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToMethodsCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToMethodsCommand.klass);
-
-
-smalltalk.addClass('HLGoToPackagesCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnPackages();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToPackagesCommand)})},
-messageSends: ["focusOnPackages", "model"]}),
-smalltalk.HLGoToPackagesCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "p";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToPackagesCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToPackagesCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Packages";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToPackagesCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToPackagesCommand.klass);
-
-
-smalltalk.addClass('HLGoToProtocolsCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnProtocols();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToProtocolsCommand)})},
-messageSends: ["focusOnProtocols", "model"]}),
-smalltalk.HLGoToProtocolsCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToProtocolsCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToProtocolsCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocols";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToProtocolsCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToProtocolsCommand.klass);
-
-
-smalltalk.addClass('HLGoToSourceCodeCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnSourceCode();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToSourceCodeCommand)})},
-messageSends: ["focusOnSourceCode", "model"]}),
-smalltalk.HLGoToSourceCodeCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "s";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToSourceCodeCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToSourceCodeCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Source code";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToSourceCodeCommand.klass)})},
-messageSends: []}),
-smalltalk.HLGoToSourceCodeCommand.klass);
-
-
-smalltalk.addClass('HLCommitPackageCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Packages";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLCommitPackageCommand)})},
-messageSends: []}),
-smalltalk.HLCommitPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._commitPackage();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLCommitPackageCommand)})},
-messageSends: ["commitPackage", "model"]}),
-smalltalk.HLCommitPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLCommitPackageCommand)})},
-messageSends: []}),
-smalltalk.HLCommitPackageCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "k";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCommitPackageCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCommitPackageCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Commit";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCommitPackageCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCommitPackageCommand.klass);
-
-
-smalltalk.addClass('HLCopyCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCopyCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCopyCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Copy";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCopyCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCopyCommand.klass);
-
-
-smalltalk.addClass('HLCopyClassCommand', smalltalk.HLCopyCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLCopyClassCommand)})},
-messageSends: []}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._name();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLCopyClassCommand)})},
-messageSends: ["name", "selectedClass", "model"]}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "New class name:";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLCopyClassCommand)})},
-messageSends: []}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._copyClassTo_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLCopyClassCommand)})},
-messageSends: ["copyClassTo:", "input", "model"]}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLCopyClassCommand)})},
-messageSends: ["notNil", "selectedClass", "model"]}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLCopyClassCommand)})},
-messageSends: []}),
-smalltalk.HLCopyClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCopyClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCopyClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCopyClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCopyClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Copy class...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLCopyClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLCopyClassCommand.klass);
-
-
-smalltalk.addClass('HLFindCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "f";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLFindCommand.klass)})},
-messageSends: []}),
-smalltalk.HLFindCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Find";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLFindCommand.klass)})},
-messageSends: []}),
-smalltalk.HLFindCommand.klass);
-
-
-smalltalk.addClass('HLFindClassCommand', smalltalk.HLFindCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a class";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLFindClassCommand)})},
-messageSends: []}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._openClassNamed_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLFindClassCommand)})},
-messageSends: ["openClassNamed:", "input", "model"]}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availableClassNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLFindClassCommand)})},
-messageSends: ["availableClassNames", "model"]}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Find a class";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLFindClassCommand)})},
-messageSends: []}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLFindClassCommand)})},
-messageSends: []}),
-smalltalk.HLFindClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLFindClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLFindClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLFindClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLFindClassCommand.klass);
-
-
-smalltalk.addClass('HLFindReferencesCommand', smalltalk.HLFindCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(_st(self)._model())._selectedMethod();
-if(($receiver = $2) == nil || $receiver == undefined){
-$3=_st(_st(self)._model())._selectedClass();
-if(($receiver = $3) == nil || $receiver == undefined){
-$1="";
-} else {
-var class_;
-class_=$receiver;
-$1=_st(class_)._name();
-};
-} else {
-var method;
-method=$receiver;
-$1=_st(method)._selector();
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLFindReferencesCommand)})},
-messageSends: ["ifNil:ifNotNil:", "name", "selectedClass", "model", "selector", "selectedMethod"]}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "find references";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLFindReferencesCommand)})},
-messageSends: []}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-function $HLReferences(){return smalltalk.HLReferences||(typeof HLReferences=="undefined"?nil:HLReferences)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st($HLReferences())._new();
-_st($1)._open();
-$2=_st($1)._search_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLFindReferencesCommand)})},
-messageSends: ["open", "new", "search:", "input"]}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._availableClassNames()).__comma(_st(_st(self)._model())._allSelectors());
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLFindReferencesCommand)})},
-messageSends: [",", "allSelectors", "model", "availableClassNames"]}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Find references of";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLFindReferencesCommand)})},
-messageSends: []}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLFindReferencesCommand)})},
-messageSends: []}),
-smalltalk.HLFindReferencesCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "r";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLFindReferencesCommand.klass)})},
-messageSends: []}),
-smalltalk.HLFindReferencesCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "References";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLFindReferencesCommand.klass)})},
-messageSends: []}),
-smalltalk.HLFindReferencesCommand.klass);
-
-
-smalltalk.addClass('HLMoveToCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveToCommand.klass);
-
-
-smalltalk.addClass('HLMoveClassToCommand', smalltalk.HLMoveToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLMoveClassToCommand)})},
-messageSends: ["notNil", "selectedClass", "model"]}),
-smalltalk.HLMoveClassToCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveClassToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveClassToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveClassToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveClassToCommand.klass);
-
-
-smalltalk.addClass('HLMoveClassToPackageCommand', smalltalk.HLMoveClassToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLMoveClassToPackageCommand)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a package";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLMoveClassCommand)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._moveClassToPackage_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLMoveClassCommand)})},
-messageSends: ["moveClassToPackage:", "input", "model"]}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availablePackageNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLMoveClassCommand)})},
-messageSends: ["availablePackageNames", "model"]}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move class to package:";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLMoveClassCommand)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLMoveClassCommand)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "p";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "to package";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move to package...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLMoveClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveClassToPackageCommand.klass);
-
-
-smalltalk.addClass('HLMoveMethodToCommand', smalltalk.HLMoveToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Methods";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLMoveMethodToCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedMethod())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLMoveMethodToCommand)})},
-messageSends: ["notNil", "selectedMethod", "model"]}),
-smalltalk.HLMoveMethodToCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveMethodToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Method";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveMethodToCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToCommand.klass);
-
-
-smalltalk.addClass('HLMoveMethodToClassCommand', smalltalk.HLMoveMethodToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a class";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLMoveMethodToClassCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._moveMethodToClass_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLMoveMethodToClassCommand)})},
-messageSends: ["moveMethodToClass:", "input", "model"]}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availableClassNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLMoveMethodToClassCommand)})},
-messageSends: ["availableClassNames", "model"]}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move method to class:";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLMoveMethodToClassCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLMoveMethodToClassCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveMethodToClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "to class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveMethodToClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move to class...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLMoveMethodToClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToClassCommand.klass);
-
-
-smalltalk.addClass('HLMoveMethodToProtocolCommand', smalltalk.HLMoveMethodToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a protocol";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._moveMethodToProtocol_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-messageSends: ["moveMethodToProtocol:", "input", "model"]}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availableProtocols();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-messageSends: ["availableProtocols", "model"]}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move method to a protocol:";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveMethodToProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "to protocol";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveMethodToProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move to protocol...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLMoveMethodToProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLMoveMethodToProtocolCommand.klass);
-
-
-smalltalk.addClass('HLRemoveCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "x";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveCommand.klass);
-
-
-smalltalk.addClass('HLRemoveClassCommand', smalltalk.HLRemoveCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRemoveClassCommand)})},
-messageSends: []}),
-smalltalk.HLRemoveClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._removeClass();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRemoveClassCommand)})},
-messageSends: ["removeClass", "model"]}),
-smalltalk.HLRemoveClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRemoveClassCommand)})},
-messageSends: ["notNil", "selectedClass", "model"]}),
-smalltalk.HLRemoveClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove class";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRemoveClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveClassCommand.klass);
-
-
-smalltalk.addClass('HLRemoveMethodCommand', smalltalk.HLRemoveCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Methods";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRemoveMethodCommand)})},
-messageSends: []}),
-smalltalk.HLRemoveMethodCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._removeMethod();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRemoveMethodCommand)})},
-messageSends: ["removeMethod", "model"]}),
-smalltalk.HLRemoveMethodCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedMethod())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRemoveMethodCommand)})},
-messageSends: ["notNil", "selectedMethod", "model"]}),
-smalltalk.HLRemoveMethodCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveMethodCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveMethodCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Method";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveMethodCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveMethodCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove method";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRemoveMethodCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveMethodCommand.klass);
-
-
-smalltalk.addClass('HLRemoveProtocolCommand', smalltalk.HLRemoveCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocols";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRemoveProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLRemoveProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._removeProtocol();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRemoveProtocolCommand)})},
-messageSends: ["removeProtocol", "model"]}),
-smalltalk.HLRemoveProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedProtocol())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRemoveProtocolCommand)})},
-messageSends: ["notNil", "selectedProtocol", "model"]}),
-smalltalk.HLRemoveProtocolCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocol";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove protocol";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRemoveProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRemoveProtocolCommand.klass);
-
-
-smalltalk.addClass('HLRenameCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "r";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRenameCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRenameCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameCommand.klass);
-
-
-smalltalk.addClass('HLRenameClassCommand', smalltalk.HLRenameCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRenameClassCommand)})},
-messageSends: []}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._name();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLRenameClassCommand)})},
-messageSends: ["name", "selectedClass", "model"]}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename class to:";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLRenameClassCommand)})},
-messageSends: []}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._renameClassTo_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRenameClassCommand)})},
-messageSends: ["renameClassTo:", "input", "model"]}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRenameClassCommand)})},
-messageSends: ["notNil", "selectedClass", "model"]}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLRenameClassCommand)})},
-messageSends: []}),
-smalltalk.HLRenameClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRenameClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRenameClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename class...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRenameClassCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameClassCommand.klass);
-
-
-smalltalk.addClass('HLRenameProtocolCommand', smalltalk.HLRenameCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocols";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRenameProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._selectedProtocol();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLRenameProtocolCommand)})},
-messageSends: ["selectedProtocol", "model"]}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename protocol to:";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLRenameProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._renameProtocolTo_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRenameProtocolCommand)})},
-messageSends: ["renameProtocolTo:", "input", "model"]}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedProtocol())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRenameProtocolCommand)})},
-messageSends: ["notNil", "selectedProtocol", "model"]}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLRenameProtocolCommand)})},
-messageSends: []}),
-smalltalk.HLRenameProtocolCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRenameProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocol";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRenameProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename protocol...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRenameProtocolCommand.klass)})},
-messageSends: []}),
-smalltalk.HLRenameProtocolCommand.klass);
-
-
-smalltalk.addClass('HLToggleCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Toggle";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleCommand.klass);
-
-
-smalltalk.addClass('HLToggleClassCommentCommand', smalltalk.HLToggleCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._showComment_(true);
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLToggleClassCommentCommand)})},
-messageSends: ["showComment:", "model"]}),
-smalltalk.HLToggleClassCommentCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "d";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleClassCommentCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleClassCommentCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Documentation";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleClassCommentCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleClassCommentCommand.klass);
-
-
-smalltalk.addClass('HLToggleClassSideCommand', smalltalk.HLToggleCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._showInstance_(false);
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLToggleClassSideCommand)})},
-messageSends: ["showInstance:", "model"]}),
-smalltalk.HLToggleClassSideCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleClassSideCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleClassSideCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class side";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleClassSideCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleClassSideCommand.klass);
-
-
-smalltalk.addClass('HLToggleInstanceSideCommand', smalltalk.HLToggleCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._showInstance_(true);
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLToggleInstanceSideCommand)})},
-messageSends: ["showInstance:", "model"]}),
-smalltalk.HLToggleInstanceSideCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "i";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleInstanceSideCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleInstanceSideCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Instance side";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleInstanceSideCommand.klass)})},
-messageSends: []}),
-smalltalk.HLToggleInstanceSideCommand.klass);
-
-

+ 0 - 2340
js/Helios-Commands-Browser.js

@@ -1,2340 +0,0 @@
-smalltalk.addPackage('Helios-Commands-Browser');
-smalltalk.addClass('HLBrowserCommand', smalltalk.HLModelCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return nil;
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLBrowserCommand)})},
-args: [],
-source: "category\x0a\x09^ nil",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLBrowserCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "for:",
-category: 'instance creation',
-fn: function (aBrowserModel){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(self)._new();
-_st($2)._model_(aBrowserModel);
-$3=_st($2)._yourself();
-$1=$3;
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"for:",{aBrowserModel:aBrowserModel},smalltalk.HLBrowserCommand.klass)})},
-args: ["aBrowserModel"],
-source: "for: aBrowserModel\x0a\x09^ self new\x0a    \x09model: aBrowserModel;\x0a        yourself",
-messageSends: ["model:", "new", "yourself"],
-referencedClasses: []
-}),
-smalltalk.HLBrowserCommand.klass);
-
-
-smalltalk.addClass('HLBrowserGoToCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "g";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLBrowserGoToCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'g'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLBrowserGoToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Go to";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLBrowserGoToCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Go to'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLBrowserGoToCommand.klass);
-
-
-smalltalk.addClass('HLGoToClassesCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnClasses();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToClassesCommand)})},
-args: [],
-source: "execute\x0a\x09self model focusOnClasses",
-messageSends: ["focusOnClasses", "model"],
-referencedClasses: []
-}),
-smalltalk.HLGoToClassesCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToClassesCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToClassesCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToClassesCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Classes'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToClassesCommand.klass);
-
-
-smalltalk.addClass('HLGoToMethodsCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnMethods();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToMethodsCommand)})},
-args: [],
-source: "execute\x0a\x09self model focusOnMethods",
-messageSends: ["focusOnMethods", "model"],
-referencedClasses: []
-}),
-smalltalk.HLGoToMethodsCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToMethodsCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'm'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToMethodsCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Methods";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToMethodsCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Methods'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToMethodsCommand.klass);
-
-
-smalltalk.addClass('HLGoToPackagesCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnPackages();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToPackagesCommand)})},
-args: [],
-source: "execute\x0a\x09self model focusOnPackages",
-messageSends: ["focusOnPackages", "model"],
-referencedClasses: []
-}),
-smalltalk.HLGoToPackagesCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "p";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToPackagesCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'p'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToPackagesCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Packages";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToPackagesCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Packages'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToPackagesCommand.klass);
-
-
-smalltalk.addClass('HLGoToProtocolsCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnProtocols();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToProtocolsCommand)})},
-args: [],
-source: "execute\x0a\x09self model focusOnProtocols",
-messageSends: ["focusOnProtocols", "model"],
-referencedClasses: []
-}),
-smalltalk.HLGoToProtocolsCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToProtocolsCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 't'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToProtocolsCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocols";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToProtocolsCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Protocols'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToProtocolsCommand.klass);
-
-
-smalltalk.addClass('HLGoToSourceCodeCommand', smalltalk.HLBrowserGoToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._focusOnSourceCode();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLGoToSourceCodeCommand)})},
-args: [],
-source: "execute\x0a\x09self model focusOnSourceCode",
-messageSends: ["focusOnSourceCode", "model"],
-referencedClasses: []
-}),
-smalltalk.HLGoToSourceCodeCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "s";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLGoToSourceCodeCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 's'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToSourceCodeCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Source code";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLGoToSourceCodeCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Source code'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLGoToSourceCodeCommand.klass);
-
-
-smalltalk.addClass('HLCommitPackageCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Packages";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLCommitPackageCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Packages'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCommitPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._commitPackage();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLCommitPackageCommand)})},
-args: [],
-source: "execute\x0a\x09self model commitPackage",
-messageSends: ["commitPackage", "model"],
-referencedClasses: []
-}),
-smalltalk.HLCommitPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLCommitPackageCommand)})},
-args: [],
-source: "isActive\x0a\x09^ true\x0a\x09\x22 slf model isPackageDirty\x22",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCommitPackageCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "k";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCommitPackageCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'k'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCommitPackageCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Commit";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCommitPackageCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Commit'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCommitPackageCommand.klass);
-
-
-smalltalk.addClass('HLCopyCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCopyCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Copy";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCopyCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Copy'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyCommand.klass);
-
-
-smalltalk.addClass('HLCopyClassCommand', smalltalk.HLCopyCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLCopyClassCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Classes'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-category: 'defaults',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._name();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLCopyClassCommand)})},
-args: [],
-source: "defaultInput\x0a\x09^ self model selectedClass name",
-messageSends: ["name", "selectedClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "New class name:";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLCopyClassCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'New class name:'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._copyClassTo_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLCopyClassCommand)})},
-args: [],
-source: "execute\x0a\x09self model copyClassTo: self input",
-messageSends: ["copyClassTo:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLCopyClassCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedClass notNil",
-messageSends: ["notNil", "selectedClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLCopyClassCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCopyClassCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCopyClassCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Copy class...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLCopyClassCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Copy class...'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLCopyClassCommand.klass);
-
-
-smalltalk.addClass('HLFindCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "f";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLFindCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'f'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Find";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLFindCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Find'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindCommand.klass);
-
-
-smalltalk.addClass('HLFindClassCommand', smalltalk.HLFindCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a class";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLFindClassCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'select a class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._openClassNamed_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLFindClassCommand)})},
-args: [],
-source: "execute\x0a\x09self model openClassNamed: self input",
-messageSends: ["openClassNamed:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availableClassNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLFindClassCommand)})},
-args: [],
-source: "inputCompletion\x0a\x09^ self model availableClassNames",
-messageSends: ["availableClassNames", "model"],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Find a class";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLFindClassCommand)})},
-args: [],
-source: "inputLabel\x0a\x09^ 'Find a class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLFindClassCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLFindClassCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLFindClassCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindClassCommand.klass);
-
-
-smalltalk.addClass('HLFindReferencesCommand', smalltalk.HLFindCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-category: 'defaults',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
-$2=_st(_st(self)._model())._selectedMethod();
-if(($receiver = $2) == nil || $receiver == undefined){
-$3=_st(_st(self)._model())._selectedClass();
-if(($receiver = $3) == nil || $receiver == undefined){
-$1="";
-} else {
-var class_;
-class_=$receiver;
-$1=_st(class_)._name();
-};
-} else {
-var method;
-method=$receiver;
-$1=_st(method)._selector();
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLFindReferencesCommand)})},
-args: [],
-source: "defaultInput\x0a\x09^ self model selectedMethod \x0a\x09\x09ifNil: [\x0a\x09\x09\x09self model selectedClass\x0a\x09\x09\x09\x09ifNil: [ '' ]\x0a\x09\x09\x09\x09ifNotNil: [ :class | class name ] ]\x0a\x09\x09ifNotNil: [ :method | method selector ] ",
-messageSends: ["ifNil:ifNotNil:", "name", "selectedClass", "model", "selector", "selectedMethod"],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "find references";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLFindReferencesCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'find references'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-function $HLReferences(){return smalltalk.HLReferences||(typeof HLReferences=="undefined"?nil:HLReferences)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-$1=_st($HLReferences())._new();
-_st($1)._open();
-$2=_st($1)._search_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLFindReferencesCommand)})},
-args: [],
-source: "execute\x0a\x09HLReferences new \x0a\x09\x09open;\x0a\x09\x09search: self input",
-messageSends: ["open", "new", "search:", "input"],
-referencedClasses: ["HLReferences"]
-}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._availableClassNames()).__comma(_st(_st(self)._model())._allSelectors());
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLFindReferencesCommand)})},
-args: [],
-source: "inputCompletion\x0a\x09^ self model availableClassNames, self model allSelectors",
-messageSends: [",", "allSelectors", "model", "availableClassNames"],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Find references of";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLFindReferencesCommand)})},
-args: [],
-source: "inputLabel\x0a\x09^ 'Find references of'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLFindReferencesCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "r";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLFindReferencesCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'r'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "References";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLFindReferencesCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'References'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLFindReferencesCommand.klass);
-
-
-smalltalk.addClass('HLMoveToCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveToCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'm'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveToCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Move'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveToCommand.klass);
-
-
-smalltalk.addClass('HLMoveClassToCommand', smalltalk.HLMoveToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLMoveClassToCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedClass notNil",
-messageSends: ["notNil", "selectedClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveClassToCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveClassToCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToCommand.klass);
-
-
-smalltalk.addClass('HLMoveClassToPackageCommand', smalltalk.HLMoveClassToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLMoveClassToPackageCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Classes'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a package";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLMoveClassCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'select a package'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._moveClassToPackage_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLMoveClassCommand)})},
-args: [],
-source: "execute\x0a\x09self model moveClassToPackage: self input",
-messageSends: ["moveClassToPackage:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availablePackageNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLMoveClassCommand)})},
-args: [],
-source: "inputCompletion\x0a\x09^ self model availablePackageNames",
-messageSends: ["availablePackageNames", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move class to package:";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLMoveClassCommand)})},
-args: [],
-source: "inputLabel\x0a\x09^ 'Move class to package:'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLMoveClassCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "p";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveClassCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'p'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "to package";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveClassCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'to package'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move to package...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLMoveClassCommand.klass)})},
-args: [],
-source: "menuLabel\x09\x0a\x09^ 'Move to package...'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveClassToPackageCommand.klass);
-
-
-smalltalk.addClass('HLMoveMethodToCommand', smalltalk.HLMoveToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Methods";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLMoveMethodToCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Methods'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedMethod())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLMoveMethodToCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedMethod notNil",
-messageSends: ["notNil", "selectedMethod", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveMethodToCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'm'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Method";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveMethodToCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Method'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToCommand.klass);
-
-
-smalltalk.addClass('HLMoveMethodToClassCommand', smalltalk.HLMoveMethodToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a class";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLMoveMethodToClassCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'select a class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._moveMethodToClass_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLMoveMethodToClassCommand)})},
-args: [],
-source: "execute\x0a\x09self model moveMethodToClass: self input",
-messageSends: ["moveMethodToClass:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availableClassNames();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLMoveMethodToClassCommand)})},
-args: [],
-source: "inputCompletion\x0a\x09^ self model availableClassNames",
-messageSends: ["availableClassNames", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move method to class:";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLMoveMethodToClassCommand)})},
-args: [],
-source: "inputLabel\x0a\x09^ 'Move method to class:'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLMoveMethodToClassCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveMethodToClassCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "to class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveMethodToClassCommand.klass)})},
-args: [],
-source: "label\x09\x0a\x09^ 'to class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move to class...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLMoveMethodToClassCommand.klass)})},
-args: [],
-source: "menuLabel\x09\x0a\x09^ 'Move to class...'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToClassCommand.klass);
-
-
-smalltalk.addClass('HLMoveMethodToProtocolCommand', smalltalk.HLMoveMethodToCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "select a protocol";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'select a protocol'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._moveMethodToProtocol_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-args: [],
-source: "execute\x0a\x09self model moveMethodToProtocol: self input",
-messageSends: ["moveMethodToProtocol:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputCompletion",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._availableProtocols();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-args: [],
-source: "inputCompletion\x0a\x09^ self model availableProtocols",
-messageSends: ["availableProtocols", "model"],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "inputLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move method to a protocol:";
-}, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-args: [],
-source: "inputLabel\x0a\x09^ 'Move method to a protocol:'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLMoveMethodToProtocolCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLMoveMethodToProtocolCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 't'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "to protocol";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLMoveMethodToProtocolCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'to protocol'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Move to protocol...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLMoveMethodToProtocolCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Move to protocol...'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLMoveMethodToProtocolCommand.klass);
-
-
-smalltalk.addClass('HLRemoveCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "x";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'x'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Remove'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveCommand.klass);
-
-
-smalltalk.addClass('HLRemoveClassCommand', smalltalk.HLRemoveCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRemoveClassCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Classes'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._removeClass();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRemoveClassCommand)})},
-args: [],
-source: "execute\x0a\x09self model removeClass",
-messageSends: ["removeClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRemoveClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRemoveClassCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedClass notNil",
-messageSends: ["notNil", "selectedClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRemoveClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveClassCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveClassCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove class";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRemoveClassCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Remove class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveClassCommand.klass);
-
-
-smalltalk.addClass('HLRemoveMethodCommand', smalltalk.HLRemoveCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Methods";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRemoveMethodCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Methods'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveMethodCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._removeMethod();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRemoveMethodCommand)})},
-args: [],
-source: "execute\x0a\x09self model removeMethod",
-messageSends: ["removeMethod", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRemoveMethodCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedMethod())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRemoveMethodCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedMethod notNil",
-messageSends: ["notNil", "selectedMethod", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRemoveMethodCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "m";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveMethodCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'm'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveMethodCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Method";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveMethodCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Method'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveMethodCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove method";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRemoveMethodCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Remove method'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveMethodCommand.klass);
-
-
-smalltalk.addClass('HLRemoveProtocolCommand', smalltalk.HLRemoveCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocols";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRemoveProtocolCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Protocols'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._removeProtocol();
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRemoveProtocolCommand)})},
-args: [],
-source: "execute\x0a\x09self model removeProtocol",
-messageSends: ["removeProtocol", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRemoveProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedProtocol())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRemoveProtocolCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedProtocol notNil",
-messageSends: ["notNil", "selectedProtocol", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRemoveProtocolCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRemoveProtocolCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 't'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocol";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRemoveProtocolCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Protocol'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Remove protocol";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRemoveProtocolCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Remove protocol'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRemoveProtocolCommand.klass);
-
-
-smalltalk.addClass('HLRenameCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "r";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRenameCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'r'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRenameCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Rename'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameCommand.klass);
-
-
-smalltalk.addClass('HLRenameClassCommand', smalltalk.HLRenameCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Classes";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRenameClassCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Classes'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-category: 'defaults',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._name();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLRenameClassCommand)})},
-args: [],
-source: "defaultInput\x0a\x09^ self model selectedClass name",
-messageSends: ["name", "selectedClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename class to:";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLRenameClassCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'Rename class to:'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._renameClassTo_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRenameClassCommand)})},
-args: [],
-source: "execute\x0a\x09self model renameClassTo: self input",
-messageSends: ["renameClassTo:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedClass())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRenameClassCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedClass notNil",
-messageSends: ["notNil", "selectedClass", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLRenameClassCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRenameClassCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRenameClassCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Class'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename class...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRenameClassCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Rename class...'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameClassCommand.klass);
-
-
-smalltalk.addClass('HLRenameProtocolCommand', smalltalk.HLRenameCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "category",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocols";
-}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.HLRenameProtocolCommand)})},
-args: [],
-source: "category\x0a\x09^ 'Protocols'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "defaultInput",
-category: 'defaults',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(self)._model())._selectedProtocol();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLRenameProtocolCommand)})},
-args: [],
-source: "defaultInput\x0a\x09^ self model selectedProtocol",
-messageSends: ["selectedProtocol", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "displayLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename protocol to:";
-}, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLRenameProtocolCommand)})},
-args: [],
-source: "displayLabel\x0a\x09^ 'Rename protocol to:'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._renameProtocolTo_(_st(self)._input());
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLRenameProtocolCommand)})},
-args: [],
-source: "execute\x0a\x09self model renameProtocolTo: self input",
-messageSends: ["renameProtocolTo:", "input", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isActive",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(_st(self)._model())._selectedProtocol())._notNil();
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLRenameProtocolCommand)})},
-args: [],
-source: "isActive\x0a\x09^ self model selectedProtocol notNil",
-messageSends: ["notNil", "selectedProtocol", "model"],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "isInputRequired",
-category: 'testing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return true;
-}, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLRenameProtocolCommand)})},
-args: [],
-source: "isInputRequired\x0a\x09^ true",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLRenameProtocolCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 't'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Protocol";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLRenameProtocolCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Protocol'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "menuLabel",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Rename protocol...";
-}, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLRenameProtocolCommand.klass)})},
-args: [],
-source: "menuLabel\x0a\x09^ 'Rename protocol...'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLRenameProtocolCommand.klass);
-
-
-smalltalk.addClass('HLToggleCommand', smalltalk.HLBrowserCommand, [], 'Helios-Commands-Browser');
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "t";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 't'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Toggle";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Toggle'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleCommand.klass);
-
-
-smalltalk.addClass('HLToggleClassCommentCommand', smalltalk.HLToggleCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._showComment_(true);
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLToggleClassCommentCommand)})},
-args: [],
-source: "execute\x0a\x09self model showComment: true",
-messageSends: ["showComment:", "model"],
-referencedClasses: []
-}),
-smalltalk.HLToggleClassCommentCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "d";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleClassCommentCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'd'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleClassCommentCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Documentation";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleClassCommentCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Documentation'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleClassCommentCommand.klass);
-
-
-smalltalk.addClass('HLToggleClassSideCommand', smalltalk.HLToggleCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._showInstance_(false);
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLToggleClassSideCommand)})},
-args: [],
-source: "execute\x0a\x09self model showInstance: false",
-messageSends: ["showInstance:", "model"],
-referencedClasses: []
-}),
-smalltalk.HLToggleClassSideCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "c";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleClassSideCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'c'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleClassSideCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Class side";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleClassSideCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Class side'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleClassSideCommand.klass);
-
-
-smalltalk.addClass('HLToggleInstanceSideCommand', smalltalk.HLToggleCommand, [], 'Helios-Commands-Browser');
-smalltalk.addMethod(
-smalltalk.method({
-selector: "execute",
-category: 'executing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-_st(_st(self)._model())._showInstance_(true);
-return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLToggleInstanceSideCommand)})},
-args: [],
-source: "execute\x0a\x09self model showInstance: true",
-messageSends: ["showInstance:", "model"],
-referencedClasses: []
-}),
-smalltalk.HLToggleInstanceSideCommand);
-
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "key",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "i";
-}, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLToggleInstanceSideCommand.klass)})},
-args: [],
-source: "key\x0a\x09^ 'i'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleInstanceSideCommand.klass);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "label",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-return "Instance side";
-}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToggleInstanceSideCommand.klass)})},
-args: [],
-source: "label\x0a\x09^ 'Instance side'",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLToggleInstanceSideCommand.klass);
-
-

+ 6 - 3
js/Helios-Commands-Core.deploy.js

@@ -315,7 +315,7 @@ selector: "isValidFor:",
 fn: function (aModel){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-return false;
+return true;
 }, function($ctx1) {$ctx1.fill(self,"isValidFor:",{aModel:aModel},smalltalk.HLCommand.klass)})},
 messageSends: []}),
 smalltalk.HLCommand.klass);
@@ -477,7 +477,10 @@ var self=this;
 var newBinding;
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=_st(self)._isConcrete();
+$1=_st(_st(self)._isConcrete())._and_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(self)._isValidFor_(aModel);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 newBinding=_st(self)._registerOn_for_(aBinding,aModel);
 newBinding;
@@ -490,7 +493,7 @@ return smalltalk.withContext(function($ctx2) {
 return _st(each)._registerConcreteClassesOn_for_(newBinding,aModel);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"registerConcreteClassesOn:for:",{aBinding:aBinding,aModel:aModel,newBinding:newBinding},smalltalk.HLModelCommand.klass)})},
-messageSends: ["ifTrue:ifFalse:", "registerOn:for:", "isConcrete", "do:", "registerConcreteClassesOn:for:", "subclasses"]}),
+messageSends: ["ifTrue:ifFalse:", "registerOn:for:", "and:", "isValidFor:", "isConcrete", "do:", "registerConcreteClassesOn:for:", "subclasses"]}),
 smalltalk.HLModelCommand.klass);
 
 smalltalk.addMethod(

+ 8 - 5
js/Helios-Commands-Core.js

@@ -431,10 +431,10 @@ category: 'testing',
 fn: function (aModel){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-return false;
+return true;
 }, function($ctx1) {$ctx1.fill(self,"isValidFor:",{aModel:aModel},smalltalk.HLCommand.klass)})},
 args: ["aModel"],
-source: "isValidFor: aModel\x0a\x09^ false",
+source: "isValidFor: aModel\x0a\x09^ true",
 messageSends: [],
 referencedClasses: []
 }),
@@ -653,7 +653,10 @@ var self=this;
 var newBinding;
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=_st(self)._isConcrete();
+$1=_st(_st(self)._isConcrete())._and_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(self)._isValidFor_(aModel);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 newBinding=_st(self)._registerOn_for_(aBinding,aModel);
 newBinding;
@@ -667,8 +670,8 @@ return _st(each)._registerConcreteClassesOn_for_(newBinding,aModel);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"registerConcreteClassesOn:for:",{aBinding:aBinding,aModel:aModel,newBinding:newBinding},smalltalk.HLModelCommand.klass)})},
 args: ["aBinding", "aModel"],
-source: "registerConcreteClassesOn: aBinding for: aModel\x0a\x09| newBinding |\x0a\x09\x0a\x09self isConcrete\x0a\x09\x09ifTrue: [ newBinding := self registerOn: aBinding for: aModel ]\x0a\x09\x09ifFalse: [ newBinding := aBinding ].\x0a\x09\x09\x0a\x09self subclasses do: [ :each |\x0a\x09\x09each registerConcreteClassesOn: newBinding for: aModel ]",
-messageSends: ["ifTrue:ifFalse:", "registerOn:for:", "isConcrete", "do:", "registerConcreteClassesOn:for:", "subclasses"],
+source: "registerConcreteClassesOn: aBinding for: aModel\x0a\x09| newBinding |\x0a\x09\x0a\x09(self isConcrete and: [ self isValidFor: aModel ])\x0a\x09\x09ifTrue: [ newBinding := self registerOn: aBinding for: aModel ]\x0a\x09\x09ifFalse: [ newBinding := aBinding ].\x0a\x09\x09\x0a\x09self subclasses do: [ :each |\x0a\x09\x09each registerConcreteClassesOn: newBinding for: aModel ]",
+messageSends: ["ifTrue:ifFalse:", "registerOn:for:", "and:", "isValidFor:", "isConcrete", "do:", "registerConcreteClassesOn:for:", "subclasses"],
 referencedClasses: []
 }),
 smalltalk.HLModelCommand.klass);

+ 1050 - 19
js/Helios-Core.deploy.js

@@ -49,53 +49,815 @@ return self}, function($ctx1) {$ctx1.fill(self,"environment:",{anEnvironment:anE
 messageSends: []}),
 smalltalk.HLModel);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "isBrowserModel",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return false;
+}, function($ctx1) {$ctx1.fill(self,"isBrowserModel",{},smalltalk.HLModel)})},
+messageSends: []}),
+smalltalk.HLModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "isReferencesModel",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return false;
+}, function($ctx1) {$ctx1.fill(self,"isReferencesModel",{},smalltalk.HLModel)})},
+messageSends: []}),
+smalltalk.HLModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "isToolModel",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return false;
+}, function($ctx1) {$ctx1.fill(self,"isToolModel",{},smalltalk.HLModel)})},
+messageSends: []}),
+smalltalk.HLModel);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "manager",
 fn: function (){
 var self=this;
-function $HLManager(){return smalltalk.HLManager||(typeof HLManager=="undefined"?nil:HLManager)}
+function $HLManager(){return smalltalk.HLManager||(typeof HLManager=="undefined"?nil:HLManager)}
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st($HLManager())._current();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"manager",{},smalltalk.HLModel)})},
+messageSends: ["current"]}),
+smalltalk.HLModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "systemAnnouncer",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._systemAnnouncer();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"systemAnnouncer",{},smalltalk.HLModel)})},
+messageSends: ["systemAnnouncer", "environment"]}),
+smalltalk.HLModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "withChangesDo:",
+fn: function (aBlock){
+var self=this;
+function $HLChangeForbidden(){return smalltalk.HLChangeForbidden||(typeof HLChangeForbidden=="undefined"?nil:HLChangeForbidden)}
+function $HLAboutToChange(){return smalltalk.HLAboutToChange||(typeof HLAboutToChange=="undefined"?nil:HLAboutToChange)}
+return smalltalk.withContext(function($ctx1) { 
+_st((function(){
+return smalltalk.withContext(function($ctx2) {
+_st(_st(self)._announcer())._announce_(_st(_st($HLAboutToChange())._new())._actionBlock_(aBlock));
+return _st(aBlock)._value();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($HLChangeForbidden(),(function(ex){
+return smalltalk.withContext(function($ctx2) {
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"withChangesDo:",{aBlock:aBlock},smalltalk.HLModel)})},
+messageSends: ["on:do:", "announce:", "actionBlock:", "new", "announcer", "value"]}),
+smalltalk.HLModel);
+
+
+
+smalltalk.addClass('HLToolModel', smalltalk.HLModel, ['selectedClass', 'selectedPackage', 'selectedProtocol', 'selectedSelector'], 'Helios-Core');
+smalltalk.addMethod(
+smalltalk.method({
+selector: "addInstVarNamed:",
+fn: function (aString){
+var self=this;
+function $HLInstVarAdded(){return smalltalk.HLInstVarAdded||(typeof HLInstVarAdded=="undefined"?nil:HLInstVarAdded)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+_st(_st(self)._environment())._addInstVarNamed_to_(aString,_st(self)._selectedClass());
+$1=_st($HLInstVarAdded())._new();
+_st($1)._theClass_(_st(self)._selectedClass());
+_st($1)._variableName_(aString);
+$2=_st($1)._yourself();
+_st(_st(self)._announcer())._announce_($2);
+return self}, function($ctx1) {$ctx1.fill(self,"addInstVarNamed:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["addInstVarNamed:to:", "selectedClass", "environment", "announce:", "theClass:", "new", "variableName:", "yourself", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "allProtocol",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return "-- all --";
+}, function($ctx1) {$ctx1.fill(self,"allProtocol",{},smalltalk.HLToolModel)})},
+messageSends: []}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "allSelectors",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._allSelectors();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"allSelectors",{},smalltalk.HLToolModel)})},
+messageSends: ["allSelectors", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "availableClassNames",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._availableClassNames();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"availableClassNames",{},smalltalk.HLToolModel)})},
+messageSends: ["availableClassNames", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "availablePackageNames",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._availablePackageNames();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"availablePackageNames",{},smalltalk.HLToolModel)})},
+messageSends: ["availablePackageNames", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "availablePackages",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._availablePackageNames();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"availablePackages",{},smalltalk.HLToolModel)})},
+messageSends: ["availablePackageNames", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "availableProtocols",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._availableProtocolsFor_(_st(self)._selectedClass());
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"availableProtocols",{},smalltalk.HLToolModel)})},
+messageSends: ["availableProtocolsFor:", "selectedClass", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "commitPackage",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withHelperLabelled_do_(_st(_st("Committing package ").__comma(_st(_st(self)._selectedPackage())._name())).__comma("..."),(function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._commitPackage_(_st(self)._selectedPackage());
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"commitPackage",{},smalltalk.HLToolModel)})},
+messageSends: ["withHelperLabelled:do:", ",", "name", "selectedPackage", "commitPackage:", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "compilationProtocol",
+fn: function (){
+var self=this;
+var currentProtocol;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2,$4,$3;
+currentProtocol=_st(self)._selectedProtocol();
+$1=currentProtocol;
+if(($receiver = $1) == nil || $receiver == undefined){
+currentProtocol=_st(self)._unclassifiedProtocol();
+currentProtocol;
+} else {
+$1;
+};
+$2=_st(self)._selectedMethod();
+if(($receiver = $2) == nil || $receiver == undefined){
+$2;
+} else {
+currentProtocol=_st(_st(self)._selectedMethod())._protocol();
+currentProtocol;
+};
+$4=_st(currentProtocol).__eq(_st(self)._allProtocol());
+if(smalltalk.assert($4)){
+$3=_st(self)._unclassifiedProtocol();
+} else {
+$3=currentProtocol;
+};
+return $3;
+}, function($ctx1) {$ctx1.fill(self,"compilationProtocol",{currentProtocol:currentProtocol},smalltalk.HLToolModel)})},
+messageSends: ["selectedProtocol", "ifNil:", "unclassifiedProtocol", "ifNotNil:", "protocol", "selectedMethod", "ifTrue:ifFalse:", "=", "allProtocol"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "compileClassComment:",
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._environment())._compileClassComment_for_(aString,_st(self)._selectedClass());
+return self}, function($ctx1) {$ctx1.fill(self,"compileClassComment:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["compileClassComment:for:", "selectedClass", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "compileClassDefinition:",
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._environment())._compileClassDefinition_(aString);
+return self}, function($ctx1) {$ctx1.fill(self,"compileClassDefinition:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["compileClassDefinition:", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "compileMethod:",
+fn: function (aString){
+var self=this;
+var method;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withCompileErrorHandling_((function(){
+return smalltalk.withContext(function($ctx2) {
+method=_st(_st(self)._environment())._compileMethod_for_protocol_(aString,_st(self)._selectedClass(),_st(self)._compilationProtocol());
+method;
+return _st(self)._selectedMethod_(method);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString,method:method},smalltalk.HLToolModel)})},
+messageSends: ["withCompileErrorHandling:", "compileMethod:for:protocol:", "selectedClass", "compilationProtocol", "environment", "selectedMethod:"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "copyClassTo:",
+fn: function (aClassName){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._copyClass_to_(_st(_st(self)._selectedClass())._theNonMetaClass(),aClassName);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"copyClassTo:",{aClassName:aClassName},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "copyClass:to:", "theNonMetaClass", "selectedClass", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "handleCompileError:",
+fn: function (anError){
+var self=this;
+function $HLCompileErrorRaised(){return smalltalk.HLCompileErrorRaised||(typeof HLCompileErrorRaised=="undefined"?nil:HLCompileErrorRaised)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st($HLCompileErrorRaised())._new();
+_st($1)._error_(anError);
+$2=_st($1)._yourself();
+_st(_st(self)._announcer())._announce_($2);
+return self}, function($ctx1) {$ctx1.fill(self,"handleCompileError:",{anError:anError},smalltalk.HLToolModel)})},
+messageSends: ["announce:", "error:", "new", "yourself", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "handleParseError:",
+fn: function (anError){
+var self=this;
+var split,line,column,messageToInsert;
+function $HLParseErrorRaised(){return smalltalk.HLParseErrorRaised||(typeof HLParseErrorRaised=="undefined"?nil:HLParseErrorRaised)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+split=_st(_st(anError)._messageText())._tokenize_(" : ");
+messageToInsert=_st(split)._second();
+split=_st(_st(split)._first())._copyFrom_to_((21),_st(_st(split)._first())._size());
+split=_st(split)._tokenize_(" column ");
+line=_st(split)._first();
+column=_st(split)._second();
+$1=_st($HLParseErrorRaised())._new();
+_st($1)._line_(_st(line)._asNumber());
+_st($1)._column_(_st(column)._asNumber());
+_st($1)._message_(messageToInsert);
+_st($1)._error_(anError);
+$2=_st($1)._yourself();
+_st(_st(self)._announcer())._announce_($2);
+return self}, function($ctx1) {$ctx1.fill(self,"handleParseError:",{anError:anError,split:split,line:line,column:column,messageToInsert:messageToInsert},smalltalk.HLToolModel)})},
+messageSends: ["tokenize:", "messageText", "second", "copyFrom:to:", "size", "first", "announce:", "line:", "asNumber", "new", "column:", "message:", "error:", "yourself", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "handleUnkownVariableError:",
+fn: function (anError){
+var self=this;
+function $HLUnknownVariableErrorRaised(){return smalltalk.HLUnknownVariableErrorRaised||(typeof HLUnknownVariableErrorRaised=="undefined"?nil:HLUnknownVariableErrorRaised)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st($HLUnknownVariableErrorRaised())._new();
+_st($1)._error_(anError);
+$2=_st($1)._yourself();
+_st(_st(self)._announcer())._announce_($2);
+return self}, function($ctx1) {$ctx1.fill(self,"handleUnkownVariableError:",{anError:anError},smalltalk.HLToolModel)})},
+messageSends: ["announce:", "error:", "new", "yourself", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "isToolModel",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return true;
+}, function($ctx1) {$ctx1.fill(self,"isToolModel",{},smalltalk.HLToolModel)})},
+messageSends: []}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "moveClassToPackage:",
+fn: function (aPackageName){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._moveClass_toPackage_(_st(_st(self)._selectedClass())._theNonMetaClass(),aPackageName);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"moveClassToPackage:",{aPackageName:aPackageName},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "moveClass:toPackage:", "theNonMetaClass", "selectedClass", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "moveMethodToClass:",
+fn: function (aClassName){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._moveMethod_toClass_(_st(self)._selectedMethod(),aClassName);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"moveMethodToClass:",{aClassName:aClassName},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "moveMethod:toClass:", "selectedMethod", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "moveMethodToProtocol:",
+fn: function (aProtocol){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._moveMethod_toProtocol_(_st(self)._selectedMethod(),aProtocol);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"moveMethodToProtocol:",{aProtocol:aProtocol},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "moveMethod:toProtocol:", "selectedMethod", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "openClassNamed:",
+fn: function (aString){
+var self=this;
+var class_;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+class_=_st(_st(self)._environment())._classNamed_(aString);
+class_;
+_st(self)._selectedPackage_(_st(class_)._package());
+return _st(self)._selectedClass_(class_);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"openClassNamed:",{aString:aString,class_:class_},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "classNamed:", "environment", "selectedPackage:", "package", "selectedClass:"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "packages",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(self)._environment())._packages();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"packages",{},smalltalk.HLToolModel)})},
+messageSends: ["packages", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "removeClass",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._manager())._confirm_ifTrue_(_st("Do you REALLY want to remove class ").__comma(_st(_st(self)._selectedClass())._name()),(function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(_st(self)._environment())._removeClass_(_st(self)._selectedClass());
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"removeClass",{},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "confirm:ifTrue:", ",", "name", "selectedClass", "removeClass:", "environment", "manager"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "removeMethod",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._manager())._confirm_ifTrue_(_st(_st(_st("Do you REALLY want to remove method ").__comma(_st(_st(_st(self)._selectedMethod())._methodClass())._name())).__comma(" >> #")).__comma(_st(_st(self)._selectedMethod())._selector()),(function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(_st(self)._environment())._removeMethod_(_st(self)._selectedMethod());
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"removeMethod",{},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "confirm:ifTrue:", ",", "selector", "selectedMethod", "name", "methodClass", "removeMethod:", "environment", "manager"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "removeProtocol",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._manager())._confirm_ifTrue_(_st("Do you REALLY want to remove protocol ").__comma(_st(self)._selectedProtocol()),(function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(_st(self)._environment())._removeProtocol_from_(_st(self)._selectedProtocol(),_st(self)._selectedClass());
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"removeProtocol",{},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "confirm:ifTrue:", ",", "selectedProtocol", "removeProtocol:from:", "selectedClass", "environment", "manager"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renameClassTo:",
+fn: function (aClassName){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._renameClass_to_(_st(_st(self)._selectedClass())._theNonMetaClass(),aClassName);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renameClassTo:",{aClassName:aClassName},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "renameClass:to:", "theNonMetaClass", "selectedClass", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renameProtocolTo:",
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(self)._environment())._renameProtocol_to_in_(_st(self)._selectedProtocol(),aString,_st(self)._selectedClass());
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renameProtocolTo:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["withChangesDo:", "renameProtocol:to:in:", "selectedProtocol", "selectedClass", "environment"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "save:",
+fn: function (aString){
+var self=this;
+function $HLSourceCodeSaved(){return smalltalk.HLSourceCodeSaved||(typeof HLSourceCodeSaved=="undefined"?nil:HLSourceCodeSaved)}
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+_st(_st(self)._announcer())._announce_(_st($HLSourceCodeSaved())._new());
+$1=_st(self)._shouldCompileClassDefinition_(aString);
+if(smalltalk.assert($1)){
+_st(self)._compileClassDefinition_(aString);
+} else {
+_st(self)._compileMethod_(aString);
+};
+return self}, function($ctx1) {$ctx1.fill(self,"save:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["announce:", "new", "announcer", "ifTrue:ifFalse:", "compileClassDefinition:", "compileMethod:", "shouldCompileClassDefinition:"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "saveSourceCode",
+fn: function (){
+var self=this;
+function $HLSaveSourceCode(){return smalltalk.HLSaveSourceCode||(typeof HLSaveSourceCode=="undefined"?nil:HLSaveSourceCode)}
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._announcer())._announce_(_st($HLSaveSourceCode())._new());
+return self}, function($ctx1) {$ctx1.fill(self,"saveSourceCode",{},smalltalk.HLToolModel)})},
+messageSends: ["announce:", "new", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedClass",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self["@selectedClass"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"selectedClass",{},smalltalk.HLToolModel)})},
+messageSends: []}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedClass:",
+fn: function (aClass){
+var self=this;
+function $HLClassSelected(){return smalltalk.HLClassSelected||(typeof HLClassSelected=="undefined"?nil:HLClassSelected)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2,$3,$4,$5;
+$1=_st(_st(_st(self)._selectedClass()).__eq(aClass))._and_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(aClass)._isNil();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+if(smalltalk.assert($1)){
+$2=self;
+return $2;
+};
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+$3=_st(self["@selectedClass"]).__eq(aClass);
+if(smalltalk.assert($3)){
+_st(self)._selectedProtocol_(nil);
+};
+$4=aClass;
+if(($receiver = $4) == nil || $receiver == undefined){
+self["@selectedClass"]=nil;
+self["@selectedClass"];
+} else {
+_st(self)._selectedPackage_(_st(_st(aClass)._theNonMetaClass())._package());
+$5=_st(self)._showInstance();
+if(smalltalk.assert($5)){
+self["@selectedClass"]=_st(aClass)._theNonMetaClass();
+self["@selectedClass"];
+} else {
+self["@selectedClass"]=_st(aClass)._theMetaClass();
+self["@selectedClass"];
+};
+};
+_st(self)._selectedProtocol_(nil);
+return _st(_st(self)._announcer())._announce_(_st($HLClassSelected())._on_(_st(self)._selectedClass()));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"selectedClass:",{aClass:aClass},smalltalk.HLToolModel)})},
+messageSends: ["ifTrue:", "and:", "isNil", "=", "selectedClass", "withChangesDo:", "selectedProtocol:", "ifNil:ifNotNil:", "selectedPackage:", "package", "theNonMetaClass", "ifTrue:ifFalse:", "theMetaClass", "showInstance", "announce:", "on:", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedMethod",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $2,$1;
+$2=_st(self)._selectedClass();
+if(($receiver = $2) == nil || $receiver == undefined){
+$1=$2;
+} else {
+$1=_st(_st(_st(self)._selectedClass())._methodDictionary())._at_ifAbsent_(self["@selectedSelector"],(function(){
+return smalltalk.withContext(function($ctx2) {
+return nil;
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+};
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"selectedMethod",{},smalltalk.HLToolModel)})},
+messageSends: ["ifNotNil:", "at:ifAbsent:", "methodDictionary", "selectedClass"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedMethod:",
+fn: function (aCompiledMethod){
+var self=this;
+function $HLMethodSelected(){return smalltalk.HLMethodSelected||(typeof HLMethodSelected=="undefined"?nil:HLMethodSelected)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2,$3;
+$1=_st(self["@selectedSelector"]).__eq(aCompiledMethod);
+if(smalltalk.assert($1)){
+$2=self;
+return $2;
+};
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+$3=aCompiledMethod;
+if(($receiver = $3) == nil || $receiver == undefined){
+self["@selectedSelector"]=nil;
+self["@selectedSelector"];
+} else {
+self["@selectedClass"]=_st(aCompiledMethod)._methodClass();
+self["@selectedClass"];
+self["@selectedSelector"]=_st(aCompiledMethod)._selector();
+self["@selectedSelector"];
+};
+return _st(_st(self)._announcer())._announce_(_st($HLMethodSelected())._on_(aCompiledMethod));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"selectedMethod:",{aCompiledMethod:aCompiledMethod},smalltalk.HLToolModel)})},
+messageSends: ["ifTrue:", "=", "withChangesDo:", "ifNil:ifNotNil:", "methodClass", "selector", "announce:", "on:", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedPackage",
+fn: function (){
+var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=_st($HLManager())._current();
+$1=self["@selectedPackage"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"manager",{},smalltalk.HLModel)})},
-messageSends: ["current"]}),
-smalltalk.HLModel);
+}, function($ctx1) {$ctx1.fill(self,"selectedPackage",{},smalltalk.HLToolModel)})},
+messageSends: []}),
+smalltalk.HLToolModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "systemAnnouncer",
+selector: "selectedPackage:",
+fn: function (aPackage){
+var self=this;
+function $HLPackageSelected(){return smalltalk.HLPackageSelected||(typeof HLPackageSelected=="undefined"?nil:HLPackageSelected)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st(self["@selectedPackage"]).__eq(aPackage);
+if(smalltalk.assert($1)){
+$2=self;
+return $2;
+};
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+self["@selectedPackage"]=aPackage;
+self["@selectedPackage"];
+_st(self)._selectedClass_(nil);
+return _st(_st(self)._announcer())._announce_(_st($HLPackageSelected())._on_(aPackage));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"selectedPackage:",{aPackage:aPackage},smalltalk.HLToolModel)})},
+messageSends: ["ifTrue:", "=", "withChangesDo:", "selectedClass:", "announce:", "on:", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedProtocol",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=_st(_st(self)._environment())._systemAnnouncer();
+$1=self["@selectedProtocol"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"systemAnnouncer",{},smalltalk.HLModel)})},
-messageSends: ["systemAnnouncer", "environment"]}),
-smalltalk.HLModel);
+}, function($ctx1) {$ctx1.fill(self,"selectedProtocol",{},smalltalk.HLToolModel)})},
+messageSends: []}),
+smalltalk.HLToolModel);
 
 smalltalk.addMethod(
 smalltalk.method({
-selector: "withChangesDo:",
+selector: "selectedProtocol:",
+fn: function (aString){
+var self=this;
+function $HLProtocolSelected(){return smalltalk.HLProtocolSelected||(typeof HLProtocolSelected=="undefined"?nil:HLProtocolSelected)}
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st(self["@selectedProtocol"]).__eq(aString);
+if(smalltalk.assert($1)){
+$2=self;
+return $2;
+};
+_st(self)._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+self["@selectedProtocol"]=aString;
+self["@selectedProtocol"];
+_st(self)._selectedMethod_(nil);
+return _st(_st(self)._announcer())._announce_(_st($HLProtocolSelected())._on_(aString));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"selectedProtocol:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["ifTrue:", "=", "withChangesDo:", "selectedMethod:", "announce:", "on:", "announcer"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "shouldCompileClassDefinition:",
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(_st(self)._selectedClass())._isNil())._or_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(_st(aString)._first())._asUppercase()).__eq(_st(aString)._first());
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"shouldCompileClassDefinition:",{aString:aString},smalltalk.HLToolModel)})},
+messageSends: ["or:", "=", "first", "asUppercase", "isNil", "selectedClass"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "unclassifiedProtocol",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return "as yet unclassified";
+}, function($ctx1) {$ctx1.fill(self,"unclassifiedProtocol",{},smalltalk.HLToolModel)})},
+messageSends: []}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "withCompileErrorHandling:",
 fn: function (aBlock){
 var self=this;
-function $HLChangeForbidden(){return smalltalk.HLChangeForbidden||(typeof HLChangeForbidden=="undefined"?nil:HLChangeForbidden)}
-function $HLAboutToChange(){return smalltalk.HLAboutToChange||(typeof HLAboutToChange=="undefined"?nil:HLAboutToChange)}
+function $CompilerError(){return smalltalk.CompilerError||(typeof CompilerError=="undefined"?nil:CompilerError)}
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
+function $ParseError(){return smalltalk.ParseError||(typeof ParseError=="undefined"?nil:ParseError)}
 return smalltalk.withContext(function($ctx1) { 
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
-_st(_st(self)._announcer())._announce_(_st(_st($HLAboutToChange())._new())._actionBlock_(aBlock));
-return _st(aBlock)._value();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($HLChangeForbidden(),(function(ex){
+return _st((function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(aBlock)._on_do_($ParseError(),(function(ex){
+return smalltalk.withContext(function($ctx4) {
+return _st(self)._handleParseError_(ex);
+}, function($ctx4) {$ctx4.fillBlock({ex:ex},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_($UnknownVariableError(),(function(ex){
+return smalltalk.withContext(function($ctx3) {
+return _st(self)._handleUnkownVariableError_(ex);
+}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($CompilerError(),(function(ex){
 return smalltalk.withContext(function($ctx2) {
+return _st(self)._handleCompileError_(ex);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"withChangesDo:",{aBlock:aBlock},smalltalk.HLModel)})},
-messageSends: ["on:do:", "announce:", "actionBlock:", "new", "announcer", "value"]}),
-smalltalk.HLModel);
+return self}, function($ctx1) {$ctx1.fill(self,"withCompileErrorHandling:",{aBlock:aBlock},smalltalk.HLToolModel)})},
+messageSends: ["on:do:", "handleCompileError:", "handleUnkownVariableError:", "handleParseError:"]}),
+smalltalk.HLToolModel);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "withHelperLabelled:do:",
+fn: function (aString,aBlock){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+_st(_st(window)._jQuery_("#helper"))._remove();
+_st((function(html){
+return smalltalk.withContext(function($ctx2) {
+$1=_st(html)._div();
+_st($1)._id_("helper");
+$2=_st($1)._with_(aString);
+return $2;
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st("body")._asJQuery());
+_st((function(){
+return smalltalk.withContext(function($ctx2) {
+_st(aBlock)._value();
+return _st(_st(window)._jQuery_("#helper"))._remove();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithTimeout_((10));
+return self}, function($ctx1) {$ctx1.fill(self,"withHelperLabelled:do:",{aString:aString,aBlock:aBlock},smalltalk.HLToolModel)})},
+messageSends: ["remove", "jQuery:", "appendToJQuery:", "asJQuery", "id:", "div", "with:", "valueWithTimeout:", "value"]}),
+smalltalk.HLToolModel);
 
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "on:",
+fn: function (anEnvironment){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $2,$3,$1;
+$2=_st(self)._new();
+_st($2)._environment_(anEnvironment);
+$3=_st($2)._yourself();
+$1=$3;
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"on:",{anEnvironment:anEnvironment},smalltalk.HLToolModel.klass)})},
+messageSends: ["environment:", "new", "yourself"]}),
+smalltalk.HLToolModel.klass);
+
 
 smalltalk.addClass('HLTab', smalltalk.Widget, ['widget', 'label', 'root'], 'Helios-Core');
 smalltalk.addMethod(
@@ -1470,6 +2232,275 @@ smalltalk.HLNavigationListWidget);
 
 
 
+smalltalk.addClass('HLToolListWidget', smalltalk.HLNavigationListWidget, ['model'], 'Helios-Core');
+smalltalk.addMethod(
+smalltalk.method({
+selector: "activateListItem:",
+fn: function (anItem){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._model())._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return smalltalk.HLNavigationListWidget.fn.prototype._activateListItem_.apply(_st(self), [anItem]);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"activateListItem:",{anItem:anItem},smalltalk.HLToolListWidget)})},
+messageSends: ["withChangesDo:", "activateListItem:", "model"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "activateNextListItem",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._model())._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return smalltalk.HLNavigationListWidget.fn.prototype._activateNextListItem.apply(_st(self), []);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"activateNextListItem",{},smalltalk.HLToolListWidget)})},
+messageSends: ["withChangesDo:", "activateNextListItem", "model"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "activatePreviousListItem",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self)._model())._withChangesDo_((function(){
+return smalltalk.withContext(function($ctx2) {
+return smalltalk.HLNavigationListWidget.fn.prototype._activatePreviousListItem.apply(_st(self), []);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"activatePreviousListItem",{},smalltalk.HLToolListWidget)})},
+messageSends: ["withChangesDo:", "activatePreviousListItem", "model"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "commandCategory",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(self)._label();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"commandCategory",{},smalltalk.HLToolListWidget)})},
+messageSends: ["label"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "label",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return "List";
+}, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLToolListWidget)})},
+messageSends: []}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "menuCommands",
+fn: function (){
+var self=this;
+function $HLBrowserCommand(){return smalltalk.HLBrowserCommand||(typeof HLBrowserCommand=="undefined"?nil:HLBrowserCommand)}
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=_st(_st(_st(_st($HLBrowserCommand())._concreteClasses())._select_((function(each){
+return smalltalk.withContext(function($ctx2) {
+return _st(each)._isValidFor_(_st(self)._model());
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._collect_((function(each){
+return smalltalk.withContext(function($ctx2) {
+return _st(each)._for_(_st(self)._model());
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._select_((function(each){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(_st(each)._category()).__eq(_st(self)._commandCategory()))._and_((function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(_st(each)._isAction())._and_((function(){
+return smalltalk.withContext(function($ctx4) {
+return _st(each)._isActive();
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"menuCommands",{},smalltalk.HLToolListWidget)})},
+messageSends: ["select:", "and:", "isActive", "isAction", "=", "commandCategory", "category", "collect:", "for:", "model", "isValidFor:", "concreteClasses"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "model",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self["@model"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"model",{},smalltalk.HLToolListWidget)})},
+messageSends: []}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "model:",
+fn: function (aBrowserModel){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+self["@model"]=aBrowserModel;
+$1=self;
+_st($1)._observeSystem();
+$2=_st($1)._observeModel();
+return self}, function($ctx1) {$ctx1.fill(self,"model:",{aBrowserModel:aBrowserModel},smalltalk.HLToolListWidget)})},
+messageSends: ["observeSystem", "observeModel"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "observeModel",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return self}, function($ctx1) {$ctx1.fill(self,"observeModel",{},smalltalk.HLToolListWidget)})},
+messageSends: []}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "observeSystem",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return self}, function($ctx1) {$ctx1.fill(self,"observeSystem",{},smalltalk.HLToolListWidget)})},
+messageSends: []}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renderContentOn:",
+fn: function (html){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self)._renderHeadOn_(html);
+smalltalk.HLNavigationListWidget.fn.prototype._renderContentOn_.apply(_st(self), [html]);
+return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.HLToolListWidget)})},
+messageSends: ["renderHeadOn:", "renderContentOn:"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renderHeadOn:",
+fn: function (html){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st(html)._div();
+_st($1)._class_("list-label");
+$2=_st($1)._with_((function(){
+return smalltalk.withContext(function($ctx2) {
+_st(html)._with_(_st(self)._label());
+return _st(self)._renderMenuOn_(html);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renderHeadOn:",{html:html},smalltalk.HLToolListWidget)})},
+messageSends: ["class:", "div", "with:", "label", "renderMenuOn:"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renderMenuOn:",
+fn: function (html){
+var self=this;
+var commands;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2,$3,$5,$6,$7,$9,$10,$8,$4;
+commands=_st(self)._menuCommands();
+$1=_st(commands)._isEmpty();
+if(smalltalk.assert($1)){
+$2=self;
+return $2;
+};
+$3=_st(html)._div();
+_st($3)._class_("btn-group cog");
+$4=_st($3)._with_((function(){
+return smalltalk.withContext(function($ctx2) {
+$5=_st(html)._a();
+_st($5)._class_("btn dropdown-toggle");
+_st($5)._at_put_("data-toggle","dropdown");
+$6=_st($5)._with_((function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(_st(html)._tag_("i"))._class_("icon-cog");
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+$6;
+$7=_st(html)._ul();
+_st($7)._class_("dropdown-menu pull-right");
+$8=_st($7)._with_((function(){
+return smalltalk.withContext(function($ctx3) {
+return _st(_st(self)._menuCommands())._do_((function(each){
+return smalltalk.withContext(function($ctx4) {
+return _st(_st(html)._li())._with_((function(){
+return smalltalk.withContext(function($ctx5) {
+$9=_st(html)._a();
+_st($9)._with_(_st(each)._menuLabel());
+$10=_st($9)._onClick_((function(){
+return smalltalk.withContext(function($ctx6) {
+return _st(self)._execute_(each);
+}, function($ctx6) {$ctx6.fillBlock({},$ctx1)})}));
+return $10;
+}, function($ctx5) {$ctx5.fillBlock({},$ctx1)})}));
+}, function($ctx4) {$ctx4.fillBlock({each:each},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+return $8;
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renderMenuOn:",{html:html,commands:commands},smalltalk.HLToolListWidget)})},
+messageSends: ["menuCommands", "ifTrue:", "isEmpty", "class:", "div", "with:", "a", "at:put:", "tag:", "ul", "do:", "menuLabel", "onClick:", "execute:", "li"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "selectedItem:",
+fn: function (anItem){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+smalltalk.HLNavigationListWidget.fn.prototype._selectedItem_.apply(_st(self), [anItem]);
+_st(self)._updateMenu();
+return self}, function($ctx1) {$ctx1.fill(self,"selectedItem:",{anItem:anItem},smalltalk.HLToolListWidget)})},
+messageSends: ["selectedItem:", "updateMenu"]}),
+smalltalk.HLToolListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "updateMenu",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(_st(_st(self)._wrapper())._asJQuery())._find_(".cog"))._remove();
+_st((function(html){
+return smalltalk.withContext(function($ctx2) {
+return _st(self)._renderMenuOn_(html);
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st(_st(_st(self)._wrapper())._asJQuery())._find_(".list-label"));
+return self}, function($ctx1) {$ctx1.fill(self,"updateMenu",{},smalltalk.HLToolListWidget)})},
+messageSends: ["remove", "find:", "asJQuery", "wrapper", "appendToJQuery:", "renderMenuOn:"]}),
+smalltalk.HLToolListWidget);
+
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "on:",
+fn: function (aModel){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $2,$3,$1;
+$2=_st(self)._new();
+_st($2)._model_(aModel);
+$3=_st($2)._yourself();
+$1=$3;
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"on:",{aModel:aModel},smalltalk.HLToolListWidget.klass)})},
+messageSends: ["model:", "new", "yourself"]}),
+smalltalk.HLToolListWidget.klass);
+
+
 smalltalk.addClass('HLManager', smalltalk.HLWidget, ['tabs', 'activeTab', 'keyBinder', 'environment', 'history'], 'Helios-Core');
 smalltalk.addMethod(
 smalltalk.method({

File diff suppressed because it is too large
+ 1007 - 20
js/Helios-Core.js


+ 155 - 581
st/Helios-Browser.st

@@ -189,124 +189,165 @@ canHaveFocus
 	^ true
 ! !
 
-HLNavigationListWidget subclass: #HLBrowserListWidget
-	instanceVariableNames: 'model'
+HLToolModel subclass: #HLBrowserModel
+	instanceVariableNames: 'showInstance showComment'
 	package: 'Helios-Browser'!
 
-!HLBrowserListWidget methodsFor: 'accessing'!
+!HLBrowserModel methodsFor: 'accessing'!
 
-commandCategory
-	^ self label
+showComment
+	^ showComment ifNil: [ false ]
 !
 
-label
-	^ 'List'
+showComment: aBoolean
+	self withChangesDo: [
+		showComment := aBoolean.
+		self announcer announce: HLShowCommentToggled new ]
 !
 
-menuCommands
-	"Answer a collection of commands to be put in the cog menu"
-	
-	^ (HLBrowserCommand concreteClasses 
-		collect: [ :each | each for: self model ])
-		select: [ :each | 
-			each category = self commandCategory and: [ 
-				each isAction and: [ each isActive ] ] ]
+showInstance
+	^ showInstance ifNil: [ true ]
 !
 
-model
-	^ model
-!
+showInstance: aBoolean
+
+	self withChangesDo: [
+		showInstance := aBoolean.
+		showComment := false.
 
-model: aBrowserModel
-	model := aBrowserModel.
+    	self selectedClass ifNotNil: [
+    		self selectedClass: (aBoolean
+    			ifTrue: [self selectedClass theNonMetaClass ]
+	    	  	ifFalse: [ self selectedClass theMetaClass ]) ].
     
-    self 
-		observeSystem;
-		observeModel
+		self announcer announce: HLShowInstanceToggled new ]
+! !
+
+!HLBrowserModel methodsFor: 'actions'!
+
+focusOnClasses
+	self announcer announce: HLClassesFocusRequested new
 !
 
-selectedItem: anItem
-	"Selection changed, update the cog menu"
-	
-	super selectedItem: anItem.
-	self updateMenu
+focusOnMethods
+	self announcer announce: HLMethodsFocusRequested new
+!
+
+focusOnPackages
+	self announcer announce: HLPackagesFocusRequested new
+!
+
+focusOnProtocols
+	self announcer announce: HLProtocolsFocusRequested new
+!
+
+focusOnSourceCode
+	self announcer announce: HLSourceCodeFocusRequested new
 ! !
 
-!HLBrowserListWidget methodsFor: 'actions'!
+!HLBrowserModel methodsFor: 'testing'!
+
+isBrowserModel
+	^ true
+! !
+
+!HLBrowserModel class methodsFor: 'actions'!
+
+on: anEnvironment
+
+	^ self new
+    	environment: anEnvironment;
+        yourself
+! !
 
-activateListItem: anItem
-	self model withChangesDo: [ super activateListItem: anItem ]
+Object subclass: #HLClassCache
+	instanceVariableNames: 'class selectorsCache overrideCache overriddenCache'
+	package: 'Helios-Browser'!
+
+!HLClassCache methodsFor: 'accessing'!
+
+overriddenCache
+	^ overriddenCache ifNil: [ overriddenCache := HashedCollection new ]
 !
 
-activateNextListItem
-	self model withChangesDo: [ super activateNextListItem ]
+overrideCache
+	^ overrideCache ifNil: [ overrideCache := HashedCollection new ]
 !
 
-activatePreviousListItem
-	self model withChangesDo: [ super activatePreviousListItem ]
+selectorsCache
+	^ selectorsCache
 !
 
-observeModel
+selectorsCache: aCache
+	selectorsCache := aCache
 !
 
-observeSystem
+theClass
+	^ class
+!
+
+theClass: aClass
+	class := aClass
 ! !
 
-!HLBrowserListWidget methodsFor: 'rendering'!
+!HLClassCache methodsFor: 'actions'!
 
-renderContentOn: html
-	self renderHeadOn: html.	
-	super renderContentOn: html
+invalidateChildrenSelector: aSelector
+	self theClass subclasses do: [ :each |
+    	(self selectorsCache cacheFor: each)
+        	removeSelector: aSelector;
+        	invalidateChildrenSelector: aSelector ]
 !
 
-renderHeadOn: html
-	html div 
-		class: 'list-label';
-		with: [
-			html with: self label.
-			self renderMenuOn: html ]
+invalidateParentSelector: aSelector
+	self theClass superclass ifNotNil: [
+    	(self selectorsCache cacheFor: self theClass superclass)
+        	removeSelector: aSelector;
+			invalidateParentSelector: aSelector ]
 !
 
-renderMenuOn: html
-	| commands |
-	
-	commands := self menuCommands.
-	commands isEmpty ifTrue: [ ^ self ].
-	
-	html div 
-		class: 'btn-group cog';
-		with: [
-			html a
-				class: 'btn dropdown-toggle';
-				at: 'data-toggle' put: 'dropdown';
-				with: [ (html tag: 'i') class: 'icon-cog' ].
-		html ul 
-			class: 'dropdown-menu pull-right';
-			with: [ 
-				self menuCommands do: [ :each | 
-					html li with: [ html a 
-						with: each menuLabel;
-						onClick: [ self execute: each ] ] ] ] ]
+invalidateSelector: aSelector
+	self 
+    	invalidateParentSelector: aSelector;
+        invalidateChildrenSelector: aSelector;
+        removeSelector: aSelector
 ! !
 
-!HLBrowserListWidget methodsFor: 'updating'!
+!HLClassCache methodsFor: 'private'!
 
-updateMenu
-	(self wrapper asJQuery find: '.cog') remove.
-	
-	[ :html | self renderMenuOn: html ] 
-		appendToJQuery: (self wrapper asJQuery find: '.list-label')
+removeSelector: aSelector
+	self overriddenCache 
+    	removeKey: aSelector
+        ifAbsent: [ ].
+    self overrideCache 
+    	removeKey: aSelector
+        ifAbsent: [ ]
+! !
+
+!HLClassCache methodsFor: 'testing'!
+
+isOverridden: aMethod
+	^ self overriddenCache 
+    	at: aMethod selector
+      	ifAbsentPut: [ aMethod isOverridden ]
+!
+
+isOverride: aMethod
+	^ self overrideCache
+    	at: aMethod selector
+      	ifAbsentPut: [ aMethod isOverride ]
 ! !
 
-!HLBrowserListWidget class methodsFor: 'instance creation'!
+!HLClassCache class methodsFor: 'instance creation'!
 
-on: aModel
-	^ self new 
-    	model: aModel;
+on: aClass selectorsCache: aSelectorsCache
+	^ self new
+    	theClass: aClass;
+        selectorsCache: aSelectorsCache;
         yourself
 ! !
 
-HLBrowserListWidget subclass: #HLClassesListWidget
+HLToolListWidget subclass: #HLClassesListWidget
 	instanceVariableNames: ''
 	package: 'Helios-Browser'!
 
@@ -546,7 +587,40 @@ renderListOn: html
     	do: [ :each | self renderItem: each on: html ]
 ! !
 
-HLBrowserListWidget subclass: #HLMethodsListWidget
+HLFocusableWidget subclass: #HLDocumentationWidget
+	instanceVariableNames: 'model'
+	package: 'Helios-Browser'!
+
+!HLDocumentationWidget methodsFor: 'accessing'!
+
+documentation
+	^ self model selectedClass theNonMetaClass comment ifNil: [ self defaultDocumentation ]
+!
+
+model
+	^ model
+!
+
+model: aModel
+	model := aModel
+! !
+
+!HLDocumentationWidget methodsFor: 'defaults'!
+
+defaultDocumentation
+	^ '#No documentation available. 
+##That''s bad. Seriously.'
+! !
+
+!HLDocumentationWidget methodsFor: 'rendering'!
+
+renderContentOn: html
+	(html div 
+		class: 'markdown';
+		asJQuery) html: ((Showdown at: 'converter') new makeHtml: self documentation)
+! !
+
+HLToolListWidget subclass: #HLMethodsListWidget
 	instanceVariableNames: 'selectorsCache'
 	package: 'Helios-Browser'!
 
@@ -764,7 +838,7 @@ selectorsCache
 	^ HLSelectorsCache current
 ! !
 
-HLBrowserListWidget subclass: #HLPackagesListWidget
+HLToolListWidget subclass: #HLPackagesListWidget
 	instanceVariableNames: ''
 	package: 'Helios-Browser'!
 
@@ -852,7 +926,7 @@ renderItemLabel: aPackage on: html
 	html with: aPackage name
 ! !
 
-HLBrowserListWidget subclass: #HLProtocolsListWidget
+HLToolListWidget subclass: #HLProtocolsListWidget
 	instanceVariableNames: ''
 	package: 'Helios-Browser'!
 
@@ -964,506 +1038,6 @@ renderContentOn: html
       	ifTrue: [ super renderContentOn: html ]
 ! !
 
-HLModel subclass: #HLBrowserModel
-	instanceVariableNames: 'selectedPackage selectedClass selectedProtocol selectedSelector showInstance showComment'
-	package: 'Helios-Browser'!
-
-!HLBrowserModel methodsFor: 'accessing'!
-
-allSelectors
-	^ self environment allSelectors
-!
-
-availableClassNames
-	^ self environment availableClassNames
-!
-
-availablePackageNames
-	^ self environment availablePackageNames
-!
-
-availablePackages
-	^ self environment availablePackageNames
-!
-
-availableProtocols
-	^ self environment availableProtocolsFor: self selectedClass
-!
-
-handleUnkownVariableError: anError
-	self announcer announce: (HLUnknownVariableErrorRaised new
-		error: anError;
-		yourself)
-!
-
-packages
-	^ self environment packages
-!
-
-selectedClass
-	^ selectedClass
-!
-
-selectedClass: aClass
-	(self selectedClass = aClass and: [ aClass isNil ]) 
-		ifTrue: [ ^ self ].
-	
-	self withChangesDo: [
-		selectedClass = aClass ifTrue: [ 
-			self selectedProtocol: nil ].
-    
-		aClass 
-   			ifNil: [ selectedClass := nil ]
-    		ifNotNil: [
-				self showInstance 
-   					ifTrue: [ selectedClass := aClass theNonMetaClass ]
-     				ifFalse: [ selectedClass := aClass theMetaClass ] ].
-		self selectedProtocol: nil.
-		self announcer announce: (HLClassSelected on: self selectedClass) ]
-!
-
-selectedMethod
-	^ self selectedClass ifNotNil: [ 
-			self selectedClass methodDictionary 
-				at: selectedSelector 
-				ifAbsent: [ nil ] ]
-!
-
-selectedMethod: aCompiledMethod
-	selectedSelector = aCompiledMethod ifTrue: [ ^ self ].
-    
-    self withChangesDo: [
-		aCompiledMethod
-    		ifNil: [ selectedSelector := nil ]
-      		ifNotNil: [
-				selectedSelector := aCompiledMethod selector ].
-
-		self announcer announce: (HLMethodSelected on: aCompiledMethod) ]
-!
-
-selectedPackage
-	^ selectedPackage
-!
-
-selectedPackage: aPackage
-	selectedPackage = aPackage ifTrue: [ ^ self ].
-    
-	self withChangesDo: [
-		selectedPackage := aPackage.
-		self selectedClass: nil.
-		self announcer announce: (HLPackageSelected on: aPackage) ]
-!
-
-selectedProtocol
-	^ selectedProtocol
-!
-
-selectedProtocol: aString
-	selectedProtocol = aString ifTrue: [ ^ self ].
-
-	self withChangesDo: [
-		selectedProtocol := aString.
-		self selectedMethod: nil.
-		self announcer announce: (HLProtocolSelected on: aString) ]
-!
-
-showComment
-	^ showComment ifNil: [ false ]
-!
-
-showComment: aBoolean
-	self withChangesDo: [
-		showComment := aBoolean.
-		self announcer announce: HLShowCommentToggled new ]
-!
-
-showInstance
-	^ showInstance ifNil: [ true ]
-!
-
-showInstance: aBoolean
-
-	self withChangesDo: [
-		showInstance := aBoolean.
-		showComment := false.
-
-    	self selectedClass ifNotNil: [
-    		self selectedClass: (aBoolean
-    			ifTrue: [self selectedClass theNonMetaClass ]
-	    	  	ifFalse: [ self selectedClass theMetaClass ]) ].
-    
-		self announcer announce: HLShowInstanceToggled new ]
-! !
-
-!HLBrowserModel methodsFor: 'actions'!
-
-addInstVarNamed: aString
-	self environment addInstVarNamed: aString to: self selectedClass.
-	self announcer announce: (HLInstVarAdded new
-		theClass: self selectedClass;
-		variableName: aString;
-		yourself)
-!
-
-focusOnClasses
-	self announcer announce: HLClassesFocusRequested new
-!
-
-focusOnMethods
-	self announcer announce: HLMethodsFocusRequested new
-!
-
-focusOnPackages
-	self announcer announce: HLPackagesFocusRequested new
-!
-
-focusOnProtocols
-	self announcer announce: HLProtocolsFocusRequested new
-!
-
-focusOnSourceCode
-	self announcer announce: HLSourceCodeFocusRequested new
-!
-
-save: aString
-	self announcer announce: HLSourceCodeSaved new.
-	
-	(self shouldCompileClassDefinition: aString)
-		ifTrue: [ self compileClassDefinition: aString ]
-		ifFalse: [ self compileMethod: aString ]
-!
-
-saveSourceCode
-	self announcer announce: HLSaveSourceCode new
-! !
-
-!HLBrowserModel methodsFor: 'commands actions'!
-
-commitPackage
-	self 
-		withHelperLabelled: 'Committing package ', self selectedPackage name, '...'
-		do: [ self environment commitPackage: self selectedPackage ]
-!
-
-copyClassTo: aClassName
-	self withChangesDo: [ 
-		self environment 
-			copyClass: self selectedClass theNonMetaClass
-			to: aClassName ]
-!
-
-moveClassToPackage: aPackageName
-	self withChangesDo: [
-		self environment 
-			moveClass: self selectedClass theNonMetaClass
-			toPackage: aPackageName ]
-!
-
-moveMethodToClass: aClassName
-	self withChangesDo: [
-		self environment 
-			moveMethod: self selectedMethod 
-			toClass: aClassName ]
-!
-
-moveMethodToProtocol: aProtocol
-	self withChangesDo: [
-		self environment 
-			moveMethod: self selectedMethod 
-			toProtocol: aProtocol ]
-!
-
-openClassNamed: aString
-	| class |
-	
-	self withChangesDo: [
-		class := self environment classNamed: aString.
-		self selectedPackage: class package.
-		self selectedClass: class ]
-!
-
-removeClass
-	self withChangesDo: [
-		self manager 
-			confirm: 'Do you REALLY want to remove class ', self selectedClass name
-			ifTrue: [ self environment removeClass: self selectedClass ] ]
-!
-
-removeMethod
-	self withChangesDo: [
-		self manager 
-			confirm: 'Do you REALLY want to remove method ', self selectedMethod methodClass name,' >> #', self selectedMethod selector
-			ifTrue: [ self environment removeMethod: self selectedMethod ] ]
-!
-
-removeProtocol
-	self withChangesDo: [
-		self manager 
-			confirm: 'Do you REALLY want to remove protocol ', self selectedProtocol
-			ifTrue: [ self environment 
-				removeProtocol: self selectedProtocol 
-				from: self selectedClass ] ]
-!
-
-renameClassTo: aClassName
-	self withChangesDo: [
-		self environment 
-			renameClass: self selectedClass theNonMetaClass
-			to: aClassName ]
-!
-
-renameProtocolTo: aString
-	self withChangesDo: [
-		self environment 
-			renameProtocol: self selectedProtocol
-			to: aString
-			in: self selectedClass ]
-! !
-
-!HLBrowserModel methodsFor: 'compiling'!
-
-compileClassComment: aString
-	self environment 
-		compileClassComment: aString 
-		for: self selectedClass
-!
-
-compileClassDefinition: aString
-	self environment compileClassDefinition: aString
-!
-
-compileMethod: aString
-	| method |
-	
-	self withCompileErrorHandling: [ 
-		method := self environment 
-			compileMethod: aString 
-			for: self selectedClass
-			protocol: self compilationProtocol.
-
-		self selectedMethod: method ]
-! !
-
-!HLBrowserModel methodsFor: 'defaults'!
-
-allProtocol
-	^ '-- all --'
-!
-
-unclassifiedProtocol
-	^ 'as yet unclassified'
-! !
-
-!HLBrowserModel methodsFor: 'error handling'!
-
-handleCompileError: anError
-	self announcer announce: (HLCompileErrorRaised new
-		error: anError;
-		yourself)
-!
-
-handleParseError: anError
-	| split line column messageToInsert |
-	
-	split := anError messageText tokenize: ' : '.
-	messageToInsert := split second.
-
-	"21 = 'Parse error on line ' size + 1"
-	split := split first copyFrom: 21 to: split first size.
-	
-	split := split tokenize: ' column '.
-	line := split first.
-	column := split second.
-	
-	self announcer announce: (HLParseErrorRaised new
-		line: line asNumber;
-		column: column asNumber;
-		message: messageToInsert;
-		error: anError;
-		yourself)
-!
-
-withCompileErrorHandling: aBlock
-	[
-		[
-			aBlock 
-				on: ParseError
-				do: [:ex | self handleParseError: ex ]
-		]
-			on: UnknownVariableError
-			do: [ :ex | self handleUnkownVariableError: ex ]
-	]
-		on: CompilerError
-		do: [ :ex | self handleCompileError: ex ]
-! !
-
-!HLBrowserModel methodsFor: 'private'!
-
-compilationProtocol
-	| currentProtocol |
-	
-	currentProtocol := self selectedProtocol.
-	currentProtocol ifNil: [ currentProtocol := self unclassifiedProtocol ].
-	self selectedMethod ifNotNil: [ currentProtocol := self selectedMethod protocol ].
-
-	^ currentProtocol = self allProtocol
-		ifTrue: [ self unclassifiedProtocol ]
-		ifFalse: [ currentProtocol ]
-!
-
-withHelperLabelled: aString do: aBlock
-	"TODO: doesn't belong here"
-
-	(window jQuery: '#helper') remove.
-
-	[ :html |
-		html div 
-			id: 'helper';
-			with: aString ] appendToJQuery: 'body' asJQuery.
-	
-	[
-		aBlock value.
-		(window jQuery: '#helper') remove
-	] 
-		valueWithTimeout: 10
-! !
-
-!HLBrowserModel methodsFor: 'testing'!
-
-shouldCompileClassDefinition: aString
-	^ self selectedClass isNil or: [
-		aString first asUppercase = aString first ]
-! !
-
-!HLBrowserModel class methodsFor: 'actions'!
-
-on: anEnvironment
-
-	^ self new
-    	environment: anEnvironment;
-        yourself
-! !
-
-Object subclass: #HLClassCache
-	instanceVariableNames: 'class selectorsCache overrideCache overriddenCache'
-	package: 'Helios-Browser'!
-
-!HLClassCache methodsFor: 'accessing'!
-
-overriddenCache
-	^ overriddenCache ifNil: [ overriddenCache := HashedCollection new ]
-!
-
-overrideCache
-	^ overrideCache ifNil: [ overrideCache := HashedCollection new ]
-!
-
-selectorsCache
-	^ selectorsCache
-!
-
-selectorsCache: aCache
-	selectorsCache := aCache
-!
-
-theClass
-	^ class
-!
-
-theClass: aClass
-	class := aClass
-! !
-
-!HLClassCache methodsFor: 'actions'!
-
-invalidateChildrenSelector: aSelector
-	self theClass subclasses do: [ :each |
-    	(self selectorsCache cacheFor: each)
-        	removeSelector: aSelector;
-        	invalidateChildrenSelector: aSelector ]
-!
-
-invalidateParentSelector: aSelector
-	self theClass superclass ifNotNil: [
-    	(self selectorsCache cacheFor: self theClass superclass)
-        	removeSelector: aSelector;
-			invalidateParentSelector: aSelector ]
-!
-
-invalidateSelector: aSelector
-	self 
-    	invalidateParentSelector: aSelector;
-        invalidateChildrenSelector: aSelector;
-        removeSelector: aSelector
-! !
-
-!HLClassCache methodsFor: 'private'!
-
-removeSelector: aSelector
-	self overriddenCache 
-    	removeKey: aSelector
-        ifAbsent: [ ].
-    self overrideCache 
-    	removeKey: aSelector
-        ifAbsent: [ ]
-! !
-
-!HLClassCache methodsFor: 'testing'!
-
-isOverridden: aMethod
-	^ self overriddenCache 
-    	at: aMethod selector
-      	ifAbsentPut: [ aMethod isOverridden ]
-!
-
-isOverride: aMethod
-	^ self overrideCache
-    	at: aMethod selector
-      	ifAbsentPut: [ aMethod isOverride ]
-! !
-
-!HLClassCache class methodsFor: 'instance creation'!
-
-on: aClass selectorsCache: aSelectorsCache
-	^ self new
-    	theClass: aClass;
-        selectorsCache: aSelectorsCache;
-        yourself
-! !
-
-HLFocusableWidget subclass: #HLDocumentationWidget
-	instanceVariableNames: 'model'
-	package: 'Helios-Browser'!
-
-!HLDocumentationWidget methodsFor: 'accessing'!
-
-documentation
-	^ self model selectedClass theNonMetaClass comment ifNil: [ self defaultDocumentation ]
-!
-
-model
-	^ model
-!
-
-model: aModel
-	model := aModel
-! !
-
-!HLDocumentationWidget methodsFor: 'defaults'!
-
-defaultDocumentation
-	^ '#No documentation available. 
-##That''s bad. Seriously.'
-! !
-
-!HLDocumentationWidget methodsFor: 'rendering'!
-
-renderContentOn: html
-	(html div 
-		class: 'markdown';
-		asJQuery) html: ((Showdown at: 'converter') new makeHtml: self documentation)
-! !
-
 Object subclass: #HLSelectorsCache
 	instanceVariableNames: 'classesCache'
 	package: 'Helios-Browser'!

+ 0 - 843
st/Helios-Commands-Browser.st

@@ -1,843 +0,0 @@
-Smalltalk current createPackage: 'Helios-Commands-Browser'!
-HLModelCommand subclass: #HLBrowserCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLBrowserCommand methodsFor: 'accessing'!
-
-category
-	^ nil
-! !
-
-!HLBrowserCommand class methodsFor: 'instance creation'!
-
-for: aBrowserModel
-	^ self new
-    	model: aBrowserModel;
-        yourself
-! !
-
-HLBrowserCommand subclass: #HLBrowserGoToCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLBrowserGoToCommand class methodsFor: 'accessing'!
-
-key
-	^ 'g'
-!
-
-label
-	^ 'Go to'
-! !
-
-HLBrowserGoToCommand subclass: #HLGoToClassesCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLGoToClassesCommand methodsFor: 'executing'!
-
-execute
-	self model focusOnClasses
-! !
-
-!HLGoToClassesCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Classes'
-! !
-
-HLBrowserGoToCommand subclass: #HLGoToMethodsCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLGoToMethodsCommand methodsFor: 'executing'!
-
-execute
-	self model focusOnMethods
-! !
-
-!HLGoToMethodsCommand class methodsFor: 'accessing'!
-
-key
-	^ 'm'
-!
-
-label
-	^ 'Methods'
-! !
-
-HLBrowserGoToCommand subclass: #HLGoToPackagesCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLGoToPackagesCommand methodsFor: 'executing'!
-
-execute
-	self model focusOnPackages
-! !
-
-!HLGoToPackagesCommand class methodsFor: 'accessing'!
-
-key
-	^ 'p'
-!
-
-label
-	^ 'Packages'
-! !
-
-HLBrowserGoToCommand subclass: #HLGoToProtocolsCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLGoToProtocolsCommand methodsFor: 'executing'!
-
-execute
-	self model focusOnProtocols
-! !
-
-!HLGoToProtocolsCommand class methodsFor: 'accessing'!
-
-key
-	^ 't'
-!
-
-label
-	^ 'Protocols'
-! !
-
-HLBrowserGoToCommand subclass: #HLGoToSourceCodeCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLGoToSourceCodeCommand methodsFor: 'executing'!
-
-execute
-	self model focusOnSourceCode
-! !
-
-!HLGoToSourceCodeCommand class methodsFor: 'accessing'!
-
-key
-	^ 's'
-!
-
-label
-	^ 'Source code'
-! !
-
-HLBrowserCommand subclass: #HLCommitPackageCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLCommitPackageCommand methodsFor: 'accessing'!
-
-category
-	^ 'Packages'
-! !
-
-!HLCommitPackageCommand methodsFor: 'executing'!
-
-execute
-	self model commitPackage
-! !
-
-!HLCommitPackageCommand methodsFor: 'testing'!
-
-isActive
-	^ true
-	" slf model isPackageDirty"
-! !
-
-!HLCommitPackageCommand class methodsFor: 'accessing'!
-
-key
-	^ 'k'
-!
-
-label
-	^ 'Commit'
-! !
-
-HLBrowserCommand subclass: #HLCopyCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLCopyCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Copy'
-! !
-
-HLCopyCommand subclass: #HLCopyClassCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLCopyClassCommand methodsFor: 'accessing'!
-
-category
-	^ 'Classes'
-!
-
-displayLabel
-	^ 'New class name:'
-! !
-
-!HLCopyClassCommand methodsFor: 'defaults'!
-
-defaultInput
-	^ self model selectedClass name
-! !
-
-!HLCopyClassCommand methodsFor: 'executing'!
-
-execute
-	self model copyClassTo: self input
-! !
-
-!HLCopyClassCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedClass notNil
-!
-
-isInputRequired
-	^ true
-! !
-
-!HLCopyClassCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Class'
-!
-
-menuLabel
-	^ 'Copy class...'
-! !
-
-HLBrowserCommand subclass: #HLFindCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLFindCommand class methodsFor: 'accessing'!
-
-key
-	^ 'f'
-!
-
-label
-	^ 'Find'
-! !
-
-HLFindCommand subclass: #HLFindClassCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLFindClassCommand methodsFor: 'accessing'!
-
-displayLabel
-	^ 'select a class'
-!
-
-inputCompletion
-	^ self model availableClassNames
-!
-
-inputLabel
-	^ 'Find a class'
-! !
-
-!HLFindClassCommand methodsFor: 'executing'!
-
-execute
-	self model openClassNamed: self input
-! !
-
-!HLFindClassCommand methodsFor: 'testing'!
-
-isInputRequired
-	^ true
-! !
-
-!HLFindClassCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Class'
-! !
-
-HLFindCommand subclass: #HLFindReferencesCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLFindReferencesCommand methodsFor: 'accessing'!
-
-displayLabel
-	^ 'find references'
-!
-
-inputCompletion
-	^ self model availableClassNames, self model allSelectors
-!
-
-inputLabel
-	^ 'Find references of'
-! !
-
-!HLFindReferencesCommand methodsFor: 'defaults'!
-
-defaultInput
-	^ self model selectedMethod 
-		ifNil: [
-			self model selectedClass
-				ifNil: [ '' ]
-				ifNotNil: [ :class | class name ] ]
-		ifNotNil: [ :method | method selector ]
-! !
-
-!HLFindReferencesCommand methodsFor: 'executing'!
-
-execute
-	HLReferences new 
-		open;
-		search: self input
-! !
-
-!HLFindReferencesCommand methodsFor: 'testing'!
-
-isInputRequired
-	^ true
-! !
-
-!HLFindReferencesCommand class methodsFor: 'accessing'!
-
-key
-	^ 'r'
-!
-
-label
-	^ 'References'
-! !
-
-HLBrowserCommand subclass: #HLMoveToCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLMoveToCommand class methodsFor: 'accessing'!
-
-key
-	^ 'm'
-!
-
-label
-	^ 'Move'
-! !
-
-HLMoveToCommand subclass: #HLMoveClassToCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLMoveClassToCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedClass notNil
-! !
-
-!HLMoveClassToCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Class'
-! !
-
-HLMoveClassToCommand subclass: #HLMoveClassToPackageCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLMoveClassToPackageCommand methodsFor: 'accessing'!
-
-category
-	^ 'Classes'
-!
-
-displayLabel
-	^ 'select a package'
-!
-
-inputCompletion
-	^ self model availablePackageNames
-!
-
-inputLabel
-	^ 'Move class to package:'
-! !
-
-!HLMoveClassToPackageCommand methodsFor: 'executing'!
-
-execute
-	self model moveClassToPackage: self input
-! !
-
-!HLMoveClassToPackageCommand methodsFor: 'testing'!
-
-isInputRequired
-	^ true
-! !
-
-!HLMoveClassToPackageCommand class methodsFor: 'accessing'!
-
-key
-	^ 'p'
-!
-
-label
-	^ 'to package'
-!
-
-menuLabel	
-	^ 'Move to package...'
-! !
-
-HLMoveToCommand subclass: #HLMoveMethodToCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLMoveMethodToCommand methodsFor: 'accessing'!
-
-category
-	^ 'Methods'
-! !
-
-!HLMoveMethodToCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedMethod notNil
-! !
-
-!HLMoveMethodToCommand class methodsFor: 'accessing'!
-
-key
-	^ 'm'
-!
-
-label
-	^ 'Method'
-! !
-
-HLMoveMethodToCommand subclass: #HLMoveMethodToClassCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLMoveMethodToClassCommand methodsFor: 'accessing'!
-
-displayLabel
-	^ 'select a class'
-!
-
-inputCompletion
-	^ self model availableClassNames
-!
-
-inputLabel
-	^ 'Move method to class:'
-! !
-
-!HLMoveMethodToClassCommand methodsFor: 'executing'!
-
-execute
-	self model moveMethodToClass: self input
-! !
-
-!HLMoveMethodToClassCommand methodsFor: 'testing'!
-
-isInputRequired
-	^ true
-! !
-
-!HLMoveMethodToClassCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label	
-	^ 'to class'
-!
-
-menuLabel	
-	^ 'Move to class...'
-! !
-
-HLMoveMethodToCommand subclass: #HLMoveMethodToProtocolCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLMoveMethodToProtocolCommand methodsFor: 'accessing'!
-
-displayLabel
-	^ 'select a protocol'
-!
-
-inputCompletion
-	^ self model availableProtocols
-!
-
-inputLabel
-	^ 'Move method to a protocol:'
-! !
-
-!HLMoveMethodToProtocolCommand methodsFor: 'executing'!
-
-execute
-	self model moveMethodToProtocol: self input
-! !
-
-!HLMoveMethodToProtocolCommand methodsFor: 'testing'!
-
-isInputRequired
-	^ true
-! !
-
-!HLMoveMethodToProtocolCommand class methodsFor: 'accessing'!
-
-key
-	^ 't'
-!
-
-label
-	^ 'to protocol'
-!
-
-menuLabel
-	^ 'Move to protocol...'
-! !
-
-HLBrowserCommand subclass: #HLRemoveCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRemoveCommand class methodsFor: 'accessing'!
-
-key
-	^ 'x'
-!
-
-label
-	^ 'Remove'
-! !
-
-HLRemoveCommand subclass: #HLRemoveClassCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRemoveClassCommand methodsFor: 'accessing'!
-
-category
-	^ 'Classes'
-! !
-
-!HLRemoveClassCommand methodsFor: 'executing'!
-
-execute
-	self model removeClass
-! !
-
-!HLRemoveClassCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedClass notNil
-! !
-
-!HLRemoveClassCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Class'
-!
-
-menuLabel
-	^ 'Remove class'
-! !
-
-HLRemoveCommand subclass: #HLRemoveMethodCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRemoveMethodCommand methodsFor: 'accessing'!
-
-category
-	^ 'Methods'
-! !
-
-!HLRemoveMethodCommand methodsFor: 'executing'!
-
-execute
-	self model removeMethod
-! !
-
-!HLRemoveMethodCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedMethod notNil
-! !
-
-!HLRemoveMethodCommand class methodsFor: 'accessing'!
-
-key
-	^ 'm'
-!
-
-label
-	^ 'Method'
-!
-
-menuLabel
-	^ 'Remove method'
-! !
-
-HLRemoveCommand subclass: #HLRemoveProtocolCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRemoveProtocolCommand methodsFor: 'accessing'!
-
-category
-	^ 'Protocols'
-! !
-
-!HLRemoveProtocolCommand methodsFor: 'executing'!
-
-execute
-	self model removeProtocol
-! !
-
-!HLRemoveProtocolCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedProtocol notNil
-! !
-
-!HLRemoveProtocolCommand class methodsFor: 'accessing'!
-
-key
-	^ 't'
-!
-
-label
-	^ 'Protocol'
-!
-
-menuLabel
-	^ 'Remove protocol'
-! !
-
-HLBrowserCommand subclass: #HLRenameCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRenameCommand class methodsFor: 'accessing'!
-
-key
-	^ 'r'
-!
-
-label
-	^ 'Rename'
-! !
-
-HLRenameCommand subclass: #HLRenameClassCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRenameClassCommand methodsFor: 'accessing'!
-
-category
-	^ 'Classes'
-!
-
-displayLabel
-	^ 'Rename class to:'
-! !
-
-!HLRenameClassCommand methodsFor: 'defaults'!
-
-defaultInput
-	^ self model selectedClass name
-! !
-
-!HLRenameClassCommand methodsFor: 'executing'!
-
-execute
-	self model renameClassTo: self input
-! !
-
-!HLRenameClassCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedClass notNil
-!
-
-isInputRequired
-	^ true
-! !
-
-!HLRenameClassCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Class'
-!
-
-menuLabel
-	^ 'Rename class...'
-! !
-
-HLRenameCommand subclass: #HLRenameProtocolCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLRenameProtocolCommand methodsFor: 'accessing'!
-
-category
-	^ 'Protocols'
-!
-
-displayLabel
-	^ 'Rename protocol to:'
-! !
-
-!HLRenameProtocolCommand methodsFor: 'defaults'!
-
-defaultInput
-	^ self model selectedProtocol
-! !
-
-!HLRenameProtocolCommand methodsFor: 'executing'!
-
-execute
-	self model renameProtocolTo: self input
-! !
-
-!HLRenameProtocolCommand methodsFor: 'testing'!
-
-isActive
-	^ self model selectedProtocol notNil
-!
-
-isInputRequired
-	^ true
-! !
-
-!HLRenameProtocolCommand class methodsFor: 'accessing'!
-
-key
-	^ 't'
-!
-
-label
-	^ 'Protocol'
-!
-
-menuLabel
-	^ 'Rename protocol...'
-! !
-
-HLBrowserCommand subclass: #HLToggleCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLToggleCommand class methodsFor: 'accessing'!
-
-key
-	^ 't'
-!
-
-label
-	^ 'Toggle'
-! !
-
-HLToggleCommand subclass: #HLToggleClassCommentCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLToggleClassCommentCommand methodsFor: 'executing'!
-
-execute
-	self model showComment: true
-! !
-
-!HLToggleClassCommentCommand class methodsFor: 'accessing'!
-
-key
-	^ 'd'
-!
-
-label
-	^ 'Documentation'
-! !
-
-HLToggleCommand subclass: #HLToggleClassSideCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLToggleClassSideCommand methodsFor: 'executing'!
-
-execute
-	self model showInstance: false
-! !
-
-!HLToggleClassSideCommand class methodsFor: 'accessing'!
-
-key
-	^ 'c'
-!
-
-label
-	^ 'Class side'
-! !
-
-HLToggleCommand subclass: #HLToggleInstanceSideCommand
-	instanceVariableNames: ''
-	package: 'Helios-Commands-Browser'!
-
-!HLToggleInstanceSideCommand methodsFor: 'executing'!
-
-execute
-	self model showInstance: true
-! !
-
-!HLToggleInstanceSideCommand class methodsFor: 'accessing'!
-
-key
-	^ 'i'
-!
-
-label
-	^ 'Instance side'
-! !
-

+ 2 - 2
st/Helios-Commands-Core.st

@@ -159,7 +159,7 @@ isConcrete
 !
 
 isValidFor: aModel
-	^ false
+	^ true
 ! !
 
 HLCommand subclass: #HLCloseTabCommand
@@ -207,7 +207,7 @@ for: aModel
 registerConcreteClassesOn: aBinding for: aModel
 	| newBinding |
 	
-	self isConcrete
+	(self isConcrete and: [ self isValidFor: aModel ])
 		ifTrue: [ newBinding := self registerOn: aBinding for: aModel ]
 		ifFalse: [ newBinding := aBinding ].
 		

+ 470 - 0
st/Helios-Core.st

@@ -37,6 +37,358 @@ withChangesDo: aBlock
 		do: [ :ex | ]
 ! !
 
+!HLModel methodsFor: 'testing'!
+
+isBrowserModel
+	^ false
+!
+
+isReferencesModel
+	^ false
+!
+
+isToolModel
+	^ false
+! !
+
+HLModel subclass: #HLToolModel
+	instanceVariableNames: 'selectedClass selectedPackage selectedProtocol selectedSelector'
+	package: 'Helios-Core'!
+
+!HLToolModel methodsFor: 'accessing'!
+
+allSelectors
+	^ self environment allSelectors
+!
+
+availableClassNames
+	^ self environment availableClassNames
+!
+
+availablePackageNames
+	^ self environment availablePackageNames
+!
+
+availablePackages
+	^ self environment availablePackageNames
+!
+
+availableProtocols
+	^ self environment availableProtocolsFor: self selectedClass
+!
+
+packages
+	^ self environment packages
+!
+
+selectedClass
+	^ selectedClass
+!
+
+selectedClass: aClass
+	(self selectedClass = aClass and: [ aClass isNil ]) 
+		ifTrue: [ ^ self ].
+	
+	self withChangesDo: [
+		selectedClass = aClass ifTrue: [ 
+			self selectedProtocol: nil ].
+    
+		aClass 
+   			ifNil: [ selectedClass := nil ]
+    		ifNotNil: [
+				self selectedPackage: aClass theNonMetaClass package.
+				self showInstance 
+   					ifTrue: [ selectedClass := aClass theNonMetaClass ]
+     				ifFalse: [ selectedClass := aClass theMetaClass ] ].
+		self selectedProtocol: nil.
+		self announcer announce: (HLClassSelected on: self selectedClass) ]
+!
+
+selectedMethod
+	^ self selectedClass ifNotNil: [ 
+			self selectedClass methodDictionary 
+				at: selectedSelector 
+				ifAbsent: [ nil ] ]
+!
+
+selectedMethod: aCompiledMethod
+	selectedSelector = aCompiledMethod ifTrue: [ ^ self ].
+    
+    self withChangesDo: [
+		aCompiledMethod
+    		ifNil: [ selectedSelector := nil ]
+      		ifNotNil: [
+				selectedClass := aCompiledMethod methodClass.
+				selectedSelector := aCompiledMethod selector ].
+
+		self announcer announce: (HLMethodSelected on: aCompiledMethod) ]
+!
+
+selectedPackage
+	^ selectedPackage
+!
+
+selectedPackage: aPackage
+	selectedPackage = aPackage ifTrue: [ ^ self ].
+    
+	self withChangesDo: [
+		selectedPackage := aPackage.
+		self selectedClass: nil.
+		self announcer announce: (HLPackageSelected on: aPackage) ]
+!
+
+selectedProtocol
+	^ selectedProtocol
+!
+
+selectedProtocol: aString
+	selectedProtocol = aString ifTrue: [ ^ self ].
+
+	self withChangesDo: [
+		selectedProtocol := aString.
+		self selectedMethod: nil.
+		self announcer announce: (HLProtocolSelected on: aString) ]
+! !
+
+!HLToolModel methodsFor: 'actions'!
+
+addInstVarNamed: aString
+	self environment addInstVarNamed: aString to: self selectedClass.
+	self announcer announce: (HLInstVarAdded new
+		theClass: self selectedClass;
+		variableName: aString;
+		yourself)
+!
+
+save: aString
+	self announcer announce: HLSourceCodeSaved new.
+	
+	(self shouldCompileClassDefinition: aString)
+		ifTrue: [ self compileClassDefinition: aString ]
+		ifFalse: [ self compileMethod: aString ]
+!
+
+saveSourceCode
+	self announcer announce: HLSaveSourceCode new
+! !
+
+!HLToolModel methodsFor: 'commands actions'!
+
+commitPackage
+	self 
+		withHelperLabelled: 'Committing package ', self selectedPackage name, '...'
+		do: [ self environment commitPackage: self selectedPackage ]
+!
+
+copyClassTo: aClassName
+	self withChangesDo: [ 
+		self environment 
+			copyClass: self selectedClass theNonMetaClass
+			to: aClassName ]
+!
+
+moveClassToPackage: aPackageName
+	self withChangesDo: [
+		self environment 
+			moveClass: self selectedClass theNonMetaClass
+			toPackage: aPackageName ]
+!
+
+moveMethodToClass: aClassName
+	self withChangesDo: [
+		self environment 
+			moveMethod: self selectedMethod 
+			toClass: aClassName ]
+!
+
+moveMethodToProtocol: aProtocol
+	self withChangesDo: [
+		self environment 
+			moveMethod: self selectedMethod 
+			toProtocol: aProtocol ]
+!
+
+openClassNamed: aString
+	| class |
+	
+	self withChangesDo: [
+		class := self environment classNamed: aString.
+		self selectedPackage: class package.
+		self selectedClass: class ]
+!
+
+removeClass
+	self withChangesDo: [
+		self manager 
+			confirm: 'Do you REALLY want to remove class ', self selectedClass name
+			ifTrue: [ self environment removeClass: self selectedClass ] ]
+!
+
+removeMethod
+	self withChangesDo: [
+		self manager 
+			confirm: 'Do you REALLY want to remove method ', self selectedMethod methodClass name,' >> #', self selectedMethod selector
+			ifTrue: [ self environment removeMethod: self selectedMethod ] ]
+!
+
+removeProtocol
+	self withChangesDo: [
+		self manager 
+			confirm: 'Do you REALLY want to remove protocol ', self selectedProtocol
+			ifTrue: [ self environment 
+				removeProtocol: self selectedProtocol 
+				from: self selectedClass ] ]
+!
+
+renameClassTo: aClassName
+	self withChangesDo: [
+		self environment 
+			renameClass: self selectedClass theNonMetaClass
+			to: aClassName ]
+!
+
+renameProtocolTo: aString
+	self withChangesDo: [
+		self environment 
+			renameProtocol: self selectedProtocol
+			to: aString
+			in: self selectedClass ]
+! !
+
+!HLToolModel methodsFor: 'compiling'!
+
+compileClassComment: aString
+	self environment 
+		compileClassComment: aString 
+		for: self selectedClass
+!
+
+compileClassDefinition: aString
+	self environment compileClassDefinition: aString
+!
+
+compileMethod: aString
+	| method |
+	
+	self withCompileErrorHandling: [ 
+		method := self environment 
+			compileMethod: aString 
+			for: self selectedClass
+			protocol: self compilationProtocol.
+
+		self selectedMethod: method ]
+! !
+
+!HLToolModel methodsFor: 'defaults'!
+
+allProtocol
+	^ '-- all --'
+!
+
+unclassifiedProtocol
+	^ 'as yet unclassified'
+! !
+
+!HLToolModel methodsFor: 'error handling'!
+
+handleCompileError: anError
+	self announcer announce: (HLCompileErrorRaised new
+		error: anError;
+		yourself)
+!
+
+handleParseError: anError
+	| split line column messageToInsert |
+	
+	split := anError messageText tokenize: ' : '.
+	messageToInsert := split second.
+
+	"21 = 'Parse error on line ' size + 1"
+	split := split first copyFrom: 21 to: split first size.
+	
+	split := split tokenize: ' column '.
+	line := split first.
+	column := split second.
+	
+	self announcer announce: (HLParseErrorRaised new
+		line: line asNumber;
+		column: column asNumber;
+		message: messageToInsert;
+		error: anError;
+		yourself)
+!
+
+handleUnkownVariableError: anError
+	self announcer announce: (HLUnknownVariableErrorRaised new
+		error: anError;
+		yourself)
+!
+
+withCompileErrorHandling: aBlock
+	[
+		[
+			aBlock 
+				on: ParseError
+				do: [:ex | self handleParseError: ex ]
+		]
+			on: UnknownVariableError
+			do: [ :ex | self handleUnkownVariableError: ex ]
+	]
+		on: CompilerError
+		do: [ :ex | self handleCompileError: ex ]
+! !
+
+!HLToolModel methodsFor: 'private'!
+
+compilationProtocol
+	| currentProtocol |
+	
+	currentProtocol := self selectedProtocol.
+	currentProtocol ifNil: [ currentProtocol := self unclassifiedProtocol ].
+	self selectedMethod ifNotNil: [ currentProtocol := self selectedMethod protocol ].
+
+	^ currentProtocol = self allProtocol
+		ifTrue: [ self unclassifiedProtocol ]
+		ifFalse: [ currentProtocol ]
+!
+
+withHelperLabelled: aString do: aBlock
+	"TODO: doesn't belong here"
+
+	(window jQuery: '#helper') remove.
+
+	[ :html |
+		html div 
+			id: 'helper';
+			with: aString ] appendToJQuery: 'body' asJQuery.
+	
+	[
+		aBlock value.
+		(window jQuery: '#helper') remove
+	] 
+		valueWithTimeout: 10
+! !
+
+!HLToolModel methodsFor: 'testing'!
+
+isToolModel
+	^ true
+!
+
+shouldCompileClassDefinition: aString
+	^ self selectedClass isNil or: [
+		aString first asUppercase = aString first ]
+! !
+
+!HLToolModel class methodsFor: 'actions'!
+
+on: anEnvironment
+
+	^ self new
+    	environment: anEnvironment;
+        yourself
+! !
+
 Widget subclass: #HLTab
 	instanceVariableNames: 'widget label root'
 	package: 'Helios-Core'!
@@ -623,6 +975,124 @@ setupKeyBindings
         	self previousFocus ] ]
 ! !
 
+HLNavigationListWidget subclass: #HLToolListWidget
+	instanceVariableNames: 'model'
+	package: 'Helios-Core'!
+
+!HLToolListWidget methodsFor: 'accessing'!
+
+commandCategory
+	^ self label
+!
+
+label
+	^ 'List'
+!
+
+menuCommands
+	"Answer a collection of commands to be put in the cog menu"
+	
+	^ ((HLBrowserCommand concreteClasses
+		select: [ :each | each isValidFor: self model ])
+			collect: [ :each | each for: self model ])
+			select: [ :each | 
+				each category = self commandCategory and: [ 
+					each isAction and: [ each isActive ] ] ]
+!
+
+model
+	^ model
+!
+
+model: aBrowserModel
+	model := aBrowserModel.
+    
+    self 
+		observeSystem;
+		observeModel
+!
+
+selectedItem: anItem
+	"Selection changed, update the cog menu"
+	
+	super selectedItem: anItem.
+	self updateMenu
+! !
+
+!HLToolListWidget methodsFor: 'actions'!
+
+activateListItem: anItem
+	self model withChangesDo: [ super activateListItem: anItem ]
+!
+
+activateNextListItem
+	self model withChangesDo: [ super activateNextListItem ]
+!
+
+activatePreviousListItem
+	self model withChangesDo: [ super activatePreviousListItem ]
+!
+
+observeModel
+!
+
+observeSystem
+! !
+
+!HLToolListWidget methodsFor: 'rendering'!
+
+renderContentOn: html
+	self renderHeadOn: html.	
+	super renderContentOn: html
+!
+
+renderHeadOn: html
+	html div 
+		class: 'list-label';
+		with: [
+			html with: self label.
+			self renderMenuOn: html ]
+!
+
+renderMenuOn: html
+	| commands |
+	
+	commands := self menuCommands.
+	commands isEmpty ifTrue: [ ^ self ].
+	
+	html div 
+		class: 'btn-group cog';
+		with: [
+			html a
+				class: 'btn dropdown-toggle';
+				at: 'data-toggle' put: 'dropdown';
+				with: [ (html tag: 'i') class: 'icon-cog' ].
+		html ul 
+			class: 'dropdown-menu pull-right';
+			with: [ 
+				self menuCommands do: [ :each | 
+					html li with: [ html a 
+						with: each menuLabel;
+						onClick: [ self execute: each ] ] ] ] ]
+! !
+
+!HLToolListWidget methodsFor: 'updating'!
+
+updateMenu
+	(self wrapper asJQuery find: '.cog') remove.
+	
+	[ :html | self renderMenuOn: html ] 
+		appendToJQuery: (self wrapper asJQuery find: '.list-label')
+! !
+
+!HLToolListWidget class methodsFor: 'instance creation'!
+
+on: aModel
+	^ self new 
+    	model: aModel;
+        yourself
+! !
+
 HLWidget subclass: #HLManager
 	instanceVariableNames: 'tabs activeTab keyBinder environment history'
 	package: 'Helios-Core'!

Some files were not shown because too many files changed in this diff