]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewer.java
Configurable connection crossing styles
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / diagramEditor / DiagramViewer.java
index a0f504030675d1b9129a6548550ef524b8f762fe..489ebd6c700a65a6dd7e70dcf8a42d6c9e93a2eb 100644 (file)
@@ -67,6 +67,7 @@ import org.simantics.diagram.handler.DeleteHandler;
 import org.simantics.diagram.handler.ExpandSelectionHandler;
 import org.simantics.diagram.handler.SimpleElementTransformHandler;
 import org.simantics.diagram.layer.ILayersViewPage;
+import org.simantics.diagram.participant.ConnectionCrossingsParticipant;
 import org.simantics.diagram.participant.ContextUtil;
 import org.simantics.diagram.participant.PointerInteractor2;
 import org.simantics.diagram.participant.SGFocusParticipant;
@@ -236,6 +237,7 @@ public class DiagramViewer
     protected GridSnapAdvisor            snapAdvisor;
 
     private RuntimeDiagramManager        runtimeDiagramManager;
+    private Resource                     runtimeDiagramResourceCache;
     private HasDiagramSourceListener     hasDiagramSourceListener;
 
     /**
@@ -245,11 +247,18 @@ public class DiagramViewer
      */
     protected WorkbenchSelectionProvider selectionProvider;
 
-    public Resource getRuntime() {
+    protected Resource getRuntimeFromManager() {
         RuntimeDiagramManager rtdm = runtimeDiagramManager;
         return (rtdm == null) ? null : rtdm.getRuntimeDiagram();
     }
 
+    public Resource getRuntime() {
+        if (runtimeDiagramResourceCache != null)
+            return runtimeDiagramResourceCache;
+        runtimeDiagramResourceCache = getRuntimeFromManager();
+        return runtimeDiagramResourceCache;
+    }
+
     public ParametrizedRead<IResourceEditorInput, Boolean> getInputValidator() {
         return INPUT_VALIDATOR;
     }
@@ -322,6 +331,7 @@ public class DiagramViewer
         //ctx.add(new ZoomTransitionParticipant(TransitionFunction.SIGMOID));
         //ctx.add(new TooltipParticipant());
         ctx.add(new TerminalTooltipParticipant());
+        ctx.add(new ConnectionCrossingsParticipant(getInputResource()));
     }
 
     protected void addPainterParticipants(ICanvasContext ctx) {