@Override protected void doSetValue(Object source, Object value) { Container container = (Container) source; @SuppressWarnings("unchecked") Collection<Object> itemIds = (Collection<Object>) value; for (Object id : container.getItemIds().toArray()) { container.removeItem(id); } for (Object id : itemIds) { container.addItem(id); } }