Xcos save/write : use the right DATATYPE encoding 67/17867/2
Clément DAVID [Wed, 9 Mar 2016 09:53:06 +0000 (10:53 +0100)]
Change-Id: If39b9f9187f4302f285b1e563821a64dcf1866a5

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

index e4c9228..bc947b2 100644 (file)
@@ -125,7 +125,7 @@ class PortHandler implements ScilabHandler {
 
         v = atts.getValue("dataType");
         if (v != null) {
-            datatype.set(0, BasicPort.DataType.valueOf(v).ordinal());
+            datatype.set(2, BasicPort.DataType.valueOf(v).ordinal());
         }
         v = atts.getValue("dataColumns");
         if (v != null) {
@@ -133,7 +133,7 @@ class PortHandler implements ScilabHandler {
         }
         v = atts.getValue("dataLines");
         if (v != null) {
-            datatype.set(2, Integer.valueOf(v));
+            datatype.set(0, Integer.valueOf(v));
         }
 
         shared.controller.setObjectProperty(uid, Kind.PORT, ObjectProperties.DATATYPE, datatype);
index 5e2cd65..89fde1e 100644 (file)
@@ -91,11 +91,11 @@ public class PortWriter extends ScilabWriter {
         VectorOfInt datatype = new VectorOfInt();
         shared.controller.getObjectProperty(uid, Kind.PORT, ObjectProperties.DATATYPE, datatype);
 
-        int dataDescriptor = datatype.get(0);
-        if (0 <= dataDescriptor && dataDescriptor < BasicPort.DataType.values().length) {
-            shared.stream.writeAttribute("dataType", BasicPort.DataType.values()[dataDescriptor].name());
+        int type = datatype.get(2);
+        if (0 <= type && type < BasicPort.DataType.values().length) {
+            shared.stream.writeAttribute("dataType", BasicPort.DataType.values()[type].name());
             shared.stream.writeAttribute("dataColumns", Integer.toString(datatype.get(1)));
-            shared.stream.writeAttribute("dataLines", Integer.toString(datatype.get(2)));
+            shared.stream.writeAttribute("dataLines", Integer.toString(datatype.get(0)));
         }
 
         double[] firing = new double[1];