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

commit 0dc31f9d457144f46aae0544434d947b66b2a2ff
Author: Andi Huber <[email protected]>
AuthorDate: Thu Sep 22 07:10:51 2022 +0200

    ISIS-3201: time picker on change propagation fixes
---
 .../ScalarPanelTextFieldWithTemporalPicker.java    | 26 ++++++++++++++++++++++
 .../datepicker/TextFieldWithDateTimePicker.java    | 15 -------------
 2 files changed, 26 insertions(+), 15 deletions(-)

diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
index 030eb2a22e..b97b72b9a4 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
@@ -20,6 +20,8 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.util.Optional;
 
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
 import org.apache.wicket.markup.html.form.TextField;
 
 import org.apache.isis.core.metamodel.util.Facets;
@@ -53,9 +55,33 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
                 id, scalarModel, type, getConverter(scalarModel));
     }
 
+    protected final TextField<T> getTextField() {
+        return (TextField<T>)getFormComponent();
+    }
+
     @Override
     protected Optional<InputFragment> getInputFragmentType() {
         return Optional.of(InputFragment.DATE);
     }
 
+    @Override
+    protected void installScalarModelChangeBehavior() {
+        //super.installScalarModelChangeBehavior(); // don't install the 
default change listener
+
+        /* [ISIS-3201]
+         * Adding OnChangeAjaxBehavior registers a JavaScript event listener 
on change events.
+         * Since OnChangeAjaxBehavior extends 
AjaxFormComponentUpdatingBehavior the Ajax request
+         * also updates the Wicket model for this form component on the server 
side.
+         */
+        getTextField().add(new OnChangeAjaxBehavior() {
+            private static final long serialVersionUID = 1L;
+            @Override
+            protected void onUpdate(final AjaxRequestTarget target) {
+                // triggers update of dependent args (action prompt)
+                ScalarPanelTextFieldWithTemporalPicker.this
+                    .getScalarModelChangeDispatcher().notifyUpdate(target);
+            }
+        });
+    }
+
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
index 0ff661e542..9191364963 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
@@ -21,8 +21,6 @@ package 
org.apache.isis.viewer.wicket.ui.components.scalars.datepicker;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
@@ -103,19 +101,6 @@ implements IConverter<T> {
             }
         };
         */
-
-        //XXX ISIS-2834
-        //Adding OnChangeAjaxBehavior registers a JavaScript event listener on 
change event.
-        //Since OnChangeAjaxBehavior extends AjaxFormComponentUpdatingBehavior 
the Ajax request
-        // also updates the Wicket model for this form component on the server 
side.
-        // onUpdate() is a callback method that you could use to do something 
more or don't do anything
-        add(new OnChangeAjaxBehavior() {
-            private static final long serialVersionUID = 1L;
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                // nothing to do
-            }
-        });
     }
 
     @Override

Reply via email to