public void propertyChange(PropertyChangeEvent evt) {
   super.propertyChange(evt);
   valueProvider.removeValueChangeListener(this);
   if (IPropertyEditor.VALUE.equals(evt.getPropertyName())) {
     elements = null;
     if (list != null) {
       list.setItems(getItems());
       list.redraw();
     }
   }
   valueProvider.addValueChangeListener(this);
 }
 public void setEnabled(boolean enabled, Composite parent) {
   super.setEnabled(enabled, parent);
   createListControl(parent).setEnabled(enabled);
   buttons[ADD].setEnabled(enabled);
   if (!enabled) {
     buttons[REMOVE].setEnabled(enabled);
     buttons[UP].setEnabled(enabled);
     buttons[DOWN].setEnabled(enabled);
   } else {
     updateSelectionDependentActions();
   }
 }
 public void setEnabled(boolean enabled) {
   super.setEnabled(enabled);
   if (getListControl() != null) {
     getListControl().setEnabled(enabled);
   }
 }