You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/12/25 14:08:47 UTC

[32/50] isis git commit: ISIS-1221: fix by correlating member order layout (left/middle/right) to the untranslated version of MemberOrder#name

ISIS-1221: fix by correlating member order layout (left/middle/right) to the untranslated version of MemberOrder#name


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

Branch: refs/heads/ISIS-1223-upgrade-to-wicket-7
Commit: a52024dbda55fec292738ec3bec173f970e99651
Parents: 414b997
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Dec 22 15:54:46 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Dec 22 15:54:46 2015 +0000

----------------------------------------------------------------------
 .../facets/members/order/MemberOrderFacet.java  |  4 +++
 .../members/order/MemberOrderFacetAbstract.java |  6 +++++
 .../json/LayoutMetadataReaderFromJson.java      |  3 ++-
 .../spec/feature/ObjectAssociation.java         | 18 +++++++++----
 .../entity/properties/EntityPropertiesForm.java | 27 +++++++++++++-------
 5 files changed, 43 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a52024db/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
index 75d0414..bdb5652 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
@@ -56,5 +56,9 @@ public interface MemberOrderFacet extends MultipleValueFacet {
      */
     public String sequence();
 
+    /**
+     * The untranslated name of this member order (to associate back to <code>MemberOrderLayout</code>).
+     */
+    public String untranslatedName();
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a52024db/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
index 36436c5..c888094 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
@@ -33,6 +33,7 @@ public abstract class MemberOrderFacetAbstract extends MultipleValueFacetAbstrac
         return MemberOrderFacet.class;
     }
 
+    private final String originalName;
     private final String name;
     private final String sequence;
     private final TranslationService translationService;
@@ -45,6 +46,7 @@ public abstract class MemberOrderFacetAbstract extends MultipleValueFacetAbstrac
         super(type(), holder);
         this.translationService = translationService;
         this.name = translatedValueElse(name, "");
+        this.originalName = valueElse(name, "");
         this.sequence = valueElse(sequence, "1");
     }
 
@@ -73,6 +75,10 @@ public abstract class MemberOrderFacetAbstract extends MultipleValueFacetAbstrac
         return name;
     }
 
+    public String untranslatedName() {
+        return originalName;
+    }
+
     @Override
     public String sequence() {
         return sequence;

http://git-wip-us.apache.org/repos/asf/isis/blob/a52024db/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
index 1d896ab..0b344fd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
@@ -481,7 +481,8 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader2 {
 
     private static void updateColumnMemberGroups(final ObjectSpecification objectSpec, final MemberGroupLayoutHint hint, final ColumnRepr columnRepr, final Set<String> actionIdsForAssociations) {
         final List<ObjectAssociation> objectAssociations = propertiesOf(objectSpec);
-        final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(objectAssociations);
+        final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(objectAssociations,
+                Lists.<String>newArrayList());
         
         final List<String> groupNames = ObjectSpecifications.orderByMemberGroups(objectSpec, associationsByGroup.keySet(), hint);
         

http://git-wip-us.apache.org/repos/asf/isis/blob/a52024db/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
index bef0e02..5fe92bd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
@@ -398,20 +398,28 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
     public static class Util {
         private Util(){}
         
-        public static Map<String, List<ObjectAssociation>> groupByMemberOrderName(List<ObjectAssociation> associations) {
+        public static Map<String, List<ObjectAssociation>> groupByMemberOrderName(
+                final List<ObjectAssociation> associations,
+                final List<String> groupLayoutNames) {
             Map<String, List<ObjectAssociation>> associationsByGroup = Maps.newHashMap();
             for(ObjectAssociation association: associations) {
-                addAssociationIntoGroup(associationsByGroup, association);
+                addAssociationIntoGroup(associationsByGroup, association, groupLayoutNames);
             }
             return associationsByGroup;
         }
 
-        private static void addAssociationIntoGroup(Map<String, List<ObjectAssociation>> associationsByGroup, ObjectAssociation association) {
+        private static void addAssociationIntoGroup(
+                final Map<String, List<ObjectAssociation>> associationsByGroup,
+                final ObjectAssociation association,
+                final List<String> groupLayoutNames) {
             final MemberOrderFacet memberOrderFacet = association.getFacet(MemberOrderFacet.class);
             if(memberOrderFacet != null) {
                 final String name = memberOrderFacet.name();
-                if(!Strings.isNullOrEmpty(name)) {
-                    getFrom(associationsByGroup, name).add(association);
+                final String untranslatedName = memberOrderFacet.untranslatedName();
+                // correlate with the untranslated name, if possible
+                final String groupName = groupLayoutNames.contains(untranslatedName)? untranslatedName: name;
+                if(!Strings.isNullOrEmpty(groupName)) {
+                    getFrom(associationsByGroup, groupName).add(association);
                     return;
                 }
             }

http://git-wip-us.apache.org/repos/asf/isis/blob/a52024db/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 5895a7d..3edf5fa 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -147,7 +147,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
     private void buildGui() {
 
         final EntityModel entityModel = (EntityModel) getModel();
-        final ColumnSpans columnSpans = entityModel.getObject().getSpecification().getFacet(MemberGroupLayoutFacet.class).getColumnSpans();
+        MemberGroupLayoutFacet memberGroupLayoutFacet =
+                entityModel.getObject().getSpecification().getFacet(MemberGroupLayoutFacet.class);
+        final ColumnSpans columnSpans = memberGroupLayoutFacet.getColumnSpans();
 
         renderedFirstField = false;
         
@@ -157,7 +159,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
         
         boolean addedProperties;
         if(columnSpans.getLeft() > 0) {
-            addedProperties = addPropertiesInColumn(leftColumn, MemberGroupLayoutHint.LEFT, columnSpans);
+            List<String> groupLayoutNames = memberGroupLayoutFacet.getLeft();
+            addedProperties = addPropertiesInColumn(leftColumn, MemberGroupLayoutHint.LEFT, columnSpans, groupLayoutNames);
             addButtons(leftColumn);
             addFeedbackGui(leftColumn);
         } else {
@@ -173,18 +176,20 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
         
         // middle column
         if(columnSpans.getMiddle() > 0) {
+            List<String> groupLayoutNames = memberGroupLayoutFacet.getMiddle();
             MarkupContainer middleColumn = new WebMarkupContainer(ID_MIDDLE_COLUMN);
             add(middleColumn);
-            addPropertiesInColumn(middleColumn, MemberGroupLayoutHint.MIDDLE, columnSpans);
+            addPropertiesInColumn(middleColumn, MemberGroupLayoutHint.MIDDLE, columnSpans, groupLayoutNames);
         } else {
             Components.permanentlyHide(this, ID_MIDDLE_COLUMN);
         }
 
         // right column
         if(columnSpans.getRight() > 0) {
+            List<String> groupLayoutNames = memberGroupLayoutFacet.getRight();
             MarkupContainer rightColumn = new WebMarkupContainer(ID_RIGHT_COLUMN);
             add(rightColumn);
-            addPropertiesInColumn(rightColumn, MemberGroupLayoutHint.RIGHT, columnSpans);
+            addPropertiesInColumn(rightColumn, MemberGroupLayoutHint.RIGHT, columnSpans, groupLayoutNames);
         } else {
             Components.permanentlyHide(this, ID_RIGHT_COLUMN);
         }
@@ -215,7 +220,11 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
 
     }
 
-    private boolean addPropertiesInColumn(MarkupContainer markupContainer, MemberGroupLayoutHint hint, ColumnSpans columnSpans) {
+    private boolean addPropertiesInColumn(
+            final MarkupContainer markupContainer,
+            final MemberGroupLayoutHint hint,
+            final ColumnSpans columnSpans,
+            final List<String> groupLayoutNames) {
         final int span = hint.from(columnSpans);
         
         final EntityModel entityModel = (EntityModel) getModel();
@@ -227,7 +236,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
         final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
         markupContainer.add(memberGroupRv);
 
-        Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(associations);
+        final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(associations, groupLayoutNames);
         
         final List<String> groupNames = ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(), hint);
 
@@ -275,16 +284,16 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
 
     private void addPropertyToForm(
             final EntityModel entityModel,
-            final OneToOneAssociation association,
+            final OneToOneAssociation otoa,
             final WebMarkupContainer container,
             final List<LinkAndLabel> entityActions) {
-        final OneToOneAssociation otoa = association;
         final PropertyMemento pm = new PropertyMemento(otoa);
 
         final ScalarModel scalarModel = entityModel.getPropertyModel(pm);
         final Component component = getComponentFactoryRegistry().addOrReplaceComponent(container, ID_PROPERTY, ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
 
-        final List<ObjectAction> associatedActions = EntityActionUtil.getObjectActionsForAssociation(entityModel, otoa, getDeploymentType());
+        final List<ObjectAction> associatedActions = EntityActionUtil.getObjectActionsForAssociation(entityModel,
+                otoa, getDeploymentType());
 
         entityActions.addAll(EntityActionUtil.asLinkAndLabelsForAdditionalLinksPanel(entityModel, associatedActions));