Xcos load: use a valid port type value 35/17935/3
Clément DAVID [Wed, 16 Mar 2016 11:13:24 +0000 (12:13 +0100)]
On Scilab 5, initialState (eg firing) is initialized to -1.0 and port type
UNKNOW_TYPE should also be -1.0 .

Change-Id: I1de1907475ede4b4c70629a715db41c4cf40755a

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

index 6df2b9b..4a2bc9a 100644 (file)
@@ -123,9 +123,9 @@ class PortHandler implements ScilabHandler {
         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
+        int intValue = BasicPort.DataType.REAL_MATRIX.asScilabValue();  // Magic default value, used in Scilab 5.x
         if (v != null) {
-            intValue = BasicPort.DataType.valueOf(v).ordinal();
+            intValue = BasicPort.DataType.valueOf(v).asScilabValue();
         }
         datatype.set(2, intValue);
         intValue = -2; // Magic default value, used in Scilab 5.x
@@ -146,6 +146,8 @@ class PortHandler implements ScilabHandler {
         v = atts.getValue("initialState");
         if (v != null) {
             shared.controller.setObjectProperty(uid, Kind.PORT, ObjectProperties.FIRING, Double.valueOf(v));
+        } else {
+            shared.controller.setObjectProperty(uid, Kind.PORT, ObjectProperties.FIRING, -1.0);
         }
 
         /*
@@ -211,4 +213,4 @@ class PortHandler implements ScilabHandler {
     @Override
     public void endElement(HandledElement found) {
     }
-}
\ No newline at end of file
+}
index d931dcb..bae49d0 100644 (file)
@@ -88,7 +88,7 @@ public abstract class BasicPort extends XcosCell {
         /**
          * @return A scicos compatible representation
          */
-        public double getAsDouble() {
+        public int asScilabValue() {
             if (this.equals(UNKNOW_TYPE)) {
                 return -1;
             }