X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Foutline%2FSCLModuleOutlinePage.java;h=f19081754e71b1fc2bc034ca1be8d6345c7e9ff1;hp=80e34c3746565f70cdf625cfcde5b19e5e2326a9;hb=03086ec6c478e636f33299e4e374506eaf4b31b2;hpb=70a2aac538b469c5da40a03fbd65f67e1666eb55 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