code cleanup & refactoring
authorClaus Gittinger <cg@exept.de>
Mon, 13 Feb 2006 09:50:52 +0100
changeset 1972 c1b9c7d9e8f4
parent 1971 469f9fd53021
child 1973 58e2df779faa
code cleanup & refactoring
TabListEditor.st
--- a/TabListEditor.st	Mon Feb 13 09:50:37 2006 +0100
+++ b/TabListEditor.st	Mon Feb 13 09:50:52 2006 +0100
@@ -1245,44 +1245,6 @@
 
 !TabListEditor methodsFor:'building'!
 
-buildFromClass:aClass andSelector:aSelector
-    "build from class and selector
-    "
-    |cls spec|
-
-    self testMode value: false.
-    self selection:0.
-
-    "if opened on a tab list"
-    (aClass isNil and: [aSelector isNil and: [listOfTabs size > 0]]) ifTrue:[
-        listOfTabs notEmpty ifTrue:[self selection:1].
-      ^ nil
-    ].
-    listOfTabs removeAll.
-
-    cls := self resolveName:aClass.
-    specSelector := aSelector.
-
-    cls notNil ifTrue:[
-        specSelector notNil ifTrue:[
-
-            (cls respondsTo:specSelector) ifTrue:[
-                spec := cls perform:specSelector.
-
-                spec size ~~ 0 ifTrue:[
-                    spec do:[:aTab|
-                        listOfTabs add:aTab.
-                    ].
-                    self addToHistory:(cls name, ' ', specSelector) -> #loadFromMessage:                        
-                ]
-            ]
-        ]
-    ].
-
-    modified := false.
-    listOfTabs notEmpty ifTrue:[ self selection:1 ].
-!
-
 buildFromResourceSpec:aListSpec
     self buildFromTabList:aListSpec
 !
@@ -1294,9 +1256,45 @@
     listOfTabs removeAll.
 
     aTabList do:[:aTabItem| listOfTabs add: aTabItem ].
-    modified := false.
+    self clearModified.
     listOfTabs notEmpty ifTrue:[ self selection:1 ].
+!
 
+loadFromClass:aClass andSelector:aSelector
+    "build from class and selector"
+
+    |cls spec|
+
+    self assert:(aClass isNil or:[aClass isClass]).
+
+    self testMode value: false.
+    self selection:0.
+
+    "if opened on a tab list"
+    (aClass isNil and: [aSelector isNil and: [listOfTabs size > 0]]) ifFalse:[
+        listOfTabs removeAll.
+
+        cls := aClass isBehavior ifTrue:[ aClass ] ifFalse:[ self resolveName:aClass].
+        specSelector := aSelector.
+
+        cls notNil ifTrue:[
+            specSelector notNil ifTrue:[
+
+                (cls respondsTo: aSelector) ifTrue:[ 
+                    spec := cls perform: aSelector.
+                ].
+                spec size ~~ 0 ifTrue:[
+                    spec do:[:aTab|
+                        listOfTabs add:aTab.
+                    ].
+                    self addHistoryEntryForClass:cls selector:specSelector.
+                ]
+            ]
+        ].
+
+        self clearModified.
+    ].
+    listOfTabs notEmpty ifTrue:[ self selection:1 ].
 ! !
 
 !TabListEditor methodsFor:'change & update'!
@@ -1440,7 +1438,7 @@
         ] ifFalse:[
             listOfTabs add:aTab afterIndex:idx
         ].
-        modified := true.
+        self setModified.
     ].
 !
 
@@ -1514,9 +1512,8 @@
         ].
         self selection:index.
         self updateAllToolInstances.
-        modified := true.
+        self setModified.
     ].       
-
 !
 
 doGenerateAspectMethod
@@ -1588,8 +1585,7 @@
 
     listOfTabs add:tab beforeIndex:idx.
     self setSelection:idx.
-    modified := true.
-
+    self setModified.
 !
 
 doPaste
@@ -1603,8 +1599,8 @@
 !
 
 doSave
-    "generate code for class and instance
-    "
+    "generate code for class and instance"
+
     |cls code spec category mthd list|
 
     (specClass notNil and:[specSelector notNil])
@@ -1663,8 +1659,8 @@
         ]
     ].
 
-    self addToHistory:(cls name, ' ', specSelector) -> #loadFromMessage:.
-    modified  := false.
+    self addHistoryEntryForClass:cls selector:specSelector.
+    self clearModified.
     hasSaved  := true.
 !