]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/BrowseContext.java
Sync git svn branch with SVN repository r33144.
[simantics/platform.git] / bundles / org.simantics.browsing.ui.model / src / org / simantics / browsing / ui / model / browsecontexts / BrowseContext.java
index 50281f20dc4e1287ea502145175029c7b31666ec..a1eaf78a8f87b4c64fb3eca61ca3a33cc9acd93f 100644 (file)
@@ -23,6 +23,7 @@ import java.util.Set;
 \r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.widgets.Display;\r
+import org.eclipse.swt.widgets.Event;\r
 import org.eclipse.swt.widgets.Shell;\r
 import org.simantics.browsing.ui.BuiltinKeys;\r
 import org.simantics.browsing.ui.CheckedState;\r
@@ -52,6 +53,7 @@ import org.simantics.browsing.ui.model.nodetypes.SpecialNodeType;
 import org.simantics.browsing.ui.model.sorters.AlphanumericSorter;\r
 import org.simantics.browsing.ui.model.sorters.Sorter;\r
 import org.simantics.browsing.ui.model.sorters.SorterContribution;\r
+import org.simantics.browsing.ui.model.tooltips.TooltipContribution;\r
 import org.simantics.browsing.ui.model.visuals.FlatNodeContribution;\r
 import org.simantics.browsing.ui.model.visuals.VisualsContribution;\r
 import org.simantics.db.ReadGraph;\r
@@ -86,6 +88,7 @@ public class BrowseContext {
     OrderedNodeTypeMultiMap<ModifierContribution> modifierContributions = new OrderedNodeTypeMultiMap<ModifierContribution>();\r
     OrderedNodeTypeMultiMap<SorterContribution> sorterContributions = new OrderedNodeTypeMultiMap<SorterContribution>();\r
     OrderedNodeTypeMultiMap<FlatNodeContribution> flatNodeContributions = new OrderedNodeTypeMultiMap<FlatNodeContribution>();\r
+    OrderedNodeTypeMultiMap<TooltipContribution> tooltipContributions = new OrderedNodeTypeMultiMap<>();\r
 \r
     private final String[] uris; \r
 \r
@@ -139,7 +142,8 @@ public class BrowseContext {
                         browseContext.imageDecorationContributions,\r
                         browseContext.modifierContributions,\r
                         browseContext.sorterContributions,\r
-                        browseContext.flatNodeContributions\r
+                        browseContext.flatNodeContributions,\r
+                        browseContext.tooltipContributions\r
                         );\r
             }\r
         }\r
@@ -443,6 +447,23 @@ public class BrowseContext {
         return null;\r
     }\r
     \r
+    public TooltipContribution shouldCreateToolTip(ReadGraph graph, Event event, NodeContext context) throws DatabaseException {\r
+        NodeType nodeType = getNodeType(graph, context);\r
+        if(nodeType != null)\r
+            for(TooltipContribution contribution : tooltipContributions.get(graph, nodeType)) { \r
+                if (contribution.shouldCreateToolTip(graph, context))\r
+                    return contribution;\r
+            }\r
+        return null;\r
+    }\r
+    \r
+    public Object getTooltip(TooltipContribution contribution, Object event, Object parent, NodeContext context) throws DatabaseException {\r
+        Object tooltip = contribution.getTooltip(event, parent, context);\r
+        if (tooltip != null)\r
+            return tooltip;\r
+        return null;\r
+    }\r
+    \r
     private Graph toGraph() {\r
         Graph graph = new Graph();\r
         new Node(graph, "Foo");\r