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 2014/11/11 09:22:24 UTC

[04/10] isis git commit: ISIS-537: can now select different views for standalone collections.

ISIS-537: can now select different views for standalone collections.


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

Branch: refs/heads/ISIS-939
Commit: c1f5281d97ba77fa9055f99ec650654f977cf641
Parents: cb2bea9
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Nov 10 20:37:13 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Nov 10 20:37:13 2014 +0000

----------------------------------------------------------------------
 .../model/models/EntityCollectionModel.java     |  2 -
 .../viewer/wicket/model/models/EntityModel.java | 72 +------------------
 .../wicket/model/models/ModelAbstract.java      | 76 +++++++++++++++++++-
 3 files changed, 78 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/c1f5281d/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index 41c831b..6afdecd 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -23,11 +23,9 @@ import java.io.Serializable;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
-
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.commons.lang.Closure;

http://git-wip-us.apache.org/repos/asf/isis/blob/c1f5281d/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 6c66859..e293e9b 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -23,11 +23,8 @@ import java.io.Serializable;
 import java.util.Map;
 import java.util.Set;
 import com.google.common.collect.Maps;
-import org.apache.wicket.Component;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.util.string.PrependingStringBuffer;
-import org.apache.wicket.util.string.Strings;
 import org.apache.isis.applib.annotation.BookmarkPolicy;
 import org.apache.isis.applib.services.memento.MementoService.Memento;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -46,8 +43,6 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.runtime.services.memento.MementoServiceDefault;
 import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
-import org.apache.isis.viewer.wicket.model.hints.UiHintPathSignificant;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
 import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
@@ -59,7 +54,7 @@ import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
  * So that the model is {@link Serializable}, the {@link ObjectAdapter} is
  * stored as a {@link ObjectAdapterMemento}.
  */
-public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiHintContainer {
+public class EntityModel extends BookmarkableModel<ObjectAdapter> {
 
     private static final long serialVersionUID = 1L;
     
@@ -154,7 +149,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
 
     public EntityModel(final PageParameters pageParameters) {
         this(ObjectAdapterMemento.createPersistent(rootOidFrom(pageParameters)));
-        hintPageParameterSerializer.pageParametersToHints(pageParameters, this.hints);
+        hintPageParameterSerializer.pageParametersToHints(pageParameters, getHints());
     }
     public EntityModel(final ObjectAdapter adapter) {
         this(ObjectAdapterMemento.createOrNull(adapter));
@@ -183,7 +178,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
     @Override
     public PageParameters getPageParameters() {
         PageParameters pageParameters = createPageParameters(getObject());
-        hintPageParameterSerializer.hintsToPageParameters(hints, pageParameters);
+        hintPageParameterSerializer.hintsToPageParameters(getHints(), pageParameters);
         return pageParameters;
     }
 
@@ -466,67 +461,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
 
     
     
-    // //////////////////////////////////////////////////////////
-    // Hint support
-    // //////////////////////////////////////////////////////////
-    
-    private final Map<String, String> hints = Maps.newTreeMap();
-    
-    public String getHint(final Component component, final String key) {
-        if(component == null) {
-            return null;
-        }
-        String hintKey = hintKey(component, key);
-        return hints.get(hintKey);
-    }
-    
-    @Override
-    public void setHint(Component component, String key, String value) {
-        if(component == null) {
-            return;
-        }
-        String hintKey = hintKey(component, key);
-        if(value != null) {
-            hints.put(hintKey, value);
-        } else {
-            clearHint(component, hintKey);
-        }
-    }
-
-    @Override
-    public void clearHint(Component component, String key) {
-        if(component == null) {
-            return;
-        }
-        String hintKey = hintKey(component, key);
-        hints.remove(hintKey);
-    }
-
-    
-    private static String hintKey(Component component, String key) {
-        return hintPathFor(component) + "-" + key;
-    }
-
-    private static String hintPathFor(Component component)
-    {
-        return Strings.afterFirstPathComponent(fullHintPathFor(component), Component.PATH_SEPARATOR);
-    }
-
-    private static String fullHintPathFor(Component component)
-    {
-        final PrependingStringBuffer buffer = new PrependingStringBuffer(32);
-        for (Component c = component; c != null; c = c.getParent())
-        {
-            if(c instanceof UiHintPathSignificant) {
-                if (buffer.length() > 0)
-                {
-                    buffer.prepend(Component.PATH_SEPARATOR);
-                }
-                buffer.prepend(c.getId());
-            }
-        }
-        return buffer.toString();
-    }
 
     
     // //////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/c1f5281d/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
index 4556cd2..8e65177 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
@@ -20,18 +20,25 @@
 package org.apache.isis.viewer.wicket.model.models;
 
 import java.util.List;
+import java.util.Map;
+import com.google.common.collect.Maps;
+import org.apache.wicket.Component;
 import org.apache.wicket.model.LoadableDetachableModel;
+import org.apache.wicket.util.string.PrependingStringBuffer;
+import org.apache.wicket.util.string.Strings;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
+import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
+import org.apache.isis.viewer.wicket.model.hints.UiHintPathSignificant;
 
 /**
  * Adapter for {@link LoadableDetachableModel}s, providing access to some of the
  * Isis' dependencies.
  */
-public abstract class ModelAbstract<T> extends LoadableDetachableModel<T> {
+public abstract class ModelAbstract<T> extends LoadableDetachableModel<T> implements UiHintContainer {
 
     private static final long serialVersionUID = 1L;
 
@@ -42,6 +49,73 @@ public abstract class ModelAbstract<T> extends LoadableDetachableModel<T> {
         super(t);
     }
 
+
+    // //////////////////////////////////////////////////////////
+    // Hint support
+    // //////////////////////////////////////////////////////////
+
+    private final Map<String, String> hints = Maps.newTreeMap();
+
+    public String getHint(final Component component, final String key) {
+        if(component == null) {
+            return null;
+        }
+        String hintKey = hintKey(component, key);
+        return hints.get(hintKey);
+    }
+
+    @Override
+    public void setHint(Component component, String key, String value) {
+        if(component == null) {
+            return;
+        }
+        String hintKey = hintKey(component, key);
+        if(value != null) {
+            hints.put(hintKey, value);
+        } else {
+            clearHint(component, hintKey);
+        }
+    }
+
+    @Override
+    public void clearHint(Component component, String key) {
+        if(component == null) {
+            return;
+        }
+        String hintKey = hintKey(component, key);
+        hints.remove(hintKey);
+    }
+
+
+    private static String hintKey(Component component, String key) {
+        return hintPathFor(component) + "-" + key;
+    }
+
+    private static String hintPathFor(Component component)
+    {
+        return Strings.afterFirstPathComponent(fullHintPathFor(component), Component.PATH_SEPARATOR);
+    }
+
+    private static String fullHintPathFor(Component component)
+    {
+        final PrependingStringBuffer buffer = new PrependingStringBuffer(32);
+        for (Component c = component; c != null; c = c.getParent())
+        {
+            if(c instanceof UiHintPathSignificant) {
+                if (buffer.length() > 0)
+                {
+                    buffer.prepend(Component.PATH_SEPARATOR);
+                }
+                buffer.prepend(c.getId());
+            }
+        }
+        return buffer.toString();
+    }
+
+    protected Map<String, String> getHints() {
+        return hints;
+    }
+
     // //////////////////////////////////////////////////////////////
     // Dependencies
     // //////////////////////////////////////////////////////////////