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


Reply via email to