X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.browsing.ui.swt%2Fsrc%2Forg%2Fsimantics%2Fbrowsing%2Fui%2Fswt%2Fwidgets%2FModelBrowser.java;h=c8744f2634e3fb3bc1ce911672c2b2de6fe93616;hb=27486a61ad5a2df27c62edaff098926363a025b1;hp=eb48bdd3c76807e15d811f5379957f065d7a9d6a;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/widgets/ModelBrowser.java b/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/widgets/ModelBrowser.java index eb48bdd3c..c8744f263 100644 --- a/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/widgets/ModelBrowser.java +++ b/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/widgets/ModelBrowser.java @@ -19,7 +19,9 @@ import java.util.Map; import java.util.Set; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchSite; +import org.simantics.Simantics; import org.simantics.browsing.ui.NodeContext; import org.simantics.browsing.ui.common.ErrorLogger; import org.simantics.browsing.ui.model.InvalidContribution; @@ -33,7 +35,6 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.exception.ResourceNotFoundException; import org.simantics.db.procedure.Procedure; import org.simantics.db.request.Read; -import org.simantics.ui.SimanticsUI; import org.simantics.utils.ui.ExceptionUtils; public class ModelBrowser extends GraphExplorerComposite { @@ -62,10 +63,10 @@ public class ModelBrowser extends GraphExplorerComposite { protected static Set loadBrowseContexts(final Set browseContexts) { try { - return SimanticsUI.getSession().syncRequest(new Read>() { + return Simantics.getSession().syncRequest(new Read>() { @Override public Set perform(ReadGraph graph) throws DatabaseException { - Collection browseContextResources = new ArrayList(browseContexts.size()); + Collection browseContextResources = new ArrayList<>(browseContexts.size()); for (String browseContext : browseContexts) { try { browseContextResources.add(graph.getResource(browseContext)); @@ -77,7 +78,7 @@ public class ModelBrowser extends GraphExplorerComposite { } } Collection allBrowseContextResources = BrowseContext.findSubcontexts(graph, browseContextResources); - Set result = new HashSet(); + Set result = new HashSet<>(); for (Resource r : allBrowseContextResources) result.add(graph.getURI(r)); return result; @@ -99,10 +100,10 @@ public class ModelBrowser extends GraphExplorerComposite { this.hideComparatorSelector = true; this.hideViewpointSelector = true; - SimanticsUI.getSession().asyncRequest(new ReadRequest() { + Simantics.getSession().asyncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { - ArrayList browseContexts = new ArrayList(); + ArrayList browseContexts = new ArrayList<>(); for (String uri : _browseContexts) { Resource browseContext = graph.getPossibleResource(uri); if (browseContext != null) @@ -122,7 +123,7 @@ public class ModelBrowser extends GraphExplorerComposite { if (target == null) return; - SimanticsUI.getSession().asyncRequest(new Read() { + Simantics.getSession().asyncRequest(new Read() { @Override public Runnable perform(ReadGraph graph) throws DatabaseException { if (dndBrowseContext == null) @@ -132,8 +133,10 @@ public class ModelBrowser extends GraphExplorerComposite { }, new Procedure() { @Override public void execute(Runnable result) { - if (result != null) - result.run(); + Display.getDefault().asyncExec(() -> { + if (!Display.getCurrent().isDisposed() && result != null) + result.run(); + }); } @Override