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/25 16:07:44 UTC
[23/50] [abbrv] isis git commit: ISIS-993: now rendering properties
and collections in tabs ok.
ISIS-993: now rendering properties and collections in tabs ok.
Some stuff still to do:
- provide a far-right column that is not tabbed at all.
- better handling of column spans, to adjust if spans don't sum to 12 correctly.
- layout views don't render.
- allow layout views be edited and, perhaps, shared via settings.
- hints should be extended
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/131f1879
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/131f1879
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/131f1879
Branch: refs/heads/ISIS-993
Commit: 131f1879d99e641c9d14c3ad79d071f1a4dfaa0e
Parents: c5de434
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Jan 8 18:05:54 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Jan 25 15:06:07 2016 +0000
----------------------------------------------------------------------
.../layout/v1_0/CollectionLayoutMetadata.java | 15 ++++
.../services/layout/Object_viewLayout.java | 1 +
.../ObjectLayoutMetadataServiceDefault.java | 21 +++---
.../viewer/wicket/model/models/EntityModel.java | 22 ++++--
.../collections/EntityCollectionsPanel.java | 63 ++++++++++++++---
.../entity/properties/EntityPropertiesForm.java | 74 ++++++++++++++------
.../properties/EntityPropertiesPanel.html | 3 +
.../entity/tabgroups/EntityTabGroupsPanel.java | 2 +-
.../dom/simple/SimpleObject.layout.xml | 17 ++---
9 files changed, 162 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/CollectionLayoutMetadata.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/CollectionLayoutMetadata.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/CollectionLayoutMetadata.java
index 4dc14cd..7aa17f6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/CollectionLayoutMetadata.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/CollectionLayoutMetadata.java
@@ -27,6 +27,8 @@ import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
+import com.google.common.base.Function;
+
import org.apache.isis.applib.annotation.Where;
/**
@@ -223,4 +225,17 @@ public class CollectionLayoutMetadata implements ColumnContent, ActionHolder, Se
this.metadataError = metadataError;
}
+
+ public static class Functions {
+ private Functions(){}
+
+ public static Function<CollectionLayoutMetadata, String> id() {
+ return new Function<CollectionLayoutMetadata, String>() {
+ @Override
+ public String apply(final CollectionLayoutMetadata metadata) {
+ return metadata.getId();
+ }
+ };
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_viewLayout.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_viewLayout.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_viewLayout.java
index 4957e9c..82d574c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_viewLayout.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_viewLayout.java
@@ -54,6 +54,7 @@ public class Object_viewLayout {
return getObjectLayoutMetadata();
}
+ @Programmatic // TODO ... excluded for now (getting an Isis framework exception in the view model rendering).
public boolean hide$$() {
return getObjectLayoutMetadata() == null;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 294531a..972999d 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
@@ -254,7 +254,9 @@ public class ObjectLayoutMetadataServiceDefault
lastTabGroup.getTabs().add(tab);
Column left = new Column(12);
tab.setLeft(left);
- left.getCollections().add(new CollectionLayoutMetadata(collectionId));
+ final CollectionLayoutMetadata layoutMetadata = new CollectionLayoutMetadata(collectionId);
+ layoutMetadata.setDefaultView("table");
+ left.getCollections().add(layoutMetadata);
}
}
@@ -293,6 +295,7 @@ public class ObjectLayoutMetadataServiceDefault
metadata.visit(new ObjectLayoutMetadata.VisitorAdapter() {
private final Map<String, int[]> propertySequenceByGroup = Maps.newHashMap();
+ private int collectionSequence = 1;
private int actionDomainObjectSequence = 1;
private int actionPropertyGroupSequence = 1;
private int actionPropertySequence = 1;
@@ -376,7 +379,7 @@ public class ObjectLayoutMetadataServiceDefault
// @MemberOrder#name based on owning property group, @MemberOrder#sequence monotonically increasing
final PropertyGroup propertyGroup = propertyLayoutMetadata.getOwner();
final String groupName = propertyGroup.getName();
- final String sequence = nextInSequenceFor(groupName);
+ final String sequence = nextInSequenceFor(groupName, propertySequenceByGroup);
FacetUtil.addFacet(
new MemberOrderFacetXml(groupName, sequence, translationService, oneToOneAssociation));
}
@@ -398,7 +401,7 @@ public class ObjectLayoutMetadataServiceDefault
// @MemberOrder#name based on the collection's id (so that each has a single "member group")
final String groupName = collectionLayoutMetadata.getId();
- final String sequence = nextInSequenceFor(groupName);
+ final String sequence = "" + collectionSequence++;
FacetUtil.addFacet(
new MemberOrderFacetXml(groupName, sequence, translationService, oneToManyAssociation));
@@ -406,16 +409,18 @@ public class ObjectLayoutMetadataServiceDefault
final Column column = collectionLayoutMetadata.getOwner();
final Tab tab = column.getOwner();
if(tab.getContents().size() == 1) {
- tab.setName(collectionLayoutMetadata.getNamed());
+ final String collectionName = oneToManyAssociation.getName();
+ tab.setName(collectionName);
}
}
- private String nextInSequenceFor(final String propertyGroupName) {
- synchronized (propertySequenceByGroup) {
- int[] holder = propertySequenceByGroup.get(propertyGroupName);
+ private String nextInSequenceFor(
+ final String key, final Map<String, int[]> seqByKey) {
+ synchronized (seqByKey) {
+ int[] holder = seqByKey.get(key);
if(holder == null) {
holder = new int[]{0};
- propertySequenceByGroup.put(propertyGroupName, holder);
+ seqByKey.put(key, holder);
}
holder[0]++;
return ""+holder[0];
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 899f48e..9838163 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
@@ -29,6 +29,7 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.isis.applib.annotation.BookmarkPolicy;
+import org.apache.isis.applib.layout.v1_0.Column;
import org.apache.isis.applib.layout.v1_0.Tab;
import org.apache.isis.applib.services.memento.MementoService.Memento;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -63,7 +64,6 @@ import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
public class EntityModel extends BookmarkableModel<ObjectAdapter> {
private static final long serialVersionUID = 1L;
-
// //////////////////////////////////////////////////////////
// factory methods for PageParameters
@@ -91,7 +91,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
return pageParameters;
}
-
public enum RenderingHint {
REGULAR,
PROPERTY_COLUMN,
@@ -634,7 +633,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
// //////////////////////////////////////////////////////////
- // tab metadata (if any)
+ // tab and column metadata (if any)
// //////////////////////////////////////////////////////////
private Tab tabMetadata;
@@ -643,10 +642,25 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
return tabMetadata;
}
- public void setTabMetadata(final Tab tabMetadata) {
+ public EntityModel withTabMetadata(final Tab tabMetadata) {
this.tabMetadata = tabMetadata;
+ return this;
}
+
+ private Column columnMetadata;
+
+ public EntityModel withColumnMetadata(final Column columnMetadata) {
+ this.columnMetadata = columnMetadata;
+ this.tabMetadata = columnMetadata.getOwner();
+ return this;
+ }
+
+ public Column getColumnMetadata() {
+ return columnMetadata;
+ }
+
+
// //////////////////////////////////////////////////////////
// equals, hashCode
// //////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 b182b1f..81b83c4 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
@@ -19,23 +19,32 @@
package org.apache.isis.viewer.wicket.ui.components.entity.collections;
+import java.util.Comparator;
import java.util.List;
+
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
+
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.Model;
+
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.CollectionLayoutMetadata;
+import org.apache.isis.applib.layout.v1_0.Column;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.runtime.services.DeweyOrderComparator;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -89,8 +98,34 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
private void addCollections() {
final EntityModel entityModel = getModel();
final ObjectAdapter adapter = entityModel.getObject();
- final ObjectSpecification noSpec = adapter.getSpecification();
- final List<ObjectAssociation> associations = visibleCollections(adapter, noSpec);
+
+ final Column columnMetadataIfAny = entityModel.getColumnMetadata();
+ final Filter<ObjectAssociation> filter;
+ if (columnMetadataIfAny != null) {
+ final ImmutableList<String> collectionIds = FluentIterable
+ .from(columnMetadataIfAny.getCollections())
+ .transform(CollectionLayoutMetadata.Functions.id())
+ .toList();
+ filter = new Filter<ObjectAssociation>() {
+ @Override
+ public boolean accept(final ObjectAssociation objectAssociation) {
+ return collectionIds.contains(objectAssociation.getId());
+ }
+ };
+ } else {
+ filter = Filters.any();
+ }
+
+ final List<ObjectAssociation> associations = visibleCollections(adapter, filter);
+ associations.sort(new Comparator<ObjectAssociation>() {
+ private final DeweyOrderComparator deweyOrderComparator = new DeweyOrderComparator();
+ @Override
+ 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());
+ }
+ });
final RepeatingView collectionRv = new RepeatingView(ID_COLLECTIONS);
add(collectionRv);
@@ -104,7 +139,8 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
}
}
- private void addCollectionToForm(final EntityModel entityModel,
+ private void addCollectionToForm(
+ final EntityModel entityModel,
final ObjectAssociation association,
final WebMarkupContainer collectionRvContainer) {
@@ -163,15 +199,22 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
}
- private List<ObjectAssociation> visibleCollections(final ObjectAdapter adapter, final ObjectSpecification noSpec) {
- return noSpec.getAssociations(Contributed.INCLUDED, visibleCollectionsFilter(adapter));
+ private static List<ObjectAssociation> visibleCollections(
+ final ObjectAdapter adapter,
+ final Filter<ObjectAssociation> filter) {
+ return adapter.getSpecification().getAssociations(
+ Contributed.INCLUDED, visibleCollectionsFilter(adapter, filter));
}
@SuppressWarnings("unchecked")
- private Filter<ObjectAssociation> visibleCollectionsFilter(final ObjectAdapter adapter) {
- return Filters.and(ObjectAssociation.Filters.COLLECTIONS, ObjectAssociation.Filters.dynamicallyVisible(adapter,
- InteractionInitiatedBy.USER, Where.PARENTED_TABLES
- ));
+ private static Filter<ObjectAssociation> visibleCollectionsFilter(
+ final ObjectAdapter adapter,
+ final Filter<ObjectAssociation> filter) {
+ return Filters.and(
+ ObjectAssociation.Filters.COLLECTIONS,
+ ObjectAssociation.Filters.dynamicallyVisible(
+ adapter, InteractionInitiatedBy.USER, Where.PARENTED_TABLES),
+ filter);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 225dcdd..adc9262 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,7 +176,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
boolean addedProperties;
if(columnSpans.getLeft() > 0) {
- addedProperties = addPropertiesInColumn(leftColumn, MemberGroupLayoutHint.LEFT, tabMetaDataIfAny, columnSpans);
+ addedProperties = addPropertiesAndCollections(
+ leftColumn, MemberGroupLayoutHint.LEFT, entityModel, tabMetaDataIfAny, columnSpans);
addButtons(leftColumn);
addFeedbackGui(leftColumn);
} else {
@@ -194,7 +195,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
if(columnSpans.getMiddle() > 0) {
MarkupContainer middleColumn = new WebMarkupContainer(ID_MIDDLE_COLUMN);
add(middleColumn);
- addPropertiesInColumn(middleColumn, MemberGroupLayoutHint.MIDDLE, tabMetaDataIfAny, columnSpans);
+ addPropertiesAndCollections(
+ middleColumn, MemberGroupLayoutHint.MIDDLE, entityModel, tabMetaDataIfAny, columnSpans);
} else {
Components.permanentlyHide(this, ID_MIDDLE_COLUMN);
}
@@ -203,7 +205,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
if(columnSpans.getRight() > 0) {
MarkupContainer rightColumn = new WebMarkupContainer(ID_RIGHT_COLUMN);
add(rightColumn);
- addPropertiesInColumn(rightColumn, MemberGroupLayoutHint.RIGHT, tabMetaDataIfAny, columnSpans);
+ addPropertiesAndCollections(
+ rightColumn, MemberGroupLayoutHint.RIGHT, entityModel, tabMetaDataIfAny, columnSpans);
} else {
Components.permanentlyHide(this, ID_RIGHT_COLUMN);
}
@@ -223,7 +226,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
collectionSpan = columnSpans.getCollections();
}
- final Component collectionsColumn = getComponentFactoryRegistry().addOrReplaceComponent(this, idCollectionsToShow, ComponentType.ENTITY_COLLECTIONS, entityModel);
+ final Component collectionsColumn =
+ getComponentFactoryRegistry().addOrReplaceComponent(
+ this, idCollectionsToShow, ComponentType.ENTITY_COLLECTIONS, entityModel);
addClassForSpan(collectionsColumn, collectionSpan);
Components.permanentlyHide(this, idCollectionsToHide);
@@ -233,20 +238,31 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
}
+ private boolean addPropertiesAndCollections(
+ 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);
+ addCollectionsIfRequired(col, hint, entityModel, tabMetaDataIfAny);
+ return addedProperties;
+ }
+
private boolean addPropertiesInColumn(
final MarkupContainer markupContainer,
final MemberGroupLayoutHint hint,
+ final EntityModel entityModel,
final Tab tabMetaDataIfAny,
final ColumnSpans columnSpans) {
final int span = hint.from(columnSpans);
-
- final EntityModel entityModel = (EntityModel) getModel();
+
final ObjectAdapter adapter = entityModel.getObject();
final ObjectSpecification objSpec = adapter.getSpecification();
final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint.from(tabMetaDataIfAny) : null;
- final List<ObjectAssociation> properties = visibleAssociations(adapter, ObjectAssociation.Filters.PROPERTIES);
+ final List<ObjectAssociation> properties = visibleProperties(adapter);
final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
markupContainer.add(memberGroupRv);
@@ -299,13 +315,23 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
addClassForSpan(markupContainer, span);
- // if in a tab, then also render collections
- if(columnMetaDataIfAny != null) {
- final List<ObjectAssociation> collections = visibleAssociations(adapter, ObjectAssociation.Filters.COLLECTIONS);
+ return !groupNames.isEmpty();
+ }
- }
+ private void addCollectionsIfRequired(
+ final MarkupContainer column,
+ final MemberGroupLayoutHint hint,
+ final EntityModel entityModel,
+ final Tab tabMetaDataIfAny) {
- return !groupNames.isEmpty();
+ if(tabMetaDataIfAny != null) {
+ final Column columnMetadata = hint.from(tabMetaDataIfAny);
+ final EntityModel modelWithMetadata = new EntityModel(entityModel.getPageParameters()).withColumnMetadata(columnMetadata);
+ getComponentFactoryRegistry()
+ .addOrReplaceComponent(column, "collections", ComponentType.ENTITY_COLLECTIONS, modelWithMetadata);
+ } else {
+ Components.permanentlyHide(column, "collections");
+ }
}
private void addPropertyToForm(
@@ -329,24 +355,28 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
}
+ private List<ObjectAssociation> visibleProperties(final ObjectAdapter adapter) {
+ return visibleProperties(adapter, Filters.<ObjectAssociation>any());
+ }
- private List<ObjectAssociation> visibleAssociations(
+ private List<ObjectAssociation> visibleProperties(
final ObjectAdapter adapter,
- final Filter<ObjectAssociation> associationFilter) {
+ final Filter<ObjectAssociation> filter) {
final ObjectSpecification objSpec = adapter.getSpecification();
- return objSpec.getAssociations(Contributed.INCLUDED, visibleAssociationFilter(adapter, Where.OBJECT_FORMS,
- associationFilter));
+ return objSpec.getAssociations(
+ Contributed.INCLUDED, visiblePropertiesFilter(adapter, filter));
}
@SuppressWarnings("unchecked")
- private static Filter<ObjectAssociation> visibleAssociationFilter(
+ private static Filter<ObjectAssociation> visiblePropertiesFilter(
final ObjectAdapter adapter,
- final Where where,
- final Filter<ObjectAssociation> associationFilter) {
- return Filters.and(associationFilter, ObjectAssociation.Filters.dynamicallyVisible(adapter,
- InteractionInitiatedBy.USER, where
- ));
+ final Filter<ObjectAssociation> filter) {
+ return Filters.and(
+ ObjectAssociation.Filters.PROPERTIES,
+ ObjectAssociation.Filters.dynamicallyVisible(
+ adapter, InteractionInitiatedBy.USER, Where.OBJECT_FORMS),
+ filter);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 4e917e2..ad8872a 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
@@ -42,6 +42,7 @@
</div>
</fieldset>
</div>
+ <div wicket:id="collections"></div>
<div class="feedbackPanel">
<span wicket:id="feedback"></span>
</div>
@@ -70,6 +71,7 @@
</div>
</fieldset>
</div>
+ <div wicket:id="collections"></div>
</div>
<div wicket:id="rightColumn">
<div class="inputFormTable properties">
@@ -90,6 +92,7 @@
</div>
</fieldset>
</div>
+ <div wicket:id="collections"></div>
</div>
<div wicket:id="entityCollections"></div>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 6f49a68..fec95d0 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
@@ -121,7 +121,7 @@ public class EntityTabGroupsPanel extends PanelAbstract<EntityModel> {
super(id);
final EntityModel modelWithTabHints = new EntityModel(model.getPageParameters());
- modelWithTabHints.setTabMetadata(tab);
+ modelWithTabHints.withTabMetadata(tab);
getComponentFactoryRegistry().addOrReplaceComponent(this, ID_ENTITY_PROPERTIES_AND_COLLECTIONS, ComponentType.ENTITY_PROPERTIES, modelWithTabHints);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/131f1879/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 a50bdcf..c9e7ac8 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
@@ -5,7 +5,7 @@
</actions>
<tabGroup>
<tab name="Common">
- <left span="4">
+ <left span="6">
<propertyGroup name="General">
<property id="name" labelPosition="TOP">
<actions>
@@ -14,11 +14,13 @@
</property>
</propertyGroup>
</left>
- <middle span="4">
- </middle>
+ <right span="6">
+ <collection id="similarTo" defaultView="table"/>
+ <collection id="others" defaultView="hide"/>
+ </right>
</tab>
<tab name="Metadata">
- <left span="4">
+ <left span="6">
<propertyGroup name="Persistence">
<actions>
<action id="downloadJdoMetadata"/>
@@ -29,11 +31,4 @@
</left>
</tab>
</tabGroup>
- <tabGroup>
- <tab name="Similar To">
- <left span="12">
- <collection id="similarTo"/>
- </left>
- </tab>
- </tabGroup>
</objectLayout>
\ No newline at end of file