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;
public class DNPointerInteractor extends PointerInteractor {
+ private RoutingMode routingMode;
+
private static class DNPickSorter implements PickSorter {
@Override
@EventHandler(priority = 1000)
public boolean enterroutingMode(KeyEvent ke) {
- if (ke.character == 't' && ke instanceof KeyReleasedEvent) {
- getContext().add(new RoutingMode(0));
+ 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;
+ }
}