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/31 11:57:25 UTC

[09/18] isis git commit: ISIS-993: still sketching out the layout classes for BS3 and FC (fixed col)

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/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 1a87a1f..d54f13b 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
@@ -30,12 +30,12 @@ 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.CollectionLayoutMetadata;
-import org.apache.isis.applib.layout.fixedcols.ColumnMetadata;
-import org.apache.isis.applib.layout.fixedcols.ColumnMetadata.Hint;
-import org.apache.isis.applib.layout.v1_0.PropertyGroupMetadata;
-import org.apache.isis.applib.layout.fixedcols.TabGroupMetadata;
-import org.apache.isis.applib.layout.fixedcols.TabMetadata;
+import org.apache.isis.applib.layout.members.v1.CollectionLayoutData;
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
+import org.apache.isis.applib.layout.fixedcols.FCColumn.Hint;
+import org.apache.isis.applib.layout.members.v1.FieldSet;
+import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
+import org.apache.isis.applib.layout.fixedcols.FCTab;
 import org.apache.isis.applib.services.memento.MementoService.Memento;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
@@ -648,71 +648,71 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
     // tab and column metadata (if any)
     // //////////////////////////////////////////////////////////
 
-    private List<TabGroupMetadata> tabGroupListMetadata;
+    private List<FCTabGroup> tabGroupListMetadata;
 
-    public List<TabGroupMetadata> getTabGroupListMetadata() {
+    public List<FCTabGroup> getTabGroupListMetadata() {
         return tabGroupListMetadata;
     }
 
     /**
      * Returns a new copy that SHARES the property scalar models (for edit form).
      */
-    public EntityModel cloneWithTabGroupListMetadata(final List<TabGroupMetadata> tabGroupListMetadata) {
+    public EntityModel cloneWithTabGroupListMetadata(final List<FCTabGroup> tabGroupListMetadata) {
         final EntityModel entityModel = new EntityModel(this.adapterMemento, this.propertyScalarModels);
         entityModel.tabGroupListMetadata = tabGroupListMetadata;
         return entityModel;
     }
 
 
-    private TabGroupMetadata tabGroupMetadata;
+    private FCTabGroup FCTabGroup;
 
-    public TabGroupMetadata getTabGroupMetadata() {
-        return tabGroupMetadata;
+    public FCTabGroup getFCTabGroup() {
+        return FCTabGroup;
     }
 
     /**
      * Returns a new copy that SHARES the property scalar models (for edit form).
      */
-    public EntityModel cloneWithTabGroupMetadata(final TabGroupMetadata tabGroupMetadata) {
+    public EntityModel cloneWithTabGroupMetadata(final FCTabGroup FCTabGroup) {
         final EntityModel entityModel = new EntityModel(this.adapterMemento, this.propertyScalarModels);
-        entityModel.tabGroupMetadata = tabGroupMetadata;
+        entityModel.FCTabGroup = FCTabGroup;
         return entityModel;
     }
 
 
-    private TabMetadata tabMetadata;
+    private FCTab FCTab;
 
-    public TabMetadata getTabMetadata() {
-        return tabMetadata;
+    public FCTab getFCTab() {
+        return FCTab;
     }
 
     /**
      * Returns a new copy that SHARES the property scalar models (for edit form).
      */
-    public EntityModel cloneWithTabMetadata(final TabMetadata tabMetadata) {
+    public EntityModel cloneWithTabMetadata(final FCTab FCTab) {
         final EntityModel entityModel = new EntityModel(this.adapterMemento, this.propertyScalarModels);
-        entityModel.tabMetadata = tabMetadata;
+        entityModel.FCTab = FCTab;
         return entityModel;
     }
 
 
-    private ColumnMetadata columnMetadata;
-    private ColumnMetadata.Hint columnHint;
+    private FCColumn FCColumn;
+    private FCColumn.Hint columnHint;
 
     /**
      * Returns a new copy that SHARES the property scalar models (for edit form).
      */
-    public EntityModel cloneWithColumnMetadata(final ColumnMetadata columnMetadata, final ColumnMetadata.Hint columnHint) {
+    public EntityModel cloneWithColumnMetadata(final FCColumn FCColumn, final FCColumn.Hint columnHint) {
         final EntityModel entityModel = new EntityModel(this.adapterMemento, this.propertyScalarModels);
-        entityModel.columnMetadata = columnMetadata;
+        entityModel.FCColumn = FCColumn;
         entityModel.columnHint = columnHint;
         return entityModel;
     }
 
-    public ColumnMetadata getColumnMetadata() {
-        return columnMetadata;
+    public FCColumn getFCColumn() {
+        return FCColumn;
     }
-    public ColumnMetadata.Hint getColumnHint() {
+    public FCColumn.Hint getColumnHint() {
         return columnHint;
     }
 
@@ -726,34 +726,34 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
     }
 
 
-    private PropertyGroupMetadata propertyGroupMetadata;
-    public PropertyGroupMetadata getPropertyGroupMetadata() {
-        return propertyGroupMetadata;
+    private FieldSet fieldSet;
+    public FieldSet getFieldSet() {
+        return fieldSet;
     }
 
     /**
      * Returns a new copy that SHARES the property scalar models (for edit form).
      */
     public EntityModel cloneWithPropertyGroupMetadata(
-            final PropertyGroupMetadata propertyGroupMetadata) {
+            final FieldSet fieldSet) {
         final EntityModel entityModel = new EntityModel(this.adapterMemento, this.propertyScalarModels);
-        entityModel.propertyGroupMetadata = propertyGroupMetadata;
+        entityModel.fieldSet = fieldSet;
         return entityModel;
     }
 
 
-    private CollectionLayoutMetadata collectionLayoutMetadata;
-    public CollectionLayoutMetadata getCollectionLayoutMetadata() {
-        return collectionLayoutMetadata;
+    private CollectionLayoutData collectionLayoutData;
+    public CollectionLayoutData getCollectionLayoutData() {
+        return collectionLayoutData;
     }
 
     /**
      * Returns a new copy that SHARES the property scalar models.
      */
     public EntityModel cloneWithCollectionLayoutMetadata(
-            final CollectionLayoutMetadata collectionLayoutMetadata) {
+            final CollectionLayoutData collectionLayoutData) {
         final EntityModel entityModel = new EntityModel(this.adapterMemento, this.propertyScalarModels);
-        entityModel.collectionLayoutMetadata = collectionLayoutMetadata;
+        entityModel.collectionLayoutData = collectionLayoutData;
         return entityModel;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
index 8861172..d779a5c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
@@ -22,7 +22,7 @@ package org.apache.isis.viewer.wicket.ui.components.entity;
 import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
-import org.apache.isis.applib.layout.fixedcols.ObjectLayoutMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCPage;
 import org.apache.isis.core.metamodel.facets.object.layoutmetadata.ObjectLayoutMetadataFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -51,7 +51,7 @@ public class EntityPanelFactory extends EntityComponentFactoryAbstract {
 
         final ObjectSpecification specification = entityModel.getTypeOfSpecification();
         final ObjectLayoutMetadataFacet facet = specification.getFacet(ObjectLayoutMetadataFacet.class);
-        final ObjectLayoutMetadata layoutMetadata = facet.getMetadata();
+        final FCPage layoutMetadata = facet.getMetadata();
         final boolean hasLayout = layoutMetadata != null;
         return hasLayout
                 ? new EntityTabbedPanel(id, entityModel)

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
index 37bcd93..6e390ac 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
@@ -26,8 +26,8 @@ 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.fixedcols.ColumnMetadata;
-import org.apache.isis.applib.layout.v1_0.PropertyGroupMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
+import org.apache.isis.applib.layout.members.v1.FieldSet;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -43,7 +43,7 @@ public final class PropUtil {
 
     public static List<String> propertyGroupNames(
             final EntityModel entityModel,
-            final ColumnMetadata.Hint hint, final ColumnMetadata columnMetaDataIfAny) {
+            final FCColumn.Hint hint, final FCColumn columnMetaDataIfAny) {
         final ObjectAdapter adapter = entityModel.getObject();
         final ObjectSpecification objSpec = adapter.getSpecification();
 
@@ -52,8 +52,8 @@ public final class PropUtil {
 
         return columnMetaDataIfAny != null
                 ? FluentIterable
-                .from(columnMetaDataIfAny.getPropertyGroups())
-                .transform(PropertyGroupMetadata.Util.nameOf())
+                .from(columnMetaDataIfAny.getFieldSets())
+                .transform(FieldSet.Util.nameOf())
                 .toList()
                 : ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(),
                 hint);

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/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 14eb27c..d7f8240 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
@@ -31,8 +31,8 @@ import org.apache.wicket.markup.repeater.RepeatingView;
 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.fixedcols.ColumnMetadata;
+import org.apache.isis.applib.layout.members.v1.CollectionLayoutData;
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
@@ -56,12 +56,12 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
     private static final String ID_COLLECTION = "collection";
 
     // view metadata (if any available)
-    private final ColumnMetadata columnMetadataIfAny;
+    private final FCColumn FCColumnIfAny;
 
     public EntityCollectionsPanel(final String id, final EntityModel entityModel) {
         super(id, entityModel);
 
-        columnMetadataIfAny = entityModel.getColumnMetadata();
+        FCColumnIfAny = entityModel.getFCColumn();
 
         buildGui();
     }
@@ -86,10 +86,10 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
         final ObjectAdapter adapter = entityModel.getObject();
 
         final Filter<ObjectAssociation> filter;
-        if (columnMetadataIfAny != null) {
+        if (FCColumnIfAny != null) {
             final ImmutableList<String> collectionIds = FluentIterable
-                    .from(columnMetadataIfAny.getCollections())
-                    .transform(CollectionLayoutMetadata.Functions.id())
+                    .from(FCColumnIfAny.getCollections())
+                    .transform(CollectionLayoutData.Functions.id())
                     .toList();
             filter = new Filter<ObjectAssociation>() {
                 @Override
@@ -122,9 +122,9 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
             final WebMarkupContainer collectionRvContainer = new WebMarkupContainer(collectionRv.newChildId());
             collectionRv.add(collectionRvContainer);
 
-            final CollectionLayoutMetadata collectionLayoutMetadata = new CollectionLayoutMetadata(association.getId());
+            final CollectionLayoutData collectionLayoutData = new CollectionLayoutData(association.getId());
             final EntityModel entityModelWithCollectionLayoutMetadata =
-                    entityModel.cloneWithCollectionLayoutMetadata(collectionLayoutMetadata);
+                    entityModel.cloneWithCollectionLayoutMetadata(collectionLayoutData);
 
             collectionRvContainer.add(new EntityCollectionPanel(ID_COLLECTION, entityModelWithCollectionLayoutMetadata));
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
index 528ba06..4cda729 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
@@ -31,9 +31,9 @@ import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.repeater.RepeatingView;
 
-import org.apache.isis.applib.layout.fixedcols.ColumnMetadata;
-import org.apache.isis.applib.layout.v1_0.PropertyGroupMetadata;
-import org.apache.isis.applib.layout.v1_0.PropertyLayoutMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
+import org.apache.isis.applib.layout.members.v1.FieldSet;
+import org.apache.isis.applib.layout.members.v1.PropertyLayoutData;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -44,7 +44,6 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.components.entity.PropUtil;
-import org.apache.isis.viewer.wicket.ui.components.entity.propgroup.PropertyGroup;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.isis.viewer.wicket.ui.util.Components;
 
@@ -52,9 +51,9 @@ import org.apache.isis.viewer.wicket.ui.util.Components;
  * Adds properties (in property groups) and collections to a column.
  *
  * <p>
- *     If {@link ColumnMetadata} is present, then only those properties and collections for that
+ *     If {@link FCColumn} is present, then only those properties and collections for that
  *     column metadata are rendered.   Otherwise the {@link MemberGroupLayoutFacet} on the
- *     {@link ObjectSpecification} in conjunction with the provided {@link ColumnMetadata.Hint} is
+ *     {@link ObjectSpecification} in conjunction with the provided {@link FCColumn.Hint} is
  *     used to filter down to just those properties/collections in the column.
  * </p>
  */
@@ -66,9 +65,9 @@ public class EntityColumn extends PanelAbstract<EntityModel> {
 
 
     // view metadata (populated for EntityTabbedPanel, absent for EntityEditablePanel)
-    private final ColumnMetadata columnMetaDataIfAny;
+    private final FCColumn columnMetaDataIfAny;
     // which column to render (populated for EntityEditablePanel, not required and so absent for EntityTabbedPanel)
-    final ColumnMetadata.Hint hint;
+    final FCColumn.Hint hint;
 
     public EntityColumn(
             final String id,
@@ -76,7 +75,7 @@ public class EntityColumn extends PanelAbstract<EntityModel> {
 
         super(id, entityModel);
 
-        columnMetaDataIfAny = entityModel.getColumnMetadata();
+        columnMetaDataIfAny = entityModel.getFCColumn();
         hint = entityModel.getColumnHint();
 
         buildGui();
@@ -105,9 +104,9 @@ public class EntityColumn extends PanelAbstract<EntityModel> {
         final RepeatingView memberGroupRv = new RepeatingView(ID_PROPERTY_GROUP);
         markupContainer.add(memberGroupRv);
 
-        final ImmutableMap<String, PropertyGroupMetadata> propertyGroupMetadataByNameIfAny =
+        final ImmutableMap<String, FieldSet> propertyGroupMetadataByNameIfAny =
                 columnMetaDataIfAny != null
-                    ? Maps.uniqueIndex(columnMetaDataIfAny.getPropertyGroups(), PropertyGroupMetadata.Util.nameOf())
+                    ? Maps.uniqueIndex(columnMetaDataIfAny.getFieldSets(), FieldSet.Util.nameOf())
                     : null;
 
         final Collection<String> groupNames =
@@ -118,33 +117,33 @@ public class EntityColumn extends PanelAbstract<EntityModel> {
         for(final String groupName: groupNames) {
 
 
-            final PropertyGroupMetadata propertyGroupMetadata;
+            final FieldSet fieldSet;
             if (propertyGroupMetadataByNameIfAny != null) {
-                propertyGroupMetadata = propertyGroupMetadataByNameIfAny.get(groupName);
+                fieldSet = propertyGroupMetadataByNameIfAny.get(groupName);
             }
             else {
                 final List<ObjectAssociation> associationsInGroup = associationsByGroup.get(groupName);
-                propertyGroupMetadata = new PropertyGroupMetadata(groupName);
-                propertyGroupMetadata.setProperties(
+                fieldSet = new FieldSet(groupName);
+                fieldSet.setProperties(
                         FluentIterable
                                 .from(associationsInGroup)
                                 .transform(
-                                    new Function<ObjectAssociation, PropertyLayoutMetadata>() {
+                                    new Function<ObjectAssociation, PropertyLayoutData>() {
                                         @Override
-                                        public PropertyLayoutMetadata apply(final ObjectAssociation assoc) {
-                                            return new PropertyLayoutMetadata(assoc.getId());
+                                        public PropertyLayoutData apply(final ObjectAssociation assoc) {
+                                            return new PropertyLayoutData(assoc.getId());
                                         }
                                     }).toList());
             }
 
-            if(propertyGroupMetadata.getProperties().isEmpty()) {
+            if(fieldSet.getProperties().isEmpty()) {
                 continue;
             }
 
             final String id = memberGroupRv.newChildId();
 
-            final EntityModel entityModelWithHints = entityModel.cloneWithPropertyGroupMetadata(propertyGroupMetadata);
-            final WebMarkupContainer memberGroupRvContainer = new PropertyGroup(id, entityModelWithHints);
+            final EntityModel entityModelWithHints = entityModel.cloneWithPropertyGroupMetadata(fieldSet);
+            final WebMarkupContainer memberGroupRvContainer = new org.apache.isis.viewer.wicket.ui.components.entity.propgroup.PropertyGroup(id, entityModelWithHints);
 
             memberGroupRv.add(memberGroupRvContainer);
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
index 9d2039b..e595806 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
@@ -27,8 +27,8 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.RepeatingView;
 
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.layout.v1_0.PropertyGroupMetadata;
-import org.apache.isis.applib.layout.v1_0.PropertyLayoutMetadata;
+import org.apache.isis.applib.layout.members.v1.FieldSet;
+import org.apache.isis.applib.layout.members.v1.PropertyLayoutData;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -52,11 +52,11 @@ public class PropertyGroup extends PanelAbstract<EntityModel> {
     private static final String ID_PROPERTIES = "properties";
     private static final String ID_PROPERTY = "property";
 
-    private final PropertyGroupMetadata propertyGroupMetadata;
+    private final FieldSet fieldSet;
 
     public PropertyGroup(final String id, final EntityModel model) {
         super(id, model);
-        propertyGroupMetadata = model.getPropertyGroupMetadata();
+        fieldSet = model.getFieldSet();
 
         buildGui();
     }
@@ -66,7 +66,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> {
     }
 
     private void buildGui() {
-        String groupName = propertyGroupMetadata.getName();
+        String groupName = fieldSet.getName();
         final ObjectAdapter adapter = getModel().getObject();
 
         add(new Label(ID_MEMBER_GROUP_NAME, groupName));
@@ -76,8 +76,8 @@ public class PropertyGroup extends PanelAbstract<EntityModel> {
         final RepeatingView propertyRv = new RepeatingView(ID_PROPERTIES);
         add(propertyRv);
 
-        final List<PropertyLayoutMetadata> properties = propertyGroupMetadata.getProperties();
-        for (PropertyLayoutMetadata property : properties) {
+        final List<PropertyLayoutData> properties = fieldSet.getProperties();
+        for (PropertyLayoutData property : properties) {
             final ObjectAssociation association = adapter.getSpecification().getAssociation(property.getId());
 
             final WebMarkupContainer propertyRvContainer = new WebMarkupContainer(propertyRv.newChildId());

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propsandcolls/EntityPropsAndCollsForm.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propsandcolls/EntityPropsAndCollsForm.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propsandcolls/EntityPropsAndCollsForm.java
index 770b883..69eea60 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propsandcolls/EntityPropsAndCollsForm.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propsandcolls/EntityPropsAndCollsForm.java
@@ -44,9 +44,9 @@ import org.apache.isis.applib.annotation.MemberGroupLayout.ColumnSpans;
 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.fixedcols.ColumnMetadata;
-import org.apache.isis.applib.layout.fixedcols.ColumnMetadata.Hint;
-import org.apache.isis.applib.layout.fixedcols.TabMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
+import org.apache.isis.applib.layout.fixedcols.FCColumn.Hint;
+import org.apache.isis.applib.layout.fixedcols.FCTab;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.core.commons.authentication.MessageBroker;
@@ -127,14 +127,14 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
     private void buildGui() {
 
         final EntityModel entityModel = (EntityModel) getModel();
-        final TabMetadata tabMetaDataIfAny = entityModel.getTabMetadata();
+        final FCTab FCTabMetaDataIfAny = entityModel.getFCTab();
 
         final ColumnSpans columnSpans;
-        if(tabMetaDataIfAny != null) {
-            final ColumnMetadata middle = tabMetaDataIfAny.getMiddle();
-            final ColumnMetadata right = tabMetaDataIfAny.getRight();
+        if(FCTabMetaDataIfAny != null) {
+            final FCColumn middle = FCTabMetaDataIfAny.getMiddle();
+            final FCColumn right = FCTabMetaDataIfAny.getRight();
             columnSpans = ColumnSpans.asSpans(
-                    tabMetaDataIfAny.getLeft().getSpan(),
+                    FCTabMetaDataIfAny.getLeft().getSpan(),
                     middle != null? middle.getSpan(): 0,
                     right != null? right.getSpan(): 0);
         } else {
@@ -149,7 +149,7 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
         add(leftColumn);
 
         if(columnSpans.getLeft() > 0) {
-            addPropertiesAndCollections(leftColumn, entityModel, tabMetaDataIfAny, Hint.LEFT);
+            addPropertiesAndCollections(leftColumn, entityModel, FCTabMetaDataIfAny, Hint.LEFT);
         } else {
             Components.permanentlyHide(this, ID_LEFT_COLUMN);
         }
@@ -159,7 +159,7 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
         if(columnSpans.getMiddle() > 0) {
             middleColumn = new WebMarkupContainer(ID_MIDDLE_COLUMN);
             add(middleColumn);
-            addPropertiesAndCollections(middleColumn, entityModel, tabMetaDataIfAny, Hint.MIDDLE);
+            addPropertiesAndCollections(middleColumn, entityModel, FCTabMetaDataIfAny, Hint.MIDDLE);
         } else {
             middleColumn = null;
             Components.permanentlyHide(this, ID_MIDDLE_COLUMN);
@@ -170,7 +170,7 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
         if(columnSpans.getRight() > 0) {
             rightColumn = new WebMarkupContainer(ID_RIGHT_COLUMN);
             add(rightColumn);
-            addPropertiesAndCollections(rightColumn, entityModel, tabMetaDataIfAny, Hint.RIGHT);
+            addPropertiesAndCollections(rightColumn, entityModel, FCTabMetaDataIfAny, Hint.RIGHT);
         } else {
             rightColumn = null;
             Components.permanentlyHide(this, ID_RIGHT_COLUMN);
@@ -189,7 +189,7 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
 
         // edit buttons and feedback (not supported on tabbed view)
         final Hint leftHint = Hint.LEFT;
-        final ColumnMetadata leftColumnMetaDataIfAny = leftHint.from(tabMetaDataIfAny);
+        final FCColumn leftColumnMetaDataIfAny = leftHint.from(FCTabMetaDataIfAny);
         final boolean hasProperties = leftColumnMetaDataIfAny == null && !PropUtil
                 .propertyGroupNames(entityModel, leftHint, leftColumnMetaDataIfAny).isEmpty();
         if (hasProperties) {
@@ -204,7 +204,7 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
 
 
         // collections (only if not being added to a tab)
-        if(tabMetaDataIfAny == null && columnSpans.getCollections() > 0) {
+        if(FCTabMetaDataIfAny == null && columnSpans.getCollections() > 0) {
             final String idCollectionsToShow;
             final String idCollectionsToHide;
             int collectionSpan;
@@ -233,9 +233,9 @@ public class EntityPropsAndCollsForm extends FormAbstract<ObjectAdapter> impleme
     private void addPropertiesAndCollections(
             final MarkupContainer markupContainer,
             final EntityModel entityModel,
-            final TabMetadata tabMetaDataIfAny,
+            final FCTab FCTabMetaDataIfAny,
             final Hint hint) {
-        final ColumnMetadata columnMetaDataIfAny = hint.from(tabMetaDataIfAny);
+        final FCColumn columnMetaDataIfAny = hint.from(FCTabMetaDataIfAny);
 
         final EntityModel entityModelWithHints = entityModel.cloneWithColumnMetadata(columnMetaDataIfAny, hint);
 

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabbed/EntityTabbedPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabbed/EntityTabbedPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabbed/EntityTabbedPanel.java
index ca5c9ad..40ec6e3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabbed/EntityTabbedPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabbed/EntityTabbedPanel.java
@@ -23,9 +23,9 @@ import java.util.List;
 
 import com.google.common.collect.FluentIterable;
 
-import org.apache.isis.applib.layout.fixedcols.ColumnMetadata;
-import org.apache.isis.applib.layout.fixedcols.ObjectLayoutMetadata;
-import org.apache.isis.applib.layout.fixedcols.TabGroupMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
+import org.apache.isis.applib.layout.fixedcols.FCPage;
+import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.object.layoutmetadata.ObjectLayoutMetadataFacet;
@@ -64,16 +64,16 @@ public class EntityTabbedPanel extends PanelAbstract<EntityModel> {
 
         // forces metadata to be derived && synced
         final ObjectLayoutMetadataFacet objectLayoutMetadataFacet = model.getTypeOfSpecification().getFacet(ObjectLayoutMetadataFacet.class);
-        final ObjectLayoutMetadata objectLayoutMetadata = objectLayoutMetadataFacet.getMetadata();
+        final FCPage FCPage = objectLayoutMetadataFacet.getMetadata();
 
 
         addOrReplace(ComponentType.ENTITY_SUMMARY, model);
 
-        final int leftSpan = addColumnIfRequired(ID_LEFT_COLUMN, objectLayoutMetadata.getLeft(), ColumnMetadata.Hint.LEFT);
+        final int leftSpan = addColumnIfRequired(ID_LEFT_COLUMN, FCPage.getLeft(), FCColumn.Hint.LEFT);
 
-        final TabGroupListPanel middleTabs = addTabGroups(ID_MIDDLE_COLUMN, objectLayoutMetadata.getTabGroups());
+        final TabGroupListPanel middleTabs = addTabGroups(ID_MIDDLE_COLUMN, FCPage.getTabGroups());
 
-        final int rightSpan = addColumnIfRequired(ID_RIGHT_COLUMN, objectLayoutMetadata.getRight(), ColumnMetadata.Hint.RIGHT);
+        final int rightSpan = addColumnIfRequired(ID_RIGHT_COLUMN, FCPage.getRight(), FCColumn.Hint.RIGHT);
 
         final int columnSpans = leftSpan + rightSpan;
         int tabGroupSpan = columnSpans < 12 ? 12 - (columnSpans) : 12;
@@ -82,11 +82,11 @@ public class EntityTabbedPanel extends PanelAbstract<EntityModel> {
     }
 
     private TabGroupListPanel addTabGroups(
-            final String id, final List<TabGroupMetadata> tabGroupList) {
+            final String id, final List<FCTabGroup> tabGroupList) {
         final EntityModel model = getModel();
-        final List<TabGroupMetadata> tabGroups = FluentIterable
+        final List<FCTabGroup> tabGroups = FluentIterable
                 .from(tabGroupList)
-                .filter(TabGroupMetadata.Predicates.notEmpty())
+                .filter(FCTabGroup.Predicates.notEmpty())
                 .toList();
         final EntityModel entityModelWitHints = model.cloneWithTabGroupListMetadata(tabGroups);
         final TabGroupListPanel middleComponent = new TabGroupListPanel(id, entityModelWitHints);
@@ -94,11 +94,11 @@ public class EntityTabbedPanel extends PanelAbstract<EntityModel> {
         return middleComponent;
     }
 
-    private int addColumnIfRequired(final String id, final ColumnMetadata col, final ColumnMetadata.Hint hint) {
+    private int addColumnIfRequired(final String id, final FCColumn col, final FCColumn.Hint hint) {
         if(col != null) {
             final EntityModel entityModel =
                     getModel().cloneWithColumnMetadata(col, hint);
-            final int span = entityModel.getColumnMetadata().getSpan();
+            final int span = entityModel.getFCColumn().getSpan();
             if(span > 0) {
                 final EntityColumn entityColumn = new EntityColumn(id, entityModel);
                 addOrReplace(entityColumn);

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
index c4dbb15..1047855 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroup/TabGroupPanel.java
@@ -29,8 +29,8 @@ import org.apache.wicket.extensions.markup.html.tabs.TabbedPanel;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.applib.layout.fixedcols.TabGroupMetadata;
-import org.apache.isis.applib.layout.fixedcols.TabMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
+import org.apache.isis.applib.layout.fixedcols.FCTab;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.util.ScopedSessionAttribute;
 import org.apache.isis.viewer.wicket.ui.components.entity.tabpanel.TabPanel;
@@ -42,7 +42,7 @@ public class TabGroupPanel extends AjaxBootstrapTabbedPanel {
     public static final String SESSION_ATTR_SELECTED_TAB = "selectedTab";
     private final EntityModel entityModel;
     // the view metadata
-    private final TabGroupMetadata tabGroup;
+    private final FCTabGroup tabGroup;
     private final ScopedSessionAttribute<Integer> selectedTabInSession;
 
     private static final String ID_TAB_GROUP = "tabGroup";
@@ -50,19 +50,19 @@ public class TabGroupPanel extends AjaxBootstrapTabbedPanel {
     private static List<ITab> tabsFor(final EntityModel entityModel) {
         final List<ITab> tabs = Lists.newArrayList();
 
-        final TabGroupMetadata tabGroup = entityModel.getTabGroupMetadata();
-        final List<TabMetadata> tabMetadataList = FluentIterable
+        final FCTabGroup tabGroup = entityModel.getFCTabGroup();
+        final List<FCTab> FCTabList = FluentIterable
                 .from(tabGroup.getTabs())
-                .filter(TabMetadata.Predicates.notEmpty())
+                .filter(FCTab.Predicates.notEmpty())
                 .toList();
 
-        for (final TabMetadata tabMetadata : tabMetadataList) {
-            tabs.add(new AbstractTab(Model.of(tabMetadata.getName())) {
+        for (final FCTab FCTab : FCTabList) {
+            tabs.add(new AbstractTab(Model.of(FCTab.getName())) {
                 private static final long serialVersionUID1 = 1L;
 
                 @Override
                 public Panel getPanel(String panelId) {
-                    return new TabPanel(panelId, entityModel, tabMetadata);
+                    return new TabPanel(panelId, entityModel, FCTab);
                 }
             });
         }
@@ -73,7 +73,7 @@ public class TabGroupPanel extends AjaxBootstrapTabbedPanel {
         super(ID_TAB_GROUP, tabsFor(entityModel));
 
         this.entityModel = entityModel;
-        this.tabGroup = entityModel.getTabGroupMetadata();
+        this.tabGroup = entityModel.getFCTabGroup();
         this.selectedTabInSession = ScopedSessionAttribute.create(entityModel, this, SESSION_ATTR_SELECTED_TAB);
 
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
index 5a53620..ff0de4d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgrouplist/TabGroupListPanel.java
@@ -24,7 +24,7 @@ import java.util.List;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 
-import org.apache.isis.applib.layout.fixedcols.TabGroupMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.ui.components.entity.tabgroup.TabGroupPanel;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
@@ -36,7 +36,7 @@ public class TabGroupListPanel extends PanelAbstract<EntityModel> {
     private static final String ID_TAB_GROUPS = "tabGroups";
 
     // the view metadata
-    private final List<TabGroupMetadata> tabGroups;
+    private final List<FCTabGroup> tabGroups;
 
     public TabGroupListPanel(final String id, final EntityModel entityModel) {
         super(id, entityModel);
@@ -49,12 +49,12 @@ public class TabGroupListPanel extends PanelAbstract<EntityModel> {
     private void buildGui() {
         final EntityModel model = getModel();
 
-        final ListView<TabGroupMetadata> tabGroupsList = new ListView<TabGroupMetadata>(ID_TAB_GROUPS, this.tabGroups) {
+        final ListView<FCTabGroup> tabGroupsList = new ListView<FCTabGroup>(ID_TAB_GROUPS, this.tabGroups) {
 
             @Override
-            protected void populateItem(final ListItem<TabGroupMetadata> item) {
+            protected void populateItem(final ListItem<FCTabGroup> item) {
 
-                final TabGroupMetadata tabGroup = item.getModelObject();
+                final FCTabGroup tabGroup = item.getModelObject();
                 final EntityModel entityModelWithHints = model.cloneWithTabGroupMetadata(tabGroup);
                 final TabGroupPanel tabGroupPanel = new TabGroupPanel(entityModelWithHints);
                 item.add(tabGroupPanel);

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
index 8b21ddf..6b6d9d7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabpanel/TabPanel.java
@@ -1,6 +1,6 @@
 package org.apache.isis.viewer.wicket.ui.components.entity.tabpanel;
 
-import org.apache.isis.applib.layout.fixedcols.TabMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCTab;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
@@ -11,10 +11,10 @@ public class TabPanel extends PanelAbstract {
 
     private static final String ID_COLUMN = "column";
 
-    public TabPanel(String id, final EntityModel model, final TabMetadata tabMetadata) {
+    public TabPanel(String id, final EntityModel model, final FCTab FCTab) {
         super(id);
 
-        final EntityModel modelWithTabHints = model.cloneWithTabMetadata(tabMetadata);
+        final EntityModel modelWithTabHints = model.cloneWithTabMetadata(FCTab);
 
         getComponentFactoryRegistry()
                 .addOrReplaceComponent(this,

http://git-wip-us.apache.org/repos/asf/isis/blob/10d80f3a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index ce5f0b5..51c222c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -29,7 +29,7 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.Strings;
 
-import org.apache.isis.applib.layout.fixedcols.ObjectLayoutMetadata;
+import org.apache.isis.applib.layout.fixedcols.FCPage;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
@@ -142,7 +142,7 @@ public class EntityPage extends PageAbstract {
             // the facet should always exist, in fact
             // just enough to ask for the metadata.
             // This will cause the current ObjectSpec to be updated as a side effect.
-            final ObjectLayoutMetadata metadata = facet.getMetadata();
+            final FCPage metadata = facet.getMetadata();
 
             // if none, then fallback to invalidating entire cache
             // (this is the original LayoutMetadataFromJson behaviour)