You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/05/15 08:52:13 UTC
[isis] branch master updated: ISIS-2340: separate some pending
model stuff from ScalarModel
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new ae477b2 ISIS-2340: separate some pending model stuff from ScalarModel
ae477b2 is described below
commit ae477b2dba804c3f4e4c91ec31d8446a10194d37
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 15 10:52:04 2020 +0200
ISIS-2340: separate some pending model stuff from ScalarModel
---
.../viewer/wicket/model/models/ScalarModel.java | 71 +++-------------------
.../model/models/ScalarModelWithMultiPending.java | 36 +++++++++--
.../model/models/ScalarModelWithPending.java | 49 +++++++++++----
.../components/scalars/ScalarPanelAbstract2.java | 2 +-
.../scalars/reference/ReferencePanel.java | 2 +-
.../ui/components/widgets/select2/Select2.java | 4 +-
6 files changed, 79 insertions(+), 85 deletions(-)
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 5870253..2a47171 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -18,7 +18,6 @@
*/
package org.apache.isis.viewer.wicket.model.models;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -211,11 +210,11 @@ implements HasRenderingHints, ScalarUiModel, LinksProvider, FormExecutorContext
val pojos = objectAdapter.getPojo();
val memento = super.getMementoService()
.mementoForPojos(_Casts.uncheckedCast(pojos), getTypeOfSpecification().getSpecId());
- setPending(memento);
+ setPendingMemento(memento);
} else {
val memento = super.getMementoService()
.mementoForObject(objectAdapter);
- setPending(memento);
+ setPendingMemento(memento);
}
}
@@ -255,60 +254,6 @@ implements HasRenderingHints, ScalarUiModel, LinksProvider, FormExecutorContext
return Collections.unmodifiableList(linkAndLabels);
}
- /**
- * @return
- */
- public ScalarModelWithPending asScalarModelWithPending() {
- return new ScalarModelWithPending(){
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public ObjectMemento getPending() {
- return ScalarModel.this.getPending();
- }
-
- @Override
- public void setPending(ObjectMemento pending) {
- ScalarModel.this.setPending(pending);
- }
-
- @Override
- public ScalarModel getScalarModel() {
- return ScalarModel.this;
- }
- };
- }
-
- /**
- * @return
- */
- public ScalarModelWithMultiPending asScalarModelWithMultiPending() {
- return new ScalarModelWithMultiPending(){
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public ArrayList<ObjectMemento> getMultiPending() {
- ObjectMemento pendingMemento = ScalarModel.this.getPending();
- return ObjectMemento.unwrapList(pendingMemento)
- .orElse(null);
- }
-
- @Override
- public void setMultiPending(final ArrayList<ObjectMemento> pending) {
- ObjectSpecId specId = getScalarModel().getTypeOfSpecification().getSpecId();
- ObjectMemento adapterMemento = ObjectMemento.wrapMementoList(pending, specId);
- ScalarModel.this.setPending(adapterMemento);
- }
-
- @Override
- public ScalarModel getScalarModel() {
- return ScalarModel.this;
- }
- };
- }
-
@Override
public PromptStyle getPromptStyle() {
final PromptStyleFacet facet = getFacet(PromptStyleFacet.class);
@@ -521,11 +466,11 @@ implements HasRenderingHints, ScalarUiModel, LinksProvider, FormExecutorContext
return hasPending ? getPendingAdapter() : pendingValueModel.getObject();
}
- public ObjectMemento getPending() {
+ public ObjectMemento getPendingMemento() {
return pending;
}
- public void setPending(ObjectMemento selectedAdapterMemento) {
+ public void setPendingMemento(ObjectMemento selectedAdapterMemento) {
this.pending = selectedAdapterMemento;
hasPending=true;
}
@@ -540,12 +485,12 @@ implements HasRenderingHints, ScalarUiModel, LinksProvider, FormExecutorContext
return pendingModel.getPendingAdapter();
}
- public ObjectMemento getPending() {
- return pendingModel.getPending();
+ public ObjectMemento getPendingMemento() {
+ return pendingModel.getPendingMemento();
}
- public void setPending(ObjectMemento selectedAdapterMemento) {
- pendingModel.setPending(selectedAdapterMemento);
+ public void setPendingMemento(ObjectMemento selectedAdapterMemento) {
+ pendingModel.setPendingMemento(selectedAdapterMemento);
}
public void clearPending() {
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index 2f4ac90..506b211 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.model.models;
import java.io.Serializable;
import java.util.ArrayList;
-import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
@@ -41,15 +40,42 @@ public interface ScalarModelWithMultiPending extends Serializable {
public void setMultiPending(ArrayList<ObjectMemento> pending);
public ScalarModel getScalarModel();
+
+ public static Model<ArrayList<ObjectMemento>> create(ScalarModel scalarModel) {
+ return Factory.createModel(Factory.asScalarModelWithMultiPending(scalarModel));
+ }
+
@Log4j2
- static class Util {
+ static class Factory {
+
+ private static ScalarModelWithMultiPending asScalarModelWithMultiPending(final ScalarModel scalarModel) {
+ return new ScalarModelWithMultiPending(){
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public ArrayList<ObjectMemento> getMultiPending() {
+ ObjectMemento pendingMemento = scalarModel.getPendingMemento();
+ return ObjectMemento.unwrapList(pendingMemento)
+ .orElse(null);
+ }
+
+ @Override
+ public void setMultiPending(final ArrayList<ObjectMemento> pending) {
+ ObjectSpecId specId = getScalarModel().getTypeOfSpecification().getSpecId();
+ ObjectMemento adapterMemento = ObjectMemento.wrapMementoList(pending, specId);
+ scalarModel.setPendingMemento(adapterMemento);
+ }
- public static IModel<ArrayList<ObjectMemento>> createModel(final ScalarModel model) {
- return createModel(model.asScalarModelWithMultiPending());
+ @Override
+ public ScalarModel getScalarModel() {
+ return scalarModel;
+ }
+ };
}
- public static Model<ArrayList<ObjectMemento>> createModel(final ScalarModelWithMultiPending owner) {
+ private static Model<ArrayList<ObjectMemento>> createModel(final ScalarModelWithMultiPending owner) {
return new Model<ArrayList<ObjectMemento>>() {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
index 686d785..6bf07a3 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
@@ -20,7 +20,6 @@ package org.apache.isis.viewer.wicket.model.models;
import java.io.Serializable;
-import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.isis.core.webapp.context.memento.ObjectMemento;
@@ -34,33 +33,55 @@ import lombok.extern.log4j.Log4j2;
*/
public interface ScalarModelWithPending extends Serializable {
- public ObjectMemento getPending();
- public void setPending(ObjectMemento pending);
+ public ObjectMemento getPendingMemento();
+ public void setPendingMemento(ObjectMemento pending);
public ScalarModel getScalarModel();
+ public static Model<ObjectMemento> create(ScalarModel scalarModel) {
+ return Factory.createModel(Factory.asScalarModelWithPending(scalarModel));
+ }
+
@Log4j2
- static class Util {
+ static class Factory {
+
+ private static ScalarModelWithPending asScalarModelWithPending(final ScalarModel scalarModel) {
+ return new ScalarModelWithPending(){
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public ObjectMemento getPendingMemento() {
+ return scalarModel.getPendingMemento();
+ }
+
+ @Override
+ public void setPendingMemento(ObjectMemento pending) {
+ scalarModel.setPendingMemento(pending);
+ }
- public static IModel<ObjectMemento> createModel(final ScalarModel model) {
- return createModel(model.asScalarModelWithPending());
+ @Override
+ public ScalarModel getScalarModel() {
+ return scalarModel;
+ }
+ };
}
- public static Model<ObjectMemento> createModel(final ScalarModelWithPending owner) {
+ private static Model<ObjectMemento> createModel(final ScalarModelWithPending owner) {
return new Model<ObjectMemento>() {
private static final long serialVersionUID = 1L;
@Override
public ObjectMemento getObject() {
- if (owner.getPending() != null) {
- log.debug("pending not null: {}", owner.getPending().toString());
- return owner.getPending();
+ if (owner.getPendingMemento() != null) {
+ log.debug("pending not null: {}", owner.getPendingMemento().toString());
+ return owner.getPendingMemento();
}
log.debug("pending is null");
final ObjectMemento objectAdapterMemento = owner.getScalarModel().memento();
- owner.setPending(objectAdapterMemento);
+ owner.setPendingMemento(objectAdapterMemento);
return objectAdapterMemento;
}
@@ -68,13 +89,13 @@ public interface ScalarModelWithPending extends Serializable {
@Override
public void setObject(final ObjectMemento adapterMemento) {
log.debug("setting to: {}", (adapterMemento!=null?adapterMemento.toString():null) );
- owner.setPending(adapterMemento);
+ owner.setPendingMemento(adapterMemento);
final ScalarModel ownerScalarModel = owner.getScalarModel();
if (ownerScalarModel != null) {
if(adapterMemento == null) {
ownerScalarModel.setObject(null);
} else {
- final ObjectMemento ownerPending = owner.getPending();
+ final ObjectMemento ownerPending = owner.getPendingMemento();
if (ownerPending != null) {
log.debug("setting to pending: {}", ownerPending.toString());
ownerScalarModel.setObject(
@@ -87,4 +108,6 @@ public interface ScalarModelWithPending extends Serializable {
}
}
+
+
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 637d899..4341526 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -172,7 +172,7 @@ implements ScalarModelSubscriber2 {
if(valueChanged) {
if(ManagedObject.isNullOrUnspecifiedOrEmpty(paramValue)) {
scalarModel.setObject(null);
- scalarModel.setPending(null);
+ scalarModel.setPendingMemento(null);
} else {
scalarModel.setObject(paramValue);
scalarModel.setPendingAdapter(paramValue);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index fb1ccb0..8952396 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -393,7 +393,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
// flush changes to pending
ObjectMemento convertedInput = select2.getConvertedInput();
- getModel().setPending(convertedInput);
+ getModel().setPendingMemento(convertedInput);
if(select2 != null) {
select2.getModel().setObject(convertedInput);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
index b0a907b..69430f2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
@@ -52,10 +52,10 @@ public class Select2 implements Serializable {
? new Select2(
null,
Select2MultiChoiceExt.create(id,
- ScalarModelWithMultiPending.Util.createModel(scalarModel), scalarModel))
+ ScalarModelWithMultiPending.create(scalarModel), scalarModel))
: new Select2(
Select2ChoiceExt.create(id,
- ScalarModelWithPending.Util.createModel(scalarModel), scalarModel),
+ ScalarModelWithPending.create(scalarModel), scalarModel),
null);
}