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%2FRoutingMode.java;h=54224f4f85e7ea0813516e73350d6a2aee90e2cc;hb=f888cdd5d8d8e9b958de302c96cf6b013519eaca;hp=daacb31296ac0fa7c64d82b1366cc13a7cf1fb2d;hpb=f25d053c5d5d403b09c4e1770d25512279213a90;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/RoutingMode.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/RoutingMode.java index daacb312..54224f4f 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/RoutingMode.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/RoutingMode.java @@ -14,6 +14,7 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; import org.simantics.db.Resource; import org.simantics.diagram.ui.DiagramModelHints; +import org.simantics.district.network.ui.adapters.DistrictNetworkVertexElement; import org.simantics.district.network.ui.internal.Activator; import org.simantics.district.route.Route; import org.simantics.district.route.RouteEvent; @@ -30,6 +31,7 @@ import org.simantics.g2d.canvas.impl.SGNodeReflection.SGInit; import org.simantics.g2d.diagram.handler.PickContext; import org.simantics.g2d.diagram.participant.Selection; import org.simantics.g2d.diagram.participant.pointertool.AbstractMode; +import org.simantics.g2d.element.ElementClass; import org.simantics.g2d.element.ElementUtils; import org.simantics.g2d.element.IElement; import org.simantics.g2d.participant.TransformUtil; @@ -145,12 +147,22 @@ public class RoutingMode extends AbstractMode { return; Object o = ElementUtils.getObject(element); - if (o instanceof Resource) { + if (o instanceof Resource && filterAcceptableElement(element, o)) { Waypoint wp = route.createWaypoint(o); route.addWaypoint(wp); } } + /** + * For now, routing can only start from vertices + * + * @return true if element is a vertex + */ + private boolean filterAcceptableElement(IElement element, Object o) { + ElementClass elementClass = element.getElementClass(); + return elementClass.getId().equals(DistrictNetworkVertexElement.CLASS.getId()); + } + @SGInit public void initSG(G2DParentNode parent) { this.parent = parent;