|  | @@ -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({
 |