Issue #120: Fixed regression with Inspector2 not showing custom presentations jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 09 Feb 2017 09:56:47 +0000
branchjv
changeset 17459 9f54cb54204c
parent 17391 a294c60caf42
child 17460 79ad395633e4
Issue #120: Fixed regression with Inspector2 not showing custom presentations The cause was misuse and inconsistence between #application:, #applicationHolder:, introduced by following commit: * 9ff9bed9f98e: #OTHER by stefan This commit cleans up a lot of code, making it simpler. Also fixes the regression. https://swing.fit.cvut.cz/projects/stx-jv/ticket/120
Tools__Inspector2.st
Tools__Inspector2Tab.st
--- a/Tools__Inspector2.st	Thu Feb 09 09:58:04 2017 +0000
+++ b/Tools__Inspector2.st	Thu Feb 09 09:56:47 2017 +0000
@@ -24,7 +24,7 @@
 !
 
 Model subclass:#NavigationState
-	instanceVariableNames:'application theObject index tabs selectionIndex displayString'
+	instanceVariableNames:'inspector theObject index tabs selectionIndex displayString'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:Inspector2
@@ -1305,7 +1305,7 @@
     | current new |
 
     new := NavigationState for: anObject.
-    new application:self.
+    new inspector:self.
     current := self currentState.
     (current notNil "and:[anObject isKindOf: current theObject class]") ifTrue:[ 
         | currentTabLabel newSelectionIndex |
@@ -1324,7 +1324,7 @@
     ^ new
 
     "Created: / 04-02-2015 / 15:27:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-02-2015 / 20:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 09-02-2017 / 09:27:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 setDoItActionForLanguage: language
@@ -1353,7 +1353,6 @@
     "Modified: / 10-03-2015 / 09:46:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !Inspector2::NavigationState class methodsFor:'creating classes'!
 
 for:anObject 
@@ -1378,12 +1377,9 @@
 
 !Inspector2::NavigationState methodsFor:'accessing'!
 
-application
-    ^ application
-!
-
 application:anInspectorApp
-    application := anInspectorApp.
+    <resource: #obsolete>
+    inspector := anInspectorApp.
 !
 
 index
@@ -1394,6 +1390,18 @@
     index := something.
 !
 
+inspector
+    ^ inspector
+
+    "Created: / 09-02-2017 / 09:27:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+inspector:anInspectorApp
+    inspector := anInspectorApp.
+
+    "Created: / 09-02-2017 / 09:27:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 selectionIndex
     selectionIndex isNil ifTrue:[^1].
     selectionIndex < 1 ifTrue:[^1].
@@ -1488,6 +1496,7 @@
             "kludge for ProtoObject, which does neither implement this selector
              nor #perform:"
             tab := Tools::Inspector2Tab new
+            		inspector: inspector;
                         priority: 90;
                         label:'Basic';
                         view: (InspectorView new inspect:theObject);
@@ -1500,7 +1509,7 @@
         "/ ex reject.
         Logger error:'inspector setup: %1' with:ex description.    
         tab := Tools::Inspector2Tab new
-            application:application;
+            inspector: inspector;
             label:selector;
             text:(ex description, Character cr, Character cr,
                   ex suspendedContext fullPrintAllString)
@@ -1508,9 +1517,7 @@
 
     (tab isKindOf:Tools::Inspector2Tab) ifTrue:[
         tabs add: tab.
-        tab 
-            application:application;
-            setupView.
+        tab inspector: inspector.            
     ]
 
     "Created: / 03-02-2015 / 11:03:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
--- a/Tools__Inspector2Tab.st	Thu Feb 09 09:58:04 2017 +0000
+++ b/Tools__Inspector2Tab.st	Thu Feb 09 09:56:47 2017 +0000
@@ -14,7 +14,7 @@
 "{ NameSpace: Tools }"
 
 Object subclass:#Inspector2Tab
-	instanceVariableNames:'label view application priority viewHolder applicationHolder'
+	instanceVariableNames:'inspector label view application priority'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Inspector2'
@@ -86,31 +86,41 @@
     ^ self new
             priority: 0;
             label:label;
-            viewHolder: makeView;
+            view: makeView;
             yourself
 
     "
      GenericToolbarIconLibrary systemBrowserIcon inspect
     "
+
+    "Modified: / 09-02-2017 / 00:33:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Inspector2Tab methodsFor:'accessing'!
 
-application
-    ^ application
-
-    "Created: / 16-01-2008 / 16:51:05 / janfrog"
-!
-
-application:anApplicationModelOrBlock
-    application := anApplicationModelOrBlock.
+application:anApplicationModelOrBlockOrValueModel
+    view := [ 
+        ApplicationSubView new
+            client: anApplicationModelOrBlockOrValueModel value;
+            yourself
+    ].
 
     "Created: / 16-01-2008 / 16:51:05 / janfrog"
     "Modified: / 17-02-2008 / 08:58:34 / janfrog"
+    "Modified: / 09-02-2017 / 09:23:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-applicationHolder:something
-    applicationHolder := something.
+applicationHolder:aValueModelOrBlock
+    <resource: #obsolete> "/ use #application:
+    self application: aValueModelOrBlock
+
+    "Modified: / 09-02-2017 / 09:23:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+inspector: anInspector2
+    inspector := anInspector2
+
+    "Created: / 09-02-2017 / 00:53:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 label
@@ -148,37 +158,38 @@
 
 view
     view isNil ifTrue:[
-        viewHolder notNil ifTrue:[
-            view := viewHolder value
-        ] ifFalse:[
-            applicationHolder notNil ifTrue:[
-                view := ApplicationSubView new.
-                view client: applicationHolder value.
-            ]
+        application notNil ifTrue:[
+            view := ApplicationSubView new.
+            view client: application value.
         ]
+    ] ifFalse:[
+        view isBlock ifTrue:[ 
+            view := view value.
+        ].
     ].
+    self setupView.
     ^ view
 
     "Created: / 16-01-2008 / 16:51:05 / janfrog"
     "Modified: / 17-02-2008 / 10:38:59 / janfrog"
     "Modified: / 13-06-2012 / 14:57:25 / cg"
-    "Modified: / 24-03-2014 / 18:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 09-02-2017 / 09:24:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-view:aViewOrBlock
-    aViewOrBlock isBlock ifTrue:[ 
-        viewHolder := aViewOrBlock
-    ] ifFalse:[
-        view := aViewOrBlock.
-    ]
+view:aViewOrBlockOrValueModel
+    view := aViewOrBlockOrValueModel.
+
 
     "Created: / 16-01-2008 / 16:51:05 / janfrog"
     "Modified: / 17-02-2008 / 08:58:46 / janfrog"
     "Modified: / 21-05-2015 / 21:31:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-viewHolder:something
-    viewHolder := something.
+viewHolder:aValueModelOrBlock
+    <resource: #obsolete> "/ use #view:
+    self view: aValueModelOrBlock
+
+    "Modified: / 09-02-2017 / 09:23:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 viewOrNil
@@ -193,11 +204,13 @@
 
     (view respondsTo:#setMasterInspectorApplication:) ifTrue:[ 
         "this is for BridgeOjectInspectorView"
-        view setMasterInspectorApplication:application.
+        view setMasterInspectorApplication:inspector.
     ].
     (view respondsTo:#sortOrderHolder:) ifTrue:[ 
-        view sortOrderHolder:(application sortOrderHolder)
+        view sortOrderHolder:(inspector sortOrderHolder)
     ].
+
+    "Modified: / 09-02-2017 / 09:24:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Inspector2Tab class methodsFor:'documentation'!