]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java
First draft of vertex size adjusting district network diagram profiles
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / DistrictDiagramViewer.java
1 package org.simantics.district.network.ui;
2
3 import java.util.concurrent.TimeUnit;
4
5 import org.simantics.district.network.ui.participants.DNPointerInteractor;
6 import org.simantics.district.network.ui.participants.MapRulerPainter;
7 import org.simantics.g2d.canvas.ICanvasContext;
8 import org.simantics.g2d.canvas.impl.CanvasContext;
9 import org.simantics.g2d.diagram.handler.PickRequest.PickFilter;
10 import org.simantics.g2d.diagram.participant.DelayedBatchElementPainter;
11 import org.simantics.g2d.diagram.participant.ElementPainter;
12 import org.simantics.g2d.diagram.participant.Selection;
13 import org.simantics.g2d.diagram.participant.ZOrderHandler;
14 import org.simantics.g2d.participant.BackgroundPainter;
15 import org.simantics.g2d.participant.GridPainter;
16 import org.simantics.g2d.participant.PanZoomRotateHandler;
17 import org.simantics.g2d.participant.RenderingQualityInteractor;
18 import org.simantics.g2d.participant.ZoomToAreaHandler;
19 import org.simantics.maps.MapScalingTransform;
20 import org.simantics.maps.eclipse.MapPainter;
21 import org.simantics.modeling.ui.diagramEditor.DiagramViewer;
22 import org.simantics.utils.datastructures.hints.IHintContext;
23
24 public class DistrictDiagramViewer extends DiagramViewer {
25
26     @Override
27     protected void addDiagramParticipants(ICanvasContext ctx) {
28         ctx.add(new ZOrderHandler());
29         ctx.add(new Selection());
30         ctx.add(new ElementPainter());
31         ctx.add(new DNPointerInteractor());
32         
33         ctx.add(new MapPainter(MapScalingTransform.INSTANCE));
34         
35         ctx.add(new NetworkDrawingParticipant(MapScalingTransform.INSTANCE));
36     }
37     
38     protected String getPopupId() {
39         return "#DistrictDiagramPopup";
40     }
41     
42     @Override
43     public void initializeCanvasContext(CanvasContext ctx) {
44         super.initializeCanvasContext(ctx);
45         IHintContext h = ctx.getDefaultHintContext();
46         h.setHint(PanZoomRotateHandler.KEY_ZOOM_IN_LIMIT, 10000.0);
47         h.setHint(PanZoomRotateHandler.KEY_ZOOM_OUT_LIMIT, 0.01);
48     }
49
50     @Override
51     protected void addPainterParticipants(ICanvasContext ctx) {
52         ctx.add(new RenderingQualityInteractor());
53         ctx.add(new DelayedBatchElementPainter(PickFilter.FILTER_MONITORS, 500, TimeUnit.MILLISECONDS));
54     }
55     
56     @Override
57     protected void addGridRulerBackgroundParticipants(CanvasContext ctx) {
58         ctx.add(new GridPainter());
59         ctx.add(new MapRulerPainter());
60         ctx.add(new BackgroundPainter());
61     }
62     
63     protected void addViewManipulationParticipants(CanvasContext ctx) {
64         ctx.add(new DistrictPanZoomRotateHandler());
65         //ctx.add(new MousePanZoomInteractor());
66         //ctx.add(new MultitouchPanZoomRotateInteractor());
67         // ctx.add( new OrientationRestorer() );
68         ctx.add(new ZoomToAreaHandler());
69     }
70
71 }