You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by so...@apache.org on 2019/05/31 03:02:23 UTC

[wicket] branch master updated: Improve OnChangeAjaxBehavior demo (#364)

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new e3d1bec  Improve OnChangeAjaxBehavior demo (#364)
e3d1bec is described below

commit e3d1becd64b0b242a729c7855d4d3914bf275abf
Author: Andrew Kondratev <an...@gmail.com>
AuthorDate: Fri May 31 15:02:17 2019 +1200

    Improve OnChangeAjaxBehavior demo (#364)
    
    * improve OnChangeAjaxBehavior demo
    
    * improve OnChangeAjaxBehavior demo: add html and properties
    
    * improve OnChangeAjaxBehavior demo: detach models
---
 .../apache/wicket/examples/ajax/builtin/BasePage.java   |  8 +++++++-
 .../org/apache/wicket/examples/ajax/builtin/Index.java  |  9 +++++++++
 .../examples/ajax/builtin/OnChangeAjaxBehaviorPage.html |  6 ++++--
 .../examples/ajax/builtin/OnChangeAjaxBehaviorPage.java | 17 +++++++++++++++--
 .../ajax/builtin/OnChangeAjaxBehaviorPage.properties    |  4 ++++
 5 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/BasePage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/BasePage.java
index bac53a3..f962b99 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/BasePage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/BasePage.java
@@ -17,6 +17,7 @@
 package org.apache.wicket.examples.ajax.builtin;
 
 import org.apache.wicket.examples.WicketExamplePage;
+import org.apache.wicket.examples.homepage.HomePage;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 
 
@@ -30,6 +31,11 @@ public class BasePage extends WicketExamplePage
 	 */
 	public BasePage()
 	{
-		add(new BookmarkablePageLink<>("back", Index.class).setAutoEnable(true));
+		add(new BookmarkablePageLink<>("back", getBackPage()));
 	}
+
+	protected Class<? extends WicketExamplePage> getBackPage() {
+		return Index.class;
+	}
+
 }
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/Index.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/Index.java
index 24320ce..dae445a 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/Index.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/Index.java
@@ -16,6 +16,9 @@
  */
 package org.apache.wicket.examples.ajax.builtin;
 
+import org.apache.wicket.examples.WicketExamplePage;
+import org.apache.wicket.examples.homepage.HomePage;
+
 /**
  * Wicket ajax example index page
  * 
@@ -29,4 +32,10 @@ public class Index extends BasePage
 	public Index()
 	{
 	}
+
+	@Override
+	protected Class<? extends WicketExamplePage> getBackPage() {
+		return HomePage.class;
+	}
+
 }
\ No newline at end of file
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.html
index 1c218cc..1dd3b33 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.html
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.html
@@ -4,8 +4,10 @@
 		<wicket:extend>
 
 		<form wicket:id="form">
-			Field: <input type="text" wicket:id="field" size="50"/><br/>
-			Values:<span wicket:id="selectedValue"></span><br/>
+			<p><wicket:message key="onChange.help" /></p>
+			<wicket:message key="onChange.country"/>: <input type="text" wicket:id="field" size="50"/><br/>
+			<wicket:message key="onChange.input"/>: <span wicket:id="userInput"></span><br/>
+			<wicket:message key="onChange.countriesFound"/>: <span wicket:id="selectedValue"></span><br/>
 		</form>
 
 		</wicket:extend>
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.java
index aa89bf4..b6a2cb9 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.java
@@ -23,6 +23,7 @@ import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.util.string.Strings;
 
@@ -32,6 +33,8 @@ import org.apache.wicket.util.string.Strings;
 public class OnChangeAjaxBehaviorPage extends BasePage
 {
 
+	private final IModel<String> inputModel = Model.of("");
+
 	private String getValue(String input)
 	{
 		if (Strings.isEmpty(input))
@@ -65,9 +68,13 @@ public class OnChangeAjaxBehaviorPage extends BasePage
 		Form<Void> form = new Form<>("form");
 		add(form);
 
-		final TextField<String> field = new TextField<>("field", new Model<>(""));
+		final TextField<String> field = new TextField<>("field", inputModel);
 		form.add(field);
 
+		final Label userInput = new Label("userInput", inputModel);
+		userInput.setOutputMarkupId(true);
+		form.add(userInput);
+
 		final Label label = new Label("selectedValue", new Model<>(""));
 		label.setOutputMarkupId(true);
 		form.add(label);
@@ -78,10 +85,16 @@ public class OnChangeAjaxBehaviorPage extends BasePage
 			protected void onUpdate(AjaxRequestTarget target)
 			{
 				label.setDefaultModelObject(getValue(field.getDefaultModelObjectAsString()));
-				target.add(label);
+				target.add(label, userInput);
 			}
 		};
 		field.add(onChangeAjaxBehavior);
 	}
 
+	@Override
+	public void detachModels() {
+		super.detachModels();
+		inputModel.detach();
+	}
+
 }
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.properties b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.properties
new file mode 100644
index 0000000..84909a6
--- /dev/null
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/OnChangeAjaxBehaviorPage.properties
@@ -0,0 +1,4 @@
+onChange.help = Start typing a country name into a Country field below.
+onChange.input = You typed
+onChange.country = Country name
+onChange.countriesFound = Matching countries
\ No newline at end of file