code: public static <T extends Widget & HasClickHandlers> T makeActionable (
          final T target, final ClickHandler onClick, Value<Boolean> enabled)
      {
          if (onClick != null) {
              if (enabled != null) {
                  enabled.addListenerAndTrigger(new Value.Listener<Boolean>() {
                      public void valueChanged (Boolean enabled) {
                          if (!enabled && _regi != null) {
                              _regi.removeHandler();
                              _regi = null;
                              target.removeStyleName("actionLabel");
                          } else if (enabled && _regi == null) {
                              _regi = target.addClickHandler(onClick);
                              target.addStyleName("actionLabel");
                          }
                      }
                      protected HandlerRegistration _regi;
                  });
              } else {
                  target.addClickHandler(onClick);
                  target.addStyleName("actionLabel");
              }
          }
          return target;
      }
docs: Makes the supplied widget "actionable" which means adding the "actionLabel" style to it and
  binding the supplied click handler.
  
  @param enabled an optional value that governs the enabled state of the target. When the
  value becomes false, the target's click handler and "actionLabel" style will be removed,
  when it becomes true they will be reinstated.