@Override
  public void doShow() {
    if (!isHidden) {
      return;
    }
    this.getElement().getStyle().setOpacity(0);
    setPopupPosition(336, 88);

    NMorphStyle eff = CUtil.opacityEffect(this.getElement(), null, 0, 100);
    eff.play();

    isHidden = false;
  }
  @Override
  public void doHide() {
    if (isHidden) {
      return;
    }
    NMorphStyle eff = CUtil.opacityEffect(this.getElement(), null, 100, 0);
    eff.addEffectCompletedHandler(
        new EffectCompletedHandler() {
          @Override
          public void onEffectCompleted(EffectCompletedEvent event) {
            setPopupPosition(1025, 0);
          }
        });
    eff.play();

    isHidden = true;
  }