changed: #editMenu
authorClaus Gittinger <cg@exept.de>
Fri, 20 Jul 2012 11:21:54 +0200
changeset 11629 b45b48667096
parent 11628 bf59af160b56
child 11630 767544a6b3f7
changed: #editMenu alphabetical instvars
InspectorView.st
--- 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 $'
 ! !