]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/visualisations/DynamicVisualisationsView.java
Add support for gradients in dynamic visualisations
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / visualisations / DynamicVisualisationsView.java
index d98a37872651daef0c361948eda3ebad0060352f..6bdf00378fb726728b0e58e4279cbd386ec8cd8b 100644 (file)
@@ -2,85 +2,44 @@ package org.simantics.district.network.ui.visualisations;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
-import javax.inject.Inject;
 
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
-import org.eclipse.e4.ui.workbench.modeling.IPartListener;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor;
-import org.simantics.district.network.ui.DistrictDiagramEditor;
-import org.simantics.ui.workbench.IResourceEditorInput;
-import org.simantics.utils.ui.workbench.WorkbenchUtils;
+import org.simantics.Simantics;
+import org.simantics.db.AsyncReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.procedure.adapter.AsyncListenerAdapter;
+import org.simantics.db.layer0.request.PossibleActiveModel;
 
 public class DynamicVisualisationsView {
 
-    @Inject
-    ESelectionService selectionService;
-    
-    @Inject
-    EPartService partService;
-
     private DynamicVisualisationsUI ui;
 
     @PostConstruct
     public void postConstruct(Composite parent) {
         ui = new DynamicVisualisationsUI(parent, 0);
         
-        IEditorPart editor = WorkbenchUtils.getActiveEditor();
-        if (editor instanceof DistrictDiagramEditor)
-            setDiagramResource(editor.getEditorInput());
-        
-        partService.addPartListener(partListener);
+        Simantics.getSession().asyncRequest(new PossibleActiveModel(Simantics.getProjectResource()), new AsyncListenerAdapter<Resource>() {
+
+            @Override
+            public void execute(AsyncReadGraph graph, Resource result) {
+                if (ui != null && !ui.isDisposed()) {
+                    ui.getDisplay().asyncExec(() -> {
+                        ui.setParentResource(result);
+                    });
+                }
+            }
+
+            @Override
+            public boolean isDisposed() {
+                return ui != null ? ui.isDisposed() : true;
+            }
+        });
     }
 
     @PreDestroy
     public void dispose() {
-        partService.removePartListener(partListener);
         ui.dispose();
         ui = null;
     }
 
-    private void setDiagramResourceFromCompatibilityEditor(MPart part) {
-        if (part.getObject() instanceof CompatibilityEditor) {
-            CompatibilityEditor editor = (CompatibilityEditor) part.getObject();
-            IEditorPart editorPart = editor.getEditor();
-            setDiagramResource(editorPart.getEditorInput());
-        }
-    }
-    
-    private void setDiagramResource(IEditorInput input) {
-        if (input instanceof IResourceEditorInput) {
-            ui.setDiagramResource(((IResourceEditorInput) input).getResource());
-        }
-    }
-    
-    private IPartListener partListener = new IPartListener() {
-        
-        @Override
-        public void partVisible(MPart part) {
-            setDiagramResourceFromCompatibilityEditor(part);
-        }
-        
-        @Override
-        public void partHidden(MPart part) {
-        }
-        
-        @Override
-        public void partDeactivated(MPart part) {
-        }
-        
-        @Override
-        public void partBroughtToTop(MPart part) {
-            setDiagramResourceFromCompatibilityEditor(part);
-        }
-        
-        @Override
-        public void partActivated(MPart part) {
-            setDiagramResourceFromCompatibilityEditor(part);
-        }
-    };
 }