--- a/InspectorView.st Fri Jul 20 10:34:18 2012 +0200
+++ b/InspectorView.st Fri Jul 20 11:21:54 2012 +0200
@@ -17,7 +17,7 @@
inspectHistory allowFollow isStandaloneInspector selectionIndex
object inspectedObjectHolder displayStringMessage
suppressPseudoSlots dereferenceValueHolders suppressHeadline
- headLineLabel'
+ headLineLabel sortOrder'
classVariableNames:'DefaultIcon IdDictionary NextSequentialID LastExtent
DefaultIntegerDisplayRadix ExpandArraysInAllLists'
poolDictionaries:''
@@ -1017,6 +1017,7 @@
displayStringMessage := #displayString.
hideReceiver := false.
integerDisplayRadix := (DefaultIntegerDisplayRadix ? 10).
+ sortOrder := #instvarOrder.
allowFollow := false.
isStandaloneInspector := false.
@@ -1080,7 +1081,7 @@
hasMore := false.
"Modified: / 16-08-2005 / 21:54:04 / janfrog"
- "Modified: / 30-10-2011 / 09:18:36 / cg"
+ "Modified: / 20-07-2012 / 10:48:34 / cg"
!
initializeDragAndDrop
@@ -1308,6 +1309,7 @@
args:localSelectors
receiver:self.
+ items := items , (self sortOrderItems).
items := items , (self numberBaseItems).
m := PopUpMenu
@@ -1341,7 +1343,7 @@
^ m
- "Modified: / 13-06-2012 / 10:13:39 / cg"
+ "Modified: / 20-07-2012 / 10:50:45 / cg"
!
numberBaseItems
@@ -1469,6 +1471,18 @@
).
].
^ #()
+!
+
+sortOrderItems
+ ^ {
+ #('-') .
+ (sortOrder == #instvarOrder)
+ ifFalse:[ #('Instvar Order' #setSortOrderToInstvarOrder ) ] .
+ (sortOrder == #alphabetical)
+ ifFalse:[ #('Alphabetical' #setSortOrderToAlphabetical ) ] .
+ } select:[:el | el notNil].
+
+ "Created: / 20-07-2012 / 10:47:53 / cg"
! !
!InspectorView methodsFor:'menu actions'!
@@ -1798,6 +1812,56 @@
"Modified: / 25-01-2011 / 17:23:38 / cg"
!
+setDisplayRadixTo10
+ self setDisplayRadixTo:10
+
+ "Created: / 24-08-2010 / 17:26:12 / cg"
+!
+
+setDisplayRadixTo16
+ self setDisplayRadixTo:16
+
+ "Created: / 24-08-2010 / 17:26:22 / cg"
+!
+
+setDisplayRadixTo2
+ self setDisplayRadixTo:2
+
+ "Created: / 24-08-2010 / 17:26:18 / cg"
+!
+
+setDisplayRadixTo:radix
+ |sel|
+
+ integerDisplayRadix := DefaultIntegerDisplayRadix := radix.
+ self reinspect.
+ sel := listView selection.
+ sel notNil ifTrue:[
+ self showSelection:sel
+ ]
+
+ "Created: / 24-08-2010 / 17:26:54 / cg"
+!
+
+setSortOrderTo:aSymbol
+ sortOrder := aSymbol.
+ self reinspect.
+
+ "Created: / 20-07-2012 / 10:59:30 / cg"
+!
+
+setSortOrderToAlphabetical
+ self setSortOrderTo:#alphabetical
+
+ "Created: / 20-07-2012 / 10:59:52 / cg"
+!
+
+setSortOrderToInstvarOrder
+ self setSortOrderTo:#instvarOrder
+
+ "Created: / 20-07-2012 / 10:59:59 / cg"
+!
+
showAll
|o|
@@ -1932,6 +1996,9 @@
"/ not everything can be shown in HEX/Binary
someValue isInteger ifTrue:[
+ (someValue < integerDisplayRadix) ifTrue:[
+ ^ someValue printString.
+ ].
s := someValue radixPrintStringRadix:integerDisplayRadix.
s := s , ' "',(someValue printString),'"'.
^ s
@@ -1975,7 +2042,7 @@
^ s contents
].
- "Modified: / 17-07-2012 / 13:22:27 / cg"
+ "Modified: / 20-07-2012 / 10:54:05 / cg"
!
displayStringForValue:someValue
@@ -2102,7 +2169,7 @@
].
(value isNumber or:[value isBoolean]) ifTrue:[
- ^ value printString
+ ^ self basicDisplayStringForValue:value "value printString"
].
(value isSymbol or:[value isCharacter]) ifTrue:[
^ value storeString
@@ -2527,22 +2594,24 @@
"helper - return the index for a named instVar;
nil, if self or a keyed instvar is selected."
- |idx nNamedInstvarsShown cls baseCls firstRealIndex line|
+ |idx nNamedInstvarsShown cls baseCls firstRealIndex line nm|
lineNr isNil ifTrue:[^ nil].
firstRealIndex := 1.
- idx := lineNr.
- self hasSelfEntry ifTrue:[
- (lineNr == 1 or:[lineNr isNil]) ifTrue:[
- ^ nil "/ self selected
- ].
- idx := idx - 1.
- firstRealIndex := 2.
- ].
-
- [line :=self listEntryAt:firstRealIndex.
- (line startsWith:'-') and:[line size < 2 or:[line second isDigit not]]] whileTrue:[
+ line := (self listEntryAt:lineNr) string.
+ ((line startsWith:'-') and:[line size < 2 or:[line second isDigit not]])
+ ifTrue:[^ nil].
+
+ nm := line asCollectionOfWords first.
+ idx := object class allInstVarNames indexOf:nm.
+ idx == 0 ifTrue:[^ nil].
+ ^ idx.
+
+ [
+ line := self listEntryAt:firstRealIndex.
+ (line startsWith:'-') and:[line size < 2 or:[line second isDigit not]]
+ ] whileTrue:[
firstRealIndex := firstRealIndex + 1.
idx := idx - 1.
].
@@ -2562,7 +2631,7 @@
].
^ nil "/ indexed instvar or other selected
- "Modified: / 16-05-2012 / 17:54:41 / cg"
+ "Modified: / 20-07-2012 / 11:11:10 / cg"
!
keyIndexForLine:lineNr
@@ -2643,14 +2712,16 @@
"/ hide some stuff
aList := aList copyFrom:(self baseInspectedObjectClass instSize + 1).
].
- ^ aList
- keysAndValuesCollect:[:idx :nm |
- self listEntryForName:nm value:(object instVarAt:idx)
- ].
-
+ aList := aList
+ keysAndValuesCollect:[:idx :nm |
+ self listEntryForName:nm value:(object instVarAt:idx)
+ ].
+ sortOrder == #alphabetical ifTrue:[
+ aList sort:[:a :b | a string < b string].
+ ].
^ aList
- "Modified: / 16-05-2012 / 18:43:23 / cg"
+ "Modified: / 20-07-2012 / 10:58:13 / cg"
!
numIndexedFields
@@ -3176,37 +3247,6 @@
"Modified: / 03-08-2006 / 14:27:02 / cg"
!
-setDisplayRadixTo10
- self setDisplayRadixTo:10
-
- "Created: / 24-08-2010 / 17:26:12 / cg"
-!
-
-setDisplayRadixTo16
- self setDisplayRadixTo:16
-
- "Created: / 24-08-2010 / 17:26:22 / cg"
-!
-
-setDisplayRadixTo2
- self setDisplayRadixTo:2
-
- "Created: / 24-08-2010 / 17:26:18 / cg"
-!
-
-setDisplayRadixTo:radix
- |sel|
-
- integerDisplayRadix := DefaultIntegerDisplayRadix := radix.
- self reinspect.
- sel := listView selection.
- sel notNil ifTrue:[
- self showSelection:sel
- ]
-
- "Created: / 24-08-2010 / 17:26:54 / cg"
-!
-
showLast
"user clicked on an instvar - show value in workspace"
@@ -3252,9 +3292,9 @@
!InspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/InspectorView.st,v 1.266 2012-07-18 15:17:31 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/InspectorView.st,v 1.267 2012-07-20 09:21:54 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/InspectorView.st,v 1.266 2012-07-18 15:17:31 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/InspectorView.st,v 1.267 2012-07-20 09:21:54 cg Exp $'
! !