You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/01/09 10:10:47 UTC
[1/5] isis git commit: ISIS-993: started working on adding a fixed
column to right hand side
Repository: isis
Updated Branches:
refs/heads/ISIS-993 70397aadf -> 873cc2e2e
ISIS-993: started working on adding a fixed column to right hand side
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3bfcae8c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3bfcae8c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3bfcae8c
Branch: refs/heads/ISIS-993
Commit: 3bfcae8c355af10e0a7dec037a17750ecdffe05f
Parents: 70397aa
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Jan 8 18:48:16 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Jan 8 18:49:56 2016 +0000
----------------------------------------------------------------------
.../apache/isis/applib/layout/v1_0/Column.java | 6 ++---
.../isis/applib/layout/v1_0/ColumnHolder.java | 23 ++++++++++++++++++++
.../org/apache/isis/applib/layout/v1_0/Tab.java | 2 +-
.../isis/applib/layout/v1_0/TabGroup.java | 13 ++++++++++-
.../ObjectLayoutMetadataServiceDefault.java | 12 ++++++----
.../metamodel/spec/ObjectSpecifications.java | 6 ++---
.../viewer/wicket/model/models/EntityModel.java | 1 -
.../collections/EntityCollectionsPanel.java | 4 +++-
.../entity/properties/EntityPropertiesForm.java | 17 ++++++---------
.../EntityTabGroupsPanel$EntityTabPanel.html | 1 -
.../entity/tabgroups/EntityTabGroupsPanel.html | 7 ++++--
.../entity/tabgroups/EntityTabGroupsPanel.java | 2 ++
12 files changed, 67 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
index 1f5ca23..f208a7f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
@@ -84,7 +84,7 @@ public class Column implements Serializable {
}
- private Tab owner;
+ private ColumnHolder owner;
/**
* Owner.
*
@@ -93,11 +93,11 @@ public class Column implements Serializable {
* </p>
*/
@XmlTransient
- public Tab getOwner() {
+ public ColumnHolder getOwner() {
return owner;
}
- public void setOwner(final Tab owner) {
+ public void setOwner(final ColumnHolder owner) {
this.owner = owner;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java
new file mode 100644
index 0000000..8211750
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.applib.layout.v1_0;
+
+public interface ColumnHolder {
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
index 04d2542..4f0a5c3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
@@ -40,7 +40,7 @@ import org.apache.isis.applib.annotation.Programmatic;
, "right"
}
)
-public class Tab implements Serializable {
+public class Tab implements ColumnHolder, Serializable {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
index 7547d5e..6fb93ee 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
@@ -30,7 +30,7 @@ import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
@XmlType()
-public class TabGroup implements Serializable {
+public class TabGroup implements ColumnHolder, Serializable {
private static final long serialVersionUID = 1L;
@@ -53,6 +53,17 @@ public class TabGroup implements Serializable {
+ private Column fixed;
+
+ @XmlElement(required = false)
+ public Column getFixed() {
+ return fixed;
+ }
+
+ public void setFixed(final Column fixed) {
+ this.fixed = fixed;
+ }
+
private ObjectLayoutMetadata owner;
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
index 972999d..e2a2e1d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
@@ -42,6 +42,7 @@ import org.apache.isis.applib.layout.v1_0.ActionHolder;
import org.apache.isis.applib.layout.v1_0.ActionLayoutMetadata;
import org.apache.isis.applib.layout.v1_0.CollectionLayoutMetadata;
import org.apache.isis.applib.layout.v1_0.Column;
+import org.apache.isis.applib.layout.v1_0.ColumnHolder;
import org.apache.isis.applib.layout.v1_0.ObjectLayoutMetadata;
import org.apache.isis.applib.layout.v1_0.PropertyGroup;
import org.apache.isis.applib.layout.v1_0.PropertyLayoutMetadata;
@@ -407,10 +408,13 @@ public class ObjectLayoutMetadataServiceDefault
// if there is only a single column and no other contents, then copy the collection Id onto the tab'
final Column column = collectionLayoutMetadata.getOwner();
- final Tab tab = column.getOwner();
- if(tab.getContents().size() == 1) {
- final String collectionName = oneToManyAssociation.getName();
- tab.setName(collectionName);
+ final ColumnHolder holder = column.getOwner();
+ if(holder instanceof Tab) {
+ final Tab tab = (Tab) holder;
+ if(tab.getContents().size() == 1) {
+ final String collectionName = oneToManyAssociation.getName();
+ tab.setName(collectionName);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
index 7fee60b..2c24f0d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
@@ -59,7 +59,7 @@ public final class ObjectSpecifications {
public static List<String> orderByMemberGroups(
final ObjectSpecification objSpec,
final Set<String> groupNamesToOrder,
- final MemberGroupLayoutHint memberGroupLayoutHint) {
+ final MemberGroupLayoutHint hint) {
final MemberGroupLayoutFacet facet = objSpec.getFacet(MemberGroupLayoutFacet.class);
final List<String> leftColumnGroupNames = Lists.newArrayList(groupNamesToOrder);
@@ -69,10 +69,10 @@ public final class ObjectSpecifications {
return leftColumnGroupNames;
}
- if(memberGroupLayoutHint == MemberGroupLayoutHint.MIDDLE) {
+ if(hint == MemberGroupLayoutHint.MIDDLE) {
return facet.getColumnSpans().getMiddle()>0? facet.getMiddle(): Collections.<String>emptyList();
}
- if(memberGroupLayoutHint == MemberGroupLayoutHint.RIGHT) {
+ if(hint == MemberGroupLayoutHint.RIGHT) {
return facet.getColumnSpans().getRight()>0? facet.getRight(): Collections.<String>emptyList();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 9838163..53b6bd1 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -652,7 +652,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
public EntityModel withColumnMetadata(final Column columnMetadata) {
this.columnMetadata = columnMetadata;
- this.tabMetadata = columnMetadata.getOwner();
return this;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index 81b83c4..cf6f1d9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -123,7 +123,9 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
public int compare(final ObjectAssociation o1, final ObjectAssociation o2) {
final MemberOrderFacet o1Facet = o1.getFacet(MemberOrderFacet.class);
final MemberOrderFacet o2Facet = o2.getFacet(MemberOrderFacet.class);
- return deweyOrderComparator.compare(o1Facet.sequence(), o2Facet.sequence());
+ return o1Facet == null? +1:
+ o2Facet == null? -1:
+ deweyOrderComparator.compare(o1Facet.sequence(), o2Facet.sequence());
}
});
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/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 adc9262..3f2771d 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
@@ -242,9 +242,10 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
final MarkupContainer col,
final MemberGroupLayoutHint hint,
final EntityModel entityModel,
- final Tab tabMetaDataIfAny, final ColumnSpans columnSpans) {
- final boolean addedProperties;
- addedProperties = addPropertiesInColumn(col, hint, entityModel, tabMetaDataIfAny, columnSpans);
+ final Tab tabMetaDataIfAny,
+ final ColumnSpans columnSpans) {
+ final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint.from(tabMetaDataIfAny) : null;
+ final boolean addedProperties = addPropertiesInColumn(col, hint, entityModel, columnSpans, columnMetaDataIfAny);
addCollectionsIfRequired(col, hint, entityModel, tabMetaDataIfAny);
return addedProperties;
}
@@ -253,15 +254,11 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
final MarkupContainer markupContainer,
final MemberGroupLayoutHint hint,
final EntityModel entityModel,
- final Tab tabMetaDataIfAny,
- final ColumnSpans columnSpans) {
+ final ColumnSpans columnSpans, final Column columnMetaDataIfAny) {
final int span = hint.from(columnSpans);
-
final ObjectAdapter adapter = entityModel.getObject();
final ObjectSpecification objSpec = adapter.getSpecification();
- final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint.from(tabMetaDataIfAny) : null;
-
final List<ObjectAssociation> properties = visibleProperties(adapter);
final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
@@ -269,7 +266,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(properties);
- final List<String> groupNames = tabMetaDataIfAny != null
+ final List<String> groupNames = columnMetaDataIfAny != null
? FluentIterable
.from(columnMetaDataIfAny.getPropertyGroups())
.transform(PropertyGroup.Util.nameOf())
@@ -312,7 +309,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
actionsPanelDropDown,
AdditionalLinksPanel.Style.DROPDOWN);
}
-
+
addClassForSpan(markupContainer, span);
return !groupNames.isEmpty();
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
index 94582b1..025253b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
@@ -22,7 +22,6 @@
<wicket:panel>
<div class="tabPanel">
<div wicket:id="entityPropertiesAndCollections"></div>
-
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
index ebe6c63..fded796 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
@@ -24,9 +24,12 @@
<div wicket:id="entitySummary"></div>
<div wicket:id="tabGroups">
- <div wicket:id="tabGroup">[tabbed panel will be here]</div>
+ <div class="row">
+ <div wicket:id="tabGroup" class="col-xs-8">[tabbed panel will be here]</div>
+ <div XXXXwicket:id="collections" class = "fixedColumn col-xs-4">
+ </div>
+ </div>
</div>
-
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/3bfcae8c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
index fec95d0..2667d05 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
@@ -112,6 +112,8 @@ public class EntityTabGroupsPanel extends PanelAbstract<EntityModel> {
}
};
add(tabGroupsList);
+
+
}
private static class EntityTabPanel extends PanelAbstract {
[3/5] isis git commit: ISIS-993: refactoring EntityPropertiesForm so
can factor out a new component.
Posted by da...@apache.org.
ISIS-993: refactoring EntityPropertiesForm so can factor out a new component.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/cd82ef82
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/cd82ef82
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/cd82ef82
Branch: refs/heads/ISIS-993
Commit: cd82ef82afcb98bcb26d39ce227d8fe7c605f6f4
Parents: 9597245
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Jan 9 08:15:10 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Jan 9 08:15:10 2016 +0000
----------------------------------------------------------------------
.../entity/properties/EntityColumnMembers.html | 46 +++++++++
.../entity/properties/EntityPropertiesForm.java | 98 +++++++++-----------
.../properties/EntityPropertiesPanel.html | 96 ++++++++++---------
.../components/entity/properties/PropUtil.java | 68 ++++++++++++++
.../entity/tabgroups/EntityTabGroupsPanel.html | 4 +-
5 files changed, 211 insertions(+), 101 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/cd82ef82/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.html
new file mode 100644
index 0000000..07ca0f3
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.html
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+ <body>
+ <wicket:panel>
+ <div wicket:id="columnMembers" class="columnMembers">
+ <div class="inputFormTable properties">
+ <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
+ <div class="pull-right additionalLinks">
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ </div>
+ </div>
+ <div class="properties panel-body">
+ <div wicket:id="properties">
+ <div wicket:id="property" class="property">[property]</div>
+ </div>
+ </div>
+ </div>
+ </fieldset>
+ </div>
+ <div wicket:id="collections"></div>
+ </div>
+ </wicket:panel>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/cd82ef82/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 3f2771d..f0ba38d 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
@@ -176,8 +176,29 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
boolean addedProperties;
if(columnSpans.getLeft() > 0) {
- addedProperties = addPropertiesAndCollections(
- leftColumn, MemberGroupLayoutHint.LEFT, entityModel, tabMetaDataIfAny, columnSpans);
+ final MemberGroupLayoutHint hint = MemberGroupLayoutHint.LEFT;
+
+ final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint
+ .from(tabMetaDataIfAny) : null;
+ addPropertiesAndCollections(leftColumn, hint, entityModel,
+ columnSpans, columnMetaDataIfAny);
+
+ final ObjectAdapter adapter = entityModel.getObject();
+ final ObjectSpecification objSpec = adapter.getSpecification();
+
+ final Map<String, List<ObjectAssociation>> associationsByGroup =
+ PropUtil
+ .propertiesByMemberOrder(adapter);
+
+ final List<String> groupNames = columnMetaDataIfAny != null
+ ? FluentIterable
+ .from(columnMetaDataIfAny.getPropertyGroups())
+ .transform(PropertyGroup.Util.nameOf())
+ .toList()
+ : ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(),
+ hint);
+
+ addedProperties = !groupNames.isEmpty();
addButtons(leftColumn);
addFeedbackGui(leftColumn);
} else {
@@ -195,8 +216,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
if(columnSpans.getMiddle() > 0) {
MarkupContainer middleColumn = new WebMarkupContainer(ID_MIDDLE_COLUMN);
add(middleColumn);
- addPropertiesAndCollections(
- middleColumn, MemberGroupLayoutHint.MIDDLE, entityModel, tabMetaDataIfAny, columnSpans);
+ final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? MemberGroupLayoutHint.MIDDLE
+ .from(tabMetaDataIfAny) : null;
+ addPropertiesAndCollections(middleColumn, MemberGroupLayoutHint.MIDDLE, entityModel, columnSpans, columnMetaDataIfAny);
} else {
Components.permanentlyHide(this, ID_MIDDLE_COLUMN);
}
@@ -205,8 +227,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
if(columnSpans.getRight() > 0) {
MarkupContainer rightColumn = new WebMarkupContainer(ID_RIGHT_COLUMN);
add(rightColumn);
- addPropertiesAndCollections(
- rightColumn, MemberGroupLayoutHint.RIGHT, entityModel, tabMetaDataIfAny, columnSpans);
+ final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? MemberGroupLayoutHint.RIGHT
+ .from(tabMetaDataIfAny) : null;
+ addPropertiesAndCollections(rightColumn, MemberGroupLayoutHint.RIGHT, entityModel, columnSpans, columnMetaDataIfAny);
} else {
Components.permanentlyHide(this, ID_RIGHT_COLUMN);
}
@@ -238,19 +261,16 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
}
- private boolean addPropertiesAndCollections(
+ private void addPropertiesAndCollections(
final MarkupContainer col,
final MemberGroupLayoutHint hint,
final EntityModel entityModel,
- final Tab tabMetaDataIfAny,
- final ColumnSpans columnSpans) {
- final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint.from(tabMetaDataIfAny) : null;
- final boolean addedProperties = addPropertiesInColumn(col, hint, entityModel, columnSpans, columnMetaDataIfAny);
- addCollectionsIfRequired(col, hint, entityModel, tabMetaDataIfAny);
- return addedProperties;
+ final ColumnSpans columnSpans, final Column columnMetaDataIfAny) {
+ addPropertiesInColumn(col, hint, entityModel, columnSpans, columnMetaDataIfAny);
+ addCollectionsIfRequired(col, entityModel, columnMetaDataIfAny);
}
- private boolean addPropertiesInColumn(
+ private void addPropertiesInColumn(
final MarkupContainer markupContainer,
final MemberGroupLayoutHint hint,
final EntityModel entityModel,
@@ -259,13 +279,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
final ObjectAdapter adapter = entityModel.getObject();
final ObjectSpecification objSpec = adapter.getSpecification();
- final List<ObjectAssociation> properties = visibleProperties(adapter);
-
- final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
- markupContainer.add(memberGroupRv);
-
- final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(properties);
-
+ final Map<String, List<ObjectAssociation>> associationsByGroup = PropUtil
+ .propertiesByMemberOrder(adapter);
final List<String> groupNames = columnMetaDataIfAny != null
? FluentIterable
.from(columnMetaDataIfAny.getPropertyGroups())
@@ -273,6 +288,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
.toList()
: ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(), hint);
+ final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
+ markupContainer.add(memberGroupRv);
+
for(final String groupName: groupNames) {
final List<ObjectAssociation> associationsInGroup = associationsByGroup.get(groupName);
if(associationsInGroup==null) {
@@ -311,19 +329,15 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
addClassForSpan(markupContainer, span);
-
- return !groupNames.isEmpty();
}
private void addCollectionsIfRequired(
final MarkupContainer column,
- final MemberGroupLayoutHint hint,
final EntityModel entityModel,
- final Tab tabMetaDataIfAny) {
-
- if(tabMetaDataIfAny != null) {
- final Column columnMetadata = hint.from(tabMetaDataIfAny);
- final EntityModel modelWithMetadata = new EntityModel(entityModel.getPageParameters()).withColumnMetadata(columnMetadata);
+ final Column columnMetaDataIfAny) {
+ if(columnMetaDataIfAny != null) {
+ final EntityModel modelWithMetadata = new EntityModel(entityModel.getPageParameters()).withColumnMetadata(
+ columnMetaDataIfAny);
getComponentFactoryRegistry()
.addOrReplaceComponent(column, "collections", ComponentType.ENTITY_COLLECTIONS, modelWithMetadata);
} else {
@@ -352,30 +366,6 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
}
- private List<ObjectAssociation> visibleProperties(final ObjectAdapter adapter) {
- return visibleProperties(adapter, Filters.<ObjectAssociation>any());
- }
-
- private List<ObjectAssociation> visibleProperties(
- final ObjectAdapter adapter,
- final Filter<ObjectAssociation> filter) {
- final ObjectSpecification objSpec = adapter.getSpecification();
-
- return objSpec.getAssociations(
- Contributed.INCLUDED, visiblePropertiesFilter(adapter, filter));
- }
-
- @SuppressWarnings("unchecked")
- private static Filter<ObjectAssociation> visiblePropertiesFilter(
- final ObjectAdapter adapter,
- final Filter<ObjectAssociation> filter) {
- return Filters.and(
- ObjectAssociation.Filters.PROPERTIES,
- ObjectAssociation.Filters.dynamicallyVisible(
- adapter, InteractionInitiatedBy.USER, Where.OBJECT_FORMS),
- filter);
- }
-
@Override
protected void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
@@ -815,7 +805,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
- private static void addClassForSpan(final Component component, final int numGridCols) {
+ static void addClassForSpan(final Component component, final int numGridCols) {
component.add(new CssClassAppender("col-xs-"+numGridCols));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cd82ef82/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index ad8872a..9b8a582 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -24,25 +24,27 @@
<form wicket:id="entityProperties" class="inputForm" role="form">
<div class="row" style="padding-bottom: 20px">
<div wicket:id="leftColumn">
- <div class="inputFormTable properties">
- <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="pull-right additionalLinks">
- <div wicket:id="associatedActionLinksPanel"></div>
- <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ <div class="columnMembers">
+ <div class="inputFormTable properties">
+ <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
+ <div class="pull-right additionalLinks">
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ </div>
</div>
- </div>
- <div class="properties panel-body">
- <div wicket:id="properties">
- <div wicket:id="property" class="property">[property]</div>
+ <div class="properties panel-body">
+ <div wicket:id="properties">
+ <div wicket:id="property" class="property">[property]</div>
+ </div>
</div>
</div>
- </div>
- </fieldset>
+ </fieldset>
+ </div>
+ <div wicket:id="collections"></div>
</div>
- <div wicket:id="collections"></div>
<div class="feedbackPanel">
<span wicket:id="feedback"></span>
</div>
@@ -53,46 +55,50 @@
</div>
</div>
<div wicket:id="middleColumn">
- <div class="inputFormTable properties">
- <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="pull-right additionalLinks">
- <div wicket:id="associatedActionLinksPanel"></div>
- <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ <div class="columnMembers">
+ <div class="inputFormTable properties">
+ <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
+ <div class="pull-right additionalLinks">
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ </div>
</div>
- </div>
- <div class="properties panel-body">
- <div wicket:id="properties">
- <div wicket:id="property" class="property">[property]</div>
+ <div class="properties panel-body">
+ <div wicket:id="properties">
+ <div wicket:id="property" class="property">[property]</div>
+ </div>
</div>
</div>
- </div>
- </fieldset>
+ </fieldset>
+ </div>
+ <div wicket:id="collections"></div>
</div>
- <div wicket:id="collections"></div>
</div>
<div wicket:id="rightColumn">
- <div class="inputFormTable properties">
- <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="pull-right additionalLinks">
- <div wicket:id="associatedActionLinksPanel"></div>
- <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ <div class="columnMembers">
+ <div class="inputFormTable properties">
+ <fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
+ <div class="pull-right additionalLinks">
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ </div>
</div>
- </div>
- <div class="properties panel-body">
- <div wicket:id="properties">
- <div wicket:id="property" class="property">[property]</div>
+ <div class="properties panel-body">
+ <div wicket:id="properties">
+ <div wicket:id="property" class="property">[property]</div>
+ </div>
</div>
</div>
- </div>
- </fieldset>
+ </fieldset>
+ </div>
+ <div wicket:id="collections"></div>
</div>
- <div wicket:id="collections"></div>
</div>
<div wicket:id="entityCollections"></div>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/cd82ef82/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
new file mode 100644
index 0000000..23a9a8d
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.viewer.wicket.ui.components.entity.properties;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.filter.Filter;
+import org.apache.isis.applib.filter.Filters;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.Contributed;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+
+public final class PropUtil {
+
+ private PropUtil() {
+ }
+
+ static Map<String, List<ObjectAssociation>> propertiesByMemberOrder(final ObjectAdapter adapter) {
+ final List<ObjectAssociation> properties = visibleProperties(adapter);
+ return ObjectAssociation.Util.groupByMemberOrderName(properties);
+ }
+
+ private static List<ObjectAssociation> visibleProperties(final ObjectAdapter adapter) {
+ return visibleProperties(adapter, Filters.<ObjectAssociation>any());
+ }
+
+ private static List<ObjectAssociation> visibleProperties(
+ final ObjectAdapter adapter,
+ final Filter<ObjectAssociation> filter) {
+ final ObjectSpecification objSpec = adapter.getSpecification();
+
+ return objSpec.getAssociations(
+ Contributed.INCLUDED, visiblePropertiesFilter(adapter, filter));
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Filter<ObjectAssociation> visiblePropertiesFilter(
+ final ObjectAdapter adapter,
+ final Filter<ObjectAssociation> filter) {
+ return Filters.and(
+ ObjectAssociation.Filters.PROPERTIES,
+ ObjectAssociation.Filters.dynamicallyVisible(
+ adapter, InteractionInitiatedBy.USER, Where.OBJECT_FORMS),
+ filter);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/cd82ef82/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
index fded796..4e45e96 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
@@ -25,8 +25,8 @@
<div wicket:id="tabGroups">
<div class="row">
- <div wicket:id="tabGroup" class="col-xs-8">[tabbed panel will be here]</div>
- <div XXXXwicket:id="collections" class = "fixedColumn col-xs-4">
+ <div wicket:id="tabGroup" class="col-xs-12">[tabbed panel will be here]</div>
+ <div XXXXwicket:id="entityColumnMembers" class = "fixedColumn col-xs-4">
</div>
</div>
</div>
[2/5] isis git commit: ISIS-993: add the ObjectLayoutMetadata#actions
collection if null
Posted by da...@apache.org.
ISIS-993: add the ObjectLayoutMetadata#actions collection if null
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9597245f
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9597245f
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9597245f
Branch: refs/heads/ISIS-993
Commit: 9597245f8d27db5320031ca7db465fa5da92f1b0
Parents: 3bfcae8
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Jan 9 07:46:49 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Jan 9 07:47:09 2016 +0000
----------------------------------------------------------------------
.../services/layout/ObjectLayoutMetadataServiceDefault.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9597245f/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
index e2a2e1d..3080769 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
@@ -272,7 +272,12 @@ public class ObjectLayoutMetadataServiceDefault
if(!missingActionIds.isEmpty()) {
for (String actionId : missingActionIds) {
- metadata.getActions().add(new ActionLayoutMetadata(actionId));
+ List<ActionLayoutMetadata> actions = metadata.getActions();
+ if(actions == null) {
+ actions = Lists.newArrayList();
+ metadata.setActions(actions);
+ }
+ actions.add(new ActionLayoutMetadata(actionId));
}
}
}
[4/5] isis git commit: ISIS-993: further refactoring,
working towards factoring out EntityColumnMembers. However getting an
exception when there are two tab groups (with the id/feedback... not sure why
yet).
Posted by da...@apache.org.
ISIS-993: further refactoring, working towards factoring out EntityColumnMembers. However getting an exception when there are two tab groups (with the id/feedback... not sure why yet).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9ff3c29d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9ff3c29d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9ff3c29d
Branch: refs/heads/ISIS-993
Commit: 9ff3c29d8d5c03a9bb4c6d1d605222cca83731e6
Parents: cd82ef8
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Jan 9 09:07:21 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Jan 9 09:07:21 2016 +0000
----------------------------------------------------------------------
.../apache/isis/applib/layout/v1_0/Column.java | 24 ++++
.../json/LayoutMetadataReaderFromJson.java | 10 +-
.../metamodel/spec/ObjectSpecifications.java | 28 +---
.../viewer/wicket/model/models/EntityModel.java | 19 ++-
.../entity/properties/EntityColumnMembers.java | 50 ++++++++
.../entity/properties/EntityPropertiesForm.java | 128 ++++++++++---------
.../components/entity/properties/PropUtil.java | 25 +++-
.../dom/simple/SimpleObject.layout.xml | 10 +-
8 files changed, 194 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
index f208a7f..fc8ec6d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
@@ -28,6 +28,8 @@ import javax.xml.bind.annotation.XmlType;
import com.google.common.collect.Lists;
+import org.apache.isis.applib.annotation.MemberGroupLayout;
+
@XmlType(
propOrder = {
"propertyGroups"
@@ -101,5 +103,27 @@ public class Column implements Serializable {
this.owner = owner;
}
+ public enum Hint {
+ LEFT,
+ MIDDLE,
+ RIGHT;
+
+ public int from(MemberGroupLayout.ColumnSpans columnSpans) {
+ if(this == LEFT) return columnSpans.getLeft();
+ if(this == MIDDLE) return columnSpans.getMiddle();
+ if(this == RIGHT) return columnSpans.getRight();
+ throw new IllegalStateException();
+ }
+
+ public Column from(final Tab tab) {
+ if(tab == null) {
+ return null;
+ }
+ if(this == LEFT) return tab.getLeft();
+ if(this == MIDDLE) return tab.getMiddle();
+ if(this == RIGHT) return tab.getRight();
+ throw new IllegalStateException();
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/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 215c202..0a29c6f 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
@@ -81,7 +81,7 @@ import org.apache.isis.core.metamodel.layoutmetadata.TypicalLengthFacetRepr;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
-import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
+import org.apache.isis.applib.layout.v1_0.Column.Hint;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -462,13 +462,13 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader2 {
ColumnRepr columnRepr;
columnRepr = addColumnWithSpan(metadata, columnSpans.getLeft());
- updateColumnMemberGroups(objectSpec, MemberGroupLayoutHint.LEFT, columnRepr, actionIdsForAssociations);
+ updateColumnMemberGroups(objectSpec, Hint.LEFT, columnRepr, actionIdsForAssociations);
columnRepr = addColumnWithSpan(metadata, columnSpans.getMiddle());
- updateColumnMemberGroups(objectSpec, MemberGroupLayoutHint.MIDDLE, columnRepr, actionIdsForAssociations);
+ updateColumnMemberGroups(objectSpec, Hint.MIDDLE, columnRepr, actionIdsForAssociations);
columnRepr = addColumnWithSpan(metadata, columnSpans.getRight());
- updateColumnMemberGroups(objectSpec, MemberGroupLayoutHint.RIGHT, columnRepr, actionIdsForAssociations);
+ updateColumnMemberGroups(objectSpec, Hint.RIGHT, columnRepr, actionIdsForAssociations);
columnRepr = addColumnWithSpan(metadata, columnSpans.getCollections());
updateCollectionColumnRepr(objectSpec, columnRepr, actionIdsForAssociations);
@@ -479,7 +479,7 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader2 {
return gson.toJson(metadata);
}
- private static void updateColumnMemberGroups(final ObjectSpecification objectSpec, final MemberGroupLayoutHint hint, final ColumnRepr columnRepr, final Set<String> actionIdsForAssociations) {
+ private static void updateColumnMemberGroups(final ObjectSpecification objectSpec, final Hint hint, final ColumnRepr columnRepr, final Set<String> actionIdsForAssociations) {
final List<ObjectAssociation> objectAssociations = propertiesOf(objectSpec);
final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(objectAssociations
);
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
index 2c24f0d..b184d35 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
@@ -25,9 +25,7 @@ import java.util.Set;
import com.google.common.collect.Lists;
-import org.apache.isis.applib.annotation.MemberGroupLayout.ColumnSpans;
import org.apache.isis.applib.layout.v1_0.Column;
-import org.apache.isis.applib.layout.v1_0.Tab;
import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
@@ -36,30 +34,10 @@ public final class ObjectSpecifications {
private ObjectSpecifications() {
}
- public enum MemberGroupLayoutHint {
- LEFT,
- MIDDLE,
- RIGHT;
-
- public int from(ColumnSpans columnSpans) {
- if(this == LEFT) return columnSpans.getLeft();
- if(this == MIDDLE) return columnSpans.getMiddle();
- if(this == RIGHT) return columnSpans.getRight();
- throw new IllegalStateException();
- }
-
- public Column from(final Tab tab) {
- if(this == LEFT) {return tab.getLeft();}
- if(this == MIDDLE) return tab.getMiddle();
- if(this == RIGHT) return tab.getRight();
- throw new IllegalStateException();
- }
- }
-
public static List<String> orderByMemberGroups(
final ObjectSpecification objSpec,
final Set<String> groupNamesToOrder,
- final MemberGroupLayoutHint hint) {
+ final Column.Hint hint) {
final MemberGroupLayoutFacet facet = objSpec.getFacet(MemberGroupLayoutFacet.class);
final List<String> leftColumnGroupNames = Lists.newArrayList(groupNamesToOrder);
@@ -69,10 +47,10 @@ public final class ObjectSpecifications {
return leftColumnGroupNames;
}
- if(hint == MemberGroupLayoutHint.MIDDLE) {
+ if(hint == Column.Hint.MIDDLE) {
return facet.getColumnSpans().getMiddle()>0? facet.getMiddle(): Collections.<String>emptyList();
}
- if(hint == MemberGroupLayoutHint.RIGHT) {
+ if(hint == Column.Hint.RIGHT) {
return facet.getColumnSpans().getRight()>0? facet.getRight(): Collections.<String>emptyList();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 53b6bd1..bebb67c 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -44,7 +44,7 @@ import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolic
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
+import org.apache.isis.applib.layout.v1_0.Column.Hint;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.services.memento.MementoServiceDefault;
@@ -130,7 +130,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
private Mode mode = Mode.VIEW;
private RenderingHint renderingHint = RenderingHint.REGULAR;
private final Map<PropertyMemento, ScalarModel> propertyScalarModels = Maps.newHashMap();
- private MemberGroupLayoutHint memberGroupLayoutHint;
+ private Hint hint;
/**
* Toggled by 'entityDetailsButton'.
@@ -451,11 +451,11 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
entityDetailsVisible = !entityDetailsVisible;
}
- public MemberGroupLayoutHint getMemberGroupLayoutHint() {
- return memberGroupLayoutHint;
+ public Hint getHint() {
+ return hint;
}
- public void setMemberGroupLayoutHint(MemberGroupLayoutHint memberGroupLayoutHint) {
- this.memberGroupLayoutHint = memberGroupLayoutHint;
+ public void setHint(Hint hint) {
+ this.hint = hint;
}
@@ -649,15 +649,20 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
private Column columnMetadata;
+ private Column.Hint columnHint;
- public EntityModel withColumnMetadata(final Column columnMetadata) {
+ public EntityModel withColumnMetadata(final Column columnMetadata, final Column.Hint columnHint) {
this.columnMetadata = columnMetadata;
+ this.columnHint = columnHint;
return this;
}
public Column getColumnMetadata() {
return columnMetadata;
}
+ public Column.Hint getColumnHint() {
+ return columnHint;
+ }
// //////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.java
new file mode 100644
index 0000000..805a904
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityColumnMembers.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.viewer.wicket.ui.components.entity.properties;
+
+import org.apache.wicket.Component;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.ui.panels.FormAbstract;
+
+public class EntityColumnMembers extends FormAbstract<ObjectAdapter> {
+
+ private static final long serialVersionUID = 1L;
+
+
+ private final Component owningPanel;
+
+ public EntityColumnMembers(
+ final String id,
+ final EntityModel entityModel,
+ final Component owningPanel) {
+
+ super(id, entityModel);
+ this.owningPanel = owningPanel; // for repainting
+
+ buildGui();
+ }
+
+ private void buildGui() {
+
+ final EntityModel entityModel = (EntityModel) getModel();
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/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 f0ba38d..1f8792a 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
@@ -64,7 +64,7 @@ import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayo
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
-import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
+import org.apache.isis.applib.layout.v1_0.Column.Hint;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -151,7 +151,6 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
private void buildGui() {
final EntityModel entityModel = (EntityModel) getModel();
-
final Tab tabMetaDataIfAny = entityModel.getTabMetadata();
final ColumnSpans columnSpans;
@@ -169,71 +168,71 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
renderedFirstField = false;
-
+
// left column
+ // (unlike middle and right columns, the left column is always added to hold the edit buttons and feedback)
MarkupContainer leftColumn = new WebMarkupContainer(ID_LEFT_COLUMN);
add(leftColumn);
-
- boolean addedProperties;
- if(columnSpans.getLeft() > 0) {
- final MemberGroupLayoutHint hint = MemberGroupLayoutHint.LEFT;
-
- final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint
- .from(tabMetaDataIfAny) : null;
- addPropertiesAndCollections(leftColumn, hint, entityModel,
- columnSpans, columnMetaDataIfAny);
-
- final ObjectAdapter adapter = entityModel.getObject();
- final ObjectSpecification objSpec = adapter.getSpecification();
- final Map<String, List<ObjectAssociation>> associationsByGroup =
- PropUtil
- .propertiesByMemberOrder(adapter);
+ if(columnSpans.getLeft() > 0) {
- final List<String> groupNames = columnMetaDataIfAny != null
- ? FluentIterable
- .from(columnMetaDataIfAny.getPropertyGroups())
- .transform(PropertyGroup.Util.nameOf())
- .toList()
- : ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(),
- hint);
+ addPropertiesAndCollections(leftColumn, entityModel, tabMetaDataIfAny, Hint.LEFT);
- addedProperties = !groupNames.isEmpty();
- addButtons(leftColumn);
- addFeedbackGui(leftColumn);
} else {
Components.permanentlyHide(this, ID_LEFT_COLUMN);
- addedProperties = false;
}
- if(!addedProperties) {
- // a bit hacky...
- Components.permanentlyHide(this,
- ID_EDIT_BUTTON, ID_OK_BUTTON, ID_CANCEL_BUTTON,
- ID_FEEDBACK);
- }
-
+
// middle column
+ MarkupContainer middleColumn;
if(columnSpans.getMiddle() > 0) {
- MarkupContainer middleColumn = new WebMarkupContainer(ID_MIDDLE_COLUMN);
+ middleColumn = new WebMarkupContainer(ID_MIDDLE_COLUMN);
add(middleColumn);
- final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? MemberGroupLayoutHint.MIDDLE
- .from(tabMetaDataIfAny) : null;
- addPropertiesAndCollections(middleColumn, MemberGroupLayoutHint.MIDDLE, entityModel, columnSpans, columnMetaDataIfAny);
+
+ addPropertiesAndCollections(middleColumn, entityModel, tabMetaDataIfAny, Hint.MIDDLE);
} else {
+ middleColumn = null;
Components.permanentlyHide(this, ID_MIDDLE_COLUMN);
}
// right column
+ MarkupContainer rightColumn;
if(columnSpans.getRight() > 0) {
- MarkupContainer rightColumn = new WebMarkupContainer(ID_RIGHT_COLUMN);
+ rightColumn = new WebMarkupContainer(ID_RIGHT_COLUMN);
add(rightColumn);
- final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? MemberGroupLayoutHint.RIGHT
- .from(tabMetaDataIfAny) : null;
- addPropertiesAndCollections(rightColumn, MemberGroupLayoutHint.RIGHT, entityModel, columnSpans, columnMetaDataIfAny);
+
+ addPropertiesAndCollections(rightColumn, entityModel, tabMetaDataIfAny, Hint.RIGHT);
} else {
+ rightColumn = null;
Components.permanentlyHide(this, ID_RIGHT_COLUMN);
}
+ // column spans
+ if(columnSpans.getLeft() > 0) {
+ addClassForSpan(leftColumn, Hint.LEFT.from(columnSpans));
+ }
+ if(columnSpans.getMiddle() > 0) {
+ addClassForSpan(middleColumn, Hint.MIDDLE.from(columnSpans));
+ }
+ if(columnSpans.getRight() > 0) {
+ addClassForSpan(rightColumn, Hint.RIGHT.from(columnSpans));
+ }
+
+ // edit buttons and feedback
+ final Hint leftHint = Hint.LEFT;
+ final Column leftColumnMetaDataIfAny = leftHint.from(tabMetaDataIfAny);
+ final List<String> groupNames = PropUtil.propertyGroupNames(entityModel, leftHint, leftColumnMetaDataIfAny);
+ final boolean hasProperties = !groupNames.isEmpty();
+ if (hasProperties) {
+ addButtons(leftColumn);
+ addFeedbackGui(leftColumn);
+
+ } else {
+ Components.permanentlyHide(this,
+ ID_EDIT_BUTTON, ID_OK_BUTTON, ID_CANCEL_BUTTON,
+ ID_FEEDBACK);
+ }
+
+
// collections (only if not being added to a tab)
if(tabMetaDataIfAny == null && columnSpans.getCollections() > 0) {
final String idCollectionsToShow;
@@ -262,20 +261,31 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
private void addPropertiesAndCollections(
- final MarkupContainer col,
- final MemberGroupLayoutHint hint,
+ final MarkupContainer middleColumn,
final EntityModel entityModel,
- final ColumnSpans columnSpans, final Column columnMetaDataIfAny) {
- addPropertiesInColumn(col, hint, entityModel, columnSpans, columnMetaDataIfAny);
- addCollectionsIfRequired(col, entityModel, columnMetaDataIfAny);
+ final Tab tabMetaDataIfAny, final Hint hint) {
+ final Column columnMetaDataIfAny = hint.from(tabMetaDataIfAny);
+
+ final EntityModel entityModelWithHints =
+ new EntityModel(entityModel.getPageParameters())
+ .withColumnMetadata(columnMetaDataIfAny, hint);
+
+ addPropertiesAndCollections(middleColumn, entityModelWithHints);
+ }
+
+ private void addPropertiesAndCollections(
+ final MarkupContainer col,
+ final EntityModel entityModel) {
+ addPropertiesInColumn(col, entityModel);
+ addCollectionsIfRequired(col, entityModel);
}
private void addPropertiesInColumn(
final MarkupContainer markupContainer,
- final MemberGroupLayoutHint hint,
- final EntityModel entityModel,
- final ColumnSpans columnSpans, final Column columnMetaDataIfAny) {
- final int span = hint.from(columnSpans);
+ final EntityModel entityModel) {
+
+ final Column columnMetaDataIfAny = entityModel.getColumnMetadata();
+ final Hint hint = entityModel.getColumnHint();
final ObjectAdapter adapter = entityModel.getObject();
final ObjectSpecification objSpec = adapter.getSpecification();
@@ -327,19 +337,17 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
actionsPanelDropDown,
AdditionalLinksPanel.Style.DROPDOWN);
}
-
- addClassForSpan(markupContainer, span);
}
private void addCollectionsIfRequired(
final MarkupContainer column,
- final EntityModel entityModel,
- final Column columnMetaDataIfAny) {
+ final EntityModel entityModel) {
+
+ final Column columnMetaDataIfAny = entityModel.getColumnMetadata();
+
if(columnMetaDataIfAny != null) {
- final EntityModel modelWithMetadata = new EntityModel(entityModel.getPageParameters()).withColumnMetadata(
- columnMetaDataIfAny);
getComponentFactoryRegistry()
- .addOrReplaceComponent(column, "collections", ComponentType.ENTITY_COLLECTIONS, modelWithMetadata);
+ .addOrReplaceComponent(column, "collections", ComponentType.ENTITY_COLLECTIONS, entityModel);
} else {
Components.permanentlyHide(column, "collections");
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
index 23a9a8d..ff0d5b8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/PropUtil.java
@@ -21,20 +21,44 @@ package org.apache.isis.viewer.wicket.ui.components.entity.properties;
import java.util.List;
import java.util.Map;
+import com.google.common.collect.FluentIterable;
+
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
+import org.apache.isis.applib.layout.v1_0.Column;
+import org.apache.isis.applib.layout.v1_0.PropertyGroup;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
public final class PropUtil {
private PropUtil() {
}
+ static List<String> propertyGroupNames(
+ final EntityModel entityModel,
+ final Column.Hint hint, final Column columnMetaDataIfAny) {
+ final ObjectAdapter adapter = entityModel.getObject();
+ final ObjectSpecification objSpec = adapter.getSpecification();
+
+ final Map<String, List<ObjectAssociation>> associationsByGroup =
+ propertiesByMemberOrder(adapter);
+
+ return columnMetaDataIfAny != null
+ ? FluentIterable
+ .from(columnMetaDataIfAny.getPropertyGroups())
+ .transform(PropertyGroup.Util.nameOf())
+ .toList()
+ : ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(),
+ hint);
+ }
+
static Map<String, List<ObjectAssociation>> propertiesByMemberOrder(final ObjectAdapter adapter) {
final List<ObjectAssociation> properties = visibleProperties(adapter);
return ObjectAssociation.Util.groupByMemberOrderName(properties);
@@ -64,5 +88,4 @@ public final class PropUtil {
filter);
}
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9ff3c29d/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
index c9e7ac8..7d4f0e4 100644
--- a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
@@ -15,8 +15,6 @@
</propertyGroup>
</left>
<right span="6">
- <collection id="similarTo" defaultView="table"/>
- <collection id="others" defaultView="hide"/>
</right>
</tab>
<tab name="Metadata">
@@ -31,4 +29,12 @@
</left>
</tab>
</tabGroup>
+ <tabGroup>
+ <tab name="Collections">
+ <left span="6">
+ <collection id="similarTo" defaultView="table"/>
+ <collection id="others" defaultView="hide"/>
+ </left>
+ </tab>
+ </tabGroup>
</objectLayout>
\ No newline at end of file
[5/5] isis git commit: ISIS-993: fixed the OK/edit issue.
Posted by da...@apache.org.
ISIS-993: fixed the OK/edit issue.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/873cc2e2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/873cc2e2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/873cc2e2
Branch: refs/heads/ISIS-993
Commit: 873cc2e2e86df4f3e43d691ef9313d03c5313745
Parents: 9ff3c29
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Jan 9 09:10:30 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Jan 9 09:10:30 2016 +0000
----------------------------------------------------------------------
.../ui/components/entity/properties/EntityPropertiesForm.java | 2 +-
.../src/main/java/domainapp/dom/simple/SimpleObject.layout.xml | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/873cc2e2/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 1f8792a..ea35848 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
@@ -227,7 +227,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
addFeedbackGui(leftColumn);
} else {
- Components.permanentlyHide(this,
+ Components.permanentlyHide(leftColumn,
ID_EDIT_BUTTON, ID_OK_BUTTON, ID_CANCEL_BUTTON,
ID_FEEDBACK);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/873cc2e2/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
index 7d4f0e4..e49e937 100644
--- a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
@@ -13,8 +13,10 @@
</actions>
</property>
</propertyGroup>
+ <collection id="similarTo" defaultView="table"/>
</left>
<right span="6">
+ <collection id="others" defaultView="hide"/>
</right>
</tab>
<tab name="Metadata">
@@ -29,12 +31,12 @@
</left>
</tab>
</tabGroup>
+<!--
<tabGroup>
<tab name="Collections">
<left span="6">
- <collection id="similarTo" defaultView="table"/>
- <collection id="others" defaultView="hide"/>
</left>
</tab>
</tabGroup>
+-->
</objectLayout>
\ No newline at end of file