public class DatasourceTableItems<E extends Entity<K>,K> extends java.lang.Object implements EntityTableItems<E>, DatasourceDataUnit, AggregatableTableItems<E>
TableItems.ItemSetChangeEvent<T>, TableItems.Ordered<T>, TableItems.SelectedItemChangeEvent<T>, TableItems.Sortable<T>, TableItems.ValueChangeEvent<T>
Modifier and Type | Field and Description |
---|---|
protected CollectionDatasource |
datasource |
protected EventHub |
events |
protected BindingState |
state |
Constructor and Description |
---|
DatasourceTableItems(CollectionDatasource<E,K> datasource) |
Modifier and Type | Method and Description |
---|---|
Subscription |
addItemSetChangeListener(java.util.function.Consumer<TableItems.ItemSetChangeEvent<E>> listener)
Registers a new item set change listener.
|
Subscription |
addSelectedItemChangeListener(java.util.function.Consumer<TableItems.SelectedItemChangeEvent<E>> listener)
Registers a new selected item change listener.
|
Subscription |
addStateChangeListener(java.util.function.Consumer<DataUnit.StateChangeEvent> listener)
Registers a new state change listener.
|
Subscription |
addValueChangeListener(java.util.function.Consumer<TableItems.ValueChangeEvent<E>> listener)
Registers a new value change listener.
|
java.util.Map<AggregationInfo,java.lang.String> |
aggregate(AggregationInfo[] aggregationInfos,
java.util.Collection<?> itemIds)
Perform aggregation and return map with formatted string values.
|
java.util.Map<AggregationInfo,java.lang.Object> |
aggregateValues(AggregationInfo[] aggregationInfos,
java.util.Collection<?> itemIds)
Perform aggregation and return map with aggregation info and aggregation column type, i.e.
|
boolean |
containsId(java.lang.Object itemId) |
protected void |
datasourceCollectionChanged(CollectionDatasource.CollectionChangeEvent<E,K> e) |
protected void |
datasourceItemChanged(Datasource.ItemChangeEvent event) |
protected void |
datasourceItemPropertyChanged(Datasource.ItemPropertyChangeEvent<E> e) |
protected void |
datasourceStateChanged(Datasource.StateChangeEvent<E> e) |
CollectionDatasource |
getDatasource() |
MetaClass |
getEntityMetaClass() |
E |
getItem(java.lang.Object itemId) |
java.util.Collection<?> |
getItemIds() |
java.util.Collection<E> |
getItems() |
java.lang.Object |
getItemValue(java.lang.Object itemId,
java.lang.Object propertyId) |
E |
getSelectedItem() |
BindingState |
getState() |
java.lang.Class<?> |
getType(java.lang.Object propertyId) |
void |
setSelectedItem(E item)
Set current item in the source.
|
void |
setState(BindingState state) |
int |
size() |
boolean |
supportsProperty(java.lang.Object propertyId) |
void |
updateItem(E item)
Update an item in the collection if it is already there.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getItemNN
protected CollectionDatasource datasource
protected EventHub events
protected BindingState state
public DatasourceTableItems(CollectionDatasource<E,K> datasource)
protected void datasourceItemChanged(Datasource.ItemChangeEvent event)
protected void datasourceCollectionChanged(CollectionDatasource.CollectionChangeEvent<E,K> e)
protected void datasourceItemPropertyChanged(Datasource.ItemPropertyChangeEvent<E> e)
protected void datasourceStateChanged(Datasource.StateChangeEvent<E> e)
public void setState(BindingState state)
public CollectionDatasource getDatasource()
getDatasource
in interface DatasourceDataUnit
public java.util.Collection<?> getItemIds()
getItemIds
in interface TableItems<E extends Entity<K>>
public E getSelectedItem()
getSelectedItem
in interface EntityTableItems<E extends Entity<K>>
public void setSelectedItem(@Nullable E item)
EntityTableItems
setSelectedItem
in interface EntityTableItems<E extends Entity<K>>
item
- the item to setpublic E getItem(java.lang.Object itemId)
getItem
in interface TableItems<E extends Entity<K>>
public java.lang.Object getItemValue(java.lang.Object itemId, java.lang.Object propertyId)
getItemValue
in interface TableItems<E extends Entity<K>>
public void updateItem(E item)
TableItems
updateItem
in interface TableItems<E extends Entity<K>>
item
- the item to updatepublic int size()
size
in interface TableItems<E extends Entity<K>>
public boolean containsId(java.lang.Object itemId)
containsId
in interface TableItems<E extends Entity<K>>
public BindingState getState()
public java.lang.Class<?> getType(java.lang.Object propertyId)
getType
in interface TableItems<E extends Entity<K>>
public boolean supportsProperty(java.lang.Object propertyId)
supportsProperty
in interface TableItems<E extends Entity<K>>
public java.util.Collection<E> getItems()
getItems
in interface TableItems<E extends Entity<K>>
public Subscription addStateChangeListener(java.util.function.Consumer<DataUnit.StateChangeEvent> listener)
DataUnit
addStateChangeListener
in interface DataUnit
listener
- the listener to be addedpublic Subscription addValueChangeListener(java.util.function.Consumer<TableItems.ValueChangeEvent<E>> listener)
TableItems
addValueChangeListener
in interface TableItems<E extends Entity<K>>
listener
- the listener to be addedpublic Subscription addItemSetChangeListener(java.util.function.Consumer<TableItems.ItemSetChangeEvent<E>> listener)
TableItems
addItemSetChangeListener
in interface TableItems<E extends Entity<K>>
listener
- the listener to be addedpublic Subscription addSelectedItemChangeListener(java.util.function.Consumer<TableItems.SelectedItemChangeEvent<E>> listener)
TableItems
addSelectedItemChangeListener
in interface TableItems<E extends Entity<K>>
listener
- the listener to be addedpublic MetaClass getEntityMetaClass()
getEntityMetaClass
in interface EntityDataUnit
MetaClass
of an entity contained in the sourcepublic java.util.Map<AggregationInfo,java.lang.String> aggregate(AggregationInfo[] aggregationInfos, java.util.Collection<?> itemIds)
AggregatableTableItems
aggregate
in interface AggregatableTableItems<E extends Entity<K>>
aggregationInfos
- aggregation infositemIds
- collection of item idspublic java.util.Map<AggregationInfo,java.lang.Object> aggregateValues(AggregationInfo[] aggregationInfos, java.util.Collection<?> itemIds)
AggregatableTableItems
aggregateValues
in interface AggregatableTableItems<E extends Entity<K>>
aggregationInfos
- aggregation infositemIds
- collection of item ids