code: public static void installTooltipEventHandlers(final Panel icon, final Supplier<Data> dataSupplier) {
  
          icon.addDomHandler(new MouseOverHandler() {
  
              public void onMouseOver(MouseOverEvent event) {
  
                  CmsFieldTooltip.getHandler().buttonHover(dataSupplier.get());
              }
          }, MouseOverEvent.getType());
  
          icon.addDomHandler(new MouseOutHandler() {
  
              public void onMouseOut(MouseOutEvent event) {
  
                  CmsFieldTooltip.getHandler().buttonOut(dataSupplier.get());
              }
  
          }, MouseOutEvent.getType());
  
          icon.addDomHandler(new ClickHandler() {
  
              public void onClick(ClickEvent event) {
  
                  CmsFieldTooltip.getHandler().buttonClick(dataSupplier.get());
  
              }
          }, ClickEvent.getType());
      }
docs: Installs the DOM event handlers for displaying tooltips on a help icon.<p>
  
  The supplier passed in should not create a new tooltip data instance each time,
  but cache the different possible tooltip data instances.
  
  @param icon the help icon
  @param dataSupplier provides the tooltip data at the time the DOM events occur