\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
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
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
browseContext.imageDecorationContributions,\r
browseContext.modifierContributions,\r
browseContext.sorterContributions,\r
- browseContext.flatNodeContributions\r
+ browseContext.flatNodeContributions,\r
+ browseContext.tooltipContributions\r
);\r
}\r
}\r
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