+ \r
+ @Override\r
+ public boolean shouldCreateToolTip(Event event, NodeContext context) {\r
+ try {\r
+ currentTooltipContribution = RequestUtil.trySyncRequest(\r
+ Simantics.getSession(),\r
+ SimanticsUI.UI_THREAD_REQUEST_START_TIMEOUT,\r
+ SimanticsUI.UI_THREAD_REQUEST_EXECUTION_TIMEOUT,\r
+ null,\r
+ new UniqueRead<TooltipContribution>() {\r
+ @Override\r
+ public TooltipContribution perform(ReadGraph graph) throws DatabaseException {\r
+ return BrowseContext.get(graph,context,browseContext,useNodeBrowseContexts).shouldCreateToolTip(graph, event, context);\r
+ }\r
+ });\r
+ if (currentTooltipContribution != null)\r
+ return true;\r
+ } catch (DatabaseException | InterruptedException e) {\r
+ e.printStackTrace();\r
+ }\r
+ return false;\r
+ }\r
+ \r
+ @Override\r
+ public Composite createToolTipContentArea(Event event, Composite parent, NodeContext nodeContext) {\r
+ return (Composite) currentTooltipContribution.getTooltip(event, parent, nodeContext);\r
+ }\r