@Override
  protected Object addValueIn(Control widget, PropertyDescriptor<?> desc, PropertySource source) {

    int idx = ((Combo) widget).getSelectionIndex();
    if (idx < 0) return null;

    String newValue = ((Combo) widget).getItem(idx);

    String[] currentValues = (String[]) valueFor(source, desc);
    String[] newValues = CollectionUtil.addWithoutDuplicates(currentValues, newValue);
    if (currentValues.length == newValues.length) return null;

    source.setProperty((EnumeratedMultiProperty<?>) desc, newValues);
    return newValue;
  }
 @Override
 protected void update(PropertySource source, PropertyDescriptor<?> desc, List<Object> newValues) {
   source.setProperty(
       (EnumeratedMultiProperty<?>) desc, newValues.toArray(new String[newValues.size()]));
 }