Xcos: fix TextBlock invisible text 59/14059/2
Clément DAVID [Tue, 18 Mar 2014 10:56:45 +0000 (11:56 +0100)]
TextValue are updated at loading but the change is not notified to the
user.

Change-Id: I05cb0ddebfcf5111e74d5f4e8c7d4b9e60885c29

scilab/modules/xcos/src/java/org/scilab/modules/xcos/io/codec/BasicBlockCodec.java

index 4d37fec..d3712fb 100644 (file)
@@ -22,6 +22,7 @@ import org.scilab.modules.xcos.block.BasicBlock.SimulationFunctionType;
 import org.scilab.modules.xcos.block.BlockFactory;
 import org.scilab.modules.xcos.block.BlockFactory.BlockInterFunction;
 import org.scilab.modules.xcos.block.SuperBlock;
+import org.scilab.modules.xcos.block.TextBlock;
 import org.scilab.modules.xcos.port.BasicPort;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -31,6 +32,7 @@ import com.mxgraph.io.mxCodec;
 import com.mxgraph.io.mxCodecRegistry;
 import com.mxgraph.model.mxCell;
 import com.mxgraph.model.mxICell;
+import com.mxgraph.util.mxUtils;
 
 /**
  * Codec for any Block.
@@ -199,6 +201,11 @@ public class BasicBlockCodec extends XcosObjectCodec {
             superBlock.invalidateRpar();
         }
 
+        // update TextBlock due to a wrong serialization of the CSS properties
+        if (block instanceof TextBlock) {
+            block.setValue(mxUtils.getBodyMarkup(String.valueOf(block.getValue()), true));
+        }
+
         // update style to replace direction by rotation and add the
         // default style if absent
         StyleMap map = new StyleMap(((Element) node).getAttribute(STYLE));