Update of
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler
In directory james.mmbase.org:/tmp/cvs-serv29917/typehandler
Modified Files:
EnumHandler.java
Log Message:
MMB-1763
See also:
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler
See also: http://www.mmbase.org/jira/browse/MMB-1763
Index: EnumHandler.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/EnumHandler.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- EnumHandler.java 29 Dec 2008 16:41:31 -0000 1.47
+++ EnumHandler.java 30 Dec 2008 12:41:12 -0000 1.48
@@ -29,7 +29,7 @@
*
* @author Michiel Meeuwissen
* @since MMBase-1.6
- * @version $Id: EnumHandler.java,v 1.47 2008/12/29 16:41:31 michiel Exp $
+ * @version $Id: EnumHandler.java,v 1.48 2008/12/30 12:41:12 michiel Exp $
*/
public class EnumHandler extends AbstractTypeHandler implements TypeHandler {
@@ -139,6 +139,7 @@
return value;
}
+
public String htmlInput(Node node, Field field, boolean search) throws
JspTagException {
StringBuilder buffer = new StringBuilder();
String fieldName = field.getName();
@@ -153,7 +154,7 @@
if (log.isDebugEnabled()) {
log.debug("using value " + (value == null ? "NULL" :
value.getClass().getName() + " " + value));
}
- if (! field.getDataType().isRequired()) {
+ if (! field.getDataType().isRequired() && ! multiple) {
buffer.append("<option value=\"\" ");
if (value == null) buffer.append("selected=\"selected\" ");
buffer.append(">--</option>");
@@ -162,7 +163,12 @@
iterator = getIterator(node, field);
}
- String valueString = Casting.toString(value);
+ List<String> valueString = multiple ? new ArrayList<String>() :
Collections.singletonList(Casting.toString(value));
+ if (multiple) {
+ for (Object v : Casting.toList(value)) {
+ valueString.add(Casting.toString(v));
+ }
+ }
while(iterator != null && iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
Object key = entry.getKey();
@@ -174,7 +180,7 @@
buffer.append("<option value=\"");
buffer.append(XML.transform(keyString));
buffer.append("\"");
- if (keyString.equals(valueString)) {
+ if (valueString.contains(keyString)) {
buffer.append(" selected=\"selected\"");
} else if (search) {
String searchs =
Casting.toString(tag.getContextProvider().getContextContainer().find(tag.getPageContext(),
prefix(field.getName())));
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs