@Override
      public void propertyChange(PropertyChangeEvent evt) {
        updateSelection(list);

        if (evt.getOldValue() != null) {
          ((ListModel<?>)evt.getOldValue()).removeListDataListener(modelListener);
        }
        if (evt.getNewValue() != null) {
          ((ListModel<?>)evt.getNewValue()).addListDataListener(modelListener);
        }
      }
@Override
      public void propertyChange(PropertyChangeEvent evt)