Tools_ClassList.st
changeset 9204 0690de3bd379
parent 9075 08ec2bc8bf92
child 9371 d0828a270e10
--- a/Tools_ClassList.st	Thu Nov 05 22:56:29 2009 +0100
+++ b/Tools_ClassList.st	Thu Nov 05 22:56:43 2009 +0100
@@ -427,13 +427,13 @@
 !
 
 delayedUpdate:something with:aParameter from:changedObject
-    |cls classes chgClass wg|
+    |cls classes chgClass wg savedList|
 
     classes := self classList value ? #().
 
     self inSlaveModeOrInvisible ifTrue:[
-	self invalidateList.
-	^ self.
+        self invalidateList.
+        ^ self.
     ].
 
 "/    (self slaveMode value == true) ifTrue:[^ self].
@@ -445,150 +445,153 @@
 "/    ].
 
     changedObject == slaveMode ifTrue:[
-	listValid ~~ true ifTrue:[
-	    self enqueueDelayedUpdateList.
-	].
-	self enqueueDelayedClassSelectionChanged.
-	^  self
+        listValid ~~ true ifTrue:[
+            self enqueueDelayedUpdateList.
+        ].
+        self enqueueDelayedClassSelectionChanged.
+        ^  self
     ].
 
     changedObject == Smalltalk ifTrue:[
-	something == #methodInClass ifTrue:[
-	    ^ self "no interest" 
-	].    
-	something == #methodInClassRemoved ifTrue:[
-	    "/ must update the list, if the methods package is different from
-	    "/ the classes package (to undo any has-exension highlighting)
-	    cls := aParameter first.
-	    self updateListsFor:cls.
-	    ^ self 
-	].    
-	something == #organization ifTrue:[^ self "no interest" ].    
+        something == #methodInClass ifTrue:[
+            ^ self "no interest" 
+        ].    
+        something == #methodInClassRemoved ifTrue:[
+            "/ must update the list, if the methods package is different from
+            "/ the classes package (to undo any has-exension highlighting)
+            cls := aParameter first.
+            self updateListsFor:cls.
+            ^ self 
+        ].    
+        something == #organization ifTrue:[^ self "no interest" ].    
 
-	(something == #classDefinition 
-	or:[something == #classVariables
-	or:[something == #newClass]]) ifTrue:[
-	    "/ update that class in my classList and the selection
-	    listValid ifTrue:[
-		self classDefinitionChanged:aParameter.
-	    ].
-	    ^ self.
-	].
-	(something == #lastTestRunResult) ifTrue:[
-	    "/ update that class in my classList and the selection
-	    listValid ifTrue:[
-		self updateListsFor:aParameter.
-		"/ self classDefinitionChanged:aParameter.
-	    ].
-	    ^ self.
-	].
-	something == #classRemove ifTrue:[
-	    "/ update my classList and the selection
-	    self classRemoved:aParameter.
-	    ^ self.
-	].
-	something == #classRename ifTrue:[
-	    "/ update that class in my classList and the selection
-	    listValid ifTrue:[
-		aParameter isArray ifTrue:[
-		    cls := aParameter at:1.
-		    self classDefinitionChanged:cls.
-		]
-	    ].
-	    ^ self.
-	].
+        (something == #classDefinition 
+        or:[something == #classVariables
+        or:[something == #newClass]]) ifTrue:[
+            "/ update that class in my classList and the selection
+            listValid ifTrue:[
+                self classDefinitionChanged:aParameter.
+            ].
+            ^ self.
+        ].
+        (something == #lastTestRunResult) ifTrue:[
+            "/ update that class in my classList and the selection
+            listValid ifTrue:[
+                self updateListsFor:aParameter.
+                "/ self classDefinitionChanged:aParameter.
+            ].
+            ^ self.
+        ].
+        something == #classRemove ifTrue:[
+            "/ update my classList and the selection
+            self classRemoved:aParameter.
+            ^ self.
+        ].
+        something == #classRename ifTrue:[
+            "/ update that class in my classList and the selection
+            listValid ifTrue:[
+                aParameter isArray ifTrue:[
+                    cls := aParameter at:1.
+                    self classDefinitionChanged:cls.
+                ]
+            ].
+            ^ self.
+        ].
 
-	something == #projectOrganization ifTrue:[
-	    aParameter isNil ifTrue:[
-		self invalidateList.
-		organizerMode value == #project ifTrue:[
-		    self enqueueDelayedUpdateOutputGenerator.
-		].
-		^ self
-	    ].
+        something == #projectOrganization ifTrue:[
+            aParameter isNil ifTrue:[
+                self invalidateList.
+                organizerMode value == #project ifTrue:[
+                    self enqueueDelayedUpdateOutputGenerator.
+                ].
+                ^ self
+            ].
 
-	    cls := aParameter at:1.
-	    cls notNil ifTrue:[  "/ should not happen (but does occasionally)
-		((classes includes:cls theMetaclass)
-		or:[(classes includes:cls theNonMetaclass)]) ifTrue:[
-		    self invalidateList.
-		    organizerMode value == #project ifTrue:[
-			self enqueueDelayedUpdateOutputGenerator.
-		    ]
-		].
-	    ].
-	    ^ self
-	].
-	^ self.
+            cls := aParameter at:1.
+            cls notNil ifTrue:[  "/ should not happen (but does occasionally)
+                ((classes includes:cls theMetaclass)
+                or:[(classes includes:cls theNonMetaclass)]) ifTrue:[
+                    self invalidateList.
+                    organizerMode value == #project ifTrue:[
+                        self enqueueDelayedUpdateOutputGenerator.
+                    ]
+                ].
+            ].
+            ^ self
+        ].
+        ^ self.
     ].
 
     (something == #lastTestRunResult) ifTrue:[
-	^ self
+        ^ self
     ].
 
     changedObject == ChangeSet ifTrue:[
-	wg := self windowGroup.
-	wg isNil ifTrue:[
-	    changedObject removeDependent:self.
-	] ifFalse:[
-	    "/ react on changes of the changeSet to recolorize items
-	    something == #addChange: ifTrue:[
-		chgClass := aParameter changeClass.
-		chgClass notNil ifTrue:[
-		    ((classes includes:chgClass theNonMetaclass) 
-		    or:[classes includes:chgClass theMetaclass]) ifTrue:[
-			"/ remove all other addChange notifications ...
-			wg sensor 
-			    flushEventsFor:self 
-			    where:[:ev | ev isMessageSendEvent 
-					 and:[ev selector == #delayedUpdate:with:from:
-					 and:[(ev arguments at:3) == ChangeSet]]].
-			self reconstructNameList.
-		    ]
-		]
-	    ] ifFalse:[
-		"/ remove all other ChangeSet notifications ...
-		wg sensor 
-		    flushEventsFor:self 
-		    where:[:ev | ev isMessageSendEvent 
-				 and:[ev selector == #delayedUpdate:with:from:
-				 and:[(ev arguments at:3) == ChangeSet]]].
-		self reconstructNameList.
-	    ].
-	].
-	^ self 
+        wg := self windowGroup.
+        wg isNil ifTrue:[
+            changedObject removeDependent:self.
+        ] ifFalse:[
+            "/ react on changes of the changeSet to recolorize items
+            something == #addChange: ifTrue:[
+                chgClass := aParameter changeClass.
+                chgClass notNil ifTrue:[
+                    ((classes includes:chgClass theNonMetaclass) 
+                    or:[classes includes:chgClass theMetaclass]) ifTrue:[
+                        "/ remove all other addChange notifications ...
+                        wg sensor 
+                            flushEventsFor:self 
+                            where:[:ev | ev isMessageSendEvent 
+                                         and:[ev selector == #delayedUpdate:with:from:
+                                         and:[(ev arguments at:3) == ChangeSet]]].
+                        self reconstructNameList.
+                    ]
+                ]
+            ] ifFalse:[
+                "/ remove all other ChangeSet notifications ...
+                wg sensor 
+                    flushEventsFor:self 
+                    where:[:ev | ev isMessageSendEvent 
+                                 and:[ev selector == #delayedUpdate:with:from:
+                                 and:[(ev arguments at:3) == ChangeSet]]].
+                self reconstructNameList.
+            ].
+        ].
+        ^ self 
     ].
 
     changedObject == self selectedClasses ifTrue:[
-	slaveMode value ~~ true ifTrue:[
-	    listValid == true ifFalse:[
-		self updateList
-	    ].
-	    self selectedClassesChanged.
-	    self updateOutputGenerator.
-	] ifFalse:[
-	    listValid := false.
-	].
-	^ self 
+        slaveMode value ~~ true ifTrue:[
+            savedList := self selectedClasses value.
+            lastSelectedClasses := nil.
+            listValid == true ifFalse:[
+                self updateList
+            ].
+            self selectedClasses setValue:savedList.
+            self selectedClassesChanged.
+            self updateOutputGenerator.
+        ] ifFalse:[
+            listValid := false.
+        ].
+        ^ self 
     ].
 
     (changedObject == meta 
     or:[changedObject == selectedClassNameIndices]) ifTrue:[
-	self selectionChanged.
-	^ self
+        self selectionChanged.
+        ^ self
     ].
     changedObject == showClassPackages ifTrue:[
-	self classNameList value:nil.
-	self invalidateList.
-	^ self 
+        self classNameList value:nil.
+        self invalidateList.
+        ^ self 
     ].
 
     (changedObject == hideUnloadedClasses
     or:[changedObject == hidePrivateClasses
     or:[changedObject == nameSpaceFilter
     or:[changedObject == packageFilter]]]) ifTrue:[
-	self invalidateList.
-	^ self 
+        self invalidateList.
+        ^ self 
     ].
 
     super delayedUpdate:something with:aParameter from:changedObject
@@ -1655,9 +1658,9 @@
 !ClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.41 2009-10-25 01:37:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.42 2009-11-05 21:56:43 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.41 2009-10-25 01:37:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.42 2009-11-05 21:56:43 cg Exp $'
 ! !