Package org.dellroad.stuff.vaadin7
Class SimpleItem<T>
- java.lang.Object
-
- org.dellroad.stuff.vaadin7.SimpleItem<T>
-
- Type Parameters:
T- the type of the underlying Java object
- All Implemented Interfaces:
Item,Serializable,BackedItem<T>
public class SimpleItem<T> extends Object implements BackedItem<T>
Simple read-onlyItemimplementation backed by a Java object.Item
Propertys are defined byPropertyDefs and retrieved by aPropertyExtractor.Although the item properties are read-only from "above", they can be made mutable from "below" by modifying the backing object and invoking
fireValueChange().
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classSimpleItem.Property<V>SimpleItem.Propertyimplementation used bySimpleItem.-
Nested classes/interfaces inherited from interface com.vaadin.data.Item
Item.Editor, Item.PropertySetChangeEvent, Item.PropertySetChangeListener, Item.PropertySetChangeNotifier, Item.Viewer
-
-
Field Summary
Fields Modifier and Type Field Description protected Tobjectprotected PropertyExtractor<? super T>propertyExtractor
-
Constructor Summary
Constructors Constructor Description SimpleItem(T object, Collection<? extends PropertyDef<?>> propertyDefs, PropertyExtractor<? super T> propertyExtractor)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddItemProperty(Object id, Property property)protected <V> SimpleItem.Property<V>createProperty(PropertyDef<V> propertyDef)Create aSimpleItem.Propertyto be used for the given property definition.voidfireValueChange()IssueProperty.ValueChangeEvents to allProperty.ValueChangeListeners registered on any property of this item.voidfireValueChange(String propertyName)IssueProperty.ValueChangeEvents to allProperty.ValueChangeListeners registered on the specified property of this item.SimpleItem.Property<?>getItemProperty(Object id)Set<String>getItemPropertyIds()TgetObject()Retrieve the underlying Java object.booleanremoveItemProperty(Object id)
-
-
-
Field Detail
-
object
protected final T object
-
propertyExtractor
protected final PropertyExtractor<? super T> propertyExtractor
-
-
Constructor Detail
-
SimpleItem
public SimpleItem(T object, Collection<? extends PropertyDef<?>> propertyDefs, PropertyExtractor<? super T> propertyExtractor)
Constructor.- Parameters:
object- underlying Java objectpropertyDefs- property definitionspropertyExtractor- extracts the property value fromobject- Throws:
IllegalArgumentException- if any parameter is null
-
-
Method Detail
-
getObject
public T getObject()
Description copied from interface:BackedItemRetrieve the underlying Java object.- Specified by:
getObjectin interfaceBackedItem<T>- Returns:
- underlying Java object, never null
-
getItemProperty
public SimpleItem.Property<?> getItemProperty(Object id)
- Specified by:
getItemPropertyin interfaceItem
-
getItemPropertyIds
public Set<String> getItemPropertyIds()
- Specified by:
getItemPropertyIdsin interfaceItem
-
addItemProperty
public boolean addItemProperty(Object id, Property property)
- Specified by:
addItemPropertyin interfaceItem- Throws:
UnsupportedOperationException- always
-
removeItemProperty
public boolean removeItemProperty(Object id)
- Specified by:
removeItemPropertyin interfaceItem- Throws:
UnsupportedOperationException- always
-
fireValueChange
public void fireValueChange(String propertyName)
IssueProperty.ValueChangeEvents to allProperty.ValueChangeListeners registered on the specified property of this item.Does nothing if
propertyNameis not one of this item's properties.- Parameters:
propertyName- property ID
-
fireValueChange
public void fireValueChange()
IssueProperty.ValueChangeEvents to allProperty.ValueChangeListeners registered on any property of this item.
-
createProperty
protected <V> SimpleItem.Property<V> createProperty(PropertyDef<V> propertyDef)
Create aSimpleItem.Propertyto be used for the given property definition. This method will be invoked at most once for any property; the returned value is cached.The implementation in
SimpleItemreturnsnew Property<V>(propertyDef).- Type Parameters:
V- property type- Parameters:
propertyDef- property definition- Returns:
- new property
- Throws:
IllegalArgumentException- ifpropertyDefis null
-
-