/*
  * @see DialogField#dialogFieldChanged
  * Hooks in to get element changes to update check model.
  */
 @Override
 public void dialogFieldChanged() {
   for (int i = fCheckElements.size() - 1; i >= 0; i--) {
     if (!fElements.contains(fCheckElements.get(i))) {
       fCheckElements.remove(i);
     }
   }
   super.dialogFieldChanged();
 }
 /* (non-Javadoc)
  * @see org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField#replaceElement(java.lang.Object, java.lang.Object)
  */
 @Override
 public void replaceElement(T oldElement, T newElement) throws IllegalArgumentException {
   boolean wasChecked = isChecked(oldElement);
   super.replaceElement(oldElement, newElement);
   setChecked(newElement, wasChecked);
 }
 private void checkStateChanged() {
   // call super and do not update check model
   super.dialogFieldChanged();
 }