示例#1
0
  @Override
  public void onStateChanged(StateChangeEvent stateChangeEvent) {
    super.onStateChanged(stateChangeEvent);

    getWidget().disableOnClick = getState().disableOnClick;
    focusHandlerRegistration = EventHelper.updateFocusHandler(this, focusHandlerRegistration);
    blurHandlerRegistration = EventHelper.updateBlurHandler(this, blurHandlerRegistration);

    // Set text
    VCaption.setCaptionText(getWidget(), getState());

    // handle error
    if (null != getState().errorMessage) {
      if (getWidget().errorIndicatorElement == null) {
        getWidget().errorIndicatorElement = DOM.createSpan();
        getWidget().errorIndicatorElement.setClassName("v-errorindicator");
      }
      getWidget()
          .getElement()
          .insertBefore(getWidget().errorIndicatorElement, getWidget().captionElement);

    } else if (getWidget().errorIndicatorElement != null) {
      getWidget().getElement().removeChild(getWidget().errorIndicatorElement);
      getWidget().errorIndicatorElement = null;
    }

    if (getWidget().icon != null) {
      getWidget().getElement().removeChild(getWidget().icon.getElement());
      getWidget().icon = null;
    }
    Icon icon = getIcon();
    if (icon != null) {
      getWidget().icon = icon;
      getWidget().getElement().insertBefore(icon.getElement(), getWidget().captionElement);
      icon.setAlternateText(getState().iconAltText);
    }
  }