1 package org.simantics.district.network.ui.participants;
3 import java.awt.geom.Point2D;
6 import org.simantics.g2d.canvas.ICanvasContext;
7 import org.simantics.g2d.canvas.ICanvasParticipant;
8 import org.simantics.g2d.diagram.participant.pointertool.PointerInteractor;
9 import org.simantics.g2d.diagram.participant.pointertool.TerminalUtil.TerminalInfo;
10 import org.simantics.g2d.element.IElement;
11 import org.simantics.scenegraph.g2d.events.EventHandlerReflection.EventHandler;
12 import org.simantics.scenegraph.g2d.events.KeyEvent;
13 import org.simantics.scenegraph.g2d.events.KeyEvent.KeyReleasedEvent;
15 public class DNPointerInteractor extends PointerInteractor {
17 private RoutingMode routingMode;
19 public DNPointerInteractor() {
20 super(new DNPickSorter());
24 protected ICanvasParticipant createConnectTool(TerminalInfo ti, int mouseId, Point2D startCanvasPos) {
25 return super.createConnectTool(ti, mouseId, startCanvasPos);
29 protected ICanvasParticipant createTranslateTool(int mouseId, Point2D startCanvasPos, Point2D curCanvasPos,
30 Set<IElement> elementsToDrag) {
31 return new DNTranslateMode(startCanvasPos, curCanvasPos, mouseId, elementsToDrag);
34 @EventHandler(priority = 1000)
35 public boolean enterroutingMode(KeyEvent ke) {
36 if (Character.toLowerCase(ke.character) == 't' && ke instanceof KeyReleasedEvent) {
37 ICanvasContext canvasContext = getContext();
38 if (routingMode == null || routingMode.isRemoved()) {
39 routingMode = new RoutingMode(0);
40 canvasContext.add(routingMode);
47 public double getPickDistance() {