You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2016/03/08 23:22:17 UTC
[2/3] wicket git commit: WICKET-6114 FormComponentPanel#clearInput()
should delegate to its FormComponent children
WICKET-6114 FormComponentPanel#clearInput() should delegate to its FormComponent children
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d470dd0c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d470dd0c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d470dd0c
Branch: refs/heads/master
Commit: d470dd0c99be2b37e82d8063080f954d4de7795c
Parents: c303678
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Mar 8 20:27:04 2016 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Mar 8 23:21:14 2016 +0100
----------------------------------------------------------------------
.../wicket/markup/html/form/FormComponent.java | 2 +-
.../markup/html/form/FormComponentPanel.java | 15 +++++++++++
.../form/FormComponentPanelProcessingTest.java | 27 ++++++++++++++++++++
3 files changed, 43 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d470dd0c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
index 266def3..012bff7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
@@ -634,7 +634,7 @@ public abstract class FormComponent<T> extends LabeledWebMarkupContainer impleme
/**
* Clears the user input.
*/
- public final void clearInput()
+ public void clearInput()
{
rawInput = NO_RAW_INPUT;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d470dd0c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java
index fb7b961..0112614 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java
@@ -21,6 +21,7 @@ import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.visit.IVisitor;
/**
* Panel (has it's own markup, defined between <wicket:panel> tags), that can act as a form
@@ -158,4 +159,18 @@ public abstract class FormComponentPanel<T> extends FormComponent<T> implements
tag.remove("name");
tag.remove("disabled");
}
+
+ @Override
+ public void clearInput()
+ {
+ super.clearInput();
+
+ // Visit all the (visible) form components and clear the input on each.
+ visitFormComponentsPostOrder(this, (IVisitor<FormComponent<?>, Void>) (formComponent, visit) -> {
+ if (formComponent != FormComponentPanel.this && formComponent.isVisibleInHierarchy())
+ {
+ formComponent.clearInput();
+ }
+ });
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d470dd0c/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java
index 193d7a8..4562d24 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.markup.html.form;
+import static org.hamcrest.Matchers.is;
+
import java.io.Serializable;
import org.apache.wicket.MarkupContainer;
@@ -50,6 +52,19 @@ public class FormComponentPanelProcessingTest extends WicketTestCase
ft.submit();
}
+ @Test
+ public void clearInput()
+ {
+ tester.startPage(new TestPage());
+ tester.assertRenderedPage(TestPage.class);
+
+ TestFormComponentPanel fcp = (TestFormComponentPanel) tester.getComponentFromLastRenderedPage("form:panel");
+ assertThat(fcp.isChildClearInputCalled(), is(false));
+
+ fcp.clearInput();
+ assertThat(fcp.isChildClearInputCalled(), is(true));
+ }
+
private static class TestFormComponentPanel extends FormComponentPanel<Serializable>
implements
IMarkupResourceStreamProvider
@@ -58,6 +73,7 @@ public class FormComponentPanelProcessingTest extends WicketTestCase
private boolean childValidated = false;
private boolean childModelUpdated = false;
+ private boolean childClearInputCalled = false;
private TestFormComponentPanel(String id, IModel<Serializable> model)
{
@@ -79,9 +95,20 @@ public class FormComponentPanelProcessingTest extends WicketTestCase
super.updateModel();
childModelUpdated = true;
}
+
+ @Override
+ public void clearInput()
+ {
+ super.clearInput();
+ childClearInputCalled = true;
+ }
});
}
+ private boolean isChildClearInputCalled() {
+ return childClearInputCalled;
+ }
+
@Override
protected void onBeforeRender()
{