--- 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 $'
! !