ContextInspectorView.st
changeset 296 b480a51cfb5f
parent 200 01ce3d3636d5
child 297 3d34ce6e2b22
--- a/ContextInspectorView.st	Thu Dec 14 21:21:30 1995 +0100
+++ b/ContextInspectorView.st	Thu Dec 14 21:22:39 1995 +0100
@@ -11,10 +11,10 @@
 "
 
 InspectorView subclass:#ContextInspectorView
-	 instanceVariableNames:'inspectedContext values names showingTemporaries'
-	 classVariableNames:''
-	 poolDictionaries:''
-	 category:'Interface-Inspector'
+	instanceVariableNames:'inspectedContext names showingTemporaries argsOnly'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Interface-Inspector'
 !
 
 !ContextInspectorView class methodsFor:'documentation'!
@@ -47,16 +47,21 @@
     |homeContext method homeNames rec sel implementorClass 
      argNames varNames tmpNames m argsOnly|
 
-    hasMore := false.
+    (con == inspectedContext) ifTrue:[
+        listView selection notNil ifTrue:[
+            self showSelection:(listView selection).
+        ].
+        ^ self
+    ].
+
+    hasMore := argsOnly := false.
     inspectedObject := nil.
     inspectedContext := con.
-    argsOnly := false.
 
     con isNil ifTrue:[
-	names := nil.
-	values := nil.
-	listView list:nil. 
-	^ self
+        names := nil.
+        listView list:nil. 
+        ^ self
     ].
 
 "/    realized ifFalse:[^ self].
@@ -64,61 +69,61 @@
     homeContext := con methodHome.
 
     homeContext isNil ifTrue:[
-	"its a cheap blocks context"
-	rec := con receiver.
-	sel := con selector.
-	homeNames := OrderedCollection new.
+        "its a cheap blocks context"
+        rec := con receiver.
+        sel := con selector.
+        homeNames := OrderedCollection new.
     ] ifFalse:[
-	rec := homeContext receiver.
-	sel := homeContext selector.
+        rec := homeContext receiver.
+        sel := homeContext selector.
 
-	implementorClass := homeContext methodClass.
-	implementorClass notNil ifTrue:[
-	    method := implementorClass compiledMethodAt:sel.
-	    method notNil ifTrue:[
-		method isWrapped ifTrue:[
-		    "
-		     in a wrapped context, locals are something different
-		    "
+        implementorClass := homeContext methodClass.
+        implementorClass notNil ifTrue:[
+            method := implementorClass compiledMethodAt:sel.
+            method notNil ifTrue:[
+                method isWrapped ifTrue:[
+                    "
+                     in a wrapped context, locals are something different
+                    "
 "/                    argsOnly := true.
-		    m := method originalMethod.
-		    m notNil ifTrue:[
-			method := m.
-		    ] ifFalse:[
-			argsOnly := true.
-		    ].
-		].
-	    ].
-	    method notNil ifTrue:[
-		method source notNil ifTrue:[
-		    argsOnly ifTrue:[
-			homeNames := method methodArgNames
-		    ] ifFalse:[
-			homeNames := method methodArgAndVarNames.
-		    ]
-		]
-	    ].
-	].
+                    m := method originalMethod.
+                    m notNil ifTrue:[
+                        method := m.
+                    ] ifFalse:[
+                        argsOnly := true.
+                    ].
+                ].
+            ].
+            method notNil ifTrue:[
+                method source notNil ifTrue:[
+                    argsOnly ifTrue:[
+                        homeNames := method methodArgNames
+                    ] ifFalse:[
+                        homeNames := method methodArgAndVarNames.
+                    ]
+                ]
+            ].
+        ].
 
-	"
-	 create dummy names for method vars (if there is no source available)
-	"
-	homeNames isNil ifTrue:[
-	    homeNames := OrderedCollection new.
-	    1 to:homeContext numArgs do:[:index |
-		homeNames add:('mArg' , index printString)
-	    ].
-	    argsOnly ifFalse:[
-		1 to:homeContext nvars do:[:index |
-		    homeNames add:('mVar' , index printString)
-		].
-		showingTemporaries ifTrue:[
-		    1 to:homeContext ntemp do:[:index |
-			homeNames add:('mTmp' , index printString)
-		    ]
-		]
-	    ]
-	].
+        "
+         create dummy names for method vars (if there is no source available)
+        "
+        homeNames isNil ifTrue:[
+            homeNames := OrderedCollection new.
+            1 to:homeContext numArgs do:[:index |
+                homeNames add:('mArg' , index printString)
+            ].
+            argsOnly ifFalse:[
+                1 to:homeContext nvars do:[:index |
+                    homeNames add:('mVar' , index printString)
+                ].
+                showingTemporaries ifTrue:[
+                    1 to:homeContext ntemp do:[:index |
+                        homeNames add:('mTmp' , index printString)
+                    ]
+                ]
+            ]
+        ].
     ].
 
     "
@@ -126,55 +131,40 @@
      method-home and put real names in here
     "
     con isBlockContext ifTrue:[
-	names := OrderedCollection new.
-
-	argNames := (1 to:(con numArgs)) collect:[:i | 'arg' , i printString].
-	names addAll:argNames.
-	varNames := (1 to:(con nvars)) collect:[:i | 'var' , i printString].
-	names addAll:varNames.
+        names := OrderedCollection new.
 
-	showingTemporaries ifTrue:[
-	    tmpNames := (1 to:(con ntemp)) collect:[:i | 'tmp' , i printString].
-	    names addAll:tmpNames.
-	].
-
-	names addAll:homeNames.
+        argNames := (1 to:(con numArgs)) collect:[:i | 'arg' , i printString].
+        names addAll:argNames.
+        varNames := (1 to:(con nvars)) collect:[:i | 'var' , i printString].
+        names addAll:varNames.
 
-	values := Array withAll:(con argsAndVars).
-	(showingTemporaries and:[con ntemp ~~ 0]) ifTrue:[
-	    values := values , con temporaries
-	].
-	homeContext notNil ifTrue:[
-	    values := values , homeContext args.
-	    argsOnly ifFalse:[
-		values := values , homeContext vars.
-		(showingTemporaries and:[homeContext ntemp ~~ 0])ifTrue:[
-		    values := values , homeContext temporaries
-		]
-	    ].
-	].
+        showingTemporaries ifTrue:[
+            tmpNames := (1 to:(con ntemp)) collect:[:i | 'tmp' , i printString].
+            names addAll:tmpNames.
+        ].
 
+        names addAll:homeNames.
     ] ifFalse:[
-	names := homeNames.
-	argsOnly ifTrue:[
-	    values := homeContext args
-	] ifFalse:[
-	    values := homeContext argsAndVars
-	]
+        names := homeNames.
     ].
 
     listView list:names. 
 
     workspace contents:nil.
     self setDoitActionIn:workspace for:con.
+
+    "Modified: 14.12.1995 / 19:34:35 / cg"
 !
 
 release
     "release inspected object"
 
+'released' printNL.
     inspectedContext := nil.
-    names := values := nil.
+    names := nil.
     super release
+
+    "Modified: 14.12.1995 / 19:34:39 / cg"
 ! !
 
 !ContextInspectorView methodsFor:'initialization'!
@@ -227,6 +217,12 @@
     ^ names
 !
 
+hasSelfEntry
+    ^ false
+
+    "Created: 14.12.1995 / 19:29:47 / cg"
+!
+
 setDoitActionIn:aWorkspace for:aContext
     aWorkspace doItAction:[:theCode |
 	Compiler evaluate:theCode
@@ -241,9 +237,40 @@
 valueAtLine:lineNr
     "helper - return the value of the selected entry"
 
+    |homeContext con values|
+
+    inspectedContext isNil ifTrue:[^ nil].
+
+    argsOnly := false.
+    con := inspectedContext.
+    homeContext := con methodHome.
+
+    con isBlockContext ifTrue:[
+        values := Array withAll:(con argsAndVars).
+        (showingTemporaries and:[con ntemp ~~ 0]) ifTrue:[
+            values := values , con temporaries
+        ].
+        homeContext notNil ifTrue:[
+            values := values , homeContext args.
+            argsOnly ifFalse:[
+                values := values , homeContext vars.
+                (showingTemporaries and:[homeContext ntemp ~~ 0])ifTrue:[
+                    values := values , homeContext temporaries
+                ]
+            ].
+        ].
+    ] ifFalse:[
+        argsOnly ifTrue:[
+            values := homeContext args
+        ] ifFalse:[
+            values := homeContext argsAndVars
+        ]
+    ].
+
+values printNL.
     ^ values at:lineNr.
 
-
+    "Modified: 14.12.1995 / 19:28:10 / cg"
 ! !
 
 !ContextInspectorView methodsFor:'user actions'!
@@ -262,24 +289,25 @@
 !
 
 hideTemporaries
+    "do not show contexts temporaries"
+
     showingTemporaries := false.
     self inspect:inspectedContext
-!
 
-showSelection:lineNr
-    "user clicked on an entry - show value in workspace"
-
-    self showValue:(values at:lineNr).
-    selectedLine := lineNr
+    "Modified: 14.12.1995 / 19:24:44 / cg"
 !
 
 showTemporaries
+    "show contexts temporaries"
+
     showingTemporaries := true.
     self inspect:inspectedContext
+
+    "Modified: 14.12.1995 / 19:24:49 / cg"
 ! !
 
 !ContextInspectorView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ContextInspectorView.st,v 1.18 1995-11-23 17:44:21 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ContextInspectorView.st,v 1.19 1995-12-14 20:22:39 cg Exp $'
 ! !