Author: michiel
Date: 2010-03-29 14:04:29 +0200 (Mon, 29 Mar 2010)
New Revision: 41654
Modified:
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/AbstractTypeHandler.java
Log:
MMB-1945
Modified:
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/AbstractTypeHandler.java
===================================================================
---
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/AbstractTypeHandler.java
2010-03-29 09:40:06 UTC (rev 41653)
+++
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/AbstractTypeHandler.java
2010-03-29 12:04:29 UTC (rev 41654)
@@ -132,15 +132,46 @@
return buf;
}
+
/**
+ * @since MMBase-1.9.3
+ */
+ protected String getClassName(Class<?> c) {
+ String name = c.getName();
+ name = name.substring(c.getPackage().getName().length() + 1);
+ if (name.endsWith("DataType")) {
+ name = name.substring(0, name.length() - "DataType".length());
+ }
+ return name;
+ }
+
+ /**
* @since MMBase-1.8
*/
protected String getClasses(Node node, Field field) throws JspTagException
{
StringBuilder buf = new StringBuilder("mm_validate ");
DataType dt = field.getDataType();
for (String styleClass : dt.getStyleClasses()) {
- buf.append(styleClass).append(' ');
+ buf.append(styleClass);
}
+ {
+ Class<?> sup = dt.getClass();
+ while(DataType.class.isAssignableFrom(sup)) {
+ if (sup.equals(org.mmbase.datatypes.BasicDataType.class)) {
+ break;
+ }
+ buf.append(" mm_dtclass_");
+ buf.append(getClassName(sup));
+ sup = sup.getSuperclass();
+ }
+ for (Class<?> c : dt.getClass().getInterfaces()) {
+ if (DataType.class.isAssignableFrom(c)) {
+ buf.append(" mm_dtclass_");
+ buf.append(getClassName(c));
+ }
+ }
+ buf.append(' ');
+ }
if (field instanceof org.mmbase.bridge.util.DataTypeField) {
buf.append("mm_dt_");
buf.append(field.getDataType().getName());
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs