fixed history handling
authorClaus Gittinger <cg@exept.de>
Wed, 09 Feb 2000 19:37:17 +0100
changeset 2593 03c5f9aee4cc
parent 2592 bd0bf3e634f2
child 2594 8ecaf24cd47f
fixed history handling
BrowserView.st
--- a/BrowserView.st	Tue Feb 08 18:46:07 2000 +0100
+++ b/BrowserView.st	Wed Feb 09 19:37:17 2000 +0100
@@ -2892,25 +2892,41 @@
 !
 
 loadFromMessage: aMessage
-    "switch to the class and selector by evaluating aMessage"
-
-    |selector nameSpace|
-
-    self switchToClassNamed: (aMessage upTo: $ ).
+    "switch to the class and selector specified by aMessage"
+
+    |selector nameSpace words meta savedHistory|
+
+    words := aMessage asCollectionOfWords.
+
+    savedHistory := ClassHistory copy.
+
+    self switchToClassNamed:(words first).
+    self classSelectionChanged.
 
     actualClass nameSpace ~~ Smalltalk 
-	ifTrue:  [nameSpace := actualClass nameSpace name]
-	ifFalse: [nameSpace := '* all *'].
-
-    namespaceList model value:nameSpace.    
-
-    self instanceProtocol:   (aMessage includesString: ' class ') not.
-
-    (actualClass implements: (selector := (aMessage copy reverse upTo: $ ) reverse asSymbol))
-    ifTrue:
-    [
-	self switchToMethodNamed: selector
-    ]
+        ifTrue:  [nameSpace := actualClass nameSpace name]
+        ifFalse: [nameSpace := '* all *'].
+
+    namespaceList model value ~= nameSpace ifTrue:[
+        namespaceList model value:nameSpace.    
+    ].
+
+    meta := (aMessage includesString: ' class ').
+    meta not ~~ showInstance ifTrue:[
+        self instanceProtocol:meta not.
+        self classSelectionChanged.
+    ].
+
+    (words size > 1
+    and:[(words at:2) ~= 'class']) ifTrue:[
+        selector := words last asSymbolIfInterned.
+        (selector notNil and:[actualClass implements:selector])
+        ifTrue:[
+            self switchToMethodNamed: selector.
+        ]
+    ].
+
+    ClassHistory := savedHistory.
 ! !
 
 !BrowserView methodsFor:'class list menu'!
@@ -8459,9 +8475,9 @@
             ]
         ]
     ].
-    actualClass notNil ifTrue:[
-        self addToClassHistory: actualClass name asString
-    ]
+"/    actualClass notNil ifTrue:[
+"/        self addToClassHistory: actualClass name asString
+"/    ]
 
 
     "Modified: 26.5.1996 / 15:07:07 / cg"
@@ -13822,6 +13838,6 @@
 !BrowserView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.595 2000-02-08 17:46:07 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.596 2000-02-09 18:37:17 cg Exp $'
 ! !
 BrowserView initialize!