X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2FdiagramEditor%2FDiagramViewerSelectionProvider.java;h=27e58b5d1b832a042504a9cf945ae15f13150510;hb=777f66ad0fc587dd8d313705442dd2338c65ad30;hp=4317f59799f9c8819bb1459fe76d3997ac56dc90;hpb=c160c0a55fb8aaacc9bcfa08b2bfbc4fdf0bf871;p=simantics%2Fplatform.git 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 4317f5979..27e58b5d1 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 @@ -18,6 +18,7 @@ import org.simantics.db.layer0.request.PossibleModel; import org.simantics.db.layer0.variable.Variable; import org.simantics.db.layer0.variable.Variables; import org.simantics.diagram.Logger; +import org.simantics.diagram.flag.FlagUtil; import org.simantics.diagram.stubs.DiagramResource; import org.simantics.diagram.ui.DiagramModelHints; import org.simantics.diagram.ui.WorkbenchSelectionProvider; @@ -25,6 +26,7 @@ import org.simantics.g2d.diagram.IDiagram; import org.simantics.g2d.element.ElementHints; import org.simantics.g2d.element.ElementUtils; import org.simantics.g2d.element.IElement; +import org.simantics.layer0.Layer0; import org.simantics.modeling.ModelingResources; import org.simantics.ui.SimanticsUI; import org.simantics.ui.selection.AnyResource; @@ -63,6 +65,7 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider { 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) @@ -74,6 +77,11 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider { Resource config = graph.getPossibleObject(resource2, MOD.ElementToComponent); if (config == null) { + if (graph.isInstanceOf(resource2, DIA.Connection)) { + Variable v = FlagUtil.getPossibleConnectionSignal(graph, var, resource2, L0.Entity); + if (v != null) + return v; + } // Apros #9646: if resource2 is the diagram // itself, return the diagram composite variable // since it is generally more useful than the @@ -83,8 +91,15 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider { //return Variables.getPossibleVariable(graph, resource2); return var; } + + if(graph.isInstanceOf(resource2, DIA.Flag)) { + Variable signal = FlagUtil.getPossibleFlagSignal(graph, var, resource2, L0.Entity); + if(signal != null) + return signal; + } return null; + } return var.browsePossible(graph, config);