Update of /var/cvs/applications/dove/src/org/mmbase/applications/dove
In directory james.mmbase.org:/tmp/cvs-serv22189

Modified Files:
      Tag: MMBase-1_8
        Dove.java 
Log Message:
made determination of the 'specialization' (the @ftype in wizard.xsl) a bit 
more sophisticated. This fixes 'time' datatypes, which were presented as 
datetimes. (MMB-1773)


See also: 
http://cvs.mmbase.org/viewcvs/applications/dove/src/org/mmbase/applications/dove
See also: http://www.mmbase.org/jira/browse/MMB-1773


Index: Dove.java
===================================================================
RCS file: 
/var/cvs/applications/dove/src/org/mmbase/applications/dove/Dove.java,v
retrieving revision 1.78.2.10
retrieving revision 1.78.2.11
diff -u -b -r1.78.2.10 -r1.78.2.11
--- Dove.java   27 Jul 2008 14:51:54 -0000      1.78.2.10
+++ Dove.java   13 Jan 2009 11:07:33 -0000      1.78.2.11
@@ -54,7 +54,7 @@
  *
  * @author Pierre van Rooden
  * @since MMBase-1.5
- * @version $Id: Dove.java,v 1.78.2.10 2008/07/27 14:51:54 andre Exp $
+ * @version $Id: Dove.java,v 1.78.2.11 2009/01/13 11:07:33 michiel Exp $
  */
 
 public class Dove extends AbstractDove {
@@ -476,7 +476,7 @@
                 int number=java.lang.Math.abs(n.getNumber());
                 data.setAttribute(ELM_NUMBER, "n"+number);
                 out.appendChild(data);
-                getDataNode(null,data,n);
+                getDataNode(null, data, n);
             } finally {
                 n.cancel();  // have to cancel node ! It will only be really 
made in the putNewNode function
             }
@@ -658,14 +658,18 @@
                     if (lang != null) elm.setAttribute(ELM_LANG, lang);
                     // guitype
                     DataType dataType = fielddef.getDataType();
+                    // The written type will be the first non-anonymous origin 
(or self).
                     String baseType = dataType.getBaseTypeIdentifier();
-                    String specialization = dataType.getName();
-                    if ("".equals(specialization)) {
-                        DataType origin = dataType.getOrigin();
-                        if (origin != null) {
-                            specialization = origin.getName();
-                        }
+
+                    DataType specializationDataType = dataType;
+                    String specialization = specializationDataType.getName();
+                    while (specialization == null || 
"".equals(specialization)) {
+                        specializationDataType = 
specializationDataType.getOrigin();
+                        if (specializationDataType == null) break;
+                        specialization = specializationDataType.getName();
                     }
+                    log.debug("Found " + specialization);
+
                     if (getOptionList(dataType, nm.getCloud(), null, fielddef) 
!= null) {
                         specialization = "enum";
                     } else if (dataType instanceof StringDataType) {
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to