From: Tuukka Lehtonen Date: Tue, 23 Jul 2019 11:39:23 +0000 (+0000) Subject: Merge "Improve utilities for invoking SCL from Java" X-Git-Tag: v1.43.0~136^2~134 X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=013b2ba073548a6e500dfb6297a720f0931e6931;hp=4c77968eba9c464a32c8f1b5bf4b65802bdea1ff;p=simantics%2Fplatform.git Merge "Improve utilities for invoking SCL from Java" --- diff --git a/bundles/org.simantics.desktop.ui/src/org/simantics/desktop/ui/internal/StandardModelledView.java b/bundles/org.simantics.desktop.ui/src/org/simantics/desktop/ui/internal/StandardModelledView.java index 689134b84..9bc628d00 100644 --- a/bundles/org.simantics.desktop.ui/src/org/simantics/desktop/ui/internal/StandardModelledView.java +++ b/bundles/org.simantics.desktop.ui/src/org/simantics/desktop/ui/internal/StandardModelledView.java @@ -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 defaultBrowseContexts = Collections.singleton(ProjectResource.URIs.ProjectBrowseContext); + @Override protected IPropertyPage getPropertyPage() { - return new StandardPropertyPage(getSite()); + return new StandardPropertyPage(getSite(), defaultBrowseContexts); } } diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java index 80e34c374..f19081754 100644 --- a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java @@ -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 = 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 = SCLOsgi.MODULE_REPOSITORY.getModule(moduleSource.getModuleName(), updateListener); - Module result = module.getResult(); - outlineViewer.setInput(result); + + updateListener.notifyAboutUpdate(); } @Override