package com.constellio.app.ui.framework.items; import java.util.Collection; import java.util.List; import com.constellio.app.ui.entities.MetadataVO; import com.constellio.app.ui.entities.RecordVO; import com.vaadin.data.Item; import com.vaadin.data.Property; import com.vaadin.data.util.AbstractProperty; @SuppressWarnings("serial") public class RecordVOItem implements Item { final RecordVO recordVO; public RecordVOItem(RecordVO recordVO) { super(); this.recordVO = recordVO; } public RecordVO getRecord() { return recordVO; } @Override public Property<?> getItemProperty(Object id) { Property<?> itemProperty; if (id instanceof MetadataVO) { final MetadataVO metadata = (MetadataVO) id; itemProperty = new AbstractProperty<Object>() { @Override public Object getValue() { return getRecord().get(metadata); } @Override public void setValue(Object newValue) throws com.vaadin.data.Property.ReadOnlyException { getRecord().set(metadata, newValue); } @Override public Class<? extends Object> getType() { Class<?> propertyType; if (metadata.isMultivalue()) { propertyType = List.class; } else { propertyType = metadata.getJavaType(); } return propertyType; } }; } else { itemProperty = null; } return itemProperty; } @Override public Collection<?> getItemPropertyIds() { return getRecord().getMetadatas(); } @SuppressWarnings("rawtypes") @Override public boolean addItemProperty(Object id, Property property) throws UnsupportedOperationException { throw new UnsupportedOperationException("TODO"); } @Override public boolean removeItemProperty(Object id) throws UnsupportedOperationException { throw new UnsupportedOperationException("TODO"); } }