Repository: isis
Updated Branches:
  refs/heads/master 9306dff52 -> ff85b71ee


FIX ISIS-1731 @Property(hidden=Where.PARENTED_TABLES) does not render
correctly in standalone collection view

Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/0cae6aa3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/0cae6aa3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/0cae6aa3

Branch: refs/heads/master
Commit: 0cae6aa3fbf2fcfd3410ea5cb72c32a91bfb52f7
Parents: 4912a4d
Author: hobrom <hob...@gmx.at>
Authored: Thu Sep 21 01:32:19 2017 +0200
Committer: hobrom <hob...@gmx.at>
Committed: Thu Sep 21 01:32:19 2017 +0200

----------------------------------------------------------------------
 .../scalars/ScalarPanelAbstract2.java           | 49 +++++++++++++-------
 1 file changed, 33 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/0cae6aa3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
----------------------------------------------------------------------
diff --git 
a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
 
b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 8678ea0..1d0a6cf 100644
--- 
a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ 
b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -187,7 +187,7 @@ public abstract class ScalarPanelAbstract2 extends 
PanelAbstract<ScalarModel> im
         }
 
         final ScalarModel scalarModel = getModel();
-        final String disableReasonIfAny = 
scalarModel.whetherDisabled(getRendering().getWhere());
+        final String disableReasonIfAny = 
scalarModel.whetherDisabled(whereAreWeRendering());
 
         if (scalarModel.isViewMode()) {
             onInitializeWhenViewMode();
@@ -398,10 +398,10 @@ public abstract class ScalarPanelAbstract2 extends 
PanelAbstract<ScalarModel> im
     protected void onConfigure() {
 
         final ScalarModel scalarModel = getModel();
-
-        final boolean hidden = 
scalarModel.whetherHidden(getRendering().getWhere());
+        
+        final boolean hidden = 
scalarModel.whetherHidden(whereAreWeRendering());
         setVisibilityAllowed(!hidden);
-
+        
         super.onConfigure();
     }
 
@@ -474,7 +474,7 @@ public abstract class ScalarPanelAbstract2 extends 
PanelAbstract<ScalarModel> im
 
     // ///////////////////////////////////////////////////////////////////
 
-
+    
     public enum Rendering {
         /**
          * Does not show labels, eg for use in tables
@@ -490,10 +490,6 @@ public abstract class ScalarPanelAbstract2 extends 
PanelAbstract<ScalarModel> im
                 panel.getComponentForRegular().setVisible(false);
             }
 
-            @Override
-            public Where getWhere() {
-                return Where.PARENTED_TABLES;
-            }
         },
         /**
          * Does show labels, eg for use in forms.
@@ -509,20 +505,14 @@ public abstract class ScalarPanelAbstract2 extends 
PanelAbstract<ScalarModel> im
                 panel.scalarIfCompact.setVisible(false);
             }
 
-            @Override
-            public Where getWhere() {
-                return Where.OBJECT_FORMS;
-            }
         };
 
         public abstract String getLabelCaption(LabeledWebMarkupContainer 
labeledContainer);
 
         public abstract void buildGui(ScalarPanelAbstract2 panel);
 
-        public abstract Where getWhere();
-
         private static Rendering renderingFor(EntityModel.RenderingHint 
renderingHint) {
-            return renderingHint.isInTable()? Rendering.COMPACT: 
Rendering.REGULAR;
+            return renderingHint.isRegular()? Rendering.REGULAR 
:Rendering.COMPACT;
         }
     }
 
@@ -530,6 +520,33 @@ public abstract class ScalarPanelAbstract2 extends 
PanelAbstract<ScalarModel> im
         return Rendering.renderingFor(scalarModel.getRenderingHint());
     }
 
+    /**
+     * Returns the current rendering context of this component, one of 
+     * <ul>
+     * <li>standalone table</li>
+     * <li>parented table</li>
+     * <li>form</li>
+     * </ul>
+     * @return
+     */
+    protected Where whereAreWeRendering() {
+        switch (scalarModel.getRenderingHint()) {
+               case PARENTED_TITLE_COLUMN:
+                       return Where.PARENTED_TABLES;
+               case STANDALONE_TITLE_COLUMN:
+                       return Where.STANDALONE_TABLES;
+               case PROPERTY_COLUMN:
+                       final ObjectAdapter parentAdapter =
+                               
scalarModel.getParentEntityModel().load(AdapterManager.ConcurrencyChecking.NO_CHECK);
+                       final boolean parented = 
parentAdapter.isParentedCollection();
+                       return parented ? Where.PARENTED_TABLES : 
Where.STANDALONE_TABLES;
+               case REGULAR:
+                       return Where.OBJECT_FORMS;
+               default:
+                       throw new RuntimeException("unmatched case 
"+scalarModel.getRenderingHint());
+               }
+    }
+    
 
     // ///////////////////////////////////////////////////////////////////
 

Reply via email to