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;
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 {
protected static Set<String> loadBrowseContexts(final Set<String> browseContexts) {
try {
- return SimanticsUI.getSession().syncRequest(new Read<Set<String>>() {
+ return Simantics.getSession().syncRequest(new Read<Set<String>>() {
@Override
public Set<String> perform(ReadGraph graph) throws DatabaseException {
- Collection<Resource> browseContextResources = new ArrayList<Resource>(browseContexts.size());
+ Collection<Resource> browseContextResources = new ArrayList<>(browseContexts.size());
for (String browseContext : browseContexts) {
try {
browseContextResources.add(graph.getResource(browseContext));
}
}
Collection<Resource> allBrowseContextResources = BrowseContext.findSubcontexts(graph, browseContextResources);
- Set<String> result = new HashSet<String>();
+ Set<String> result = new HashSet<>();
for (Resource r : allBrowseContextResources)
result.add(graph.getURI(r));
return result;
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<Resource> browseContexts = new ArrayList<Resource>();
+ ArrayList<Resource> browseContexts = new ArrayList<>();
for (String uri : _browseContexts) {
Resource browseContext = graph.getPossibleResource(uri);
if (browseContext != null)
if (target == null)
return;
- SimanticsUI.getSession().asyncRequest(new Read<Runnable>() {
+ Simantics.getSession().asyncRequest(new Read<Runnable>() {
@Override
public Runnable perform(ReadGraph graph) throws DatabaseException {
if (dndBrowseContext == null)
}, new Procedure<Runnable>() {
@Override
public void execute(Runnable result) {
- if (result != null)
- result.run();
+ Display.getDefault().asyncExec(() -> {
+ if (!Display.getCurrent().isDisposed() && result != null)
+ result.run();
+ });
}
@Override