--- a/BrowserView.st Wed Dec 13 11:05:15 1995 +0100
+++ b/BrowserView.st Wed Dec 13 13:11:53 1995 +0100
@@ -5941,153 +5941,170 @@
"show typical usage of a variable"
|name idx classes values value msg cut names instCount subInstCount box
- searchClass|
+ searchClass s|
name := variableListView selectionValue.
name isNil ifTrue:[^ self].
- searchClass := actualClass whichClassDefinesInstVar:name.
-
- idx := searchClass instVarOffsetOf:name.
- idx isNil ifTrue:[^ self].
-
- classes := IdentitySet new.
- values := IdentitySet new.
- instCount := 0.
- subInstCount := 0.
- searchClass allSubInstancesDo:[:i |
- |val|
-
- val := i instVarAt:idx.
- val notNil ifTrue:[values add:val].
- classes add:val class.
- (i isMemberOf:searchClass) ifTrue:[
- instCount := instCount + 1.
- ] ifFalse:[
- subInstCount := subInstCount + 1
- ]
- ].
- (instCount == 0 and:[subInstCount == 0]) ifTrue:[
- self warn:'there are currently no instances of ' , currentClass name.
- ^ self
- ].
-
- instCount ~~ 0 ifTrue:[
- msg := 'in (currently: ' , instCount printString,') instances '.
- subInstCount ~~ 0 ifTrue:[
- msg := msg , 'and '
- ]
- ] ifFalse:[
- msg := 'in '.
- ].
- subInstCount ~~ 0 ifTrue:[
- msg := msg , '(currently: ' , subInstCount printString, ') derived instances '
- ].
- msg := msg, 'of ' , searchClass name , ',\'.
- msg := msg , name , ' '.
- ((values size == 1)
- or:[classes size == 1 and:[classes first == UndefinedObject]]) ifTrue:[
- values size == 1 ifTrue:[value := values first].
- (value isNumber or:[value isString]) ifTrue:[
- msg := msg , 'is always the same:\\ ' ,
- value class name , ' (' , value storeString , ')'.
- ] ifFalse:[
- (value isNil or:[value == true or:[value == false]]) ifTrue:[
- msg := msg , 'is always:\\ ' ,
- value printString.
- ] ifFalse:[
- msg := msg , 'is always the same:\\'.
- msg := msg , ' ' , value class name.
- value isLiteral ifTrue:[
- msg := msg , ' (' , value storeString , ')'
- ]
- ]
- ]
- ] ifFalse:[
- classes size == 1 ifTrue:[
- msg := msg , 'is always:\\'.
- msg := msg , ' ' , classes first name , '\'.
- ] ifFalse:[
- msg := msg , 'is one of:\\'.
- classes := classes asOrderedCollection.
- classes size > 20 ifTrue:[
- classes := classes copyFrom:1 to:20.
- cut := true
- ] ifFalse:[
- cut := false.
- ].
- names := classes collect:[:cls |
- |nm|
- cls == UndefinedObject ifTrue:[
- 'nil'
- ] ifFalse:[
- cls == True ifTrue:[
- 'true'
- ] ifFalse:[
- cls == False ifTrue:[
- 'false'
- ] ifFalse:[
- cls name
- ]
- ]
- ].
- ].
- names sort.
- names do:[:nm |
- msg := msg , ' ' , nm , '\'.
- ].
- ]
+ showInstance ifFalse:[
+ searchClass := currentClass whichClassDefinesClassVar:name.
+ value := searchClass classVarAt:(name asSymbol).
+ s := value displayString.
+ s size > 60 ifTrue:[
+ s := (s copyTo:60) , ' ...'
+ ].
+ msg := name , ' is (currently):\\' , s.
+ s ~= value classNameWithArticle ifTrue:[
+ msg := msg , '\\(' , value class name , ')'
+ ]
+ ] ifTrue:[
+ searchClass := actualClass whichClassDefinesInstVar:name.
+
+ idx := searchClass instVarOffsetOf:name.
+ idx isNil ifTrue:[^ self].
+
+ classes := IdentitySet new.
+ values := IdentitySet new.
+ instCount := 0.
+ subInstCount := 0.
+ searchClass allSubInstancesDo:[:i |
+ |val|
+
+ val := i instVarAt:idx.
+ val notNil ifTrue:[values add:val].
+ classes add:val class.
+ (i isMemberOf:searchClass) ifTrue:[
+ instCount := instCount + 1.
+ ] ifFalse:[
+ subInstCount := subInstCount + 1
+ ]
+ ].
+ (instCount == 0 and:[subInstCount == 0]) ifTrue:[
+ self warn:'there are currently no instances of ' , currentClass name.
+ ^ self
+ ].
+
+ instCount ~~ 0 ifTrue:[
+ msg := 'in (currently: ' , instCount printString,') instances '.
+ subInstCount ~~ 0 ifTrue:[
+ msg := msg , 'and '
+ ]
+ ] ifFalse:[
+ msg := 'in '.
+ ].
+ subInstCount ~~ 0 ifTrue:[
+ msg := msg , '(currently: ' , subInstCount printString, ') derived instances '
+ ].
+ msg := msg, 'of ' , searchClass name , ',\'.
+ msg := msg , name , ' '.
+ ((values size == 1)
+ or:[classes size == 1 and:[classes first == UndefinedObject]]) ifTrue:[
+ values size == 1 ifTrue:[value := values first].
+ (value isNumber or:[value isString]) ifTrue:[
+ msg := msg , 'is always the same:\\ ' ,
+ value class name , ' (' , value storeString , ')'.
+ ] ifFalse:[
+ (value isNil or:[value == true or:[value == false]]) ifTrue:[
+ msg := msg , 'is always:\\ ' ,
+ value printString.
+ ] ifFalse:[
+ msg := msg , 'is always the same:\\'.
+ msg := msg , ' ' , value class name.
+ value isLiteral ifTrue:[
+ msg := msg , ' (' , value storeString , ')'
+ ]
+ ]
+ ]
+ ] ifFalse:[
+ classes size == 1 ifTrue:[
+ msg := msg , 'is always:\\'.
+ msg := msg , ' ' , classes first name , '\'.
+ ] ifFalse:[
+ msg := msg , 'is one of:\\'.
+ classes := classes asOrderedCollection.
+ classes size > 20 ifTrue:[
+ classes := classes copyFrom:1 to:20.
+ cut := true
+ ] ifFalse:[
+ cut := false.
+ ].
+ names := classes collect:[:cls |
+ |nm|
+ cls == UndefinedObject ifTrue:[
+ 'nil'
+ ] ifFalse:[
+ cls == True ifTrue:[
+ 'true'
+ ] ifFalse:[
+ cls == False ifTrue:[
+ 'false'
+ ] ifFalse:[
+ cls name
+ ]
+ ]
+ ].
+ ].
+ names sort.
+ names do:[:nm |
+ msg := msg , ' ' , nm , '\'.
+ ].
+ ]
+ ].
].
box := InfoBox title:msg withCRs.
box label:'variable type information'.
box showAtPointer
+
+ "Modified: 13.12.1995 / 12:59:03 / cg"
!
variableListMenu
|labels selectors|
currentClass isNil ifTrue:[
- variableListView flash.
- ^ nil
+ variableListView flash.
+ ^ nil
].
labels := #(
- 'instvar refs ...'
- 'classvar refs ...'
- 'all instvar refs ...'
- 'all classvar refs ...'
- '-'
- 'instvar mods ...'
- 'classvar mods ...'
- 'all instvar mods ...'
- 'all classvar mods ...'
- ).
+ 'instvar refs ...'
+ 'classvar refs ...'
+ 'all instvar refs ...'
+ 'all classvar refs ...'
+ '-'
+ 'instvar mods ...'
+ 'classvar mods ...'
+ 'all instvar mods ...'
+ 'all classvar mods ...'
+ ).
selectors := #(
- instVarRefs
- classVarRefs
- allInstVarRefs
- allClassVarRefs
- nil
- instVarMods
- classVarMods
- allInstVarMods
- allClassVarMods
- ).
-
- (showInstance and:[variableListView hasSelection]) ifTrue:[
- labels := labels , #(
- '-'
- 'type information'
- ).
- selectors := selectors , #(
- nil
- varTypeInfo
- ).
+ instVarRefs
+ classVarRefs
+ allInstVarRefs
+ allClassVarRefs
+ nil
+ instVarMods
+ classVarMods
+ allInstVarMods
+ allClassVarMods
+ ).
+
+ ("showInstance and:[" variableListView hasSelection "]" ) ifTrue:[
+ labels := labels , #(
+ '-'
+ 'type information'
+ ).
+ selectors := selectors , #(
+ nil
+ varTypeInfo
+ ).
].
^ PopUpMenu labels:(resources array:labels)
- selectors:selectors
+ selectors:selectors
+
+ "Modified: 13.12.1995 / 12:49:49 / cg"
!
variableSelection:lineNr
@@ -6315,6 +6332,6 @@
!BrowserView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.69 1995-12-13 10:05:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/BrowserView.st,v 1.70 1995-12-13 12:11:53 cg Exp $'
! !
BrowserView initialize!
--- a/BrwsrView.st Wed Dec 13 11:05:15 1995 +0100
+++ b/BrwsrView.st Wed Dec 13 13:11:53 1995 +0100
@@ -5941,153 +5941,170 @@
"show typical usage of a variable"
|name idx classes values value msg cut names instCount subInstCount box
- searchClass|
+ searchClass s|
name := variableListView selectionValue.
name isNil ifTrue:[^ self].
- searchClass := actualClass whichClassDefinesInstVar:name.
-
- idx := searchClass instVarOffsetOf:name.
- idx isNil ifTrue:[^ self].
-
- classes := IdentitySet new.
- values := IdentitySet new.
- instCount := 0.
- subInstCount := 0.
- searchClass allSubInstancesDo:[:i |
- |val|
-
- val := i instVarAt:idx.
- val notNil ifTrue:[values add:val].
- classes add:val class.
- (i isMemberOf:searchClass) ifTrue:[
- instCount := instCount + 1.
- ] ifFalse:[
- subInstCount := subInstCount + 1
- ]
- ].
- (instCount == 0 and:[subInstCount == 0]) ifTrue:[
- self warn:'there are currently no instances of ' , currentClass name.
- ^ self
- ].
-
- instCount ~~ 0 ifTrue:[
- msg := 'in (currently: ' , instCount printString,') instances '.
- subInstCount ~~ 0 ifTrue:[
- msg := msg , 'and '
- ]
- ] ifFalse:[
- msg := 'in '.
- ].
- subInstCount ~~ 0 ifTrue:[
- msg := msg , '(currently: ' , subInstCount printString, ') derived instances '
- ].
- msg := msg, 'of ' , searchClass name , ',\'.
- msg := msg , name , ' '.
- ((values size == 1)
- or:[classes size == 1 and:[classes first == UndefinedObject]]) ifTrue:[
- values size == 1 ifTrue:[value := values first].
- (value isNumber or:[value isString]) ifTrue:[
- msg := msg , 'is always the same:\\ ' ,
- value class name , ' (' , value storeString , ')'.
- ] ifFalse:[
- (value isNil or:[value == true or:[value == false]]) ifTrue:[
- msg := msg , 'is always:\\ ' ,
- value printString.
- ] ifFalse:[
- msg := msg , 'is always the same:\\'.
- msg := msg , ' ' , value class name.
- value isLiteral ifTrue:[
- msg := msg , ' (' , value storeString , ')'
- ]
- ]
- ]
- ] ifFalse:[
- classes size == 1 ifTrue:[
- msg := msg , 'is always:\\'.
- msg := msg , ' ' , classes first name , '\'.
- ] ifFalse:[
- msg := msg , 'is one of:\\'.
- classes := classes asOrderedCollection.
- classes size > 20 ifTrue:[
- classes := classes copyFrom:1 to:20.
- cut := true
- ] ifFalse:[
- cut := false.
- ].
- names := classes collect:[:cls |
- |nm|
- cls == UndefinedObject ifTrue:[
- 'nil'
- ] ifFalse:[
- cls == True ifTrue:[
- 'true'
- ] ifFalse:[
- cls == False ifTrue:[
- 'false'
- ] ifFalse:[
- cls name
- ]
- ]
- ].
- ].
- names sort.
- names do:[:nm |
- msg := msg , ' ' , nm , '\'.
- ].
- ]
+ showInstance ifFalse:[
+ searchClass := currentClass whichClassDefinesClassVar:name.
+ value := searchClass classVarAt:(name asSymbol).
+ s := value displayString.
+ s size > 60 ifTrue:[
+ s := (s copyTo:60) , ' ...'
+ ].
+ msg := name , ' is (currently):\\' , s.
+ s ~= value classNameWithArticle ifTrue:[
+ msg := msg , '\\(' , value class name , ')'
+ ]
+ ] ifTrue:[
+ searchClass := actualClass whichClassDefinesInstVar:name.
+
+ idx := searchClass instVarOffsetOf:name.
+ idx isNil ifTrue:[^ self].
+
+ classes := IdentitySet new.
+ values := IdentitySet new.
+ instCount := 0.
+ subInstCount := 0.
+ searchClass allSubInstancesDo:[:i |
+ |val|
+
+ val := i instVarAt:idx.
+ val notNil ifTrue:[values add:val].
+ classes add:val class.
+ (i isMemberOf:searchClass) ifTrue:[
+ instCount := instCount + 1.
+ ] ifFalse:[
+ subInstCount := subInstCount + 1
+ ]
+ ].
+ (instCount == 0 and:[subInstCount == 0]) ifTrue:[
+ self warn:'there are currently no instances of ' , currentClass name.
+ ^ self
+ ].
+
+ instCount ~~ 0 ifTrue:[
+ msg := 'in (currently: ' , instCount printString,') instances '.
+ subInstCount ~~ 0 ifTrue:[
+ msg := msg , 'and '
+ ]
+ ] ifFalse:[
+ msg := 'in '.
+ ].
+ subInstCount ~~ 0 ifTrue:[
+ msg := msg , '(currently: ' , subInstCount printString, ') derived instances '
+ ].
+ msg := msg, 'of ' , searchClass name , ',\'.
+ msg := msg , name , ' '.
+ ((values size == 1)
+ or:[classes size == 1 and:[classes first == UndefinedObject]]) ifTrue:[
+ values size == 1 ifTrue:[value := values first].
+ (value isNumber or:[value isString]) ifTrue:[
+ msg := msg , 'is always the same:\\ ' ,
+ value class name , ' (' , value storeString , ')'.
+ ] ifFalse:[
+ (value isNil or:[value == true or:[value == false]]) ifTrue:[
+ msg := msg , 'is always:\\ ' ,
+ value printString.
+ ] ifFalse:[
+ msg := msg , 'is always the same:\\'.
+ msg := msg , ' ' , value class name.
+ value isLiteral ifTrue:[
+ msg := msg , ' (' , value storeString , ')'
+ ]
+ ]
+ ]
+ ] ifFalse:[
+ classes size == 1 ifTrue:[
+ msg := msg , 'is always:\\'.
+ msg := msg , ' ' , classes first name , '\'.
+ ] ifFalse:[
+ msg := msg , 'is one of:\\'.
+ classes := classes asOrderedCollection.
+ classes size > 20 ifTrue:[
+ classes := classes copyFrom:1 to:20.
+ cut := true
+ ] ifFalse:[
+ cut := false.
+ ].
+ names := classes collect:[:cls |
+ |nm|
+ cls == UndefinedObject ifTrue:[
+ 'nil'
+ ] ifFalse:[
+ cls == True ifTrue:[
+ 'true'
+ ] ifFalse:[
+ cls == False ifTrue:[
+ 'false'
+ ] ifFalse:[
+ cls name
+ ]
+ ]
+ ].
+ ].
+ names sort.
+ names do:[:nm |
+ msg := msg , ' ' , nm , '\'.
+ ].
+ ]
+ ].
].
box := InfoBox title:msg withCRs.
box label:'variable type information'.
box showAtPointer
+
+ "Modified: 13.12.1995 / 12:59:03 / cg"
!
variableListMenu
|labels selectors|
currentClass isNil ifTrue:[
- variableListView flash.
- ^ nil
+ variableListView flash.
+ ^ nil
].
labels := #(
- 'instvar refs ...'
- 'classvar refs ...'
- 'all instvar refs ...'
- 'all classvar refs ...'
- '-'
- 'instvar mods ...'
- 'classvar mods ...'
- 'all instvar mods ...'
- 'all classvar mods ...'
- ).
+ 'instvar refs ...'
+ 'classvar refs ...'
+ 'all instvar refs ...'
+ 'all classvar refs ...'
+ '-'
+ 'instvar mods ...'
+ 'classvar mods ...'
+ 'all instvar mods ...'
+ 'all classvar mods ...'
+ ).
selectors := #(
- instVarRefs
- classVarRefs
- allInstVarRefs
- allClassVarRefs
- nil
- instVarMods
- classVarMods
- allInstVarMods
- allClassVarMods
- ).
-
- (showInstance and:[variableListView hasSelection]) ifTrue:[
- labels := labels , #(
- '-'
- 'type information'
- ).
- selectors := selectors , #(
- nil
- varTypeInfo
- ).
+ instVarRefs
+ classVarRefs
+ allInstVarRefs
+ allClassVarRefs
+ nil
+ instVarMods
+ classVarMods
+ allInstVarMods
+ allClassVarMods
+ ).
+
+ ("showInstance and:[" variableListView hasSelection "]" ) ifTrue:[
+ labels := labels , #(
+ '-'
+ 'type information'
+ ).
+ selectors := selectors , #(
+ nil
+ varTypeInfo
+ ).
].
^ PopUpMenu labels:(resources array:labels)
- selectors:selectors
+ selectors:selectors
+
+ "Modified: 13.12.1995 / 12:49:49 / cg"
!
variableSelection:lineNr
@@ -6315,6 +6332,6 @@
!BrowserView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/BrwsrView.st,v 1.69 1995-12-13 10:05:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/BrwsrView.st,v 1.70 1995-12-13 12:11:53 cg Exp $'
! !
BrowserView initialize!