]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerSelectionProvider.java
Sync git svn branch with SVN repository r33406.
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / diagramEditor / DiagramViewerSelectionProvider.java
index 4317f59799f9c8819bb1459fe76d3997ac56dc90..27e58b5d1b832a042504a9cf945ae15f13150510 100644 (file)
@@ -18,6 +18,7 @@ import org.simantics.db.layer0.request.PossibleModel;
 import org.simantics.db.layer0.variable.Variable;\r
 import org.simantics.db.layer0.variable.Variables;\r
 import org.simantics.diagram.Logger;\r
+import org.simantics.diagram.flag.FlagUtil;\r
 import org.simantics.diagram.stubs.DiagramResource;\r
 import org.simantics.diagram.ui.DiagramModelHints;\r
 import org.simantics.diagram.ui.WorkbenchSelectionProvider;\r
@@ -25,6 +26,7 @@ import org.simantics.g2d.diagram.IDiagram;
 import org.simantics.g2d.element.ElementHints;\r
 import org.simantics.g2d.element.ElementUtils;\r
 import org.simantics.g2d.element.IElement;\r
+import org.simantics.layer0.Layer0;\r
 import org.simantics.modeling.ModelingResources;\r
 import org.simantics.ui.SimanticsUI;\r
 import org.simantics.ui.selection.AnyResource;\r
@@ -63,6 +65,7 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider {
 \r
                             DiagramResource DIA = DiagramResource.getInstance(graph);\r
                             ModelingResources MOD = ModelingResources.getInstance(graph);\r
+                            Layer0 L0 = Layer0.getInstance(graph);\r
 \r
                             String uri = graph.getPossibleRelatedValue(resource, DIA.RuntimeDiagram_HasVariable);\r
                             if (uri == null)\r
@@ -74,6 +77,11 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider {
 \r
                             Resource config = graph.getPossibleObject(resource2, MOD.ElementToComponent);\r
                             if (config == null) {\r
+                                if (graph.isInstanceOf(resource2, DIA.Connection)) {\r
+                                    Variable v = FlagUtil.getPossibleConnectionSignal(graph, var, resource2, L0.Entity);\r
+                                    if (v != null)\r
+                                        return v;\r
+                                }\r
                                 // Apros #9646: if resource2 is the diagram\r
                                 // itself, return the diagram composite variable\r
                                 // since it is generally more useful than the\r
@@ -83,8 +91,15 @@ public class DiagramViewerSelectionProvider extends WorkbenchSelectionProvider {
                                     //return Variables.getPossibleVariable(graph, resource2);\r
                                     return var;\r
                                 }\r
+                                \r
+                                if(graph.isInstanceOf(resource2, DIA.Flag)) {\r
+                                       Variable signal = FlagUtil.getPossibleFlagSignal(graph, var, resource2, L0.Entity);\r
+                                       if(signal != null)\r
+                                               return signal;\r
+                                }\r
 \r
                                 return null;\r
+                                \r
                             }\r
 \r
                             return var.browsePossible(graph, config);\r