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()); + } + } + // ///////////////////////////////////////////////////////////////////