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("\"");