*** empty log message ***
authortz
Sun, 15 Feb 1998 20:58:27 +0100
changeset 842 6f17d56a46e4
parent 841 ebeaac717362
child 843 855bc1495dd9
*** empty log message ***
ListSpecEditor.st
--- a/ListSpecEditor.st	Sat Feb 14 22:47:32 1998 +0100
+++ b/ListSpecEditor.st	Sun Feb 15 20:58:27 1998 +0100
@@ -206,20 +206,21 @@
 
 resourceMessage: aString
 
-    self askForModification
-    ifTrue: 
-    [
-        (aString isString and: [aString trimBlanks size > 0])
+    (aString notNil and: [self askForModification]) 
+    ifTrue:
+    [            
+        |msg cls sel|
+        msg := aString asCollectionOfWords.
+        (msg size == 2 and:
+        [(cls := self resolveName:(msg at:1)) notNil])
         ifTrue:
         [
-            specClass := (aString readStream upTo: Character space) asSymbol.
-            specSelector := (aString copy reverse readStream upTo: Character space) reverse asSymbol
+            specClass := cls name.
+            specSelector := (msg at: 2) asSymbol.
+            ^true
         ]
-        ifFalse:
-        [
-            ^nil
-        ]
-    ]
+    ].
+    ^false
 !
 
 updateHistory
@@ -270,15 +271,14 @@
 
 !
 
-loadFromMessage:aMessage
+loadFromMessage:aString
     "load a spec from class and selector
     "
-    |msg cls sel|
-
-    (aMessage notNil and: [self askForModification]) 
+    (aString notNil and: [self askForModification]) 
     ifTrue:
-    [                     
-        msg := aMessage asCollectionOfWords.
+    [            
+        |msg cls sel|
+        msg := aString asCollectionOfWords.
         (msg size == 2 and:
         [(cls := self resolveName:(msg at:1)) notNil and:
         [cls class implements: (sel := (msg at: 2) asSymbol)]])
@@ -286,9 +286,38 @@
         [
             specClass := cls name.
             specSelector := sel.
-            self buildFromClass: cls andSelector: specSelector 
+            self buildFromClass: specClass andSelector: specSelector.
+            ^true
         ]
-    ]
+    ].
+    ^false
+!
+
+openModalOnClass:aClass andSelector:aSelector
+
+    specClass := aClass isClass ifTrue: [aClass name] ifFalse: [aClass].
+    specSelector := (aSelector ? specSelector) asSymbol.
+    super openInterfaceModal.
+
+!
+
+openOnClass:aClass andSelector:aSelector
+
+    specClass := aClass isClass ifTrue: [aClass name] ifFalse: [aClass].
+    specSelector := (aSelector ? specSelector) asSymbol.
+    super openInterface.
+    self buildFromClass:aClass andSelector:aSelector.
+!
+
+postBuildWith:builder
+
+    super postBuildWith:builder.
+
+    self buildFromClass: specClass andSelector: specSelector
+
+
+
+
 ! !
 
 !ListSpecEditor methodsFor:'user actions'!
@@ -305,7 +334,7 @@
     |cls|
 
     (cls := self resolveClassNamed) notNil 
-        ifTrue: [SystemBrowser openInClass:cls] 
+        ifTrue: [SystemBrowser openInClass:cls class selector: specSelector] 
         ifFalse:[self information:'No class defined!!']
 !
 
@@ -371,16 +400,19 @@
     ifTrue:
     [  
         modified := false.
-        self resourceMessage: resourceMessage.
-        self doSave.
-        self buildFromClass: specClass andSelector: specSelector.
-        ^true
-    ].
+        (self resourceMessage: resourceMessage)
+        ifTrue:
+        [
+            self doSave.
+            self buildFromClass: specClass andSelector: specSelector.
+            ^true
+        ]
+    ].    
     ^false
 ! !
 
 !ListSpecEditor class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/Attic/ListSpecEditor.st,v 1.5 1998-02-14 21:47:32 tz Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/Attic/ListSpecEditor.st,v 1.6 1998-02-15 19:58:27 tz Exp $'
 ! !