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:49 UTC

[3/5] isis git commit: ISIS-993: refactoring EntityPropertiesForm so can factor out a new component.

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>