X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2FdiagramEditor%2FDiagramViewerSelectionProvider.java;h=b7ea5ac78a1efff4769b267fdaa7ddf565cdea41;hp=4ef86b753b4c54a8eea8b17ee1eb788a7e0acb60;hb=8ded56d0a440f78cbf649b1e59b8a464e8650fdc;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerSelectionProvider.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerSelectionProvider.java index 4ef86b753..b7ea5ac78 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerSelectionProvider.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerSelectionProvider.java @@ -6,7 +6,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.ui.IWorkbenchPartSite; import org.simantics.Simantics; -import org.simantics.browsing.ui.swt.AdaptableHintContext; +import org.simantics.browsing.ui.common.AdaptableHintContext; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.request.ResourceRead; @@ -31,6 +31,7 @@ import org.simantics.modeling.ModelingResources; import org.simantics.ui.SimanticsUI; import org.simantics.ui.selection.AnyResource; import org.simantics.ui.selection.AnyVariable; +import org.simantics.ui.selection.ParentVariable; import org.simantics.ui.selection.WorkbenchSelectionContentType; import org.simantics.utils.DataContainer; import org.simantics.utils.threads.IThreadWorkQueue; @@ -109,7 +110,34 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider { } catch (DatabaseException e) { Logger.defaultLogError(e); } + } + else if(contentType instanceof ParentVariable) { + ParentVariable type = (ParentVariable)contentType; + try { + return (T) type.processor.sync(new ResourceRead2(runtime, element) { + @Override + public Variable perform(ReadGraph graph) throws DatabaseException { + + DiagramResource DIA = DiagramResource.getInstance(graph); + ModelingResources MOD = ModelingResources.getInstance(graph); + Layer0 L0 = Layer0.getInstance(graph); + + String uri = graph.getPossibleRelatedValue(resource, DIA.RuntimeDiagram_HasVariable); + if (uri == null) + return null; + + Variable var = Variables.getPossibleVariable(graph, uri); + if (var == null) + return null; + + return var; + } + }); + } catch (DatabaseException e) { + Logger.defaultLogError(e); + } } + return null; } @@ -135,7 +163,7 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider { if (resource != null) { objects.add( constructSelectionElement(runtime, resource) ); } else { - System.out.println(" unrecognized selection: " + o.getClass() + ": " + o); + System.out.println(" unrecognized selection: " + o.getClass() + ": " + o); //$NON-NLS-1$ //$NON-NLS-2$ } } if (objects.isEmpty() && runtime != null && dr != null) {