ClassOrganizer.st
changeset 687 47729447d24a
parent 658 e5971ee29758
child 900 318651783940
--- a/ClassOrganizer.st	Mon Jun 15 16:30:05 1998 +0200
+++ b/ClassOrganizer.st	Sat Jun 20 13:21:55 1998 +0200
@@ -95,17 +95,20 @@
 
     |set|
 
-    set := IdentitySet new.
-    class methodDictionary keysAndValuesDo:[:sel :m |
-        set add:m category
+    categoryArray isNil ifTrue:[
+        set := IdentitySet new.
+        class methodDictionary keysAndValuesDo:[:sel :m |
+            set add:m category
+        ].
+        categoryArray := set asArray
     ].
-    ^ set asArray
+    ^ categoryArray
 
     "
      SmallInteger organization categories 
     "
 
-    "Modified: 19.6.1997 / 17:59:22 / cg"
+    "Modified: / 20.6.1998 / 12:26:49 / cg"
 !
 
 categoryOfElement:aSelectorSymbol
@@ -139,17 +142,20 @@
 
     |set|
 
-    set := IdentitySet new.
-    class methodDictionary keysAndValuesDo:[:sel :m |
-        set add:sel
+    elementArray isNil ifTrue:[
+        set := IdentitySet new.
+        class methodDictionary keysAndValuesDo:[:sel :m |
+            set add:sel
+        ].
+        elementArray := set asArray
     ].
-    ^ set asArray
+    ^ elementArray
 
     "
      SmallInteger organization elements 
     "
 
-    "Modified: / 1.11.1997 / 14:09:55 / cg"
+    "Modified: / 20.6.1998 / 12:27:23 / cg"
 !
 
 listAtCategoryNamed:aCategorySymbol
@@ -169,6 +175,19 @@
     "
 ! !
 
+!ClassOrganizer methodsFor:'change & update'!
+
+update:something with:parameter from:changedObject
+    changedObject == class ifTrue:[
+        something == #methodTrap ifFalse:[
+            categoryArray := elementArray := categories := nil
+        ]
+    ].
+
+    "Created: / 20.6.1998 / 12:28:37 / cg"
+    "Modified: / 20.6.1998 / 12:30:14 / cg"
+! !
+
 !ClassOrganizer methodsFor:'changing'!
 
 changeFromString:organizationString
@@ -281,11 +300,18 @@
 class:aClass
     "set the class"
 
-    class := aClass
+    class := aClass.
+    aClass addDependent:self.
+
+    "
+     ClassOrganizer organization
+    "
+
+    "Modified: / 20.6.1998 / 12:29:16 / cg"
 ! !
 
 !ClassOrganizer class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/ClassOrganizer.st,v 1.13 1998-04-17 14:33:24 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ClassOrganizer.st,v 1.14 1998-06-20 11:21:55 cg Exp $'
 ! !