X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2FDistrictDiagramViewer.java;h=8187002b9f3ea6703cf1b6d04b067e95f55a45d1;hb=231b9da5dfd8129e24cb5a9d2ec87ff9afa7afd9;hp=e536f3ccdb6381728f05d8c791c85a60e3ed2048;hpb=a2e0d3dfba1245a13dcc8aa23c0188926e2a03c5;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java index e536f3cc..8187002b 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java @@ -1,30 +1,61 @@ -package org.simantics.district.network.ui; - -import java.util.concurrent.TimeUnit; - -import org.simantics.g2d.canvas.ICanvasContext; -import org.simantics.g2d.diagram.handler.PickRequest.PickFilter; -import org.simantics.g2d.diagram.participant.DelayedBatchElementPainter; -import org.simantics.g2d.diagram.participant.ElementPainter; -import org.simantics.g2d.diagram.participant.Selection; -import org.simantics.g2d.diagram.participant.ZOrderHandler; -import org.simantics.g2d.participant.RenderingQualityInteractor; -import org.simantics.modeling.ui.diagramEditor.DiagramViewer; - -public class DistrictDiagramViewer extends DiagramViewer { - - @Override - protected void addDiagramParticipants(ICanvasContext ctx) { - ctx.add(new ZOrderHandler()); - ctx.add(new Selection()); - ctx.add(new ElementPainter()); - - ctx.add(new NetworkDrawingParticipant()); - } - - @Override - protected void addPainterParticipants(ICanvasContext ctx) { - ctx.add(new RenderingQualityInteractor()); - ctx.add(new DelayedBatchElementPainter(PickFilter.FILTER_MONITORS, 500, TimeUnit.MILLISECONDS)); - } -} +package org.simantics.district.network.ui; + +import java.util.concurrent.TimeUnit; + +import org.simantics.district.network.ui.participants.DNPointerInteractor; +import org.simantics.district.network.ui.participants.MapRulerPainter; +import org.simantics.g2d.canvas.ICanvasContext; +import org.simantics.g2d.canvas.impl.CanvasContext; +import org.simantics.g2d.diagram.handler.PickRequest.PickFilter; +import org.simantics.g2d.diagram.participant.DelayedBatchElementPainter; +import org.simantics.g2d.diagram.participant.ElementPainter; +import org.simantics.g2d.diagram.participant.Selection; +import org.simantics.g2d.diagram.participant.ZOrderHandler; +import org.simantics.g2d.participant.BackgroundPainter; +import org.simantics.g2d.participant.GridPainter; +import org.simantics.g2d.participant.PanZoomRotateHandler; +import org.simantics.g2d.participant.RenderingQualityInteractor; +import org.simantics.maps.MapScalingTransform; +import org.simantics.maps.eclipse.MapPainter; +import org.simantics.modeling.ui.diagramEditor.DiagramViewer; +import org.simantics.utils.datastructures.hints.IHintContext; + +public class DistrictDiagramViewer extends DiagramViewer { + + @Override + protected void addDiagramParticipants(ICanvasContext ctx) { + ctx.add(new ZOrderHandler()); + ctx.add(new Selection()); + ctx.add(new ElementPainter()); + ctx.add(new DNPointerInteractor()); + + ctx.add(new MapPainter(MapScalingTransform.INSTANCE)); + + ctx.add(new NetworkDrawingParticipant(MapScalingTransform.INSTANCE)); + } + + protected String getPopupId() { + return "#DistrictDiagramPopup"; + } + + @Override + public void initializeCanvasContext(CanvasContext ctx) { + super.initializeCanvasContext(ctx); + IHintContext h = ctx.getDefaultHintContext(); + h.setHint(PanZoomRotateHandler.KEY_ZOOM_IN_LIMIT, 1000000.0); + h.setHint(PanZoomRotateHandler.KEY_ZOOM_OUT_LIMIT, 0.003); + } + + @Override + protected void addPainterParticipants(ICanvasContext ctx) { + ctx.add(new RenderingQualityInteractor()); + ctx.add(new DelayedBatchElementPainter(PickFilter.FILTER_MONITORS, 500, TimeUnit.MILLISECONDS)); + } + + @Override + protected void addGridRulerBackgroundParticipants(CanvasContext ctx) { + ctx.add(new GridPainter()); + ctx.add(new MapRulerPainter()); + ctx.add(new BackgroundPainter()); + } +}