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 2019/04/01 10:07:17 UTC
[isis] 01/01: ISIS-2001: initial sketch of changes required for
defaultXxx support
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2001
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 82820afb5635ec45c63047c39c0872256dc15146
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Apr 1 11:06:58 2019 +0100
ISIS-2001: initial sketch of changes required for defaultXxx support
---
.../components/actions/ActionParametersForm.java | 23 ++++++++++++----------
.../components/scalars/ScalarPanelAbstract2.java | 6 ++++++
.../ui/components/scalars/uuid/UuidPanel.java | 8 ++++++++
.../valuechoices/ValueChoicesSelect2Panel.java | 4 ++++
4 files changed, 31 insertions(+), 10 deletions(-)
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
index 9ad8edd..288af51 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
@@ -41,7 +41,6 @@ import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
import org.apache.isis.viewer.wicket.model.models.ActionArgumentModel;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.scalars.PanelWithChoices;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.panels.FormExecutorStrategy;
@@ -155,16 +154,20 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
final int numParams = action.getParameterCount();
for (int i = 0; i < numParams; i++) {
final ScalarPanelAbstract2 paramPanel = paramPanels.get(i);
- if (paramPanel != null && paramPanel instanceof PanelWithChoices) {
- final PanelWithChoices panelWithChoices = (PanelWithChoices) paramPanel;
-
- // this could throw a ConcurrencyException as we may have to reload the
- // object adapter of the action in order to compute the choices
- // (and that object adapter might have changed)
- if (panelWithChoices.updateChoices(pendingArguments)) {
- paramPanel.repaint(target);
- }
+ if(paramPanel.updateIfNecessary(pendingArguments)) {
+ paramPanel.repaint(target);
}
+
+// if (paramPanel instanceof PanelWithChoices) {
+// final PanelWithChoices panelWithChoices = (PanelWithChoices) paramPanel;
+//
+// // this could throw a ConcurrencyException as we may have to reload the
+// // object adapter of the action in order to compute the choices
+// // (and that object adapter might have changed)
+// if (panelWithChoices.updateChoices(pendingArguments)) {
+// paramPanel.repaint(target);
+// }
+// }
}
} catch (ConcurrencyException ex) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 47aefc1..c859b36 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -106,6 +106,12 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
private static final String ID_ASSOCIATED_ACTION_LINKS_BELOW = "associatedActionLinksBelow";
private static final String ID_ASSOCIATED_ACTION_LINKS_RIGHT = "associatedActionLinksRight";
+ /**
+ * @param pendingArguments
+ * @return - true if changed as a result of these pending arguments.
+ */
+ public abstract boolean updateIfNecessary(final ObjectAdapter[] pendingArguments);
+
public static class InlinePromptConfig {
private final boolean supported;
private final Component componentToHideIfAny;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidPanel.java
index efe5fd8..6120d4a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidPanel.java
@@ -23,6 +23,7 @@ import java.util.UUID;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldAbstract;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
@@ -36,6 +37,13 @@ public class UuidPanel extends ScalarPanelTextFieldAbstract<UUID> {
private static final UuidConverter converter = new UuidConverter();
+ @Override
+ public boolean updateIfNecessary(
+ final ObjectAdapter[] pendingArguments) {
+ // no-op
+ return true;
+ }
+
public UuidPanel(
final String id,
final ScalarModel scalarModel) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index defe635..68a7ff3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -43,6 +43,10 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract impleme
private static final long serialVersionUID = 1L;
+ @Override public boolean updateIfNecessary(
+ final ObjectAdapter[] pendingArguments) {
+ return updateChoices(pendingArguments);
+ }
public ValueChoicesSelect2Panel(final String id, final ScalarModel scalarModel) {
super(id, scalarModel);