You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2021/05/21 22:00:45 UTC

[wicket] 01/02: WICKET-6886 make methods interface default

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

svenmeier pushed a commit to branch wicket-9.x
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 5829f869afa828b84417a79d62b0d30e0ea4445c
Author: Sven Meier <sv...@apache.org>
AuthorDate: Fri May 21 23:11:21 2021 +0200

    WICKET-6886 make methods interface default
---
 .../wicket/markup/html/form/ChoiceRenderer.java       | 16 ----------------
 .../wicket/markup/html/form/IChoiceRenderer.java      | 19 +++++++++++++++++--
 .../html/form/EscapeAttributesInChoicesPage.java      |  8 ++++----
 .../wicket/examples/compref/DropDownChoicePage.java   |  4 ++--
 .../apache/wicket/examples/datetime/DateTimePage.java |  3 +--
 .../apache/wicket/examples/forminput/FormInput.java   |  6 +++---
 .../markup/html/form/palette/PaletteTestPage.java     |  3 +--
 7 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ChoiceRenderer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ChoiceRenderer.java
index 96e4fb2..5a52fa6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ChoiceRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ChoiceRenderer.java
@@ -154,20 +154,4 @@ public class ChoiceRenderer<T> implements IChoiceRenderer<T>, IClusterable
 
 		return returnValue.toString();
 	}
-
-	@Override
-	public T getObject(String id, IModel<? extends List<? extends T>> choices)
-	{
-		List<? extends T> _choices = choices.getObject();
-		for (int index = 0; index < _choices.size(); index++)
-		{
-			// Get next choice
-			final T choice = _choices.get(index);
-			if (getIdValue(choice, index).equals(id))
-			{
-				return choice;
-			}
-		}
-		return null;
-	}
 }
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
index 5fcc14e..3e47aaa 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
@@ -55,7 +55,9 @@ public interface IChoiceRenderer<T> extends IDetachable
 	 *            The index of the object in the choices list.
 	 * @return String
 	 */
-	String getIdValue(T object, int index);
+	default String getIdValue(T object, int index) {
+		return Integer.toString(index);
+	}
 
 	/**
 	 * This method is called to get an object back from its id representation.
@@ -69,7 +71,20 @@ public interface IChoiceRenderer<T> extends IDetachable
 	 *          The list of all rendered choices
 	 * @return A choice from the list that has this {@code id}
 	 */
-	T getObject(String id, IModel<? extends List<? extends T>> choices);
+	default T getObject(String id, IModel<? extends List<? extends T>> choices)
+	{
+		List<? extends T> _choices = choices.getObject();
+		for (int index = 0; index < _choices.size(); index++)
+		{
+			// Get next choice
+			final T choice = _choices.get(index);
+			if (getIdValue(choice, index).equals(id))
+			{
+				return choice;
+			}
+		}
+		return null;
+	}
 
 	/**
 	 * Override when needed.
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/EscapeAttributesInChoicesPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/EscapeAttributesInChoicesPage.java
index a6051fa..cfcd006 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/EscapeAttributesInChoicesPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/EscapeAttributesInChoicesPage.java
@@ -16,13 +16,13 @@
  */
 package org.apache.wicket.markup.html.form;
 
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
 public class EscapeAttributesInChoicesPage extends WebPage {
 	private static final long serialVersionUID = 1L;
 
@@ -32,7 +32,7 @@ public class EscapeAttributesInChoicesPage extends WebPage {
 		final Map<String, String> fruits = new HashMap<>();
 		fruits.put("apple\" onmouseover=\"alert('hi');\" \"", "Apple");
 
-		IChoiceRenderer<String> iChoiceRenderer = new ChoiceRenderer<String>() {
+		IChoiceRenderer<String> iChoiceRenderer = new IChoiceRenderer<String>() {
 			@Override
 			public Object getDisplayValue(final String s) {
 				return fruits.get(s);
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/DropDownChoicePage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/DropDownChoicePage.java
index 78931cb..250e4c8 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/DropDownChoicePage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/DropDownChoicePage.java
@@ -20,9 +20,9 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.wicket.examples.WicketExamplePage;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.util.io.IClusterable;
@@ -84,7 +84,7 @@ public class DropDownChoicePage extends WicketExamplePage
 		// like the example below. Don't forget to check out the default
 		// implementation of
 		// IChoiceRenderer, ChoiceRenderer.
-		form.add(new DropDownChoice<>("integer", INTEGERS, new ChoiceRenderer<Integer>()
+		form.add(new DropDownChoice<>("integer", INTEGERS, new IChoiceRenderer<Integer>()
 		{
 			/**
 			 * Gets the display value that is visible to the end user.
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/datetime/DateTimePage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/datetime/DateTimePage.java
index 3548c09..e3e0b97 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/datetime/DateTimePage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/datetime/DateTimePage.java
@@ -39,7 +39,6 @@ import org.apache.wicket.extensions.markup.html.form.datetime.ZonedDateTimeField
 import org.apache.wicket.extensions.markup.html.form.datetime.ZonedToLocalDateTimeModel;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Button;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior;
@@ -211,7 +210,7 @@ public class DateTimePage extends WicketExamplePage
 	/**
 	 * Choice for a locale.
 	 */
-	private final class LocaleChoiceRenderer extends ChoiceRenderer<Locale>
+	private final class LocaleChoiceRenderer implements IChoiceRenderer<Locale>
 	{
 		private static final long serialVersionUID = 1L;
 
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java b/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
index 0ff4681..b2e5fd8 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
@@ -28,14 +28,14 @@ import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.Check;
 import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.CheckGroup;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.markup.html.form.ListMultipleChoice;
 import org.apache.wicket.markup.html.form.Radio;
 import org.apache.wicket.markup.html.form.RadioChoice;
 import org.apache.wicket.markup.html.form.RadioGroup;
-import org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior;
 import org.apache.wicket.markup.html.form.SimpleFormComponentLabel;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.link.Link;
@@ -222,7 +222,7 @@ public class FormInput extends WicketExamplePage
 	/**
 	 * Choice for a locale.
 	 */
-	private final class LocaleChoiceRenderer extends ChoiceRenderer<Locale>
+	private final class LocaleChoiceRenderer implements IChoiceRenderer<Locale>
 	{
 		@Override
 		public Object getDisplayValue(Locale locale)
diff --git a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTestPage.java b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTestPage.java
index 59a0357..ccb62c0 100644
--- a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTestPage.java
+++ b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTestPage.java
@@ -19,7 +19,6 @@ package org.apache.wicket.extensions.markup.html.form.palette;
 import java.util.List;
 
 import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.model.CompoundPropertyModel;
@@ -45,7 +44,7 @@ public class PaletteTestPage extends WebPage
 		form = new Form<>("form", new CompoundPropertyModel<Object>("WICKET-5086"));
 		add(form);
 
-		IChoiceRenderer<String> choiceRenderer = new ChoiceRenderer<String>()
+		IChoiceRenderer<String> choiceRenderer = new IChoiceRenderer<String>()
 		{
 			@Override
 			public Object getDisplayValue(String s)