#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Thu, 25 Jan 2018 20:08:07 +0100
changeset 17962 c8e41a89bb1e
parent 17961 d67974637c74
child 17963 e2802f2e5772
#FEATURE by cg class: DictionaryInspectorView more filtering added: #doHideNonRefObjectReferences #doShowNonRefObjectReferences changed: #fieldMenu #indexListForNameSpace #initialize
DictionaryInspectorView.st
--- a/DictionaryInspectorView.st	Thu Jan 25 19:32:18 2018 +0100
+++ b/DictionaryInspectorView.st	Thu Jan 25 20:08:07 2018 +0100
@@ -19,7 +19,7 @@
 	instanceVariableNames:'keys hideClassVars hideClasses hideUnloadedClasses hideAliases
 		hideNilValues hideLiteralValues hideColorsAndImages
 		hideSignalInstances hideEmptyCollections hideFreeSemaphores
-		hideCollectionsHoldingOnlyLiterals'
+		hideCollectionsHoldingOnlyLiterals hideNonRefObjectReferences'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Inspector'
@@ -96,6 +96,7 @@
     hideEmptyCollections := false.
     hideFreeSemaphores := false.
     hideCollectionsHoldingOnlyLiterals := false.
+    hideNonRefObjectReferences := false.
 ! !
 
 !DictionaryInspectorView methodsFor:'menu'!
@@ -230,6 +231,15 @@
                            ('Hide Collections of Literals'  doHideCollectionsHoldingOnlyLiterals )
                        ).
         ].
+        hideNonRefObjectReferences == true ifTrue:[
+            items := items , #(
+                           ('Show References to Simple Objects'  doShowNonRefObjectReferences )
+                       ).
+        ] ifFalse:[
+            items := items , #(
+                           ('Hide References to Simple Objects'  doHideNonRefObjectReferences )
+                       ).
+        ].
 
     ] ifFalse:[
         items := #(
@@ -397,6 +407,11 @@
     self reinspect
 !
 
+doHideNonRefObjectReferences
+    hideNonRefObjectReferences := true.
+    self reinspect
+!
+
 doHideSignalInstances
     hideSignalInstances := true.
     self reinspect
@@ -485,6 +500,11 @@
     self reinspect
 !
 
+doShowNonRefObjectReferences
+    hideNonRefObjectReferences := false.
+    self reinspect
+!
+
 doShowSignalInstances
     hideSignalInstances := false.
     self reinspect
@@ -677,8 +697,14 @@
         ].                   
         (hidden not and:[hideCollectionsHoldingOnlyLiterals == true]) ifTrue:[
             o isNil ifTrue:[ o := inspectedObject at:k ifAbsent:nil ].
-            (o isCollection and:[o conform:[:el | el isLiteral]]) ifTrue:[
-                hidden := true
+            (o isCollection) ifTrue:[
+                (o conform:[:el | el isLiteral]) ifTrue:[
+                    hidden := true
+                ] ifFalse:[
+                    (o conform:[:el | el isCollection and:[el conform:[:subEl | subEl isLiteral]]]) ifTrue:[
+                        hidden := true
+                    ].
+                ].
             ].
         ].                   
         (hidden not and:[hideFreeSemaphores == true]) ifTrue:[
@@ -689,6 +715,15 @@
                 hidden := true
             ].
         ].
+        (hidden not and:[hideNonRefObjectReferences == true]) ifTrue:[
+            o isNil ifTrue:[ o := inspectedObject at:k ifAbsent:nil ].
+            ((o class == Point)
+            or:[(o class == Rectangle)
+            or:[(o class == Object)]]
+            ) ifTrue:[
+                hidden := true
+            ].
+        ].
 
         hidden ifFalse:[keys add:k]
     ].