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 2017/01/19 11:25:28 UTC

isis git commit: ISIS-785: huzzah... can now invoke actions also with a collection of objects.

Repository: isis
Updated Branches:
  refs/heads/maint-1.13.3 fadb7ec78 -> d62089eb7


ISIS-785: huzzah... can now invoke actions also with a collection of objects.


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

Branch: refs/heads/maint-1.13.3
Commit: d62089eb7cd875192665ac76a1c8c23e4e618d80
Parents: fadb7ec
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jan 19 11:25:18 2017 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jan 19 11:25:18 2017 +0000

----------------------------------------------------------------------
 .../model/mementos/ObjectAdapterMemento.java    | 16 ++-----
 .../viewer/wicket/model/models/EntityModel.java |  2 +-
 .../models/ScalarModelWithMultiPending.java     | 50 --------------------
 .../scalars/reference/ReferencePanel.java       | 12 ++---
 .../components/scalars/reference/Select2.java   | 34 +++++--------
 5 files changed, 25 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/d62089eb/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
index d6d820e..3b7505e 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
@@ -89,9 +89,10 @@ public class ObjectAdapterMemento implements Serializable {
             @Override
             public ObjectAdapter asAdapter(
                     final ObjectAdapterMemento oam,
+                    final ConcurrencyChecking concurrencyChecking,
                     final PersistenceSession persistenceSession,
                     final SpecificationLoader specificationLoader) {
-                return oam.getObjectAdapter(ConcurrencyChecking.CHECK, persistenceSession, specificationLoader);
+                return oam.type.getAdapter(oam, concurrencyChecking, persistenceSession, specificationLoader);
             }
 
             @Override
@@ -124,7 +125,7 @@ public class ObjectAdapterMemento implements Serializable {
             @Override
             public ObjectAdapter asAdapter(
                     final ObjectAdapterMemento oam,
-                    final PersistenceSession persistenceSession,
+                    final ConcurrencyChecking concurrencyChecking, final PersistenceSession persistenceSession,
                     final SpecificationLoader specificationLoader) {
                 final List<Object> listOfPojos =
                         Lists.newArrayList(
@@ -167,7 +168,7 @@ public class ObjectAdapterMemento implements Serializable {
 
         public abstract ObjectAdapter asAdapter(
                 final ObjectAdapterMemento oam,
-                final PersistenceSession persistenceSession,
+                final ConcurrencyChecking concurrencyChecking, final PersistenceSession persistenceSession,
                 final SpecificationLoader specificationLoader);
 
         public abstract int hashCode(final ObjectAdapterMemento oam);
@@ -446,12 +447,6 @@ public class ObjectAdapterMemento implements Serializable {
         return list;
     }
 
-    public ObjectAdapter asAdapter(
-            final PersistenceSession persistenceSession,
-            final SpecificationLoader specificationLoader) {
-        return sort.asAdapter(this, persistenceSession, specificationLoader);
-    }
-
 
     public void resetVersion(
             final PersistenceSession persistenceSession,
@@ -480,8 +475,7 @@ public class ObjectAdapterMemento implements Serializable {
             final ConcurrencyChecking concurrencyChecking,
             final PersistenceSession persistenceSession,
             final SpecificationLoader specificationLoader) {
-        ensureScalar();
-        return type.getAdapter(this, concurrencyChecking, persistenceSession, specificationLoader);
+        return sort.asAdapter(this, concurrencyChecking, persistenceSession, specificationLoader);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/d62089eb/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 74c1c3a..d9692df 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
@@ -361,7 +361,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
             final ObjectAdapterMemento memento,
             final PersistenceSession persistenceSession,
             final SpecificationLoader specificationLoader) {
-        super.setObject(memento.asAdapter(persistenceSession, specificationLoader));
+        super.setObject(memento.getObjectAdapter(ConcurrencyChecking.CHECK, persistenceSession, specificationLoader));
         adapterMemento = memento;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/d62089eb/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index 1a824cc..9ada5fd 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -18,19 +18,11 @@ package org.apache.isis.viewer.wicket.model.models;
 
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
 
 import org.apache.wicket.model.Model;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
@@ -101,47 +93,5 @@ public interface ScalarModelWithMultiPending extends Serializable {
             };
         }
 
-        public static ObjectAdapter toAdapter(
-                final ArrayList<ObjectAdapterMemento> ownerPending,
-                final PersistenceSession persistenceSession,
-                final SpecificationLoader specificationLoader) {
-            final ArrayList<Object> listOfPojos = Lists
-                    .newArrayList(FluentIterable.from(ownerPending).transform(
-                            ObjectAdapterMemento.Functions
-                                    .toPojo(persistenceSession, specificationLoader))
-                            .toList());
-            return persistenceSession.adapterFor(listOfPojos);
-        }
-
-        public static ArrayList<ObjectAdapterMemento> asMementoList(
-                final ObjectAdapterMemento objectAdapterMemento,
-                final PersistenceSession persistenceSession,
-                final SpecificationLoader specificationLoader) {
-
-            if(objectAdapterMemento == null) {
-                return Lists.newArrayList();
-            }
-
-            final ObjectAdapter objectAdapter = objectAdapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                    persistenceSession, specificationLoader);
-            if(objectAdapter == null) {
-                return Lists.newArrayList();
-            }
-
-            final List<ObjectAdapter> objectAdapters = CollectionFacet.Utils.convertToAdapterList(objectAdapter);
-
-            return Lists.newArrayList(
-                FluentIterable.from(objectAdapters)
-                              .transform(ObjectAdapterMemento.Functions.fromAdapter())
-                              .toList());
-        }
-
-        public static ObjectAdapterMemento toAdapterMemento(
-                final Collection<ObjectAdapterMemento> modelObject,
-                final PersistenceSession persistenceSession,
-                final SpecificationLoader specificationLoader) {
-
-            return ObjectAdapterMemento.createForList(modelObject);
-        }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/d62089eb/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index d23e63f..b0d009f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -383,12 +383,12 @@ public class ReferencePanel extends ScalarPanelAbstract {
 
     // called by setProviderAndCurrAndPending
     private void resetIfCurrentNotInChoices(final Select2 select2, final List<ObjectAdapterMemento> choiceMementos) {
-        final ObjectAdapterMemento curr = select2.getModelObject(getPersistenceSession(), getSpecificationLoader());
+        final ObjectAdapterMemento curr = select2.getModelObject();
 
         if(!getModel().isCollection()) {
 
             if(curr == null) {
-                select2.getModel(getPersistenceSession(), getSpecificationLoader()).setObject(null);
+                select2.getModel().setObject(null);
                 getModel().setObject(null);
                 return;
             }
@@ -396,11 +396,11 @@ public class ReferencePanel extends ScalarPanelAbstract {
             if(!curr.containedIn(choiceMementos, getPersistenceSession(), getSpecificationLoader())) {
                 if(!choiceMementos.isEmpty() && autoSelect()) {
                     final ObjectAdapterMemento newAdapterMemento = choiceMementos.get(0);
-                    select2.getModel(getPersistenceSession(), getSpecificationLoader()).setObject(newAdapterMemento);
+                    select2.getModel().setObject(newAdapterMemento);
                     getModel().setObject(newAdapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
                             getPersistenceSession(), getSpecificationLoader()));
                 } else {
-                    select2.getModel(getPersistenceSession(), getSpecificationLoader()).setObject(null);
+                    select2.getModel().setObject(null);
                     getModel().setObject(null);
                 }
             }
@@ -490,11 +490,11 @@ public class ReferencePanel extends ScalarPanelAbstract {
 
             // flush changes to pending
             ObjectAdapterMemento convertedInput =
-                    select2.getConvertedInput(getPersistenceSession(), getSpecificationLoader());
+                    select2.getConvertedInput();
             
             getModel().setPending(convertedInput);
             if(select2 != null) {
-                select2.getModel(getPersistenceSession(), getSpecificationLoader()).setObject(convertedInput);
+                select2.getModel().setObject(convertedInput);
             }
             
             final ObjectAdapter adapter = convertedInput!=null?convertedInput.getObjectAdapter(ConcurrencyChecking.NO_CHECK,

http://git-wip-us.apache.org/repos/asf/isis/blob/d62089eb/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/Select2.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/Select2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/Select2.java
index e650d3b..d82773c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/Select2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/Select2.java
@@ -30,10 +30,7 @@ import org.wicketstuff.select2.Select2Choice;
 import org.wicketstuff.select2.Select2MultiChoice;
 import org.wicketstuff.select2.Settings;
 
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.models.ScalarModelWithMultiPending;
 
 public class Select2 implements Serializable {
 
@@ -90,28 +87,24 @@ public class Select2 implements Serializable {
             select2MultiChoice.setProvider(providerForChoices);
     }
 
-    public ObjectAdapterMemento getModelObject(
-            final PersistenceSession persistenceSession,
-            final SpecificationLoader specificationLoader) {
+    public ObjectAdapterMemento getModelObject() {
         if (select2Choice != null) {
             return select2Choice.getModelObject();
         } else {
             final Collection<ObjectAdapterMemento> modelObject = select2MultiChoice.getModelObject();
-            return ScalarModelWithMultiPending.Util
-                    .toAdapterMemento(modelObject, persistenceSession, specificationLoader);
+
+            return ObjectAdapterMemento.createForList(modelObject);
         }
     }
 
-    public IModel<ObjectAdapterMemento> getModel(
-            final PersistenceSession persistenceSession,
-            final SpecificationLoader specificationLoader) {
+    public IModel<ObjectAdapterMemento> getModel() {
         if (select2Choice != null) {
             return select2Choice.getModel();
         } else {
             final IModel<Collection<ObjectAdapterMemento>> model = select2MultiChoice.getModel();
             final Collection<ObjectAdapterMemento> modelObject = model.getObject();
-            final ObjectAdapterMemento memento = ScalarModelWithMultiPending.Util
-                    .toAdapterMemento(modelObject, persistenceSession, specificationLoader);
+
+            final ObjectAdapterMemento memento = ObjectAdapterMemento.createForList(modelObject);
             return new IModel<ObjectAdapterMemento>() {
                 @Override
                 public ObjectAdapterMemento getObject() {
@@ -120,26 +113,25 @@ public class Select2 implements Serializable {
 
                 @Override
                 public void setObject(final ObjectAdapterMemento memento) {
-                    final ArrayList<ObjectAdapterMemento> mementos = ScalarModelWithMultiPending.Util
-                            .asMementoList(memento, persistenceSession, specificationLoader);
+
+                    final ArrayList<ObjectAdapterMemento> mementos = memento.getList();
                     model.setObject(mementos);
                 }
 
-                @Override public void detach() {
-
+                @Override
+                public void detach() {
                 }
             };
         }
     }
 
-    public ObjectAdapterMemento getConvertedInput(
-            final PersistenceSession persistenceSession,
-            final SpecificationLoader specificationLoader) {
+    public ObjectAdapterMemento getConvertedInput() {
         if (select2Choice != null) {
             return select2Choice.getConvertedInput();
         } else {
             final Collection<ObjectAdapterMemento> convertedInput = select2MultiChoice.getConvertedInput();
-            return ScalarModelWithMultiPending.Util.toAdapterMemento(convertedInput, persistenceSession, specificationLoader);
+
+            return ObjectAdapterMemento.createForList(convertedInput);
         }
     }
 }