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));