瀏覽代碼

Helios: References refactorings

Nicolas Petton 11 年之前
父節點
當前提交
00c1ab8071
共有 3 個文件被更改,包括 78 次插入151 次删除
  1. 26 57
      js/Helios-References.deploy.js
  2. 36 72
      js/Helios-References.js
  3. 16 22
      st/Helios-References.st

+ 26 - 57
js/Helios-References.deploy.js

@@ -110,6 +110,18 @@ return $1;
 messageSends: ["ifNil:", "on:", "model", "next:", "sourceCodeWidget"]}),
 smalltalk.HLReferences);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "registerBindingsOn:",
+fn: function (aBindingGroup){
+var self=this;
+function $HLToolCommand(){return smalltalk.HLToolCommand||(typeof HLToolCommand=="undefined"?nil:HLToolCommand)}
+return smalltalk.withContext(function($ctx1) { 
+_st($HLToolCommand())._registerConcreteClassesOn_for_(aBindingGroup,_st(self)._model());
+return self}, function($ctx1) {$ctx1.fill(self,"registerBindingsOn:",{aBindingGroup:aBindingGroup},smalltalk.HLReferences)})},
+messageSends: ["registerConcreteClassesOn:for:", "model"]}),
+smalltalk.HLReferences);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "renderContentOn:",
@@ -217,7 +229,7 @@ messageSends: []}),
 smalltalk.HLReferences.klass);
 
 
-smalltalk.addClass('HLReferencesListWidget', smalltalk.HLBrowserListWidget, ['model'], 'Helios-References');
+smalltalk.addClass('HLReferencesListWidget', smalltalk.HLToolListWidget, [], 'Helios-References');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "activateListItem:",
@@ -226,7 +238,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 _st(_st(self)._model())._withChangesDo_((function(){
 return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLBrowserListWidget.fn.prototype._activateListItem_.apply(_st(self), [anItem]);
+return smalltalk.HLToolListWidget.fn.prototype._activateListItem_.apply(_st(self), [anItem]);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"activateListItem:",{anItem:anItem},smalltalk.HLReferencesListWidget)})},
 messageSends: ["withChangesDo:", "activateListItem:", "model"]}),
@@ -468,7 +480,7 @@ smalltalk.HLSendersListWidget);
 
 
 
-smalltalk.addClass('HLReferencesModel', smalltalk.HLModel, ['methodsCache', 'classesAndMetaclassesCache', 'selectedMethod'], 'Helios-References');
+smalltalk.addClass('HLReferencesModel', smalltalk.HLToolModel, ['methodsCache', 'classesAndMetaclassesCache'], 'Helios-References');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "allMethods",
@@ -572,6 +584,17 @@ return $1;
 messageSends: ["select:", "=", "selector", "allMethods"]}),
 smalltalk.HLReferencesModel);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "isReferencesModel",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return true;
+}, function($ctx1) {$ctx1.fill(self,"isReferencesModel",{},smalltalk.HLReferencesModel)})},
+messageSends: []}),
+smalltalk.HLReferencesModel);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "methodsCache",
@@ -624,60 +647,6 @@ return self}, function($ctx1) {$ctx1.fill(self,"search:",{aString:aString},small
 messageSends: ["updateCaches", "announce:", "searchString:", "new", "yourself", "announcer"]}),
 smalltalk.HLReferencesModel);
 
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedClass",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=_st(self)._selectedMethod();
-if(($receiver = $2) == nil || $receiver == undefined){
-$1=$2;
-} else {
-var method;
-method=$receiver;
-$1=_st(method)._methodClass();
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedClass",{},smalltalk.HLReferencesModel)})},
-messageSends: ["ifNotNil:", "methodClass", "selectedMethod"]}),
-smalltalk.HLReferencesModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedMethod",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@selectedMethod"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedMethod",{},smalltalk.HLReferencesModel)})},
-messageSends: []}),
-smalltalk.HLReferencesModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedMethod:",
-fn: function (aMethod){
-var self=this;
-function $HLMethodSelected(){return smalltalk.HLMethodSelected||(typeof HLMethodSelected=="undefined"?nil:HLMethodSelected)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-self["@selectedMethod"]=aMethod;
-self["@selectedMethod"];
-$1=_st($HLMethodSelected())._new();
-_st($1)._item_(aMethod);
-$2=_st($1)._yourself();
-return _st(_st(self)._announcer())._announce_($2);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"selectedMethod:",{aMethod:aMethod},smalltalk.HLReferencesModel)})},
-messageSends: ["withChangesDo:", "announce:", "item:", "new", "yourself", "announcer"]}),
-smalltalk.HLReferencesModel);
-
 smalltalk.addMethod(
 smalltalk.method({
 selector: "sendersOf:",

+ 36 - 72
js/Helios-References.js

@@ -140,6 +140,23 @@ referencedClasses: ["HLRegexpListWidget"]
 }),
 smalltalk.HLReferences);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "registerBindingsOn:",
+category: 'actions',
+fn: function (aBindingGroup){
+var self=this;
+function $HLToolCommand(){return smalltalk.HLToolCommand||(typeof HLToolCommand=="undefined"?nil:HLToolCommand)}
+return smalltalk.withContext(function($ctx1) { 
+_st($HLToolCommand())._registerConcreteClassesOn_for_(aBindingGroup,_st(self)._model());
+return self}, function($ctx1) {$ctx1.fill(self,"registerBindingsOn:",{aBindingGroup:aBindingGroup},smalltalk.HLReferences)})},
+args: ["aBindingGroup"],
+source: "registerBindingsOn: aBindingGroup\x0a\x09HLToolCommand \x0a\x09\x09registerConcreteClassesOn: aBindingGroup \x0a\x09\x09for: self model",
+messageSends: ["registerConcreteClassesOn:for:", "model"],
+referencedClasses: ["HLToolCommand"]
+}),
+smalltalk.HLReferences);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "renderContentOn:",
@@ -282,7 +299,7 @@ referencedClasses: []
 smalltalk.HLReferences.klass);
 
 
-smalltalk.addClass('HLReferencesListWidget', smalltalk.HLBrowserListWidget, ['model'], 'Helios-References');
+smalltalk.addClass('HLReferencesListWidget', smalltalk.HLToolListWidget, [], 'Helios-References');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "activateListItem:",
@@ -292,7 +309,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 _st(_st(self)._model())._withChangesDo_((function(){
 return smalltalk.withContext(function($ctx2) {
-return smalltalk.HLBrowserListWidget.fn.prototype._activateListItem_.apply(_st(self), [anItem]);
+return smalltalk.HLToolListWidget.fn.prototype._activateListItem_.apply(_st(self), [anItem]);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"activateListItem:",{anItem:anItem},smalltalk.HLReferencesListWidget)})},
 args: ["anItem"],
@@ -618,7 +635,7 @@ smalltalk.HLSendersListWidget);
 
 
 
-smalltalk.addClass('HLReferencesModel', smalltalk.HLModel, ['methodsCache', 'classesAndMetaclassesCache', 'selectedMethod'], 'Helios-References');
+smalltalk.addClass('HLReferencesModel', smalltalk.HLToolModel, ['methodsCache', 'classesAndMetaclassesCache'], 'Helios-References');
 smalltalk.addMethod(
 smalltalk.method({
 selector: "allMethods",
@@ -752,6 +769,22 @@ referencedClasses: []
 }),
 smalltalk.HLReferencesModel);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "isReferencesModel",
+category: 'testing',
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return true;
+}, function($ctx1) {$ctx1.fill(self,"isReferencesModel",{},smalltalk.HLReferencesModel)})},
+args: [],
+source: "isReferencesModel\x0a\x09^ true",
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.HLReferencesModel);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "methodsCache",
@@ -819,75 +852,6 @@ referencedClasses: ["HLSearchReferences"]
 }),
 smalltalk.HLReferencesModel);
 
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedClass",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$1;
-$2=_st(self)._selectedMethod();
-if(($receiver = $2) == nil || $receiver == undefined){
-$1=$2;
-} else {
-var method;
-method=$receiver;
-$1=_st(method)._methodClass();
-};
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedClass",{},smalltalk.HLReferencesModel)})},
-args: [],
-source: "selectedClass\x0a\x09^ self selectedMethod ifNotNil: [ :method |\x0a\x09\x09method methodClass ]",
-messageSends: ["ifNotNil:", "methodClass", "selectedMethod"],
-referencedClasses: []
-}),
-smalltalk.HLReferencesModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedMethod",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=self["@selectedMethod"];
-return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectedMethod",{},smalltalk.HLReferencesModel)})},
-args: [],
-source: "selectedMethod\x0a\x09^ selectedMethod",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.HLReferencesModel);
-
-smalltalk.addMethod(
-smalltalk.method({
-selector: "selectedMethod:",
-category: 'accessing',
-fn: function (aMethod){
-var self=this;
-function $HLMethodSelected(){return smalltalk.HLMethodSelected||(typeof HLMethodSelected=="undefined"?nil:HLMethodSelected)}
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
-_st(self)._withChangesDo_((function(){
-return smalltalk.withContext(function($ctx2) {
-self["@selectedMethod"]=aMethod;
-self["@selectedMethod"];
-$1=_st($HLMethodSelected())._new();
-_st($1)._item_(aMethod);
-$2=_st($1)._yourself();
-return _st(_st(self)._announcer())._announce_($2);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"selectedMethod:",{aMethod:aMethod},smalltalk.HLReferencesModel)})},
-args: ["aMethod"],
-source: "selectedMethod: aMethod\x0a\x09self withChangesDo: [ \x0a\x09\x09selectedMethod := aMethod.\x0a\x09\x09\x0a\x09\x09self announcer announce: (HLMethodSelected new\x0a\x09\x09\x09item: aMethod;\x0a\x09\x09\x09yourself) ]\x0a\x09",
-messageSends: ["withChangesDo:", "announce:", "item:", "new", "yourself", "announcer"],
-referencedClasses: ["HLMethodSelected"]
-}),
-smalltalk.HLReferencesModel);
-
 smalltalk.addMethod(
 smalltalk.method({
 selector: "sendersOf:",

+ 16 - 22
st/Helios-References.st

@@ -53,6 +53,12 @@ open
 	HLManager current addTab: (HLTab on: self labelled: self class tabLabel)
 !
 
+registerBindingsOn: aBindingGroup
+	HLToolCommand 
+		registerConcreteClassesOn: aBindingGroup 
+		for: self model
+!
+
 search: aString
 	self model search: aString
 ! !
@@ -89,8 +95,8 @@ canBeOpenAsTab
 	^ false
 ! !
 
-HLBrowserListWidget subclass: #HLReferencesListWidget
-	instanceVariableNames: 'model'
+HLToolListWidget subclass: #HLReferencesListWidget
+	instanceVariableNames: ''
 	package: 'Helios-References'!
 
 !HLReferencesListWidget methodsFor: 'accessing'!
@@ -222,8 +228,8 @@ onSearchReferences: aString
 	self refresh
 ! !
 
-HLModel subclass: #HLReferencesModel
-	instanceVariableNames: 'methodsCache classesAndMetaclassesCache selectedMethod'
+HLToolModel subclass: #HLReferencesModel
+	instanceVariableNames: 'methodsCache classesAndMetaclassesCache'
 	package: 'Helios-References'!
 
 !HLReferencesModel methodsFor: 'accessing'!
@@ -267,24 +273,6 @@ regexpReferencesOf: aString
 		each source match: aString ]
 !
 
-selectedClass
-	^ self selectedMethod ifNotNil: [ :method |
-		method methodClass ]
-!
-
-selectedMethod
-	^ selectedMethod
-!
-
-selectedMethod: aMethod
-	self withChangesDo: [ 
-		selectedMethod := aMethod.
-		
-		self announcer announce: (HLMethodSelected new
-			item: aMethod;
-			yourself) ]
-!
-
 sendersOf: aString
 	^ self allMethods select: [ :each |
 		each messageSends includes: aString ]
@@ -337,3 +325,9 @@ updateMethodsCache
 			acc, each methods ]
 ! !
 
+!HLReferencesModel methodsFor: 'testing'!
+
+isReferencesModel
+	^ true
+! !
+