*******************************************************************************/
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;
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
updateNode();
setDirty();
return true;
+ } else if (e.command.equals( Commands.ENABLE_PAINTING )) {
+ enablePainting();
+ updateNode();
+ setDirty();
+ return true;
}
return false;
}
@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
}
setHint(KEY_MAP_ENABLED, enabled);
}
+ private void enablePainting() {
+ setHint(Hints.KEY_DISABLE_PAINTING, false);
+ }
}