Xcos load : default to non-serialized values 73/17873/2
Clément DAVID [Thu, 10 Mar 2016 08:20:55 +0000 (09:20 +0100)]
Xcos 5.x did not save default values while serializing whereas Xcos 6.x
store everything on the files. To preserve compatibility, we have to set
the default values if not present.

Change-Id: Ie94c48732537614c2cab70478f1f8ddbcb255159

scilab/modules/xcos/src/java/org/scilab/modules/xcos/io/sax/PortHandler.java

index bc947b2..234f511 100644 (file)
@@ -119,22 +119,27 @@ class PortHandler implements ScilabHandler {
         /*
          * Setup the properties
          */
-
         VectorOfInt datatype = new VectorOfInt();
         shared.controller.getObjectProperty(uid, Kind.PORT, ObjectProperties.DATATYPE, datatype);
 
         v = atts.getValue("dataType");
+        int intValue = BasicPort.DataType.REAL_MATRIX.ordinal();  // Magic default value, used in Scilab 5.x
         if (v != null) {
-            datatype.set(2, BasicPort.DataType.valueOf(v).ordinal());
+            intValue = BasicPort.DataType.valueOf(v).ordinal();
         }
+        datatype.set(2, intValue);
+        intValue = -2; // Magic default value, used in Scilab 5.x
         v = atts.getValue("dataColumns");
         if (v != null) {
-            datatype.set(1, Integer.valueOf(v));
+            intValue = Integer.parseInt(v);
         }
+        datatype.set(1, intValue);
+        intValue = -1; // Magic default value, used in Scilab 5.x
         v = atts.getValue("dataLines");
         if (v != null) {
-            datatype.set(0, Integer.valueOf(v));
+            intValue = Integer.parseInt(v);
         }
+        datatype.set(0, intValue);
 
         shared.controller.setObjectProperty(uid, Kind.PORT, ObjectProperties.DATATYPE, datatype);
 
@@ -152,7 +157,7 @@ class PortHandler implements ScilabHandler {
 
         v = atts.getValue("ordering");
         if (v != null) {
-            ordering = Integer.valueOf(v) - 1;
+            ordering = Integer.parseInt(v) - 1;
         }
 
         v = atts.getValue("parent");