protected BaseControlContribution createImageHyperlinkToolBarContribution(String id, final DataModel<?, ?, ?> model, final DataModelElementType modelElementType) { BaseControlContribution controlContribution = new BaseControlContribution(id) { @Override protected Control createControlInternal(Composite parent) { ImageHyperlink imageHyperlink = new ImageHyperlink(parent, SWT.TOP | SWT.WRAP); HyperlinkGroup group = new HyperlinkGroup(imageHyperlink.getDisplay()); group.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER); group.add(imageHyperlink); imageHyperlink.addHyperlinkListener(new HyperlinkAdapter() { @Override public void linkActivated(HyperlinkEvent e) { BaseOpenAction openAction = modelElementType.getOpenAction(); if (openAction != null) { try { openAction.runWithObject(model); } catch (Exception e1) { openAction.reportError(e1); } } } }); ElementTypeDataModelImageHyperlinkView view = new ElementTypeDataModelImageHyperlinkView(model, imageHyperlink, modelElementType); view.updateView(); return imageHyperlink; } }; return controlContribution; }