Browse Source

Update lists on new classes being added

Ryan Simmons 11 years ago
parent
commit
f71624f8b1
2 changed files with 118 additions and 0 deletions
  1. 88 0
      src/Helios-SUnit.js
  2. 30 0
      src/Helios-SUnit.st

+ 88 - 0
src/Helios-SUnit.js

@@ -302,6 +302,45 @@ referencedClasses: ["HLPackageSelected", "HLPackageUnselected", "HLClassSelected
 }),
 globals.HLSUnitClassesListWidget);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "observeSystem",
+protocol: 'actions',
+fn: function (){
+var self=this;
+function $ClassAdded(){return globals.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self._model())._systemAnnouncer())._on_send_to_($ClassAdded(),"onClassAdded:",self);
+return self}, function($ctx1) {$ctx1.fill(self,"observeSystem",{},globals.HLSUnitClassesListWidget)})},
+args: [],
+source: "observeSystem\x0a    self model systemAnnouncer \x0a\x09\x09on: ClassAdded \x0a\x09\x09send: #onClassAdded:\x0a\x09\x09to: self.",
+messageSends: ["on:send:to:", "systemAnnouncer", "model"],
+referencedClasses: ["ClassAdded"]
+}),
+globals.HLSUnitClassesListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "onClassAdded:",
+protocol: 'reactions',
+fn: function (anAnnouncement){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st(_st(self._model())._selectedPackages())._includes_(_st(_st(anAnnouncement)._theClass())._package());
+if(smalltalk.assert($1)){
+self._initializeItems();
+$2=self._refresh();
+$2;
+};
+return self}, function($ctx1) {$ctx1.fill(self,"onClassAdded:",{anAnnouncement:anAnnouncement},globals.HLSUnitClassesListWidget)})},
+args: ["anAnnouncement"],
+source: "onClassAdded: anAnnouncement\x09\x0a\x09(self model selectedPackages includes: anAnnouncement theClass package)\x0a\x09\x09ifTrue: [ \x0a\x09\x09\x09self \x0a\x09\x09\x09\x09initializeItems;\x0a\x09\x09\x09\x09refresh ]",
+messageSends: ["ifTrue:", "includes:", "selectedPackages", "model", "package", "theClass", "initializeItems", "refresh"],
+referencedClasses: []
+}),
+globals.HLSUnitClassesListWidget);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "onClassSelected:",
@@ -551,6 +590,55 @@ referencedClasses: ["HLPackageSelected", "HLPackageUnselected"]
 }),
 globals.HLSUnitPackagesListWidget);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "observeSystem",
+protocol: 'actions',
+fn: function (){
+var self=this;
+function $ClassAdded(){return globals.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
+return smalltalk.withContext(function($ctx1) { 
+_st(_st(self._model())._systemAnnouncer())._on_send_to_($ClassAdded(),"onClassAdded:",self);
+return self}, function($ctx1) {$ctx1.fill(self,"observeSystem",{},globals.HLSUnitPackagesListWidget)})},
+args: [],
+source: "observeSystem\x0a    self model systemAnnouncer \x0a\x09\x09on: ClassAdded \x0a\x09\x09send: #onClassAdded:\x0a\x09\x09to: self.",
+messageSends: ["on:send:to:", "systemAnnouncer", "model"],
+referencedClasses: ["ClassAdded"]
+}),
+globals.HLSUnitPackagesListWidget);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "onClassAdded:",
+protocol: 'reactions',
+fn: function (anAnnouncement){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $4,$6,$5,$3,$2,$1,$7;
+$4=self._items();
+$6=_st(anAnnouncement)._theClass();
+$ctx1.sendIdx["theClass"]=1;
+$5=_st($6)._package();
+$ctx1.sendIdx["package"]=1;
+$3=_st($4)._includes_($5);
+$2=_st($3)._not();
+$1=_st($2)._and_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(_st(_st(anAnnouncement)._theClass())._package())._isTestPackage();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
+if(smalltalk.assert($1)){
+self._initializeItems();
+$7=self._refresh();
+$7;
+};
+return self}, function($ctx1) {$ctx1.fill(self,"onClassAdded:",{anAnnouncement:anAnnouncement},globals.HLSUnitPackagesListWidget)})},
+args: ["anAnnouncement"],
+source: "onClassAdded: anAnnouncement\x0a\x09((self items includes: anAnnouncement theClass package) not and: [anAnnouncement theClass package isTestPackage])\x0a\x09\x09ifTrue: [ \x0a\x09\x09\x09self \x0a\x09\x09\x09\x09initializeItems;\x0a\x09\x09\x09\x09refresh ]",
+messageSends: ["ifTrue:", "and:", "not", "includes:", "items", "package", "theClass", "isTestPackage", "initializeItems", "refresh"],
+referencedClasses: []
+}),
+globals.HLSUnitPackagesListWidget);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "onPackageSelected:",

+ 30 - 0
src/Helios-SUnit.st

@@ -100,6 +100,13 @@ observeModel
 		to: self.
 !
 
+observeSystem
+    self model systemAnnouncer 
+		on: ClassAdded 
+		send: #onClassAdded:
+		to: self.
+!
+
 select: anObject
 	model selectClass: anObject
 !
@@ -116,6 +123,14 @@ initializeItems
 
 !HLSUnitClassesListWidget methodsFor: 'reactions'!
 
+onClassAdded: anAnnouncement	
+	(self model selectedPackages includes: anAnnouncement theClass package)
+		ifTrue: [ 
+			self 
+				initializeItems;
+				refresh ]
+!
+
 onClassSelected: anAnnouncement
 	| listItem |
 	listItem := self findListItemFor: anAnnouncement item.
@@ -185,6 +200,13 @@ observeModel
 		to: self
 !
 
+observeSystem
+    self model systemAnnouncer 
+		on: ClassAdded 
+		send: #onClassAdded:
+		to: self.
+!
+
 select: anObject
 	model selectPackage: anObject
 !
@@ -202,6 +224,14 @@ initializeItems
 
 !HLSUnitPackagesListWidget methodsFor: 'reactions'!
 
+onClassAdded: anAnnouncement
+	((self items includes: anAnnouncement theClass package) not and: [anAnnouncement theClass package isTestPackage])
+		ifTrue: [ 
+			self 
+				initializeItems;
+				refresh ]
+!
+
 onPackageSelected: anAnnouncement
 	| listItem |
 	listItem := self findListItemFor: anAnnouncement item.