@Override
  public void showPopup(boolean visible) {
    if (visible) {

      // try to apply date to calendar pane popup, but not cause commit
      if (peer.isKeepTime())
        try {
          AbstractFormatter formatter = field.getFormatter();
          Date value = (Date) formatter
              .stringToValue(field.getText());
          calendarPane
              .removePropertyChangeListener(componentListener);
          calendarPane.setDate(value);
          calendarPane.addPropertyChangeListener(componentListener);

        } catch (ParseException e) {
          // ignore
        } catch (PropertyVetoException e) {
          // can not happen
        }

      popup.show(peer, 0, peer.getHeight());
      calendarPane.requestFocus(false);
    } else {
      popup.setVisible(false);
    }
  }
@Override
  public void showPopup(boolean visible)