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=154d8d4c73cfed685ba560060899bfd9c80e7991;hp=4ef86b753b4c54a8eea8b17ee1eb788a7e0acb60;hb=7dd9579f2b8e3eabdad63c8cce46d5c7ff2e42fd;hpb=1e8cc7e5285c2a27fc9c0dab2a0b3358d8c759f4 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..154d8d4c7 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 @@ -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; }