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.g2d.participant.ZoomToAreaHandler; 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()); } protected void addViewManipulationParticipants(CanvasContext ctx) { ctx.add(new DistrictPanZoomRotateHandler()); //ctx.add(new MousePanZoomInteractor()); //ctx.add(new MultitouchPanZoomRotateInteractor()); // ctx.add( new OrientationRestorer() ); ctx.add(new ZoomToAreaHandler()); } }