Class IndexedContainer
- java.lang.Object
-
- com.vaadin.data.util.AbstractContainer
-
- com.vaadin.data.util.AbstractInMemoryContainer<Object,Object,Item>
-
- com.vaadin.data.util.IndexedContainer
-
- All Implemented Interfaces:
Container
,Container.Filterable
,Container.Indexed
,Container.ItemSetChangeNotifier
,Container.Ordered
,Container.PropertySetChangeNotifier
,Container.SimpleFilterable
,Container.Sortable
,Property.ValueChangeNotifier
,Serializable
,Cloneable
- Direct Known Subclasses:
HierarchicalContainer
public class IndexedContainer extends AbstractInMemoryContainer<Object,Object,Item> implements Container.PropertySetChangeNotifier, Property.ValueChangeNotifier, Container.Sortable, Cloneable, Container.Filterable, Container.SimpleFilterable
An implementation of the
interface with all important features. Features:Container.Indexed
Container.Indexed
Container.Ordered
Container.Sortable
Container.Filterable
Cloneable
(deprecated, might be removed in the future)- Sends all needed events on content changes.
- Since:
- 3.0
- Author:
- Vaadin Ltd.
- See Also:
Container
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
IndexedContainer.ItemSetChangeEvent
Anevent
object specifying the list whose Item set has changed.-
Nested classes/interfaces inherited from class com.vaadin.data.util.AbstractInMemoryContainer
AbstractInMemoryContainer.BaseItemAddEvent, AbstractInMemoryContainer.BaseItemRemoveEvent
-
Nested classes/interfaces inherited from class com.vaadin.data.util.AbstractContainer
AbstractContainer.BaseItemSetChangeEvent, AbstractContainer.BasePropertySetChangeEvent
-
Nested classes/interfaces inherited from interface com.vaadin.data.Container
Container.Editor, Container.Filter, Container.Filterable, Container.Hierarchical, Container.Indexed, Container.ItemSetChangeListener, Container.ItemSetChangeNotifier, Container.Ordered, Container.PropertySetChangeEvent, Container.PropertySetChangeListener, Container.PropertySetChangeNotifier, Container.SimpleFilterable, Container.Sortable, Container.Viewer
-
Nested classes/interfaces inherited from interface com.vaadin.data.Container.Indexed
Container.Indexed.ItemAddEvent, Container.Indexed.ItemRemoveEvent
-
-
Constructor Summary
Constructors Constructor Description IndexedContainer()
IndexedContainer(Collection<?> itemIds)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addContainerFilter(Container.Filter filter)
Adds a filter for the container.void
addContainerFilter(Object propertyId, String filterString, boolean ignoreCase, boolean onlyMatchPrefix)
Add a filter for given property.boolean
addContainerProperty(Object propertyId, Class<?> type, Object defaultValue)
Adds a new Property to all Items in the Container.Object
addItem()
Creates a new Item into the Container, and assign it an automatic ID.Item
addItem(Object itemId)
Creates a new Item with the given ID in the Container.Object
addItemAfter(Object previousItemId)
Adds a new item after the given item.Item
addItemAfter(Object previousItemId, Object newItemId)
Adds a new item after the given item.Object
addItemAt(int index)
Adds a new item at given index (in the filtered view).Item
addItemAt(int index, Object newItemId)
Adds a new item at given index (in the filtered view).void
addListener(Container.PropertySetChangeListener listener)
Deprecated.As of 7.0, replaced byaddPropertySetChangeListener(Container.PropertySetChangeListener)
void
addListener(Property.ValueChangeListener listener)
Deprecated.As of 7.0, replaced byaddValueChangeListener(Property.ValueChangeListener)
void
addPropertySetChangeListener(Container.PropertySetChangeListener listener)
Implementation of the corresponding method inContainer.PropertySetChangeNotifier
, override with the corresponding public method and implement the interface to use this.void
addValueChangeListener(Property.ValueChangeListener listener)
Registers a new value change listener for this Property.Object
clone()
Deprecated.As of 6.6.protected void
fireItemAdded(int position, Object itemId, Item item)
Notify item set change listeners that an item has been added to the container.protected void
fireItemSetChange()
Sends a simple Item set change event to all interested listeners, indicating that anything in the contents may have changed (items added, removed etc.).Collection<Container.Filter>
getContainerFilters()
Returns the filters which have been applied to the containerProperty
getContainerProperty(Object itemId, Object propertyId)
Gets the Property identified by the given itemId and propertyId from the Container.Collection<?>
getContainerPropertyIds()
Gets the ID's of all Properties stored in the Container.ItemSorter
getItemSorter()
Returns the ItemSorter used for comparing items in a sort.Collection<?>
getListeners(Class<?> eventType)
Collection<?>
getSortableContainerPropertyIds()
Gets the container property IDs which can be used to sort the items.Class<?>
getType(Object propertyId)
Gets the type of a Property stored in the list.protected Item
getUnfilteredItem(Object itemId)
Get an item even if filtered out.boolean
hasContainerFilters()
Returns true if any filters have been applied to the container.protected void
registerNewItem(int index, Object newItemId, Item item)
Registers a new item as having been added to the container.void
removeAllContainerFilters()
Remove all active filters from the container.boolean
removeAllItems()
Removes all Items from the Container.void
removeContainerFilter(Container.Filter filter)
Removes a filter from the container.void
removeContainerFilters(Object propertyId)
Remove all filters from the given property.boolean
removeContainerProperty(Object propertyId)
Removes a Property specified by the given Property ID from the Container.boolean
removeItem(Object itemId)
Removes the Item identified byItemId
from the Container.void
removeListener(Container.PropertySetChangeListener listener)
Deprecated.As of 7.0, replaced byremovePropertySetChangeListener(Container.PropertySetChangeListener)
void
removeListener(Property.ValueChangeListener listener)
Deprecated.As of 7.0, replaced byremoveValueChangeListener(Property.ValueChangeListener)
void
removePropertySetChangeListener(Container.PropertySetChangeListener listener)
Implementation of the corresponding method inContainer.PropertySetChangeNotifier
, override with the corresponding public method and implement the interface to use this.void
removeValueChangeListener(Property.ValueChangeListener listener)
Removes a previously registered value change listener.void
setItemSorter(ItemSorter itemSorter)
Sets the ItemSorter used for comparing items in a sort.void
sort(Object[] propertyId, boolean[] ascending)
Sorts the container items.-
Methods inherited from class com.vaadin.data.util.AbstractInMemoryContainer
addFilter, addItemSetChangeListener, addListener, containsId, doFilterContainer, doSort, filterAll, fireItemRemoved, fireItemsAdded, fireItemsRemoved, firstItemId, getAllItemIds, getFilteredItemIds, getFilters, getFirstVisibleItem, getIdByIndex, getItem, getItemIds, getItemIds, getSortablePropertyIds, getVisibleItemIds, indexOfId, internalAddItemAfter, internalAddItemAt, internalAddItemAtEnd, internalRemoveAllItems, internalRemoveItem, isFiltered, isFirstId, isLastId, isPropertyFiltered, lastItemId, nextItemId, passesFilters, prevItemId, removeAllFilters, removeFilter, removeFilters, removeItemSetChangeListener, removeListener, setAllItemIds, setFilteredItemIds, setFilters, size, sortContainer
-
Methods inherited from class com.vaadin.data.util.AbstractContainer
fireContainerPropertySetChange, fireContainerPropertySetChange, fireItemSetChange, getItemSetChangeListeners, getPropertySetChangeListeners, setItemSetChangeListeners, setPropertySetChangeListeners
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.data.Container
containsId, getItem, getItemIds, size
-
Methods inherited from interface com.vaadin.data.Container.Ordered
firstItemId, isFirstId, isLastId, lastItemId, nextItemId, prevItemId
-
-
-
-
Constructor Detail
-
IndexedContainer
public IndexedContainer()
-
IndexedContainer
public IndexedContainer(Collection<?> itemIds)
-
-
Method Detail
-
getUnfilteredItem
protected Item getUnfilteredItem(Object itemId)
Description copied from class:AbstractInMemoryContainer
Get an item even if filtered out. For internal use only.- Specified by:
getUnfilteredItem
in classAbstractInMemoryContainer<Object,Object,Item>
- Returns:
-
getContainerPropertyIds
public Collection<?> getContainerPropertyIds()
Description copied from interface:Container
Gets the ID's of all Properties stored in the Container. The ID's cannot be modified through the returned collection.- Specified by:
getContainerPropertyIds
in interfaceContainer
- Returns:
- unmodifiable collection of Property IDs
-
getContainerProperty
public Property getContainerProperty(Object itemId, Object propertyId)
Description copied from interface:Container
Gets the Property identified by the given itemId and propertyId from the Container. If the Container does not contain the item or it is filtered out, or the Container does not have the Property,null
is returned.- Specified by:
getContainerProperty
in interfaceContainer
- Parameters:
itemId
- ID of the visible Item which contains the PropertypropertyId
- ID of the Property to retrieve- Returns:
- Property with the given ID or
null
-
addContainerProperty
public boolean addContainerProperty(Object propertyId, Class<?> type, Object defaultValue)
Description copied from interface:Container
Adds a new Property to all Items in the Container. The Property ID, data type and default value of the new Property are given as parameters.This functionality is optional.
- Specified by:
addContainerProperty
in interfaceContainer
- Overrides:
addContainerProperty
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
propertyId
- ID of the Propertytype
- Data type of the new PropertydefaultValue
- The value all created Properties are initialized to- Returns:
true
if the operation succeeded,false
if not
-
removeAllItems
public boolean removeAllItems()
Description copied from interface:Container
Removes all Items from the Container.Note that Property ID and type information is preserved. This functionality is optional.
- Specified by:
removeAllItems
in interfaceContainer
- Overrides:
removeAllItems
in classAbstractInMemoryContainer<Object,Object,Item>
- Returns:
true
if the operation succeeded,false
if not
-
addItem
public Object addItem()
Creates a new Item into the Container, and assign it an automatic ID.The new ID is returned, or
null
if the operation fails. After a successful call you can use the
method to fetch the Item.getItem
This functionality is optional.
The item ID is generated from a sequence of Integers. The id of the first added item is 1.
-
addItem
public Item addItem(Object itemId)
Description copied from interface:Container
Creates a new Item with the given ID in the Container.The new Item is returned, and it is ready to have its Properties modified. Returns
null
if the operation fails or the Container already contains a Item with the given ID.This functionality is optional.
-
removeItem
public boolean removeItem(Object itemId)
Description copied from interface:Container
Removes the Item identified byItemId
from the Container.Containers that support filtering should also allow removing an item that is currently filtered out.
This functionality is optional.
- Specified by:
removeItem
in interfaceContainer
- Overrides:
removeItem
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
itemId
- ID of the Item to remove- Returns:
true
if the operation succeeded,false
if not
-
removeContainerProperty
public boolean removeContainerProperty(Object propertyId)
Description copied from interface:Container
Removes a Property specified by the given Property ID from the Container. Note that the Property will be removed from all Items in the Container.This functionality is optional.
- Specified by:
removeContainerProperty
in interfaceContainer
- Overrides:
removeContainerProperty
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
propertyId
- ID of the Property to remove- Returns:
true
if the operation succeeded,false
if not
-
addItemAfter
public Item addItemAfter(Object previousItemId, Object newItemId)
Description copied from interface:Container.Ordered
Adds a new item after the given item.Adding an item after null item adds the item as first item of the ordered container.
- Specified by:
addItemAfter
in interfaceContainer.Ordered
- Overrides:
addItemAfter
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
previousItemId
- Id of the visible item in ordered container after which to insert the new item.newItemId
- Id of the new item to be added.- Returns:
- new item or null if the operation fails.
- See Also:
Ordered: adding items in filtered or sorted containers
-
addItemAfter
public Object addItemAfter(Object previousItemId)
Adds a new item after the given item.Adding an item after null item adds the item as first item of the ordered container.
The item ID is generated from a sequence of Integers. The id of the first added item is 1.
- Specified by:
addItemAfter
in interfaceContainer.Ordered
- Overrides:
addItemAfter
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
previousItemId
- Id of the visible item in ordered container after which to insert the new item.- Returns:
- item id the the created new item or null if the operation fails.
- See Also:
Ordered: adding items in filtered or sorted containers
-
addItemAt
public Item addItemAt(int index, Object newItemId)
Description copied from interface:Container.Indexed
Adds a new item at given index (in the filtered view).The indexes of the item currently in the given position and all the following items are incremented.
This method should apply filters to the added item after inserting it, possibly hiding it immediately. If the container is being sorted, the item may be added at the correct sorted position instead of the given position. See
Container.Indexed
,Container.Filterable
andContainer.Sortable
for more information.- Specified by:
addItemAt
in interfaceContainer.Indexed
- Overrides:
addItemAt
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
index
- Index (in the filtered and sorted view) at which to add the new item.newItemId
- Id of the new item to be added.- Returns:
- new
Item
or null if the operation fails.
-
addItemAt
public Object addItemAt(int index)
Adds a new item at given index (in the filtered view).The indices of the item currently in the given position and all the following items are incremented.
This method should apply filters to the added item after inserting it, possibly hiding it immediately. If the container is being sorted, the item may be added at the correct sorted position instead of the given position. See
Container.Indexed
,Container.Ordered
,Container.Filterable
andContainer.Sortable
for more information.The item ID is generated from a sequence of Integers. The id of the first added item is 1.
- Specified by:
addItemAt
in interfaceContainer.Indexed
- Overrides:
addItemAt
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
index
- Index (in the filtered and sorted view) to add the new item.- Returns:
- item id of the created item or null if the operation fails.
-
registerNewItem
protected void registerNewItem(int index, Object newItemId, Item item)
Description copied from class:AbstractInMemoryContainer
Registers a new item as having been added to the container. This can involve storing the item or any relevant information about it in internal container-specific collections if necessary, as well as registering listeners etc. The full identifier list inAbstractInMemoryContainer
has already been updated to reflect the new item when this method is called.- Overrides:
registerNewItem
in classAbstractInMemoryContainer<Object,Object,Item>
-
addPropertySetChangeListener
public void addPropertySetChangeListener(Container.PropertySetChangeListener listener)
Description copied from class:AbstractContainer
Implementation of the corresponding method inContainer.PropertySetChangeNotifier
, override with the corresponding public method and implement the interface to use this.- Specified by:
addPropertySetChangeListener
in interfaceContainer.PropertySetChangeNotifier
- Overrides:
addPropertySetChangeListener
in classAbstractContainer
- Parameters:
listener
- The new Listener to be registered- See Also:
Container.PropertySetChangeNotifier.addListener(Container.PropertySetChangeListener)
-
addListener
@Deprecated public void addListener(Container.PropertySetChangeListener listener)
Deprecated.As of 7.0, replaced byaddPropertySetChangeListener(Container.PropertySetChangeListener)
- Specified by:
addListener
in interfaceContainer.PropertySetChangeNotifier
- Overrides:
addListener
in classAbstractContainer
-
removePropertySetChangeListener
public void removePropertySetChangeListener(Container.PropertySetChangeListener listener)
Description copied from class:AbstractContainer
Implementation of the corresponding method inContainer.PropertySetChangeNotifier
, override with the corresponding public method and implement the interface to use this.- Specified by:
removePropertySetChangeListener
in interfaceContainer.PropertySetChangeNotifier
- Overrides:
removePropertySetChangeListener
in classAbstractContainer
- Parameters:
listener
- Listener to be removed- See Also:
Container.PropertySetChangeNotifier.removeListener(Container. PropertySetChangeListener)
-
removeListener
@Deprecated public void removeListener(Container.PropertySetChangeListener listener)
Deprecated.As of 7.0, replaced byremovePropertySetChangeListener(Container.PropertySetChangeListener)
- Specified by:
removeListener
in interfaceContainer.PropertySetChangeNotifier
- Overrides:
removeListener
in classAbstractContainer
-
addValueChangeListener
public void addValueChangeListener(Property.ValueChangeListener listener)
Description copied from interface:Property.ValueChangeNotifier
Registers a new value change listener for this Property.- Specified by:
addValueChangeListener
in interfaceProperty.ValueChangeNotifier
- Parameters:
listener
- the new Listener to be registered
-
addListener
@Deprecated public void addListener(Property.ValueChangeListener listener)
Deprecated.As of 7.0, replaced byaddValueChangeListener(Property.ValueChangeListener)
- Specified by:
addListener
in interfaceProperty.ValueChangeNotifier
-
removeValueChangeListener
public void removeValueChangeListener(Property.ValueChangeListener listener)
Description copied from interface:Property.ValueChangeNotifier
Removes a previously registered value change listener.- Specified by:
removeValueChangeListener
in interfaceProperty.ValueChangeNotifier
- Parameters:
listener
- listener to be removed
-
removeListener
@Deprecated public void removeListener(Property.ValueChangeListener listener)
Deprecated.As of 7.0, replaced byremoveValueChangeListener(Property.ValueChangeListener)
- Specified by:
removeListener
in interfaceProperty.ValueChangeNotifier
-
getListeners
public Collection<?> getListeners(Class<?> eventType)
- Overrides:
getListeners
in classAbstractContainer
-
fireItemAdded
protected void fireItemAdded(int position, Object itemId, Item item)
Description copied from class:AbstractInMemoryContainer
Notify item set change listeners that an item has been added to the container.- Overrides:
fireItemAdded
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
position
- position of the added item in the viewitemId
- id of the added itemitem
- the added item
-
fireItemSetChange
protected void fireItemSetChange()
Description copied from class:AbstractContainer
Sends a simple Item set change event to all interested listeners, indicating that anything in the contents may have changed (items added, removed etc.).- Overrides:
fireItemSetChange
in classAbstractContainer
-
sort
public void sort(Object[] propertyId, boolean[] ascending)
Description copied from interface:Container.Sortable
Sorts the container items.Sorting a container can irreversibly change the order of its items or only change the order temporarily, depending on the container.
- Specified by:
sort
in interfaceContainer.Sortable
- Parameters:
propertyId
- Array of container property IDs, whose values are used to sort the items in container as primary, secondary, ... sorting criterion. All of the item IDs must be in the collection returned byContainer.Sortable.getSortableContainerPropertyIds()
ascending
- Array of sorting order flags corresponding to each property ID used in sorting. If this array is shorter than propertyId array, ascending order is assumed for items where the order is not specified. Usetrue
to sort in ascending order,false
to use descending order.
-
getSortableContainerPropertyIds
public Collection<?> getSortableContainerPropertyIds()
Description copied from interface:Container.Sortable
Gets the container property IDs which can be used to sort the items.- Specified by:
getSortableContainerPropertyIds
in interfaceContainer.Sortable
- Returns:
- the IDs of the properties that can be used for sorting the container
-
getItemSorter
public ItemSorter getItemSorter()
Description copied from class:AbstractInMemoryContainer
Returns the ItemSorter used for comparing items in a sort. SeeAbstractInMemoryContainer.setItemSorter(ItemSorter)
for more information.- Overrides:
getItemSorter
in classAbstractInMemoryContainer<Object,Object,Item>
- Returns:
- The ItemSorter used for comparing two items in a sort.
-
setItemSorter
public void setItemSorter(ItemSorter itemSorter)
Description copied from class:AbstractInMemoryContainer
Sets the ItemSorter used for comparing items in a sort. TheItemSorter.compare(Object, Object)
method is called with item ids to perform the sorting. A default ItemSorter is used if this is not explicitly set.- Overrides:
setItemSorter
in classAbstractInMemoryContainer<Object,Object,Item>
- Parameters:
itemSorter
- The ItemSorter used for comparing two items in a sort (not null).
-
clone
@Deprecated public Object clone() throws CloneNotSupportedException
Deprecated.As of 6.6. Cloning support might be removed from IndexedContainer in the futureSupports cloning of the IndexedContainer cleanly.- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
- if an object cannot be cloned. .
-
addContainerFilter
public void addContainerFilter(Object propertyId, String filterString, boolean ignoreCase, boolean onlyMatchPrefix)
Description copied from interface:Container.SimpleFilterable
Add a filter for given property.The API
Container.Filterable.addContainerFilter(Filter)
is recommended instead of this method. ASimpleStringFilter
can be used with the new API to implement the old string filtering functionality.The filter accepts items for which toString() of the value of the given property contains or starts with given filterString. Other items are not visible in the container when filtered.
If a container has multiple filters, only items accepted by all filters are visible.
- Specified by:
addContainerFilter
in interfaceContainer.SimpleFilterable
- Parameters:
propertyId
- Property for which the filter is applied to.filterString
- String that must match the value of the propertyignoreCase
- Determine if the casing can be ignored when comparing strings.onlyMatchPrefix
- Only match prefixes; no other matches are included.
-
removeAllContainerFilters
public void removeAllContainerFilters()
Description copied from interface:Container.Filterable
Remove all active filters from the container.- Specified by:
removeAllContainerFilters
in interfaceContainer.Filterable
- Specified by:
removeAllContainerFilters
in interfaceContainer.SimpleFilterable
-
removeContainerFilters
public void removeContainerFilters(Object propertyId)
Description copied from interface:Container.SimpleFilterable
Remove all filters from the given property.- Specified by:
removeContainerFilters
in interfaceContainer.SimpleFilterable
- Parameters:
propertyId
- for which to remove filters
-
addContainerFilter
public void addContainerFilter(Container.Filter filter) throws UnsupportedFilterException
Description copied from interface:Container.Filterable
Adds a filter for the container.If a container has multiple filters, only items accepted by all filters are visible.
- Specified by:
addContainerFilter
in interfaceContainer.Filterable
- Throws:
UnsupportedFilterException
- if the filter is not supported by the container
-
removeContainerFilter
public void removeContainerFilter(Container.Filter filter)
Description copied from interface:Container.Filterable
Removes a filter from the container.This requires that the equals() method considers the filters as equivalent (same instance or properly implemented equals() method).
- Specified by:
removeContainerFilter
in interfaceContainer.Filterable
-
hasContainerFilters
public boolean hasContainerFilters()
Description copied from class:AbstractInMemoryContainer
Returns true if any filters have been applied to the container.- Overrides:
hasContainerFilters
in classAbstractInMemoryContainer<Object,Object,Item>
- Returns:
- true if the container has filters applied, false otherwise
-
getContainerFilters
public Collection<Container.Filter> getContainerFilters()
Description copied from interface:Container.Filterable
Returns the filters which have been applied to the container- Specified by:
getContainerFilters
in interfaceContainer.Filterable
- Overrides:
getContainerFilters
in classAbstractInMemoryContainer<Object,Object,Item>
- Returns:
- A collection of filters which have been applied to the container. An empty collection if no filters have been applied.
-
-