--- a/DictInspV.st Wed Jun 23 18:04:06 1999 +0200
+++ b/DictInspV.st Wed Jun 23 18:39:52 1999 +0200
@@ -47,7 +47,7 @@
fieldMenu
<resource: #programMenu >
- |items m|
+ |items m idx|
inspectedObject == Smalltalk ifTrue:[
items := #(
@@ -98,6 +98,10 @@
m disableAll:#(doInspect doInspectKey doBasicInspect doNewInspect
doRemoveKey doStartMonitor doStopMonitor doCopyKey
)
+ ] ifFalse:[
+ (self keyIndexForLine:selectedLine) isNil ifTrue:[
+ m disableAll:#(doInspectKey doRemoveKey doCopyKey)
+ ]
].
^ m.
@@ -113,69 +117,70 @@
keyName := Dialog request:'key to add:' initialAnswer:''.
keyName notEmpty ifTrue:[
- key := keyName asSymbol.
- (inspectedObject includesKey:key) ifFalse:[
- inspectedObject at:key put:nil.
- selectedLine := nil.
- inspectedObject changed.
- self inspect:inspectedObject. "force list update"
- ]
+ key := keyName asSymbol.
+ (inspectedObject includesKey:key) ifFalse:[
+ inspectedObject at:key put:nil.
+ selectedLine := nil.
+ inspectedObject changed.
+ self reinspect. "force list update"
+ ]
]
!
doInspectKey
"inspect selected items key"
- selectedLine notNil ifTrue:[
- selectedLine ~~ 1 ifTrue:[
- (keys at:selectedLine - 1) inspect
- ].
+ |idx|
+
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ (keys at:idx) inspect
]
!
doReferences
- "show users of selected key (i.e. global)"
+ "show users of selected key (i.e. global).
+ Only useful when inspecting smalltalk"
- |k|
+ |idx|
- selectedLine notNil ifTrue:[
- selectedLine == 1 ifFalse:[
- k := (keys at:selectedLine - 1).
- SystemBrowser browseReferendsOf:k asSymbol
- ].
- ]
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ SystemBrowser browseReferendsOf:(keys at:idx) asSymbol.
+ ^ self
+ ].
!
doRemoveKey
"remove selected item from keys"
- |key|
+ |idx key|
- selectedLine == 1 ifFalse:[
- key := (keys at:selectedLine - 1).
- (inspectedObject includesKey:key) ifTrue:[
- listView cursor:(Cursor wait).
- inspectedObject removeKey:key.
- keys := nil.
- selectedLine := nil.
- inspectedObject changed.
- listView cursor:(Cursor hand).
- self inspect:inspectedObject. "force list update"
- ].
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ (inspectedObject includesKey:key) ifTrue:[
+ listView cursor:(Cursor wait).
+ inspectedObject removeKey:key.
+ keys := nil.
+ selectedLine := nil.
+ inspectedObject changed.
+ listView cursor:(Cursor hand).
+ self reinspect. "force list update"
+ ].
]
!
showKeyReferences
- "show users of selected key (i.e. global)"
+ "show users of selected key (i.e. global).
+ Only useful when inspecting smalltalk"
- |k|
+ |idx key|
- selectedLine notNil ifTrue:[
- selectedLine == 1 ifFalse:[
- k := (keys at:selectedLine - 1).
- self withWaitCursorDo:[
- SystemBrowser browseReferendsOf:k asSymbol
- ]
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ self withWaitCursorDo:[
+ SystemBrowser browseReferendsOf:(keys at:idx) asSymbol
].
]
@@ -183,6 +188,10 @@
!DictionaryInspectorView methodsFor:'private'!
+baseInspectedObjectClass
+ ^ Dictionary
+!
+
defaultLabel
^ 'keys'
@@ -234,26 +243,25 @@
doAccept:theText
"accept value for selected item"
- |value idx|
+ |value idx key|
value := Compiler evaluate:theText receiver:inspectedObject notifying:workspace.
- idx := selectedLine.
- (idx notNil and:[idx > 1]) ifTrue:[
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ inspectedObject at:key put:value.
+ ] ifFalse:[
+ idx := self instVarIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject instVarAt:idx put:value.
+ ] ifFalse:[
+ ^ self "/ self selected
+ ]
+ ].
- inspectedObject ~~ Smalltalk ifTrue:[
- idx := idx + Dictionary instSize.
- idx <= inspectedObject class instSize ifTrue:[
- inspectedObject at:idx put:value.
- inspectedObject changed.
- ^ self
- ].
- idx := idx - inspectedObject class instSize.
- ].
-
- inspectedObject at:(keys at:idx) put:value.
- inspectedObject changed
- ]
+ inspectedObject changed.
+ self reinspect.
!
valueAtLine:lineNr
@@ -261,30 +269,28 @@
|key idx|
- idx := lineNr.
+ idx := self keyIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ ^ inspectedObject at:key ifAbsent:nil.
+ ].
+ idx := self instVarIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject instVarAt:idx.
+ ].
+
hideReceiver ifFalse:[
(lineNr == 1 or:[lineNr isNil]) ifTrue:[
^ inspectedObject
].
- idx := idx - 1.
].
- inspectedObject ~~ Smalltalk ifTrue:[
- idx := idx + Dictionary instSize.
- idx <= inspectedObject class instSize ifTrue:[
- ^ inspectedObject instVarAt:idx
- ].
- idx := idx - inspectedObject class instSize.
- ].
+ ^ nil
- key := keys at:idx.
- ^ inspectedObject at:key ifAbsent:nil.
-
- "Modified: 30.7.1996 / 17:44:50 / cg"
! !
!DictionaryInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/DictInspV.st,v 1.35 1999-06-23 16:02:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/DictInspV.st,v 1.36 1999-06-23 16:39:52 cg Exp $'
! !
--- a/DictionaryInspectorView.st Wed Jun 23 18:04:06 1999 +0200
+++ b/DictionaryInspectorView.st Wed Jun 23 18:39:52 1999 +0200
@@ -47,7 +47,7 @@
fieldMenu
<resource: #programMenu >
- |items m|
+ |items m idx|
inspectedObject == Smalltalk ifTrue:[
items := #(
@@ -98,6 +98,10 @@
m disableAll:#(doInspect doInspectKey doBasicInspect doNewInspect
doRemoveKey doStartMonitor doStopMonitor doCopyKey
)
+ ] ifFalse:[
+ (self keyIndexForLine:selectedLine) isNil ifTrue:[
+ m disableAll:#(doInspectKey doRemoveKey doCopyKey)
+ ]
].
^ m.
@@ -113,69 +117,70 @@
keyName := Dialog request:'key to add:' initialAnswer:''.
keyName notEmpty ifTrue:[
- key := keyName asSymbol.
- (inspectedObject includesKey:key) ifFalse:[
- inspectedObject at:key put:nil.
- selectedLine := nil.
- inspectedObject changed.
- self inspect:inspectedObject. "force list update"
- ]
+ key := keyName asSymbol.
+ (inspectedObject includesKey:key) ifFalse:[
+ inspectedObject at:key put:nil.
+ selectedLine := nil.
+ inspectedObject changed.
+ self reinspect. "force list update"
+ ]
]
!
doInspectKey
"inspect selected items key"
- selectedLine notNil ifTrue:[
- selectedLine ~~ 1 ifTrue:[
- (keys at:selectedLine - 1) inspect
- ].
+ |idx|
+
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ (keys at:idx) inspect
]
!
doReferences
- "show users of selected key (i.e. global)"
+ "show users of selected key (i.e. global).
+ Only useful when inspecting smalltalk"
- |k|
+ |idx|
- selectedLine notNil ifTrue:[
- selectedLine == 1 ifFalse:[
- k := (keys at:selectedLine - 1).
- SystemBrowser browseReferendsOf:k asSymbol
- ].
- ]
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ SystemBrowser browseReferendsOf:(keys at:idx) asSymbol.
+ ^ self
+ ].
!
doRemoveKey
"remove selected item from keys"
- |key|
+ |idx key|
- selectedLine == 1 ifFalse:[
- key := (keys at:selectedLine - 1).
- (inspectedObject includesKey:key) ifTrue:[
- listView cursor:(Cursor wait).
- inspectedObject removeKey:key.
- keys := nil.
- selectedLine := nil.
- inspectedObject changed.
- listView cursor:(Cursor hand).
- self inspect:inspectedObject. "force list update"
- ].
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ (inspectedObject includesKey:key) ifTrue:[
+ listView cursor:(Cursor wait).
+ inspectedObject removeKey:key.
+ keys := nil.
+ selectedLine := nil.
+ inspectedObject changed.
+ listView cursor:(Cursor hand).
+ self reinspect. "force list update"
+ ].
]
!
showKeyReferences
- "show users of selected key (i.e. global)"
+ "show users of selected key (i.e. global).
+ Only useful when inspecting smalltalk"
- |k|
+ |idx key|
- selectedLine notNil ifTrue:[
- selectedLine == 1 ifFalse:[
- k := (keys at:selectedLine - 1).
- self withWaitCursorDo:[
- SystemBrowser browseReferendsOf:k asSymbol
- ]
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ self withWaitCursorDo:[
+ SystemBrowser browseReferendsOf:(keys at:idx) asSymbol
].
]
@@ -183,6 +188,10 @@
!DictionaryInspectorView methodsFor:'private'!
+baseInspectedObjectClass
+ ^ Dictionary
+!
+
defaultLabel
^ 'keys'
@@ -234,26 +243,25 @@
doAccept:theText
"accept value for selected item"
- |value idx|
+ |value idx key|
value := Compiler evaluate:theText receiver:inspectedObject notifying:workspace.
- idx := selectedLine.
- (idx notNil and:[idx > 1]) ifTrue:[
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ inspectedObject at:key put:value.
+ ] ifFalse:[
+ idx := self instVarIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject instVarAt:idx put:value.
+ ] ifFalse:[
+ ^ self "/ self selected
+ ]
+ ].
- inspectedObject ~~ Smalltalk ifTrue:[
- idx := idx + Dictionary instSize.
- idx <= inspectedObject class instSize ifTrue:[
- inspectedObject at:idx put:value.
- inspectedObject changed.
- ^ self
- ].
- idx := idx - inspectedObject class instSize.
- ].
-
- inspectedObject at:(keys at:idx) put:value.
- inspectedObject changed
- ]
+ inspectedObject changed.
+ self reinspect.
!
valueAtLine:lineNr
@@ -261,30 +269,28 @@
|key idx|
- idx := lineNr.
+ idx := self keyIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ ^ inspectedObject at:key ifAbsent:nil.
+ ].
+ idx := self instVarIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject instVarAt:idx.
+ ].
+
hideReceiver ifFalse:[
(lineNr == 1 or:[lineNr isNil]) ifTrue:[
^ inspectedObject
].
- idx := idx - 1.
].
- inspectedObject ~~ Smalltalk ifTrue:[
- idx := idx + Dictionary instSize.
- idx <= inspectedObject class instSize ifTrue:[
- ^ inspectedObject instVarAt:idx
- ].
- idx := idx - inspectedObject class instSize.
- ].
+ ^ nil
- key := keys at:idx.
- ^ inspectedObject at:key ifAbsent:nil.
-
- "Modified: 30.7.1996 / 17:44:50 / cg"
! !
!DictionaryInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DictionaryInspectorView.st,v 1.35 1999-06-23 16:02:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DictionaryInspectorView.st,v 1.36 1999-06-23 16:39:52 cg Exp $'
! !
--- a/InspView.st Wed Jun 23 18:04:06 1999 +0200
+++ b/InspView.st Wed Jun 23 18:39:52 1999 +0200
@@ -296,6 +296,25 @@
^ listView
!
+reinspect
+ "update display for a changed inspectedObject"
+
+ |aList|
+
+ hasMore := false.
+ aList := self fieldList.
+ hasMore ifTrue:[
+ aList add:' ... '
+ ].
+
+ listView contents:aList.
+
+ workspace contents:nil.
+ self setDoItAction.
+
+ selectedLine := nil
+!
+
workspace
^ workspace
! !
@@ -767,6 +786,62 @@
"Modified: 28.6.1996 / 15:13:41 / cg"
!
+instVarIndexForLine:lineNr
+ "helper - return the index for a named instVar;
+ nil, if self or a keyed instvar is selected."
+
+ |idx|
+
+ lineNr isNil ifTrue:[^ nil].
+
+ idx := lineNr.
+ hideReceiver ifFalse:[
+ (lineNr == 1 or:[lineNr isNil]) ifTrue:[
+ ^ nil "/ self selected
+ ].
+ idx := idx - 1.
+ ].
+
+ inspectedObject ~~ Smalltalk ifTrue:[
+ idx := idx + self baseInspectedObjectClass instSize.
+ idx <= inspectedObject class instSize ifTrue:[
+ ^ idx "/ instVar selected
+ ].
+ idx := idx - inspectedObject class instSize.
+ ].
+
+ ^ nil
+
+!
+
+keyIndexForLine:lineNr
+ "helper - return the index of the key-list;
+ nil, if self or a namedInstVar is selected."
+
+ |idx|
+
+ lineNr isNil ifTrue:[^ nil].
+
+ idx := lineNr.
+ hideReceiver ifFalse:[
+ (lineNr == 1 or:[lineNr isNil]) ifTrue:[
+ ^ nil "/ self selected
+ ].
+ idx := idx - 1.
+ ].
+
+ inspectedObject ~~ Smalltalk ifTrue:[
+ idx := idx + self baseInspectedObjectClass instSize.
+ idx <= inspectedObject class instSize ifTrue:[
+ ^ nil "/ instVar selected
+ ].
+ idx := idx - inspectedObject class instSize.
+ ].
+
+ ^ idx
+
+!
+
setDoItAction
"set the codeViews doit action"
@@ -937,18 +1012,16 @@
|val obj|
(hasMore and:[lineNr == listView list size]) ifTrue:[
- "clicked on the '...' entry"
- self showMore.
- listView setSelection:lineNr.
+ "clicked on the '...' entry"
+ self showMore.
+ listView setSelection:lineNr.
].
hideReceiver ifFalse:[
- (self hasSelfEntry and:[lineNr == 1]) ifTrue:[
- "selecting self also does a re-set, this allows updating the list"
- obj := inspectedObject. "/ force re-evaluation of the fieldList.
- inspectedObject := nil.
- self inspect:obj.
- ].
+ (self hasSelfEntry and:[lineNr == 1]) ifTrue:[
+ "selecting self also does a re-set, this allows updating the list"
+ self reinspect.
+ ].
].
val := self valueAtLine:lineNr.
selectedLine := lineNr.
@@ -1031,5 +1104,5 @@
!InspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/InspView.st,v 1.89 1999-06-23 15:54:44 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/InspView.st,v 1.90 1999-06-23 16:39:45 cg Exp $'
! !
--- a/InspectorView.st Wed Jun 23 18:04:06 1999 +0200
+++ b/InspectorView.st Wed Jun 23 18:39:52 1999 +0200
@@ -296,6 +296,25 @@
^ listView
!
+reinspect
+ "update display for a changed inspectedObject"
+
+ |aList|
+
+ hasMore := false.
+ aList := self fieldList.
+ hasMore ifTrue:[
+ aList add:' ... '
+ ].
+
+ listView contents:aList.
+
+ workspace contents:nil.
+ self setDoItAction.
+
+ selectedLine := nil
+!
+
workspace
^ workspace
! !
@@ -767,6 +786,62 @@
"Modified: 28.6.1996 / 15:13:41 / cg"
!
+instVarIndexForLine:lineNr
+ "helper - return the index for a named instVar;
+ nil, if self or a keyed instvar is selected."
+
+ |idx|
+
+ lineNr isNil ifTrue:[^ nil].
+
+ idx := lineNr.
+ hideReceiver ifFalse:[
+ (lineNr == 1 or:[lineNr isNil]) ifTrue:[
+ ^ nil "/ self selected
+ ].
+ idx := idx - 1.
+ ].
+
+ inspectedObject ~~ Smalltalk ifTrue:[
+ idx := idx + self baseInspectedObjectClass instSize.
+ idx <= inspectedObject class instSize ifTrue:[
+ ^ idx "/ instVar selected
+ ].
+ idx := idx - inspectedObject class instSize.
+ ].
+
+ ^ nil
+
+!
+
+keyIndexForLine:lineNr
+ "helper - return the index of the key-list;
+ nil, if self or a namedInstVar is selected."
+
+ |idx|
+
+ lineNr isNil ifTrue:[^ nil].
+
+ idx := lineNr.
+ hideReceiver ifFalse:[
+ (lineNr == 1 or:[lineNr isNil]) ifTrue:[
+ ^ nil "/ self selected
+ ].
+ idx := idx - 1.
+ ].
+
+ inspectedObject ~~ Smalltalk ifTrue:[
+ idx := idx + self baseInspectedObjectClass instSize.
+ idx <= inspectedObject class instSize ifTrue:[
+ ^ nil "/ instVar selected
+ ].
+ idx := idx - inspectedObject class instSize.
+ ].
+
+ ^ idx
+
+!
+
setDoItAction
"set the codeViews doit action"
@@ -937,18 +1012,16 @@
|val obj|
(hasMore and:[lineNr == listView list size]) ifTrue:[
- "clicked on the '...' entry"
- self showMore.
- listView setSelection:lineNr.
+ "clicked on the '...' entry"
+ self showMore.
+ listView setSelection:lineNr.
].
hideReceiver ifFalse:[
- (self hasSelfEntry and:[lineNr == 1]) ifTrue:[
- "selecting self also does a re-set, this allows updating the list"
- obj := inspectedObject. "/ force re-evaluation of the fieldList.
- inspectedObject := nil.
- self inspect:obj.
- ].
+ (self hasSelfEntry and:[lineNr == 1]) ifTrue:[
+ "selecting self also does a re-set, this allows updating the list"
+ self reinspect.
+ ].
].
val := self valueAtLine:lineNr.
selectedLine := lineNr.
@@ -1031,5 +1104,5 @@
!InspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/InspectorView.st,v 1.89 1999-06-23 15:54:44 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/InspectorView.st,v 1.90 1999-06-23 16:39:45 cg Exp $'
! !
--- a/OCInspView.st Wed Jun 23 18:04:06 1999 +0200
+++ b/OCInspView.st Wed Jun 23 18:39:52 1999 +0200
@@ -45,6 +45,11 @@
!OrderedCollectionInspectorView methodsFor:'private'!
+baseInspectedObjectClass
+ ^ OrderedCollection
+
+!
+
defaultLabel
^ 'contents'
@@ -130,9 +135,9 @@
browse browseClassHierarchy browseFullClassProtocol
doStartMonitor removeIndex)
] ifFalse:[
- selectedLine == 1 ifTrue:[
+ (self keyIndexForLine:selectedLine) isNil ifTrue:[
m disable:#removeIndex
- ]
+ ].
].
^ m
@@ -143,63 +148,65 @@
!OrderedCollectionInspectorView methodsFor:'user interaction'!
doAccept:theText
- |value|
+ |value idx|
value := Compiler evaluate:theText
- receiver:inspectedObject
- notifying:workspace.
-
- selectedLine notNil ifTrue:[
- selectedLine == 1 ifFalse:[
- inspectedObject at:selectedLine - 1 put:value.
- inspectedObject changed
- ]
- ].
-!
+ receiver:inspectedObject
+ notifying:workspace.
-doInspect
- "user selected inspect-menu entry"
-
- selectedLine notNil ifTrue:[
- (selectedLine == 1) ifTrue:[
- inspectedObject inspect
- ] ifFalse:[
- (inspectedObject at:selectedLine - 1) inspect
- ].
- ]
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject at:idx put:value.
+ ] ifFalse:[
+ idx := self instVarIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject instVarAt:idx put:value.
+ ] ifFalse:[
+ ^ self "/ self selected
+ ]
+ ].
!
removeIndex
"remove selected item from the collection"
- selectedLine == 1 ifFalse:[
- inspectedObject removeIndex:selectedLine -1.
- selectedLine := nil.
- inspectedObject changed.
- self inspect:inspectedObject. "force list update"
+ |idx|
+
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject removeIndex:idx.
+ selectedLine := nil.
+ inspectedObject changed.
+ self reinspect.
]
!
valueAtLine:lineNr
"helper - return the value of the selected entry"
- |index|
+ |key idx|
+
+ idx := self keyIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject at:idx ifAbsent:nil.
+ ].
+ idx := self instVarIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject instVarAt:idx.
+ ].
hideReceiver ifFalse:[
- (lineNr isNil or:[lineNr == 1]) ifTrue:[
+ (lineNr == 1 or:[lineNr isNil]) ifTrue:[
^ inspectedObject
].
- index := lineNr - 1. "/ skip self
- ] ifTrue:[
- index := lineNr
].
- ^ inspectedObject at:index
- "Modified: 28.6.1996 / 15:53:56 / cg"
+ ^ nil
+
! !
!OrderedCollectionInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/OCInspView.st,v 1.24 1999-03-29 15:10:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/OCInspView.st,v 1.25 1999-06-23 16:39:50 cg Exp $'
! !
--- a/OrderedCollectionInspectorView.st Wed Jun 23 18:04:06 1999 +0200
+++ b/OrderedCollectionInspectorView.st Wed Jun 23 18:39:52 1999 +0200
@@ -45,6 +45,11 @@
!OrderedCollectionInspectorView methodsFor:'private'!
+baseInspectedObjectClass
+ ^ OrderedCollection
+
+!
+
defaultLabel
^ 'contents'
@@ -130,9 +135,9 @@
browse browseClassHierarchy browseFullClassProtocol
doStartMonitor removeIndex)
] ifFalse:[
- selectedLine == 1 ifTrue:[
+ (self keyIndexForLine:selectedLine) isNil ifTrue:[
m disable:#removeIndex
- ]
+ ].
].
^ m
@@ -143,63 +148,65 @@
!OrderedCollectionInspectorView methodsFor:'user interaction'!
doAccept:theText
- |value|
+ |value idx|
value := Compiler evaluate:theText
- receiver:inspectedObject
- notifying:workspace.
-
- selectedLine notNil ifTrue:[
- selectedLine == 1 ifFalse:[
- inspectedObject at:selectedLine - 1 put:value.
- inspectedObject changed
- ]
- ].
-!
+ receiver:inspectedObject
+ notifying:workspace.
-doInspect
- "user selected inspect-menu entry"
-
- selectedLine notNil ifTrue:[
- (selectedLine == 1) ifTrue:[
- inspectedObject inspect
- ] ifFalse:[
- (inspectedObject at:selectedLine - 1) inspect
- ].
- ]
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject at:idx put:value.
+ ] ifFalse:[
+ idx := self instVarIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject instVarAt:idx put:value.
+ ] ifFalse:[
+ ^ self "/ self selected
+ ]
+ ].
!
removeIndex
"remove selected item from the collection"
- selectedLine == 1 ifFalse:[
- inspectedObject removeIndex:selectedLine -1.
- selectedLine := nil.
- inspectedObject changed.
- self inspect:inspectedObject. "force list update"
+ |idx|
+
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
+ inspectedObject removeIndex:idx.
+ selectedLine := nil.
+ inspectedObject changed.
+ self reinspect.
]
!
valueAtLine:lineNr
"helper - return the value of the selected entry"
- |index|
+ |key idx|
+
+ idx := self keyIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject at:idx ifAbsent:nil.
+ ].
+ idx := self instVarIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject instVarAt:idx.
+ ].
hideReceiver ifFalse:[
- (lineNr isNil or:[lineNr == 1]) ifTrue:[
+ (lineNr == 1 or:[lineNr isNil]) ifTrue:[
^ inspectedObject
].
- index := lineNr - 1. "/ skip self
- ] ifTrue:[
- index := lineNr
].
- ^ inspectedObject at:index
- "Modified: 28.6.1996 / 15:53:56 / cg"
+ ^ nil
+
! !
!OrderedCollectionInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/OrderedCollectionInspectorView.st,v 1.24 1999-03-29 15:10:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/OrderedCollectionInspectorView.st,v 1.25 1999-06-23 16:39:50 cg Exp $'
! !
--- a/SetInspV.st Wed Jun 23 18:04:06 1999 +0200
+++ b/SetInspV.st Wed Jun 23 18:39:52 1999 +0200
@@ -39,6 +39,10 @@
doRemoveKey
).
+ (self keyIndexForLine:selectedLine) isNil ifTrue:[
+ menu disableAll:#(doRemoveKey)
+ ].
+
^ menu
"Modified: / 29.10.1997 / 03:41:47 / cg"
@@ -46,6 +50,11 @@
!SetInspectorView methodsFor:'private'!
+baseInspectedObjectClass
+ ^ Set
+
+!
+
defaultLabel
^ 'contents'
@@ -104,7 +113,7 @@
inspectedObject add:value.
inspectedObject changed.
- self inspect:inspectedObject
+ self reinspect.
!
@@ -114,14 +123,8 @@
|key idx|
- idx := selectedLine.
- (idx notNil and:[idx ~~ 1]) ifTrue:[
- idx := idx + Set instSize.
- idx <= inspectedObject class instSize ifTrue:[
- ^ self
- ].
- idx := idx - inspectedObject class instSize.
-
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
key := keys at:idx.
(inspectedObject includes:key) ifTrue:[
listView cursor:(Cursor wait).
@@ -130,7 +133,7 @@
selectedLine := nil.
inspectedObject changed.
listView cursor:(Cursor hand).
- self inspect:inspectedObject. "force list update"
+ self reinspect.
].
]
@@ -138,32 +141,32 @@
!
valueAtLine:lineNr
- "helper - return the value of the selected entry;
- Here, the key itself is the value."
+ "helper - return the value of the selected entry"
|key idx|
- idx := lineNr.
+ idx := self keyIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ ^ key.
+ ].
+ idx := self instVarIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject instVarAt:idx.
+ ].
+
hideReceiver ifFalse:[
(lineNr == 1 or:[lineNr isNil]) ifTrue:[
^ inspectedObject
].
- idx := idx - 1.
].
- idx := idx + Set instSize.
- idx <= inspectedObject class instSize ifTrue:[
- ^ inspectedObject instVarAt:idx
- ].
- idx := idx - inspectedObject class instSize.
-
- key := keys at:idx.
- ^ key.
+ ^ nil
! !
!SetInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/SetInspV.st,v 1.10 1999-06-23 16:04:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/SetInspV.st,v 1.11 1999-06-23 16:39:47 cg Exp $'
! !
--- a/SetInspectorView.st Wed Jun 23 18:04:06 1999 +0200
+++ b/SetInspectorView.st Wed Jun 23 18:39:52 1999 +0200
@@ -39,6 +39,10 @@
doRemoveKey
).
+ (self keyIndexForLine:selectedLine) isNil ifTrue:[
+ menu disableAll:#(doRemoveKey)
+ ].
+
^ menu
"Modified: / 29.10.1997 / 03:41:47 / cg"
@@ -46,6 +50,11 @@
!SetInspectorView methodsFor:'private'!
+baseInspectedObjectClass
+ ^ Set
+
+!
+
defaultLabel
^ 'contents'
@@ -104,7 +113,7 @@
inspectedObject add:value.
inspectedObject changed.
- self inspect:inspectedObject
+ self reinspect.
!
@@ -114,14 +123,8 @@
|key idx|
- idx := selectedLine.
- (idx notNil and:[idx ~~ 1]) ifTrue:[
- idx := idx + Set instSize.
- idx <= inspectedObject class instSize ifTrue:[
- ^ self
- ].
- idx := idx - inspectedObject class instSize.
-
+ idx := self keyIndexForLine:selectedLine.
+ idx notNil ifTrue:[
key := keys at:idx.
(inspectedObject includes:key) ifTrue:[
listView cursor:(Cursor wait).
@@ -130,7 +133,7 @@
selectedLine := nil.
inspectedObject changed.
listView cursor:(Cursor hand).
- self inspect:inspectedObject. "force list update"
+ self reinspect.
].
]
@@ -138,32 +141,32 @@
!
valueAtLine:lineNr
- "helper - return the value of the selected entry;
- Here, the key itself is the value."
+ "helper - return the value of the selected entry"
|key idx|
- idx := lineNr.
+ idx := self keyIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ key := keys at:idx.
+ ^ key.
+ ].
+ idx := self instVarIndexForLine:lineNr.
+ idx notNil ifTrue:[
+ ^ inspectedObject instVarAt:idx.
+ ].
+
hideReceiver ifFalse:[
(lineNr == 1 or:[lineNr isNil]) ifTrue:[
^ inspectedObject
].
- idx := idx - 1.
].
- idx := idx + Set instSize.
- idx <= inspectedObject class instSize ifTrue:[
- ^ inspectedObject instVarAt:idx
- ].
- idx := idx - inspectedObject class instSize.
-
- key := keys at:idx.
- ^ key.
+ ^ nil
! !
!SetInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/SetInspectorView.st,v 1.10 1999-06-23 16:04:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/SetInspectorView.st,v 1.11 1999-06-23 16:39:47 cg Exp $'
! !