]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Merge "Improve utilities for invoking SCL from Java"
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Tue, 23 Jul 2019 11:39:23 +0000 (11:39 +0000)
committerGerrit Code Review <gerrit2@simantics>
Tue, 23 Jul 2019 11:39:23 +0000 (11:39 +0000)
bundles/org.simantics.desktop.ui/src/org/simantics/desktop/ui/internal/StandardModelledView.java
bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java

index 689134b84048e39aa0a808a69796b281711538ac..9bc628d0068c65947990fdf2b03bdda9cca5ef0e 100644 (file)
@@ -1,14 +1,20 @@
 package org.simantics.desktop.ui.internal;
 
+import java.util.Collections;
+import java.util.Set;
+
+import org.simantics.project.ontology.ProjectResource;
 import org.simantics.selectionview.StandardPropertyPage;
 import org.simantics.ui.workbench.IPropertyPage;
 import org.simantics.views.swt.ModelledView;
 
 public class StandardModelledView extends ModelledView {
 
+    private static final Set<String> defaultBrowseContexts = Collections.singleton(ProjectResource.URIs.ProjectBrowseContext);
+    
     @Override
     protected IPropertyPage getPropertyPage() {
-        return new StandardPropertyPage(getSite());
+        return new StandardPropertyPage(getSite(), defaultBrowseContexts);
     }
 
 }
index 80e34c3746565f70cdf625cfcde5b19e5e2326a9..f19081754e71b1fc2bc034ca1be8d6345c7e9ff1 100644 (file)
@@ -30,6 +30,7 @@ import org.simantics.scl.osgi.SCLOsgi;
 import org.simantics.scl.ui.Activator;
 import org.simantics.scl.ui.editor2.SCLModuleEditor2;
 import org.simantics.scl.ui.editor2.SCLModuleEditorInput;
+import org.simantics.utils.ui.SWTUtils;
 
 public class SCLModuleOutlinePage extends ContentOutlinePage {
 
@@ -69,16 +70,20 @@ public class SCLModuleOutlinePage extends ContentOutlinePage {
 
             @Override
             public void notifyAboutUpdate() {
-                parent.getDisplay().asyncExec(() -> {
+                if (parent.isDisposed())
+                    return;
+                
+                Failable<Module> module = SCLOsgi.MODULE_REPOSITORY.getModule(moduleSource.getModuleName(), updateListener);
+                SWTUtils.asyncExec(parent, () -> {
                     if (!outlineViewer.getControl().isDisposed()) {
+                        outlineViewer.setInput(module.didSucceed() ? module.getResult() : null);
                         outlineViewer.refresh();
                     }
                 });
             }
         };
-        Failable<Module> module = SCLOsgi.MODULE_REPOSITORY.getModule(moduleSource.getModuleName(), updateListener);
-        Module result = module.getResult();
-        outlineViewer.setInput(result);
+        
+        updateListener.notifyAboutUpdate();
     }
 
     @Override