X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fparticipants%2FDNPointerInteractor.java;h=9df6e5efbc2646a67fd165b43d90c1d436f44937;hb=f888cdd5d8d8e9b958de302c96cf6b013519eaca;hp=a1a8ae5ac5169ff2216549c3b537137f29ab17f7;hpb=16ee01dc5a40981c58fd5b478b89552e5814e8bb;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DNPointerInteractor.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DNPointerInteractor.java index a1a8ae5a..9df6e5ef 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DNPointerInteractor.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DNPointerInteractor.java @@ -7,6 +7,7 @@ import java.util.Set; import org.simantics.district.network.ui.adapters.DistrictNetworkEdgeElement; import org.simantics.district.network.ui.adapters.DistrictNetworkVertexElement; +import org.simantics.g2d.canvas.ICanvasContext; import org.simantics.g2d.canvas.ICanvasParticipant; import org.simantics.g2d.diagram.handler.PickRequest.PickSorter; import org.simantics.g2d.diagram.participant.pointertool.PointerInteractor; @@ -14,10 +15,15 @@ import org.simantics.g2d.diagram.participant.pointertool.TerminalUtil.TerminalIn import org.simantics.g2d.element.ElementHints; import org.simantics.g2d.element.IElement; import org.simantics.scenegraph.g2d.IG2DNode; +import org.simantics.scenegraph.g2d.events.EventHandlerReflection.EventHandler; +import org.simantics.scenegraph.g2d.events.KeyEvent.KeyReleasedEvent; +import org.simantics.scenegraph.g2d.events.KeyEvent; import org.simantics.scenegraph.g2d.nodes.SingleElementNode; public class DNPointerInteractor extends PointerInteractor { + private RoutingMode routingMode; + private static class DNPickSorter implements PickSorter { @Override @@ -62,4 +68,21 @@ public class DNPointerInteractor extends PointerInteractor { Set elementsToDrag) { return new DNTranslateMode(startCanvasPos, curCanvasPos, mouseId, elementsToDrag); } + + @EventHandler(priority = 1000) + public boolean enterroutingMode(KeyEvent ke) { + if (Character.toLowerCase(ke.character) == 't' && ke instanceof KeyReleasedEvent) { + ICanvasContext canvasContext = getContext(); + if (routingMode == null || routingMode.isRemoved()) { + routingMode = new RoutingMode(0); + canvasContext.add(routingMode); + } + } + return false; + } + + @Override + public double getPickDistance() { + return 0.00001; + } }