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/02/26 15:53:05 UTC

[5/6] isis git commit: ISIS-993: minor changes, working towards being able to generate .layout.xml for complete vs normalized vs minimal (no longer NPEs for complete etc), however...

ISIS-993: minor changes, working towards being able to generate .layout.xml for complete vs normalized vs minimal (no longer NPEs for complete etc), however...

... not yet correctly roundtripping for anything other than the complete .layout.xml.


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

Branch: refs/heads/ISIS-993
Commit: df329882299524e194a7e9d0e86f497421eaa110
Parents: 48fe231
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Feb 26 14:43:29 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Feb 26 14:43:29 2016 +0000

----------------------------------------------------------------------
 .../metamodel/facets/object/grid/GridFacet.java    | 10 +++++++++-
 .../services/grid/GridServiceDefault.java          | 17 +++++++++--------
 2 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/df329882/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
index 75dbda9..4b09be1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
@@ -20,10 +20,18 @@ package org.apache.isis.core.metamodel.facets.object.grid;
 
 
 import org.apache.isis.applib.layout.component.Grid;
+import org.apache.isis.applib.services.layout.GridNormalizerService;
+import org.apache.isis.applib.services.layout.GridService;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 /**
- * Corresponds to providing a <code>.layout.xml</code> file for the domain object's class.
+ * Obtain the current grid, derived either from a <code>.layout.xml</code> file, and normalized, or synthesized from
+ * existing layout metadata (annotations or <code>layout.json</code>).
+ *
+ * <p>
+ *     Most of the heavy lifting is done by delegating to the {@link GridService} and {@link GridNormalizerService}
+ *     services.
+ * </p>
  */
 public interface GridFacet extends Facet {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/df329882/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
index 4ce3f02..7a774d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
@@ -229,21 +229,22 @@ public class GridServiceDefault
     public Grid toGrid(final Class<?> domainClass, final Style style) {
         switch (style) {
         case NORMALIZED:
-            // obtain the already normalized grid, if available.
-            // (if there is none, then the facet will delegate back to this service to do the normalization,
-            // but then will cache it for any subsequent requests).
-            final ObjectSpecification objectSpec = specificationLookup.loadSpecification(domainClass);
-            final GridFacet facet = objectSpec.getFacet(GridFacet.class);
-            return facet != null? facet.getGrid(): null;
+            return normalizedGrid(domainClass);
         case COMPLETE:
-            return complete(fromXml(domainClass));
+            return complete(normalizedGrid(domainClass));
         case MINIMAL:
-            return minimal(fromXml(domainClass));
+            return minimal(normalizedGrid(domainClass));
         default:
             throw new IllegalArgumentException("unsupported style");
         }
     }
 
+    protected Grid normalizedGrid(final Class<?> domainClass) {
+        final ObjectSpecification objectSpec = specificationLookup.loadSpecification(domainClass);
+        final GridFacet facet = objectSpec.getFacet(GridFacet.class);
+        return facet != null? facet.getGrid(): null;
+    }
+
     @Override
     public String tnsAndSchemaLocation(final Grid grid) {
         final List<String> parts = Lists.newArrayList();