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

[25/50] [abbrv] isis git commit: ISIS-993: started working on adding a fixed column to right hand side

ISIS-993: started working on adding a fixed column to right hand side


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ea02966b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ea02966b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ea02966b

Branch: refs/heads/ISIS-993
Commit: ea02966b01fa8dd0a1548932cad7ac1ea7911e80
Parents: f80f273
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Jan 8 18:48:16 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Jan 25 14:38:24 2016 +0000

----------------------------------------------------------------------
 .../apache/isis/applib/layout/v1_0/Column.java  |  6 ++---
 .../isis/applib/layout/v1_0/ColumnHolder.java   | 23 ++++++++++++++++++++
 .../org/apache/isis/applib/layout/v1_0/Tab.java |  2 +-
 .../isis/applib/layout/v1_0/TabGroup.java       | 13 ++++++++++-
 .../ObjectLayoutMetadataServiceDefault.java     | 12 ++++++----
 .../metamodel/spec/ObjectSpecifications.java    |  6 ++---
 .../viewer/wicket/model/models/EntityModel.java |  1 -
 .../collections/EntityCollectionsPanel.java     |  4 +++-
 .../entity/properties/EntityPropertiesForm.java | 17 ++++++---------
 .../EntityTabGroupsPanel$EntityTabPanel.html    |  1 -
 .../entity/tabgroups/EntityTabGroupsPanel.html  |  7 ++++--
 .../entity/tabgroups/EntityTabGroupsPanel.java  |  2 ++
 12 files changed, 67 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
index 1f5ca23..f208a7f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Column.java
@@ -84,7 +84,7 @@ public class Column implements Serializable {
     }
 
 
-    private Tab owner;
+    private ColumnHolder owner;
     /**
      * Owner.
      *
@@ -93,11 +93,11 @@ public class Column implements Serializable {
      * </p>
      */
     @XmlTransient
-    public Tab getOwner() {
+    public ColumnHolder getOwner() {
         return owner;
     }
 
-    public void setOwner(final Tab owner) {
+    public void setOwner(final ColumnHolder owner) {
         this.owner = owner;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java
new file mode 100644
index 0000000..8211750
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/ColumnHolder.java
@@ -0,0 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.layout.v1_0;
+
+public interface ColumnHolder {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
index 04d2542..4f0a5c3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/Tab.java
@@ -40,7 +40,7 @@ import org.apache.isis.applib.annotation.Programmatic;
                 , "right"
         }
 )
-public class Tab implements Serializable {
+public class Tab implements ColumnHolder, Serializable {
 
     private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
index 7547d5e..6fb93ee 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/v1_0/TabGroup.java
@@ -30,7 +30,7 @@ import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
 
 @XmlType()
-public class TabGroup implements Serializable {
+public class TabGroup implements ColumnHolder, Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -53,6 +53,17 @@ public class TabGroup implements Serializable {
 
 
 
+    private Column fixed;
+
+    @XmlElement(required = false)
+    public Column getFixed() {
+        return fixed;
+    }
+
+    public void setFixed(final Column fixed) {
+        this.fixed = fixed;
+    }
+
     private ObjectLayoutMetadata owner;
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
index 972999d..e2a2e1d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java
@@ -42,6 +42,7 @@ import org.apache.isis.applib.layout.v1_0.ActionHolder;
 import org.apache.isis.applib.layout.v1_0.ActionLayoutMetadata;
 import org.apache.isis.applib.layout.v1_0.CollectionLayoutMetadata;
 import org.apache.isis.applib.layout.v1_0.Column;
+import org.apache.isis.applib.layout.v1_0.ColumnHolder;
 import org.apache.isis.applib.layout.v1_0.ObjectLayoutMetadata;
 import org.apache.isis.applib.layout.v1_0.PropertyGroup;
 import org.apache.isis.applib.layout.v1_0.PropertyLayoutMetadata;
@@ -407,10 +408,13 @@ public class ObjectLayoutMetadataServiceDefault
 
                 // if there is only a single column and no other contents, then copy the collection Id onto the tab'
                 final Column column = collectionLayoutMetadata.getOwner();
-                final Tab tab = column.getOwner();
-                if(tab.getContents().size() == 1) {
-                    final String collectionName = oneToManyAssociation.getName();
-                    tab.setName(collectionName);
+                final ColumnHolder holder = column.getOwner();
+                if(holder instanceof Tab) {
+                    final Tab tab = (Tab) holder;
+                    if(tab.getContents().size() == 1) {
+                        final String collectionName = oneToManyAssociation.getName();
+                        tab.setName(collectionName);
+                    }
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
index 7fee60b..2c24f0d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
@@ -59,7 +59,7 @@ public final class ObjectSpecifications {
     public static List<String> orderByMemberGroups(
             final ObjectSpecification objSpec,
             final Set<String> groupNamesToOrder,
-            final MemberGroupLayoutHint memberGroupLayoutHint) {
+            final MemberGroupLayoutHint hint) {
 
         final MemberGroupLayoutFacet facet = objSpec.getFacet(MemberGroupLayoutFacet.class);
         final List<String> leftColumnGroupNames = Lists.newArrayList(groupNamesToOrder);
@@ -69,10 +69,10 @@ public final class ObjectSpecifications {
             return leftColumnGroupNames;
         }
         
-        if(memberGroupLayoutHint == MemberGroupLayoutHint.MIDDLE) {
+        if(hint == MemberGroupLayoutHint.MIDDLE) {
             return facet.getColumnSpans().getMiddle()>0? facet.getMiddle(): Collections.<String>emptyList();
         }
-        if(memberGroupLayoutHint == MemberGroupLayoutHint.RIGHT) {
+        if(hint == MemberGroupLayoutHint.RIGHT) {
             return facet.getColumnSpans().getRight()>0? facet.getRight(): Collections.<String>emptyList();
         }
         

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 9838163..53b6bd1 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -652,7 +652,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
 
     public EntityModel withColumnMetadata(final Column columnMetadata) {
         this.columnMetadata = columnMetadata;
-        this.tabMetadata = columnMetadata.getOwner();
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index 81b83c4..cf6f1d9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -123,7 +123,9 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
             public int compare(final ObjectAssociation o1, final ObjectAssociation o2) {
                 final MemberOrderFacet o1Facet = o1.getFacet(MemberOrderFacet.class);
                 final MemberOrderFacet o2Facet = o2.getFacet(MemberOrderFacet.class);
-                return deweyOrderComparator.compare(o1Facet.sequence(), o2Facet.sequence());
+                return o1Facet == null? +1:
+                        o2Facet == null? -1:
+                        deweyOrderComparator.compare(o1Facet.sequence(), o2Facet.sequence());
             }
         });
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index adc9262..3f2771d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -242,9 +242,10 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
             final MarkupContainer col,
             final MemberGroupLayoutHint hint,
             final EntityModel entityModel,
-            final Tab tabMetaDataIfAny, final ColumnSpans columnSpans) {
-        final boolean addedProperties;
-        addedProperties = addPropertiesInColumn(col, hint, entityModel, tabMetaDataIfAny, columnSpans);
+            final Tab tabMetaDataIfAny,
+            final ColumnSpans columnSpans) {
+        final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint.from(tabMetaDataIfAny) : null;
+        final boolean addedProperties = addPropertiesInColumn(col, hint, entityModel, columnSpans, columnMetaDataIfAny);
         addCollectionsIfRequired(col, hint, entityModel, tabMetaDataIfAny);
         return addedProperties;
     }
@@ -253,15 +254,11 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
             final MarkupContainer markupContainer,
             final MemberGroupLayoutHint hint,
             final EntityModel entityModel,
-            final Tab tabMetaDataIfAny,
-            final ColumnSpans columnSpans) {
+            final ColumnSpans columnSpans, final Column columnMetaDataIfAny) {
         final int span = hint.from(columnSpans);
-
         final ObjectAdapter adapter = entityModel.getObject();
         final ObjectSpecification objSpec = adapter.getSpecification();
 
-        final Column columnMetaDataIfAny = tabMetaDataIfAny != null ? hint.from(tabMetaDataIfAny) : null;
-
         final List<ObjectAssociation> properties = visibleProperties(adapter);
 
         final RepeatingView memberGroupRv = new RepeatingView(ID_MEMBER_GROUP);
@@ -269,7 +266,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
 
         final Map<String, List<ObjectAssociation>> associationsByGroup = ObjectAssociation.Util.groupByMemberOrderName(properties);
 
-        final List<String> groupNames = tabMetaDataIfAny != null
+        final List<String> groupNames = columnMetaDataIfAny != null
                 ? FluentIterable
                     .from(columnMetaDataIfAny.getPropertyGroups())
                     .transform(PropertyGroup.Util.nameOf())
@@ -312,7 +309,7 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
                     actionsPanelDropDown,
                     AdditionalLinksPanel.Style.DROPDOWN);
         }
-        
+
         addClassForSpan(markupContainer, span);
 
         return !groupNames.isEmpty();

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
index 94582b1..025253b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel$EntityTabPanel.html
@@ -22,7 +22,6 @@
 <wicket:panel>
 	<div class="tabPanel">
         <div wicket:id="entityPropertiesAndCollections"></div>
-
 	</div>
 </wicket:panel>
 </body>

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
index ebe6c63..fded796 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.html
@@ -24,9 +24,12 @@
 		<div wicket:id="entitySummary"></div>
 
         <div wicket:id="tabGroups">
-            <div wicket:id="tabGroup">[tabbed panel will be here]</div>
+            <div class="row">
+                <div wicket:id="tabGroup" class="col-xs-8">[tabbed panel will be here]</div>
+                <div XXXXwicket:id="collections" class = "fixedColumn col-xs-4">
+                </div>
+            </div>
         </div>
-
 	</div>
 </wicket:panel>
 </body>

http://git-wip-us.apache.org/repos/asf/isis/blob/ea02966b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
index fec95d0..2667d05 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/tabgroups/EntityTabGroupsPanel.java
@@ -112,6 +112,8 @@ public class EntityTabGroupsPanel extends PanelAbstract<EntityModel> {
             }
         };
         add(tabGroupsList);
+
+        
     }
 
     private static class EntityTabPanel extends PanelAbstract {