*******************************************************************************/
package org.simantics.issues.ui;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbenchPart;
import org.simantics.Simantics;
+import org.simantics.browsing.ui.GraphExplorer;
+import org.simantics.browsing.ui.model.browsecontexts.BrowseContext;
import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.request.ResourceRead;
import org.simantics.issues.ui.ontology.IssueUIResource;
import org.simantics.modeling.ModelingResources;
import org.simantics.ui.workbench.IPropertyPage;
+import org.simantics.utils.ui.SWTUtils;
import org.simantics.views.swt.ModelledView;
/**
return null;
}
+ @SuppressWarnings({ "unchecked", "deprecation" })
+ @Override
+ public <T> T getAdapter(Class<T> adapter) {
+ if (GraphExplorer.class == adapter)
+ return (T) tryGetExplorer(container);
+ if (BrowseContext.class == adapter)
+ return (T) tryGetBrowseContext(container);
+ return super.getAdapter(adapter);
+ }
+
+ private BrowseContext tryGetBrowseContext(Control control) {
+ return SWTUtils.tryGetObject(control, c -> {
+ return c instanceof IAdaptable
+ ? (BrowseContext) ((IAdaptable) c).getAdapter(BrowseContext.class)
+ : null;
+ });
+ }
+
+ private GraphExplorer tryGetExplorer(Control control) {
+ return SWTUtils.tryGetObject(control, c -> {
+ return c.isDisposed() ? null
+ : (GraphExplorer) c.getData(GraphExplorer.KEY_GRAPH_EXPLORER);
+ });
+ }
+
}