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;
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
Set<IElement> 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;
+ }
}