X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2FdiagramEditor%2FDiagramViewer.java;h=88d85cfbf6581dc996205ffdf0204d4e8e444e51;hp=a0f504030675d1b9129a6548550ef524b8f762fe;hb=7c341eb5f602ee3c7255e933204f4f72a6d455fa;hpb=55d1e6f63df516019032ebf0c1e9c8c0495a619d diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewer.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewer.java index a0f504030..88d85cfbf 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewer.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewer.java @@ -67,7 +67,9 @@ 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.CopyAsSVGParticipant; import org.simantics.diagram.participant.PointerInteractor2; import org.simantics.diagram.participant.SGFocusParticipant; import org.simantics.diagram.query.DiagramRequests; @@ -236,6 +238,7 @@ public class DiagramViewer protected GridSnapAdvisor snapAdvisor; private RuntimeDiagramManager runtimeDiagramManager; + private Resource runtimeDiagramResourceCache; private HasDiagramSourceListener hasDiagramSourceListener; /** @@ -245,11 +248,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 getInputValidator() { return INPUT_VALIDATOR; } @@ -322,6 +332,8 @@ public class DiagramViewer //ctx.add(new ZoomTransitionParticipant(TransitionFunction.SIGMOID)); //ctx.add(new TooltipParticipant()); ctx.add(new TerminalTooltipParticipant()); + ctx.add(new ConnectionCrossingsParticipant(getInputResource())); + ctx.add(new CopyAsSVGParticipant()); } protected void addPainterParticipants(ICanvasContext ctx) {