]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Introduce new DiagramViewer.getRuntimeFromManager() 10/3610/1
authorjsimomaa <jani.simomaa@gmail.com>
Sat, 16 Nov 2019 07:45:43 +0000 (09:45 +0200)
committerJani Simomaa <jani.simomaa@semantum.fi>
Sun, 24 Nov 2019 18:42:03 +0000 (18:42 +0000)
* The original DiagramViewer.getRuntime() returns cached version of the
runtime diagram resource

gitlab #416

Change-Id: Id2723f5deb94cdba15e815229d9a1931482ace16
(cherry picked from commit 9a37dabc6c0212ed3e14499c88df3208cd06f9b0)

bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewer.java

index 000689309636911a54e8c2b3e6e15a9da4299a71..d7e66deb4ecc5ce590227f7a9709846d186acd12 100644 (file)
@@ -236,6 +236,7 @@ public class DiagramViewer
     protected GridSnapAdvisor            snapAdvisor;
 
     private RuntimeDiagramManager        runtimeDiagramManager;
+    private Resource                     runtimeDiagramResourceCache;
     private HasDiagramSourceListener     hasDiagramSourceListener;
 
     /**
@@ -245,11 +246,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;
     }