Use the model style values instead of the view values
Clément DAVID [Mon, 11 Jan 2010 09:20:02 +0000 (10:20 +0100)]
scilab/modules/xcos/src/java/org/scilab/modules/xcos/block/BasicBlock.java

index 461cd72..56a7cd6 100644 (file)
@@ -65,6 +65,7 @@ import org.scilab.modules.xcos.port.control.ControlPort;
 import org.scilab.modules.xcos.port.input.InputPort;
 import org.scilab.modules.xcos.port.output.OutputPort;
 import org.scilab.modules.xcos.utils.BlockPositioning;
+import org.scilab.modules.xcos.utils.StyleMap;
 import org.scilab.modules.xcos.utils.XcosConstants;
 import org.scilab.modules.xcos.utils.XcosEvent;
 import org.scilab.modules.xcos.utils.XcosInterpreterManagement;
@@ -75,7 +76,6 @@ import com.mxgraph.model.mxGeometry;
 import com.mxgraph.util.mxConstants;
 import com.mxgraph.util.mxEventObject;
 import com.mxgraph.util.mxUtils;
-import com.mxgraph.view.mxCellState;
 
 public class BasicBlock extends XcosUIDObject {
 
@@ -906,34 +906,13 @@ public class BasicBlock extends XcosUIDObject {
     }
 
     /**
-     * Usefull when we need to update local properties with mxCell style properties 
+     * Useful when we need to update local properties with mxCell style properties 
      */
-    public void updateFieldsFromStyle() {
-       if (getParentDiagram() != null) {
-           mxCellState state = getParentDiagram().getView().getState(this);
-           if(state != null) {
-               // Angle field
-               String  currentAngle = mxUtils.getString(state.getStyle(), XcosConstants.STYLE_ROTATION, "0");
-               this.angle = Integer.parseInt(currentAngle);
-           
-               // Flip field
-               String  currentFlip = mxUtils.getString(state.getStyle(), XcosConstants.STYLE_FLIP, "false");
-               if (currentFlip.compareTo("true") == 0) {
-                   isFlipped = true;
-               } else {
-                   isFlipped = false;
-               }
-               
-               // Mirror field
-               String  currentMirror = mxUtils.getString(state.getStyle(), XcosConstants.STYLE_MIRROR, "false");
-               if (currentMirror.compareTo("true") == 0) {
-                   isMirrored = true;
-               } else {
-                   isMirrored = false;
-               }
-           }
-           
+       public void updateFieldsFromStyle() {
+               StyleMap map = new StyleMap(getStyle());
+
+               angle = Integer.parseInt(map.get(XcosConstants.STYLE_ROTATION));
+               isFlipped = Boolean.parseBoolean(map.get(XcosConstants.STYLE_FLIP));
+               isMirrored = Boolean.parseBoolean(map.get(XcosConstants.STYLE_MIRROR));
        }
-       
-    }
 }