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 2014/03/24 09:33:32 UTC

git commit: WICKET-663 enhance ichoicerenderer with id->choice object lookup

Repository: wicket
Updated Branches:
  refs/heads/master 1f6b6592d -> b011396f6


WICKET-663 enhance ichoicerenderer with id->choice object lookup

Restore IChoiceRenderer as discussed at http://markmail.org/message/nek75o5eftmpkobo


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b011396f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b011396f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b011396f

Branch: refs/heads/master
Commit: b011396f6fc26805ec06d1e5f48cb46392918bcb
Parents: 1f6b659
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Mar 24 09:29:27 2014 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Mar 24 09:33:24 2014 +0100

----------------------------------------------------------------------
 .../wicket/markup/html/form/AbstractChoice.java | 14 ++--
 .../html/form/AbstractSingleSelectChoice.java   | 10 +--
 .../html/form/CheckBoxMultipleChoice.java       | 16 ++---
 .../wicket/markup/html/form/ChoiceRenderer.java | 38 ++--------
 .../wicket/markup/html/form/DropDownChoice.java |  8 +--
 .../markup/html/form/EnumChoiceRenderer.java    |  2 +-
 .../markup/html/form/IChoiceRenderer.java       | 73 ++++++++++++++++++++
 .../wicket/markup/html/form/ListChoice.java     | 20 +++---
 .../markup/html/form/ListMultipleChoice.java    | 16 ++---
 .../wicket/markup/html/form/RadioChoice.java    | 16 ++---
 .../apache/wicket/util/tester/FormTester.java   |  4 +-
 .../wicket/util/tester/apps_3/ChoicePage.java   |  5 +-
 .../examples/compref/DropDownChoicePage.java    |  6 +-
 .../wicket/examples/compref/PalettePage.java    |  3 +-
 .../markup/html/AjaxEditableChoiceLabel.java    |  8 +--
 .../markup/html/form/palette/Palette.java       | 12 ++--
 .../form/palette/component/AbstractOptions.java |  4 +-
 .../html/form/palette/component/Recorder.java   |  8 +--
 .../data/table/filter/ChoiceFilter.java         |  7 +-
 .../filter/ChoiceFilteredPropertyColumn.java    |  6 +-
 .../html/form/palette/PaletteTestPage.java      |  3 +-
 21 files changed, 163 insertions(+), 116 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
index a251ac2..8716eb5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
@@ -54,7 +54,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	private IModel<? extends List<? extends E>> choices;
 
 	/** The renderer used to generate display/id values for the objects. */
-	private ChoiceRenderer<? super E> renderer;
+	private IChoiceRenderer<? super E> renderer;
 
 	/**
 	 * Constructor.
@@ -91,7 +91,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	 *            The collection of choices in the dropdown
 	 */
 	public AbstractChoice(final String id, final List<? extends E> choices,
-		final ChoiceRenderer<? super E> renderer)
+		final IChoiceRenderer<? super E> renderer)
 	{
 		this(id, new WildcardListModel<>(choices), renderer);
 	}
@@ -124,7 +124,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	 *            The rendering engine
 	 */
 	public AbstractChoice(final String id, IModel<T> model, final List<? extends E> choices,
-		final ChoiceRenderer<? super E> renderer)
+		final IChoiceRenderer<? super E> renderer)
 	{
 		this(id, model, new WildcardListModel<>(choices), renderer);
 	}
@@ -153,7 +153,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	 *            The collection of choices in the dropdown
 	 */
 	public AbstractChoice(final String id, final IModel<? extends List<? extends E>> choices,
-		final ChoiceRenderer<? super E> renderer)
+		final IChoiceRenderer<? super E> renderer)
 	{
 		super(id);
 		this.choices = wrap(choices);
@@ -189,7 +189,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	 *            The drop down choices
 	 */
 	public AbstractChoice(final String id, IModel<T> model,
-		final IModel<? extends List<? extends E>> choices, final ChoiceRenderer<? super E> renderer)
+		final IModel<? extends List<? extends E>> choices, final IChoiceRenderer<? super E> renderer)
 	{
 		super(id, model);
 		this.choices = wrap(choices);
@@ -261,7 +261,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	/**
 	 * @return The IChoiceRenderer used for rendering the data objects
 	 */
-	public final ChoiceRenderer<? super E> getChoiceRenderer()
+	public final IChoiceRenderer<? super E> getChoiceRenderer()
 	{
 		return renderer;
 	}
@@ -272,7 +272,7 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 	 * @param renderer
 	 * @return this for chaining
 	 */
-	public final AbstractChoice<T, E> setChoiceRenderer(ChoiceRenderer<? super E> renderer)
+	public final AbstractChoice<T, E> setChoiceRenderer(IChoiceRenderer<? super E> renderer)
 	{
 		if (renderer == null)
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java
index 46b53fe..51e21a7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java
@@ -79,7 +79,7 @@ public abstract class AbstractSingleSelectChoice<T> extends AbstractChoice<T, T>
 	 *            The collection of choices in the dropdown
 	 */
 	public AbstractSingleSelectChoice(final String id, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -113,7 +113,7 @@ public abstract class AbstractSingleSelectChoice<T> extends AbstractChoice<T, T>
 	 *            The rendering engine
 	 */
 	public AbstractSingleSelectChoice(final String id, IModel<T> model,
-		final List<? extends T> choices, final ChoiceRenderer<? super T> renderer)
+		final List<? extends T> choices, final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}
@@ -158,7 +158,7 @@ public abstract class AbstractSingleSelectChoice<T> extends AbstractChoice<T, T>
 	 *            The rendering engine
 	 */
 	public AbstractSingleSelectChoice(String id, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -176,7 +176,7 @@ public abstract class AbstractSingleSelectChoice<T> extends AbstractChoice<T, T>
 	 *            The rendering engine
 	 */
 	public AbstractSingleSelectChoice(String id, IModel<T> model,
-		IModel<? extends List<? extends T>> choices, ChoiceRenderer<? super T> renderer)
+		IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}
@@ -270,7 +270,7 @@ public abstract class AbstractSingleSelectChoice<T> extends AbstractChoice<T, T>
 	protected T convertChoiceIdToChoice(String id)
 	{
 		final IModel<? extends List<? extends T>> choices = getChoicesModel();
-		final ChoiceRenderer<? super T> renderer = getChoiceRenderer();
+		final IChoiceRenderer<? super T> renderer = getChoiceRenderer();
 		T object = (T) renderer.getObject(id, choices);
 		return object;
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java
index efff6ac..c8ff1f6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java
@@ -108,10 +108,10 @@ public class CheckBoxMultipleChoice<T> extends ListMultipleChoice<T>
 	 *            The collection of choices in the radio choice
 	 * @see org.apache.wicket.Component#Component(String)
 	 * @see AbstractChoice#AbstractChoice(String,
-	 *      java.util.List,org.apache.wicket.markup.html.form.ChoiceRenderer)
+	 *      java.util.List,org.apache.wicket.markup.html.form.IChoiceRenderer)
 	 */
 	public CheckBoxMultipleChoice(final String id, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -147,10 +147,10 @@ public class CheckBoxMultipleChoice<T> extends ListMultipleChoice<T>
 	 *            The rendering engine
 	 * @see org.apache.wicket.Component#Component(String, org.apache.wicket.model.IModel)
 	 * @see AbstractChoice#AbstractChoice(String, org.apache.wicket.model.IModel,
-	 *      java.util.List,org.apache.wicket.markup.html.form.ChoiceRenderer)
+	 *      java.util.List,org.apache.wicket.markup.html.form.IChoiceRenderer)
 	 */
 	public CheckBoxMultipleChoice(final String id, IModel<? extends Collection<T>> model,
-		final List<? extends T> choices, final ChoiceRenderer<? super T> renderer)
+		final List<? extends T> choices, final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}
@@ -199,11 +199,11 @@ public class CheckBoxMultipleChoice<T> extends ListMultipleChoice<T>
 	 * @param renderer
 	 *            The rendering engine
 	 * @see AbstractChoice#AbstractChoice(String,
-	 *      org.apache.wicket.model.IModel,org.apache.wicket.markup.html.form.ChoiceRenderer)
+	 *      org.apache.wicket.model.IModel,org.apache.wicket.markup.html.form.IChoiceRenderer)
 	 * @see org.apache.wicket.Component#Component(String)
 	 */
 	public CheckBoxMultipleChoice(String id, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -221,10 +221,10 @@ public class CheckBoxMultipleChoice<T> extends ListMultipleChoice<T>
 	 *            The rendering engine
 	 * @see org.apache.wicket.Component#Component(String, org.apache.wicket.model.IModel)
 	 * @see AbstractChoice#AbstractChoice(String, org.apache.wicket.model.IModel,
-	 *      org.apache.wicket.model.IModel,org.apache.wicket.markup.html.form.ChoiceRenderer)
+	 *      org.apache.wicket.model.IModel,org.apache.wicket.markup.html.form.IChoiceRenderer)
 	 */
 	public CheckBoxMultipleChoice(String id, IModel<? extends Collection<T>> model,
-		IModel<? extends List<? extends T>> choices, ChoiceRenderer<? super T> renderer)
+		IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ChoiceRenderer.java
----------------------------------------------------------------------
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 badaf80..96e4fb2 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
@@ -62,7 +62,7 @@ import org.apache.wicket.util.io.IClusterable;
  * @param <T>
  *            The model object type
  */
-public class ChoiceRenderer<T> implements IClusterable
+public class ChoiceRenderer<T> implements IChoiceRenderer<T>, IClusterable
 {
 	private static final long serialVersionUID = 1L;
 
@@ -116,13 +116,7 @@ public class ChoiceRenderer<T> implements IClusterable
 		this.idExpression = idExpression;
 	}
 
-	/**
-	 * Get the value for displaying to an end user.
-	 *
-	 * @param object
-	 *            the actual object
-	 * @return the value meant for displaying to an end user
-	 */
+	@Override
 	public Object getDisplayValue(T object)
 	{
 		Object returnValue = object;
@@ -139,20 +133,7 @@ public class ChoiceRenderer<T> implements IClusterable
 		return returnValue;
 	}
 
-	/**
-	 * This method is called to get the id value of an object (used as the value attribute of a
-	 * choice element) The id can be extracted from the object like a primary key, or if the list is
-	 * stable you could just return a toString of the index.
-	 * <p>
-	 * Note that the given index can be {@code -1} if the object in question is not contained in the
-	 * available choices.
-	 *
-	 * @param object
-	 *            The object for which the id should be generated
-	 * @param index
-	 *            The index of the object in the choices list.
-	 * @return String
-	 */
+	@Override
 	public String getIdValue(T object, int index)
 	{
 		if (idExpression == null)
@@ -174,18 +155,7 @@ public class ChoiceRenderer<T> implements IClusterable
 		return returnValue.toString();
 	}
 
-	/**
-	 * This method is called to get an object back from its id representation.
-	 *
-	 * The {@code id} may be used to find/load the object in a more efficient way
-	 * than loading all {@code choices} and find the one with the same id in the list
-	 *
-	 * @param id
-	 *          The id representation of the object
-	 * @param choices
-	 *          The list of all rendered choices
-	 * @return A choice from the list that has this {@code id}
-	 */
+	@Override
 	public T getObject(String id, IModel<? extends List<? extends T>> choices)
 	{
 		List<? extends T> _choices = choices.getObject();

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
index ea22dff..fe5d977 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
@@ -104,7 +104,7 @@ public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements
 	 *            The collection of choices in the dropdown
 	 */
 	public DropDownChoice(final String id, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -137,7 +137,7 @@ public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements
 	 *            The rendering engine
 	 */
 	public DropDownChoice(final String id, IModel<T> model, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}
@@ -181,7 +181,7 @@ public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements
 	 *            The rendering engine
 	 */
 	public DropDownChoice(String id, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -199,7 +199,7 @@ public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements
 	 *            The rendering engine
 	 */
 	public DropDownChoice(String id, IModel<T> model, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/EnumChoiceRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/EnumChoiceRenderer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/EnumChoiceRenderer.java
index d19401c..b2129b9 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/EnumChoiceRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/EnumChoiceRenderer.java
@@ -21,7 +21,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.util.lang.Classes;
 
 /**
- * {@link ChoiceRenderer} implementation that makes it easy to work with java 5 enums. This
+ * {@link IChoiceRenderer} implementation that makes it easy to work with java 5 enums. This
  * renderer will attempt to lookup strings used for the display value using a localizer of a given
  * component. If the component is not specified, the global instance of localizer will be used for
  * lookups.

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
----------------------------------------------------------------------
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
new file mode 100644
index 0000000..c8345d4
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.html.form;
+
+import java.util.List;
+
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.io.IClusterable;
+
+/**
+ * Renders one choice. Separates the 'id' values used for internal representation from 'display
+ * values' which are the values shown to the user of components that use this renderer.
+ *
+ * @author jcompagner
+ *
+ * @param <T>
+ *            The model object type
+ */
+public interface IChoiceRenderer<T> extends IClusterable
+{
+	/**
+	 * Get the value for displaying to an end user.
+	 *
+	 * @param object
+	 *            the actual object
+	 * @return the value meant for displaying to an end user
+	 */
+	Object getDisplayValue(T object);
+
+	/**
+	 * This method is called to get the id value of an object (used as the value attribute of a
+	 * choice element) The id can be extracted from the object like a primary key, or if the list is
+	 * stable you could just return a toString of the index.
+	 * <p>
+	 * Note that the given index can be {@code -1} if the object in question is not contained in the
+	 * available choices.
+	 *
+	 * @param object
+	 *            The object for which the id should be generated
+	 * @param index
+	 *            The index of the object in the choices list.
+	 * @return String
+	 */
+	String getIdValue(T object, int index);
+
+	/**
+	 * This method is called to get an object back from its id representation.
+	 *
+	 * The {@code id} may be used to find/load the object in a more efficient way
+	 * than loading all {@code choices} and find the one with the same id in the list
+	 *
+	 * @param id
+	 *          The id representation of the object
+	 * @param choices
+	 *          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);
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListChoice.java
index f797c14..d01c563 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListChoice.java
@@ -67,10 +67,10 @@ public class ListChoice<T> extends DropDownChoice<T>
 	 * @param renderer
 	 *            See AbstractChoice
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String,
-	 *      List,ChoiceRenderer)
+	 *      List,IChoiceRenderer)
 	 */
 	public ListChoice(final String id, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		this(id, null, choices, renderer, DEFAULT_MAX_ROWS);
 	}
@@ -119,7 +119,7 @@ public class ListChoice<T> extends DropDownChoice<T>
 	 * @see DropDownChoice#DropDownChoice(String, IModel, List)
 	 */
 	public ListChoice(final String id, final IModel<T> model, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		this(id, model, choices, renderer, DEFAULT_MAX_ROWS);
 	}
@@ -138,7 +138,7 @@ public class ListChoice<T> extends DropDownChoice<T>
 	 * @see DropDownChoice#DropDownChoice(String, IModel, List)
 	 */
 	public ListChoice(final String id, final IModel<T> model, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer, final int maxRows)
+		final IChoiceRenderer<? super T> renderer, final int maxRows)
 	{
 		super(id, model, choices, renderer);
 		this.maxRows = maxRows;
@@ -162,10 +162,10 @@ public class ListChoice<T> extends DropDownChoice<T>
 
 	/**
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 */
 	public ListChoice(String id, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		this(id, null, choices, renderer, DEFAULT_MAX_ROWS);
 	}
@@ -173,10 +173,10 @@ public class ListChoice<T> extends DropDownChoice<T>
 
 	/**
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String, IModel,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 */
 	public ListChoice(String id, IModel<T> model, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		this(id, model, choices, renderer, DEFAULT_MAX_ROWS);
 	}
@@ -188,10 +188,10 @@ public class ListChoice<T> extends DropDownChoice<T>
 	 * @param renderer
 	 * @param maxRows
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String, IModel,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 */
 	public ListChoice(String id, IModel<T> model, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer, int maxRows)
+		IChoiceRenderer<? super T> renderer, int maxRows)
 	{
 		super(id, model, choices, renderer);
 		this.maxRows = maxRows;

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListMultipleChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListMultipleChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListMultipleChoice.java
index 2aad34e..be0d4d9 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListMultipleChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ListMultipleChoice.java
@@ -92,10 +92,10 @@ public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>, T>
 
 	/**
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String,
-	 *      List,ChoiceRenderer)
+	 *      List,IChoiceRenderer)
 	 */
 	public ListMultipleChoice(final String id, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -116,7 +116,7 @@ public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>, T>
 
 	/**
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String, IModel,
-	 *      List,ChoiceRenderer)
+	 *      List,IChoiceRenderer)
 	 * 
 	 * @param id
 	 * @param object
@@ -125,7 +125,7 @@ public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>, T>
 	 */
 	@SuppressWarnings("unchecked")
 	public ListMultipleChoice(final String id, IModel<? extends Collection<T>> object,
-		final List<? extends T> choices, final ChoiceRenderer<? super T> renderer)
+		final List<? extends T> choices, final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, (IModel<Collection<T>>)object, choices, renderer);
 	}
@@ -154,10 +154,10 @@ public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>, T>
 
 	/**
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 */
 	public ListMultipleChoice(String id, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -165,7 +165,7 @@ public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>, T>
 
 	/**
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String, IModel,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 * 
 	 * @param id
 	 * @param model
@@ -174,7 +174,7 @@ public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>, T>
 	 */
 	@SuppressWarnings("unchecked")
 	public ListMultipleChoice(String id, IModel<? extends Collection<T>> model,
-		IModel<? extends List<? extends T>> choices, ChoiceRenderer<? super T> renderer)
+		IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
 	{
 		super(id, (IModel<Collection<T>>)model, choices, renderer);
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
index d953338..73720a2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
@@ -109,10 +109,10 @@ public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOn
 	 *            The list of choices in the radio choice
 	 * @see org.apache.wicket.Component#Component(String)
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String,
-	 *      List,ChoiceRenderer)
+	 *      List,IChoiceRenderer)
 	 */
 	public RadioChoice(final String id, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -147,10 +147,10 @@ public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOn
 	 *            The rendering engine
 	 * @see org.apache.wicket.Component#Component(String, IModel)
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String, IModel,
-	 *      List,ChoiceRenderer)
+	 *      List,IChoiceRenderer)
 	 */
 	public RadioChoice(final String id, IModel<T> model, final List<? extends T> choices,
-		final ChoiceRenderer<? super T> renderer)
+		final IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}
@@ -197,11 +197,11 @@ public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOn
 	 * @param renderer
 	 *            The rendering engine
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 * @see org.apache.wicket.Component#Component(String)
 	 */
 	public RadioChoice(String id, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, choices, renderer);
 	}
@@ -220,10 +220,10 @@ public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOn
 	 *            The rendering engine
 	 * @see org.apache.wicket.Component#Component(String, IModel)
 	 * @see org.apache.wicket.markup.html.form.AbstractChoice#AbstractChoice(String, IModel,
-	 *      IModel,ChoiceRenderer)
+	 *      IModel,IChoiceRenderer)
 	 */
 	public RadioChoice(String id, IModel<T> model, IModel<? extends List<? extends T>> choices,
-		ChoiceRenderer<? super T> renderer)
+		IChoiceRenderer<? super T> renderer)
 	{
 		super(id, model, choices, renderer);
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
index 1158d2d..9a00df8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
@@ -29,9 +29,9 @@ import org.apache.wicket.markup.html.form.AbstractSingleSelectChoice;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.Check;
 import org.apache.wicket.markup.html.form.CheckGroup;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.FormComponent;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.markup.html.form.IFormSubmittingComponent;
 import org.apache.wicket.markup.html.form.IOnChangeListener;
 import org.apache.wicket.markup.html.form.ListMultipleChoice;
@@ -201,7 +201,7 @@ public class FormTester
 				Method getChoiceRendererMethod = formComponent.getClass().getMethod(
 					"getChoiceRenderer", (Class<?>[])null);
 				getChoiceRendererMethod.setAccessible(true);
-				ChoiceRenderer<Object> choiceRenderer = (ChoiceRenderer<Object>)getChoiceRendererMethod.invoke(
+				IChoiceRenderer<Object> choiceRenderer = (IChoiceRenderer<Object>)getChoiceRendererMethod.invoke(
 					formComponent, (Object[])null);
 
 				return choiceRenderer.getIdValue(choices.get(index), index);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
index fba6310..ac41e38 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
@@ -29,6 +29,7 @@ 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.IChoiceRenderer;
 import org.apache.wicket.markup.html.form.ListChoice;
 import org.apache.wicket.markup.html.form.ListMultipleChoice;
 import org.apache.wicket.markup.html.form.Radio;
@@ -94,12 +95,12 @@ public class ChoicePage extends WebPage
 	 */
 	public ChoicePage(List<Book> candidateChoices)
 	{
-		ChoiceRenderer<Book> bookChoiceRenderer = new ChoiceRenderer<Book>("name", "id");
+		IChoiceRenderer<Book> bookChoiceRenderer = new ChoiceRenderer<>("name", "id");
 
 		Form<ChoicePage> form = new Form<ChoicePage>("choiceForm");
 		add(form);
 
-		form.setDefaultModel(new CompoundPropertyModel<ChoicePage>(this));
+		form.setDefaultModel(new CompoundPropertyModel<>(this));
 
 		// setting initial values
 		dropDownChoice = candidateChoices.get(1);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-examples/src/main/java/org/apache/wicket/examples/compref/DropDownChoicePage.java
----------------------------------------------------------------------
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 d86bbc5..e553f34 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
@@ -84,12 +84,12 @@ 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>("integer", INTEGERS, new ChoiceRenderer<Integer>()
+		form.add(new DropDownChoice<>("integer", INTEGERS, new ChoiceRenderer<Integer>()
 		{
 			/**
 			 * Gets the display value that is visible to the end user.
 			 * 
-			 * @see org.apache.wicket.markup.html.form.ChoiceRenderer#getDisplayValue(java.lang.Object)
+			 * @see org.apache.wicket.markup.html.form.IChoiceRenderer#getDisplayValue(java.lang.Object)
 			 */
 			@Override
 			public Object getDisplayValue(Integer value)
@@ -114,7 +114,7 @@ public class DropDownChoicePage extends WicketExamplePage
 			 * Gets the value that is invisible to the end user, and that is used as the selection
 			 * id.
 			 * 
-			 * @see org.apache.wicket.markup.html.form.ChoiceRenderer#getIdValue(java.lang.Object,
+			 * @see org.apache.wicket.markup.html.form.IChoiceRenderer#getIdValue(java.lang.Object,
 			 *      int)
 			 */
 			@Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-examples/src/main/java/org/apache/wicket/examples/compref/PalettePage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/PalettePage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/PalettePage.java
index 0f73cfd..f602e29 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/PalettePage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/PalettePage.java
@@ -23,6 +23,7 @@ import org.apache.wicket.examples.WicketExamplePage;
 import org.apache.wicket.extensions.markup.html.form.palette.Palette;
 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.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.model.util.CollectionModel;
 import org.apache.wicket.model.util.ListModel;
@@ -43,7 +44,7 @@ public class PalettePage extends WicketExamplePage
 	public PalettePage()
 	{
 		List<Person> persons = ComponentReferenceApplication.getPersons();
-		ChoiceRenderer<Person> renderer = new ChoiceRenderer<>("fullName", "fullName");
+		IChoiceRenderer<Person> renderer = new ChoiceRenderer<>("fullName", "fullName");
 
 		final Palette<Person> palette = new Palette<Person>("palette", new ListModel<>(
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
index 73db134..cac99fe 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
@@ -25,9 +25,9 @@ import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.WebComponent;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.FormComponent;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.model.IModel;
@@ -51,7 +51,7 @@ public class AjaxEditableChoiceLabel<T> extends AjaxEditableLabel<T>
 	private IModel<? extends List<? extends T>> choices;
 
 	/** The renderer used to generate display/id values for the objects. */
-	private ChoiceRenderer<T> renderer;
+	private IChoiceRenderer<T> renderer;
 
 	/**
 	 * Construct.
@@ -120,7 +120,7 @@ public class AjaxEditableChoiceLabel<T> extends AjaxEditableLabel<T>
 	 *            The rendering engine
 	 */
 	public AjaxEditableChoiceLabel(final String id, final IModel<T> model,
-		final IModel<? extends List<? extends T>> choices, final ChoiceRenderer<T> renderer)
+		final IModel<? extends List<? extends T>> choices, final IChoiceRenderer<T> renderer)
 	{
 		super(id, model);
 		this.choices = choices;
@@ -156,7 +156,7 @@ public class AjaxEditableChoiceLabel<T> extends AjaxEditableLabel<T>
 	 *            The rendering engine
 	 */
 	public AjaxEditableChoiceLabel(final String id, final IModel<T> model,
-		final List<? extends T> choices, final ChoiceRenderer<T> renderer)
+		final List<? extends T> choices, final IChoiceRenderer<T> renderer)
 	{
 		this(id, model, Model.ofList(choices), renderer);
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
index 333865d..ce3f8c2 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
@@ -32,9 +32,9 @@ import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.markup.html.form.FormComponentPanel;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
@@ -88,7 +88,7 @@ public class Palette<T> extends FormComponentPanel<Collection<T>>
 	/**
 	 * choice render used to render the choices in both available and selected collections
 	 */
-	private final ChoiceRenderer<T> choiceRenderer;
+	private final IChoiceRenderer<T> choiceRenderer;
 
 	/** number of rows to show in the select boxes */
 	private final int rows;
@@ -138,7 +138,7 @@ public class Palette<T> extends FormComponentPanel<Collection<T>>
 	 *            Allow user to move selections up and down
 	 */
 	public Palette(final String id, final IModel<? extends Collection<T>> choicesModel,
-		final ChoiceRenderer<T> choiceRenderer, final int rows, final boolean allowOrder)
+		final IChoiceRenderer<T> choiceRenderer, final int rows, final boolean allowOrder)
 	{
 		this(id, null, choicesModel, choiceRenderer, rows, allowOrder);
 	}
@@ -161,7 +161,7 @@ public class Palette<T> extends FormComponentPanel<Collection<T>>
 	@SuppressWarnings("unchecked")
 	public Palette(final String id, final IModel<? extends Collection<T>> model,
 		final IModel<? extends Collection<? extends T>> choicesModel,
-		final ChoiceRenderer<T> choiceRenderer, final int rows, final boolean allowOrder)
+		final IChoiceRenderer<T> choiceRenderer, final int rows, final boolean allowOrder)
 	{
 		this(id, model, choicesModel, choiceRenderer, rows, allowOrder, false);
 	}
@@ -185,7 +185,7 @@ public class Palette<T> extends FormComponentPanel<Collection<T>>
 	 */
 	public Palette(final String id, final IModel<? extends Collection<T>> model,
 	               final IModel<? extends Collection<? extends T>> choicesModel,
-	               final ChoiceRenderer<T> choiceRenderer, final int rows, final boolean allowOrder,
+	               final IChoiceRenderer<T> choiceRenderer, final int rows, final boolean allowOrder,
 	               boolean allowMoveAll)
 	{
 		super(id, (IModel<Collection<T>>)model);
@@ -554,7 +554,7 @@ public class Palette<T> extends FormComponentPanel<Collection<T>>
 	/**
 	 * @return choice renderer
 	 */
-	public ChoiceRenderer<T> getChoiceRenderer()
+	public IChoiceRenderer<T> getChoiceRenderer()
 	{
 		return choiceRenderer;
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
index fbb34e8..f5d3fc0 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
@@ -23,8 +23,8 @@ import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.extensions.markup.html.form.palette.Palette;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.FormComponent;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.value.IValueMap;
@@ -71,7 +71,7 @@ public abstract class AbstractOptions<T> extends FormComponent<T>
 	{
 		StringBuilder buffer = new StringBuilder(128);
 		Iterator<T> options = getOptionsIterator();
-		ChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
+		IChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
 
 		boolean localizeDisplayValues = localizeDisplayValues();
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java
index 0fc62bd..64fa895 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/Recorder.java
@@ -25,8 +25,8 @@ import java.util.Map;
 
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.extensions.markup.html.form.palette.Palette;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.HiddenField;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.util.string.Strings;
 
@@ -87,7 +87,7 @@ public class Recorder<T> extends HiddenField<String>
 	private void initIds()
 	{
 		// construct the model string based on selection collection
-		ChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
+		IChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
 		StringBuilder modelStringBuffer = new StringBuilder();
 		Collection<T> modelCollection = getPalette().getModelCollection();
 		if (modelCollection == null)
@@ -123,7 +123,7 @@ public class Recorder<T> extends HiddenField<String>
 	 */
 	public List<T> getSelectedList()
 	{
-		final ChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
+		final IChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
 		final Collection<? extends T> choices = getPalette().getChoices();
 		final List<T> selected = new ArrayList<>(choices.size());
 
@@ -160,7 +160,7 @@ public class Recorder<T> extends HiddenField<String>
 	 */
 	public List<T> getUnselectedList()
 	{
-		final ChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
+		final IChoiceRenderer<T> renderer = getPalette().getChoiceRenderer();
 		final Collection<? extends T> choices = getPalette().getChoices();
 		final List<T> unselected = new ArrayList<>(choices.size());
 		final String ids = getValue();

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilter.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilter.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilter.java
index 0c8ea20..7917bd5 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilter.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilter.java
@@ -21,6 +21,7 @@ import java.util.List;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
@@ -75,7 +76,7 @@ public class ChoiceFilter<T> extends AbstractFilter
 	 * @param autoSubmit
 	 */
 	public ChoiceFilter(final String id, final IModel<T> model, final FilterForm<?> form,
-		final List<? extends T> choices, final ChoiceRenderer<T> renderer, final boolean autoSubmit)
+		final List<? extends T> choices, final IChoiceRenderer<T> renderer, final boolean autoSubmit)
 	{
 		this(id, model, form, Model.ofList(choices), renderer, autoSubmit);
 	}
@@ -96,7 +97,7 @@ public class ChoiceFilter<T> extends AbstractFilter
 	 * @see DropDownChoice
 	 */
 	public ChoiceFilter(final String id, final IModel<T> model, final FilterForm<?> form,
-		final IModel<List<? extends T>> choices, final ChoiceRenderer<T> renderer,
+		final IModel<List<? extends T>> choices, final IChoiceRenderer<T> renderer,
 		final boolean autoSubmit)
 	{
 		super(id, form);
@@ -126,7 +127,7 @@ public class ChoiceFilter<T> extends AbstractFilter
 	 * @return created drop down component
 	 */
 	protected DropDownChoice<T> newDropDownChoice(final String id, final IModel<T> model,
-		final IModel<List<? extends T>> choices, final ChoiceRenderer<T> renderer)
+		final IModel<List<? extends T>> choices, final IChoiceRenderer<T> renderer)
 	{
 		DropDownChoice<T> dropDownChoice = new DropDownChoice<>(id, model, choices, renderer);
 		dropDownChoice.setNullValid(true);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java
index d69a4db..bedf33c 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java
@@ -19,7 +19,7 @@ package org.apache.wicket.extensions.markup.html.repeater.data.table.filter;
 import java.util.List;
 
 import org.apache.wicket.Component;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.PropertyModel;
 
@@ -93,7 +93,7 @@ public class ChoiceFilteredPropertyColumn<T, Y, S> extends FilteredPropertyColum
 		ChoiceFilter<Y> filter = new ChoiceFilter<>(componentId, getFilterModel(form), form,
 			filterChoices, enableAutoSubmit());
 
-		ChoiceRenderer<Y> renderer = getChoiceRenderer();
+		IChoiceRenderer<Y> renderer = getChoiceRenderer();
 		if (renderer != null)
 		{
 			filter.getChoice().setChoiceRenderer(renderer);
@@ -130,7 +130,7 @@ public class ChoiceFilteredPropertyColumn<T, Y, S> extends FilteredPropertyColum
 	 * 
 	 * @return choice renderer that will be used to create the choice filter
 	 */
-	protected ChoiceRenderer<Y> getChoiceRenderer()
+	protected IChoiceRenderer<Y> getChoiceRenderer()
 	{
 		return null;
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b011396f/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/palette/PaletteTestPage.java
----------------------------------------------------------------------
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 efc410b..59a0357 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
@@ -21,6 +21,7 @@ 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;
 import org.apache.wicket.model.IModel;
 
@@ -44,7 +45,7 @@ public class PaletteTestPage extends WebPage
 		form = new Form<>("form", new CompoundPropertyModel<Object>("WICKET-5086"));
 		add(form);
 
-		ChoiceRenderer<String> choiceRenderer = new ChoiceRenderer<String>()
+		IChoiceRenderer<String> choiceRenderer = new ChoiceRenderer<String>()
 		{
 			@Override
 			public Object getDisplayValue(String s)