You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2009/08/03 02:17:01 UTC

svn commit: r800174 - /wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java

Author: ivaynberg
Date: Mon Aug  3 00:17:01 2009
New Revision: 800174

URL: http://svn.apache.org/viewvc?rev=800174&view=rev
Log:
WICKET-2407 AbstractOptions of Palette may cause an HTML error with illegal chars
Issue: WICKET-2407

Modified:
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java?rev=800174&r1=800173&r2=800174&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java Mon Aug  3 00:17:01 2009
@@ -26,6 +26,7 @@
 import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.JavascriptUtils;
+import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.value.IValueMap;
 
 
@@ -74,11 +75,40 @@
 		while (options.hasNext())
 		{
 			final T choice = options.next();
-			String id = renderer.getIdValue(choice, 0);
-			Object displayValue = renderer.getDisplayValue(choice);
-			Class<?> displayClass = displayValue == null ? null : displayValue.getClass();
-			String value = getConverter(displayClass).convertToString(displayValue, getLocale());
-			value = getLocalizer().getString(value, this, value);
+
+
+			final CharSequence id;
+			{
+				String value = renderer.getIdValue(choice, 0);
+
+				if (getEscapeModelStrings())
+				{
+					id = Strings.escapeMarkup(value);
+				}
+				else
+				{
+					id = value;
+				}
+			}
+
+			final CharSequence value;
+			{
+				Object displayValue = renderer.getDisplayValue(choice);
+				Class<?> displayClass = displayValue == null ? null : displayValue.getClass();
+
+				String displayString = getConverter(displayClass).convertToString(displayValue,
+					getLocale());
+				displayString = getLocalizer().getString(displayString, this, displayString);
+
+				if (getEscapeModelStrings())
+				{
+					value = Strings.escapeMarkup(displayString);
+				}
+				else
+				{
+					value = displayString;
+				}
+			}
 
 			buffer.append("\n<option value=\"").append(id).append("\"");