@Override
  public void propertyChange(PropertyChangeEvent e) {
    if ("model".equals(e.getPropertyName()) && (myPopup == null)) {
      myProxyList.setModel(myComboBox.getModel());
      myProxyList.setCellRenderer(myComboBox.getRenderer());
      myProxyList.setSelectedValue(myComboBox.getModel().getSelectedItem(), false);
    }

    if (!isVisible()) return;

    String propertyName = e.getPropertyName();
    if ("renderer".equals(propertyName) ||
        "editable".equals(propertyName)) {
      hide();
    }

    if ("model".equals(propertyName) && myPopup != null) {
      if (!useLiveUpdateWithModel()) {
        hide();
      }
      else {
        myPopup.syncWithModelChange();
      }
    }
  }
@Override
  public void propertyChange(PropertyChangeEvent e)