]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.maps/src/org/simantics/maps/eclipse/MapPainter.java
Fix variable exceptions for certain properties in district diagram
[simantics/district.git] / org.simantics.district.maps / src / org / simantics / maps / eclipse / MapPainter.java
index 00f06dea21839e06859a1908524df132a02948d3..cdf0be15a5236d8a4826da71eb6b4b8f4e1f1cdd 100644 (file)
@@ -11,6 +11,8 @@
  *******************************************************************************/
 package org.simantics.maps.eclipse;
 
+import java.awt.geom.AffineTransform;
+
 import org.simantics.g2d.canvas.Hints;
 import org.simantics.g2d.canvas.ICanvasContext;
 import org.simantics.g2d.canvas.impl.AbstractCanvasParticipant;
@@ -60,10 +62,10 @@ public class MapPainter extends AbstractCanvasParticipant {
     protected MapNode node = null;
     protected MapScaleNode scaleNode = null;
 
-    private int scale;
+    private AffineTransform transform;
 
-    public MapPainter(int scale) {
-        this.scale = scale;
+    public MapPainter(AffineTransform transform) {
+        this.transform = transform;
     }
 
     @Override
@@ -95,6 +97,11 @@ public class MapPainter extends AbstractCanvasParticipant {
             updateNode();
             setDirty();
             return true;
+        } else if (e.command.equals( Commands.ENABLE_PAINTING )) {
+            enablePainting();
+            updateNode();
+            setDirty();
+            return true;
         }
         return false;
     }
@@ -102,12 +109,12 @@ public class MapPainter extends AbstractCanvasParticipant {
     @SGInit
     public void initSG(G2DParentNode parent) {
         node = parent.addNode("map", MapNode.class);
-        node.setScale(scale);
+        node.setTransform(transform);
         node.setEnabled(true);
         node.setZIndex(Integer.MIN_VALUE + 999); // Just under the grid
         
         scaleNode = parent.addNode("mapScale", MapScaleNode.class);
-        scaleNode.setScale(scale);
+        scaleNode.setTransform(transform);
         scaleNode.setEnabled(true);
         scaleNode.setZIndex(Integer.MAX_VALUE - 999); // Just under the grid
     }
@@ -136,4 +143,7 @@ public class MapPainter extends AbstractCanvasParticipant {
         setHint(KEY_MAP_ENABLED, enabled);
     }
 
+    private void enablePainting() {
+        setHint(Hints.KEY_DISABLE_PAINTING, false);
+    }
 }