X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.issues.ui%2Fsrc%2Forg%2Fsimantics%2Fissues%2Fui%2FIssueView2.java;h=162eeff87d5913862e9ff2fa7d5a799c3831dccf;hb=refs%2Fchanges%2F78%2F278%2F3;hp=b683f246455ac13e5a52a29f7b555a25407421c6;hpb=ca6fcd858a0b82eb1b5a8f12c4d5df30e84393e0;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/IssueView2.java b/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/IssueView2.java index b683f2464..162eeff87 100644 --- a/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/IssueView2.java +++ b/bundles/org.simantics.issues.ui/src/org/simantics/issues/ui/IssueView2.java @@ -11,8 +11,12 @@ *******************************************************************************/ 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; @@ -23,6 +27,7 @@ import org.simantics.diagram.stubs.DiagramResource; 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; /** @@ -101,4 +106,29 @@ public class IssueView2 extends ModelledView { return null; } + @SuppressWarnings({ "unchecked", "deprecation" }) + @Override + public T getAdapter(Class 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); + }); + } + }