com.vaadin.ui
Class Table

java.lang.Object
  extended by com.vaadin.server.AbstractClientConnector
      extended by com.vaadin.ui.AbstractComponent
          extended by com.vaadin.ui.AbstractField<java.lang.Object>
              extended by com.vaadin.ui.AbstractSelect
                  extended by com.vaadin.ui.Table
All Implemented Interfaces:
Buffered, BufferedValidatable, Container, Container.ItemSetChangeListener, Container.ItemSetChangeNotifier, Container.Ordered, Container.PropertySetChangeListener, Container.PropertySetChangeNotifier, Container.Sortable, Container.Viewer, Property<java.lang.Object>, Property.Editor, Property.ReadOnlyStatusChangeListener, Property.ReadOnlyStatusChangeNotifier, Property.ValueChangeListener, Property.ValueChangeNotifier, Property.Viewer, Validatable, Action.Container, Action.ShortcutNotifier, ConnectorEventListener, DragSource, DropTarget, ItemClickEvent.ItemClickNotifier, MethodEventSource, ClientConnector, Sizeable, VariableOwner, Connector, Component, Component.Focusable, Field<java.lang.Object>, HasComponents, LegacyComponent, java.io.Serializable, java.lang.Iterable<Component>, java.util.EventListener
Direct Known Subclasses:
TreeTable

public class Table
extends AbstractSelect
implements Action.Container, Container.Ordered, Container.Sortable, ItemClickEvent.ItemClickNotifier, DragSource, DropTarget, HasComponents

Table is used for representing data or components in a pageable and selectable table.

Scalability of the Table is largely dictated by the container. A table does not have a limit for the number of items and is just as fast with hundreds of thousands of items as with just a few. The current GWT implementation with scrolling however limits the number of rows to around 500000, depending on the browser and the pixel height of rows.

Components in a Table will not have their caption nor icon rendered.

Since:
3.0
Author:
Vaadin Ltd.
See Also:
Serialized Form

Nested Class Summary
static class Table.Align
           
static class Table.CacheUpdateException
          Exception thrown when one or more exceptions occurred during updating of the Table cache.
static interface Table.CellStyleGenerator
          Allow to define specific style on cells (and rows) contents.
static interface Table.ColumnGenerator
          Used to create "generated columns"; columns that exist only in the Table, not in the underlying Container.
static class Table.ColumnHeaderMode
           
static class Table.ColumnReorderEvent
          This event is fired when a columns are reordered by the end user user.
static interface Table.ColumnReorderListener
          Interface for listening to column reorder events.
static class Table.ColumnResizeEvent
          This event is fired when a column is resized.
static interface Table.ColumnResizeListener
          Interface for listening to column resize events.
static class Table.FooterClickEvent
          Click event fired when clicking on the Table footers.
static interface Table.FooterClickListener
          Interface for the listener for column footer mouse click events.
static class Table.GeneratedRow
           
static class Table.HeaderClickEvent
          Click event fired when clicking on the Table headers.
static interface Table.HeaderClickListener
          Interface for the listener for column header mouse click events.
static interface Table.RowGenerator
          Row generators can be used to replace certain items in a table with a generated string.
static class Table.RowHeaderMode
           
static class Table.TableDragMode
          Modes that Table support as drag sourse.
static class Table.TableDropCriterion
          Lazy loading accept criterion for Table.
 class Table.TableTransferable
          Concrete implementation of DataBoundTransferable for data transferred from a table.
 
Nested classes/interfaces inherited from class com.vaadin.ui.AbstractSelect
AbstractSelect.AbstractSelectTargetDetails, AbstractSelect.AcceptItem, AbstractSelect.CaptionChangeListener, AbstractSelect.DefaultNewItemHandler, AbstractSelect.Filtering, AbstractSelect.ItemCaptionMode, AbstractSelect.ItemDescriptionGenerator, AbstractSelect.NewItemHandler, AbstractSelect.TargetItemIs, AbstractSelect.VerticalLocationIs
 
Nested classes/interfaces inherited from class com.vaadin.ui.AbstractField
AbstractField.FocusShortcut, AbstractField.ReadOnlyStatusChangeEvent
 
Nested classes/interfaces inherited from interface com.vaadin.data.Container
Container.Editor, Container.Filter, Container.Filterable, Container.Hierarchical, Container.Indexed, Container.ItemSetChangeEvent, 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.ui.HasComponents
HasComponents.ComponentAttachDetachNotifier, HasComponents.ComponentAttachEvent, HasComponents.ComponentAttachListener, HasComponents.ComponentDetachEvent, HasComponents.ComponentDetachListener
 
Nested classes/interfaces inherited from interface com.vaadin.ui.Component
Component.ErrorEvent, Component.Event, Component.Focusable, Component.Listener
 
Nested classes/interfaces inherited from interface com.vaadin.server.ClientConnector
ClientConnector.AttachEvent, ClientConnector.AttachListener, ClientConnector.ConnectorErrorEvent, ClientConnector.DetachEvent, ClientConnector.DetachListener
 
Nested classes/interfaces inherited from interface com.vaadin.server.Sizeable
Sizeable.Unit
 
Nested classes/interfaces inherited from interface com.vaadin.ui.Field
Field.ValueChangeEvent
 
Nested classes/interfaces inherited from interface com.vaadin.data.Buffered
Buffered.SourceException
 
Nested classes/interfaces inherited from interface com.vaadin.data.Property
Property.Editor, Property.ReadOnlyException, Property.ReadOnlyStatusChangeListener, Property.ReadOnlyStatusChangeNotifier, Property.Transactional<T>, Property.ValueChangeListener, Property.ValueChangeNotifier, Property.Viewer
 
Field Summary
static Table.Align ALIGN_CENTER
          Deprecated. As of 7.0, use Table.Align.CENTER instead
static Table.Align ALIGN_LEFT
          Deprecated. As of 7.0, use Table.Align.LEFT instead
static Table.Align ALIGN_RIGHT
          Deprecated. As of 7.0, use Table.Align.RIGHT instead
protected  boolean alwaysRecalculateColumnWidths
           
protected static int CELL_FIRSTCOL
           
protected static int CELL_GENERATED_ROW
           
protected static int CELL_HEADER
           
protected static int CELL_ICON
           
protected static int CELL_ITEMID
           
protected static int CELL_KEY
           
static Table.ColumnHeaderMode COLUMN_HEADER_MODE_EXPLICIT
          Deprecated. As of 7.0, use Table.ColumnHeaderMode.EXPLICIT instead
static Table.ColumnHeaderMode COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID
          Deprecated. As of 7.0, use Table.ColumnHeaderMode.EXPLICIT_DEFAULTS_ID instead
static Table.ColumnHeaderMode COLUMN_HEADER_MODE_HIDDEN
          Deprecated. As of 7.0, use Table.ColumnHeaderMode.HIDDEN instead
static Table.ColumnHeaderMode COLUMN_HEADER_MODE_ID
          Deprecated. As of 7.0, use Table.ColumnHeaderMode.ID instead
static Table.RowHeaderMode ROW_HEADER_MODE_EXPLICIT
          Deprecated. As of 7.0, use Table.RowHeaderMode.EXPLICIT instead
static Table.RowHeaderMode ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID
          Deprecated. As of 7.0, use Table.RowHeaderMode.EXPLICIT_DEFAULTS_ID instead
static Table.RowHeaderMode ROW_HEADER_MODE_HIDDEN
          Deprecated. As of 7.0, use Table.RowHeaderMode.HIDDEN instead
static Table.RowHeaderMode ROW_HEADER_MODE_ICON_ONLY
          Deprecated. As of 7.0, use Table.RowHeaderMode.ICON_ONLY instead
static Table.RowHeaderMode ROW_HEADER_MODE_ID
          Deprecated. As of 7.0, use Table.RowHeaderMode.ID instead
static Table.RowHeaderMode ROW_HEADER_MODE_INDEX
          Deprecated. As of 7.0, use Table.RowHeaderMode.INDEX instead
static Table.RowHeaderMode ROW_HEADER_MODE_ITEM
          Deprecated. As of 7.0, use Table.RowHeaderMode.ITEM instead
static Table.RowHeaderMode ROW_HEADER_MODE_PROPERTY
          Deprecated. As of 7.0, use Table.RowHeaderMode.PROPERTY instead
 
Fields inherited from class com.vaadin.ui.AbstractSelect
ITEM_CAPTION_MODE_EXPLICIT, ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID, ITEM_CAPTION_MODE_ICON_ONLY, ITEM_CAPTION_MODE_ID, ITEM_CAPTION_MODE_INDEX, ITEM_CAPTION_MODE_ITEM, ITEM_CAPTION_MODE_PROPERTY, itemIdMapper, items
 
Fields inherited from interface com.vaadin.server.Sizeable
SIZE_UNDEFINED, UNITS_CM, UNITS_EM, UNITS_EX, UNITS_INCH, UNITS_MM, UNITS_PERCENTAGE, UNITS_PICAS, UNITS_PIXELS, UNITS_POINTS
 
Constructor Summary
Table()
          Creates a new empty table.
Table(java.lang.String caption)
          Creates a new empty table with caption.
Table(java.lang.String caption, Container dataSource)
          Creates a new table with caption and connect it to a Container.
 
Method Summary
 void addActionHandler(Action.Handler actionHandler)
          Registers a new action handler for this container
 void addColumnReorderListener(Table.ColumnReorderListener listener)
          Adds a column reorder listener to the Table.
 void addColumnResizeListener(Table.ColumnResizeListener listener)
          Adds a column resize listener to the Table.
 boolean addContainerProperty(java.lang.Object propertyId, java.lang.Class<?> type, java.lang.Object defaultValue)
          Adds a new property to the table and show it as a visible column.
 boolean addContainerProperty(java.lang.Object propertyId, java.lang.Class<?> type, java.lang.Object defaultValue, java.lang.String columnHeader, Resource columnIcon, Table.Align columnAlignment)
          Adds a new property to the table and show it as a visible column.
 void addFooterClickListener(Table.FooterClickListener listener)
          Adds a footer click listener which handles the click events when the user clicks on a column footer cell in the Table.
 void addGeneratedColumn(java.lang.Object id, Table.ColumnGenerator generatedColumn)
          Adds a generated column to the Table.
 void addHeaderClickListener(Table.HeaderClickListener listener)
          Adds a header click listener which handles the click events when the user clicks on a column header cell in the Table.
 java.lang.Object addItem(java.lang.Object[] cells, java.lang.Object itemId)
          Adds the new row to table and fill the visible cells (except generated columns) with given values.
 java.lang.Object addItemAfter(java.lang.Object previousItemId)
          Adds new item after the given item.
 Item addItemAfter(java.lang.Object previousItemId, java.lang.Object newItemId)
          Adds new item after the given item.
 void addItemClickListener(ItemClickEvent.ItemClickListener listener)
          Register a listener to handle ItemClickEvents.
 void addListener(ItemClickEvent.ItemClickListener listener)
          Deprecated. As of 7.0, replaced by #addItemClickListener(ItemClickListener)
 void addListener(Table.ColumnReorderListener listener)
          Deprecated. As of 7.0, replaced by addColumnReorderListener(ColumnReorderListener)
 void addListener(Table.ColumnResizeListener listener)
          Deprecated. As of 7.0, replaced by addColumnResizeListener(ColumnResizeListener)
 void addListener(Table.FooterClickListener listener)
          Deprecated. As of 7.0, replaced by addFooterClickListener(FooterClickListener)
 void addListener(Table.HeaderClickListener listener)
          Deprecated. As of 7.0, replaced by addHeaderClickListener(HeaderClickListener)
 void attach()
          Notifies the component that it is connected to an application.
 void beforeClientResponse(boolean initial)
          Called before the shared state and RPC invocations are sent to the client.
protected  void bindPropertyToField(java.lang.Object rowId, java.lang.Object colId, Property property, Field field)
          Binds an item property to a field generated by TableFieldFactory.
 void changeVariables(java.lang.Object source, java.util.Map<java.lang.String,java.lang.Object> variables)
          Invoked when the value of a variable has changed.
 void containerItemSetChange(Container.ItemSetChangeEvent event)
          Container datasource item set change.
 void containerPropertySetChange(Container.PropertySetChangeEvent event)
          Container datasource property set change.
 void detach()
          Notifies the component that it is detached from the application
protected  boolean disableContentRefreshing()
          Go to mode where content updates are not done.
protected  void enableContentRefreshing(boolean refreshContent)
          Go to mode where content content refreshing has effect.
 java.lang.Object firstItemId()
          Gets the ID of the first Item in the Container.
protected  java.lang.String formatPropertyValue(java.lang.Object rowId, java.lang.Object colId, Property<?> property)
          Formats table cell property values.
protected  int getAddedRowCount()
          Subclass and override this to enable partial row additions, bypassing the normal caching mechanism.
 double getCacheRate()
           
 Table.CellStyleGenerator getCellStyleGenerator()
          Get the current cell style generator.
 Table.Align getColumnAlignment(java.lang.Object propertyId)
          Gets the specified column's alignment.
 Table.Align[] getColumnAlignments()
          Gets the array of column alignments.
 float getColumnExpandRatio(java.lang.Object propertyId)
          Gets the column expand ratio for a columnd.
 java.lang.String getColumnFooter(java.lang.Object propertyId)
          Gets the footer caption beneath the rows
 Table.ColumnGenerator getColumnGenerator(java.lang.Object columnId)
          Returns the ColumnGenerator used to generate the given column.
 java.lang.String getColumnHeader(java.lang.Object propertyId)
          Gets the header for the specified column.
 Table.ColumnHeaderMode getColumnHeaderMode()
          Getter for property columnHeaderMode.
 java.lang.String[] getColumnHeaders()
          Gets the headers of the columns.
 Resource getColumnIcon(java.lang.Object propertyId)
          Gets the icon Resource for the specified column.
 Resource[] getColumnIcons()
          Gets the icons of the columns.
 int getColumnWidth(java.lang.Object propertyId)
          Gets the pixel width of column
 java.util.Iterator<Component> getComponentIterator()
          Deprecated. As of 7.0, use iterator() instead.
 Converter<java.lang.String,java.lang.Object> getConverter(java.lang.Object propertyId)
          Returns the converter used to format the given propertyId.
 java.lang.Object getCurrentPageFirstItemId()
          Getter for property currentPageFirstItem.
 int getCurrentPageFirstItemIndex()
          Getter for property currentPageFirstItem.
 Table.TableDragMode getDragMode()
           
 DropHandler getDropHandler()
           
protected  int getFirstAddedItemIndex()
          Subclass and override this to enable partial row additions, bypassing the normal caching mechanism.
protected  int getFirstUpdatedItemIndex()
          Subclass and override this to enable partial row updates, bypassing the normal caching and lazy loading mechanism.
protected  java.lang.Object getIdByIndex(int index)
          Returns the item ID for the item represented by the index given.
 AbstractSelect.ItemDescriptionGenerator getItemDescriptionGenerator()
          Get the item description generator which generates tooltips for cells and rows in the Table.
protected  java.util.List<java.lang.Object> getItemIds(int firstIndex, int rows)
           
 MultiSelectMode getMultiSelectMode()
          Returns the select mode in which multi-select is used.
 int getPageLength()
          Gets the page length.
protected  java.lang.Object getPropertyValue(java.lang.Object rowId, java.lang.Object colId, Property property)
          Gets the value of property.
 Table.RowGenerator getRowGenerator()
           
 Table.RowHeaderMode getRowHeaderMode()
          Gets the row header mode.
 java.util.Collection<?> getSortableContainerPropertyIds()
          Gets the container property IDs, which can be used to sort the item.
 java.lang.Object getSortContainerPropertyId()
          Gets the currently sorted column property ID.
 TableFieldFactory getTableFieldFactory()
          Gets the TableFieldFactory that is used to create editor for table cells.
 Table.TableTransferable getTransferable(java.util.Map<java.lang.String,java.lang.Object> rawVariables)
          DragSource may convert data added by client side component to meaningful values for server side developer or add other data based on it.
protected  int getUpdatedRowCount()
          Subclass and override this to enable partial row updates, bypassing the normal caching and lazy loading mechanism.
 java.lang.Object[] getVisibleColumns()
          Gets the array of visible column id:s, including generated columns.
 java.util.Collection<?> getVisibleItemIds()
          Returns item identifiers of the items which are currently rendered on the client.
protected  boolean hasConverter(java.lang.Object propertyId)
          Checks if there is a converter set explicitly for the given property id.
protected  int indexOfId(java.lang.Object itemId)
           
 boolean isColumnCollapsed(java.lang.Object propertyId)
          Checks if the specified column is collapsed.
 boolean isColumnCollapsible(java.lang.Object propertyId)
          Checks if the given column is collapsible.
 boolean isColumnCollapsingAllowed()
          Checks if column collapsing is allowed.
 boolean isColumnReorderingAllowed()
          Checks if column reordering is allowed.
 boolean isEditable()
          Is table editable.
 boolean isFirstId(java.lang.Object itemId)
          Tests if the Item corresponding to the given Item ID is the first Item in the Container.
 boolean isFooterVisible()
          Is the footer currently visible?
 boolean isLastId(java.lang.Object itemId)
          Tests if the Item corresponding to the given Item ID is the last Item in the Container.
protected  boolean isPartialRowUpdate()
          Subclass and override this to enable partial row updates and additions, which bypass the normal caching mechanism.
protected  boolean isRowCacheInvalidated()
           
 boolean isSelectable()
          Getter for property selectable.
 boolean isSortAscending()
          Is the table currently sorted in ascending order.
 boolean isSortDisabled()
          Deprecated. As of 7.0, use isSortEnabled() instead
 boolean isSortEnabled()
          Checks if sorting is enabled.
 java.util.Iterator<Component> iterator()
          Gets an iterator to the collection of contained components.
 java.lang.Object lastItemId()
          Gets the ID of the last Item in the Container.
 void markAsDirty()
          Requests that the Table should be repainted as soon as possible.
 void markAsDirtyRecursive()
          Causes this connector and all connectors below it to be marked as dirty.
 java.lang.Object nextItemId(java.lang.Object itemId)
          Gets the ID of the Item following the Item that corresponds to itemId.
 void paintContent(PaintTarget target)
          Paints the content of this component.
protected  void paintRowAttributes(PaintTarget target, java.lang.Object itemId)
          A method where extended Table implementations may add their custom attributes for rows.
protected  void paintRowHeader(PaintTarget target, java.lang.Object[][] cells, int indexInRowbuffer)
           
protected  void paintRowIcon(PaintTarget target, java.lang.Object[][] cells, int indexInRowbuffer)
           
 java.lang.Object prevItemId(java.lang.Object itemId)
          Gets the ID of the Item preceding the Item that corresponds to the itemId.
protected  void refreshRenderedCells()
          Refreshes the rows in the internal cache.
 void refreshRowCache()
          Discards and recreates the internal row cache.
protected  void registerComponent(Component component)
           
 void removeActionHandler(Action.Handler actionHandler)
          Removes a previously registered action handler for the contents of this container.
 void removeAllActionHandlers()
          Removes all action handlers
 boolean removeAllItems()
          Removes all Items from the Container.
 void removeColumnReorderListener(Table.ColumnReorderListener listener)
          Removes a column reorder listener from the Table.
 void removeColumnResizeListener(Table.ColumnResizeListener listener)
          Removes a column resize listener from the Table.
 boolean removeContainerProperty(java.lang.Object propertyId)
          Removes a Property specified by the given Property ID from the Container.
 void removeFooterClickListener(Table.FooterClickListener listener)
          Removes a footer click listener
 boolean removeGeneratedColumn(java.lang.Object columnId)
          Removes a generated column previously added with addGeneratedColumn.
 void removeHeaderClickListener(Table.HeaderClickListener listener)
          Removes a header click listener
 boolean removeItem(java.lang.Object itemId)
          Removes the Item identified by ItemId from the Container.
 void removeItemClickListener(ItemClickEvent.ItemClickListener listener)
          Removes an ItemClickListener.
 void removeListener(ItemClickEvent.ItemClickListener listener)
          Deprecated. As of 7.0, replaced by #removeItemClickListener(ItemClickListener)
 void removeListener(Table.ColumnReorderListener listener)
          Deprecated. As of 7.0, replaced by removeColumnReorderListener(ColumnReorderListener)
 void removeListener(Table.ColumnResizeListener listener)
          Deprecated. As of 7.0, replaced by removeColumnResizeListener(ColumnResizeListener)
 void removeListener(Table.FooterClickListener listener)
          Deprecated. As of 7.0, replaced by removeFooterClickListener(FooterClickListener)
 void removeListener(Table.HeaderClickListener listener)
          Deprecated. As of 7.0, replaced by removeHeaderClickListener(HeaderClickListener)
 void requestRepaint()
          Deprecated. As of 7.0, use markAsDirty() instead
protected  void resetPageBuffer()
          Clears the current page buffer.
 void setCacheRate(double cacheRate)
          This method adjusts a possible caching mechanism of table implementation.
 void setCellStyleGenerator(Table.CellStyleGenerator cellStyleGenerator)
          Set cell style generator for Table.
 void setColumnAlignment(java.lang.Object propertyId, Table.Align alignment)
          Sets the specified column's alignment.
 void setColumnAlignments(Table.Align... columnAlignments)
          Sets the column alignments.
 void setColumnCollapsed(java.lang.Object propertyId, boolean collapsed)
          Sets whether the specified column is collapsed or not.
 void setColumnCollapsible(java.lang.Object propertyId, boolean collapsible)
          Sets whether the given column is collapsible.
 void setColumnCollapsingAllowed(boolean collapsingAllowed)
          Sets whether column collapsing is allowed or not.
 void setColumnExpandRatio(java.lang.Object propertyId, float expandRatio)
          Sets the column expand ratio for given column.
 void setColumnFooter(java.lang.Object propertyId, java.lang.String footer)
          Sets the column footer caption.
 void setColumnHeader(java.lang.Object propertyId, java.lang.String header)
          Sets the column header for the specified column;
 void setColumnHeaderMode(Table.ColumnHeaderMode columnHeaderMode)
          Setter for property columnHeaderMode.
 void setColumnHeaders(java.lang.String... columnHeaders)
          Sets the headers of the columns.
 void setColumnIcon(java.lang.Object propertyId, Resource icon)
          Sets the icon Resource for the specified column.
 void setColumnIcons(Resource... columnIcons)
          Sets the icons of the columns.
 void setColumnReorderingAllowed(boolean columnReorderingAllowed)
          Sets whether column reordering is allowed or not.
 void setColumnWidth(java.lang.Object propertyId, int width)
          Sets columns width (in pixels).
 void setContainerDataSource(Container newDataSource)
          Sets the Container that serves as the data source of the viewer.
 void setContainerDataSource(Container newDataSource, java.util.Collection<?> visibleIds)
          Sets the container data source and the columns that will be visible.
 void setConverter(java.lang.Object propertyId, Converter<java.lang.String,?> converter)
          Sets a converter for a property id.
 void setCurrentPageFirstItemId(java.lang.Object currentPageFirstItemId)
          Setter for property currentPageFirstItemId.
 void setCurrentPageFirstItemIndex(int newIndex)
          Setter for property currentPageFirstItem.
 void setDragMode(Table.TableDragMode newDragMode)
          Sets the drag start mode of the Table.
 void setDropHandler(DropHandler dropHandler)
           
 void setEditable(boolean editable)
          Sets the editable property.
 void setEnabled(boolean enabled)
          Enables or disables the component.
 void setFooterVisible(boolean visible)
          Sets the footer visible in the bottom of the table.
 void setItemDescriptionGenerator(AbstractSelect.ItemDescriptionGenerator generator)
          Set the item description generator which generates tooltips for cells and rows in the Table
 void setMultiSelectMode(MultiSelectMode mode)
          Sets the behavior of how the multi-select mode should behave when the table is both selectable and in multi-select mode.
 void setNewItemsAllowed(boolean allowNewOptions)
          Adding new items is not supported.
 void setPageLength(int pageLength)
          Sets the page length.
 void setRowGenerator(Table.RowGenerator generator)
          Assigns a row generator to the table.
 void setRowHeaderMode(Table.RowHeaderMode mode)
          Sets the row header mode.
 void setSelectable(boolean selectable)
          Setter for property selectable.
 void setSortAscending(boolean ascending)
          Sets the table in ascending order.
 void setSortContainerPropertyId(java.lang.Object propertyId)
          Sets the currently sorted column property id.
 void setSortDisabled(boolean sortDisabled)
          Deprecated. As of 7.0, use setSortEnabled(boolean) instead
 void setSortEnabled(boolean sortEnabled)
          Enables or disables sorting.
 void setTableFieldFactory(TableFieldFactory fieldFactory)
          Sets the TableFieldFactory that is used to create editor for table cells.
 void setVisible(boolean visible)
          Sets the visibility of the component.
 void setVisibleColumns(java.lang.Object... visibleColumns)
          Sets the array of visible column property id:s.
protected  boolean shouldHideAddedRows()
          Subclass and override this to enable removing of rows, bypassing the normal caching and lazy loading mechanism.
 void sort()
          Sorts the table by currently selected sorting column.
 void sort(java.lang.Object[] propertyId, boolean[] ascending)
          Sorts the table.
 AbstractSelect.AbstractSelectTargetDetails translateDropTargetDetails(java.util.Map<java.lang.String,java.lang.Object> clientVariables)
          Called before the DragAndDropEvent is passed to DropHandler.
protected  void unregisterComponent(Component component)
          This method cleans up a Component that has been generated when Table is in editable mode.
 void valueChange(Property.ValueChangeEvent event)
          Notifies this listener that the Property's value has changed.
 
Methods inherited from class com.vaadin.ui.AbstractSelect
addItem, addItem, addItemSetChangeListener, addListener, addListener, addPropertySetChangeListener, containsId, fireItemSetChange, firePropertySetChange, getCaptionChangeListener, getContainerDataSource, getContainerProperty, getContainerPropertyIds, getItem, getItemCaption, getItemCaptionMode, getItemCaptionPropertyId, getItemIcon, getItemIconPropertyId, getItemIds, getListeners, getNewItemHandler, getNullSelectionItemId, getType, getType, getValue, isEmpty, isMultiSelect, isNewItemsAllowed, isNullSelectionAllowed, isSelected, paintItem, removeItemSetChangeListener, removeListener, removeListener, removePropertySetChangeListener, sanitizeSelection, select, setItemCaption, setItemCaptionMode, setItemCaptionPropertyId, setItemIcon, setItemIconPropertyId, setMultiSelect, setNewItemHandler, setNullSelectionAllowed, setNullSelectionItemId, setValue, setValue, size, unselect
 
Methods inherited from class com.vaadin.ui.AbstractField
addListener, addListener, addReadOnlyStatusChangeListener, addValidator, addValueChangeListener, commit, discard, fireReadOnlyStatusChange, fireValueChange, focus, getConversionError, getConversionError, getConvertedValue, getConverter, getCurrentBufferedSourceException, getErrorMessage, getInternalValue, getModelType, getPropertyDataSource, getRequiredError, getState, getState, getTabIndex, getValidators, isBuffered, isInvalidAllowed, isInvalidCommitted, isModified, isReadOnly, isRequired, isValid, isValidationVisible, readOnlyStatusChange, removeAllValidators, removeListener, removeListener, removeReadOnlyStatusChangeListener, removeValidator, removeValueChangeListener, setBuffered, setConversionError, setConvertedValue, setConverter, setConverter, setCurrentBufferedSourceException, setInternalValue, setInvalidAllowed, setInvalidCommitted, setLocale, setPropertyDataSource, setReadOnly, setRequired, setRequiredError, setTabIndex, setValidationVisible, shouldHideErrors, toString, validate, validate
 
Methods inherited from class com.vaadin.ui.AbstractComponent
addListener, addShortcutListener, addStyleName, findAncestor, fireComponentErrorEvent, fireComponentEvent, getActionManager, getCaption, getComponentError, getData, getDebugId, getDescription, getHeight, getHeightUnits, getIcon, getId, getLocale, getParent, getPrimaryStyleName, getStyleName, getWidth, getWidthUnits, isConnectorEnabled, isEnabled, isImmediate, isVisible, removeListener, removeShortcutListener, removeStyleName, setCaption, setComponentError, setData, setDebugId, setDescription, setHeight, setHeight, setIcon, setId, setImmediate, setParent, setPrimaryStyleName, setSizeFull, setSizeUndefined, setStyleName, setWidth, setWidth
 
Methods inherited from class com.vaadin.server.AbstractClientConnector
addAttachListener, addDetachListener, addExtension, addListener, addListener, addListener, addMethodInvocationToQueue, createState, encodeState, fireEvent, getAllChildrenIterable, getConnectorId, getErrorHandler, getExtensions, getResource, getRpcManager, getRpcProxy, getSession, getStateType, getUI, handleConnectorRequest, hasListeners, isAttached, registerRpc, registerRpc, removeAttachListener, removeDetachListener, removeExtension, removeListener, removeListener, removeListener, removeListener, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler, setResource
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode
 
Methods inherited from interface com.vaadin.data.Container
addItem, addItem, containsId, getContainerProperty, getContainerPropertyIds, getItem, getItemIds, getType, size
 
Methods inherited from interface com.vaadin.ui.Component
addListener, addStyleName, getCaption, getDescription, getIcon, getId, getLocale, getParent, getPrimaryStyleName, getStyleName, getUI, isEnabled, isReadOnly, isVisible, removeListener, removeStyleName, setCaption, setIcon, setId, setParent, setPrimaryStyleName, setReadOnly, setStyleName
 
Methods inherited from interface com.vaadin.server.ClientConnector
addAttachListener, addDetachListener, encodeState, getErrorHandler, getExtensions, getRpcManager, getStateType, handleConnectorRequest, isAttached, isConnectorEnabled, removeAttachListener, removeDetachListener, removeExtension, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler
 
Methods inherited from interface com.vaadin.shared.Connector
getConnectorId
 
Methods inherited from interface com.vaadin.server.Sizeable
getHeight, getHeightUnits, getWidth, getWidthUnits, setHeight, setHeight, setSizeFull, setSizeUndefined, setWidth, setWidth
 
Methods inherited from interface com.vaadin.server.VariableOwner
isEnabled, isImmediate
 
Methods inherited from interface com.vaadin.event.Action.ShortcutNotifier
addShortcutListener, removeShortcutListener
 

Field Detail

CELL_KEY

protected static final int CELL_KEY
See Also:
Constant Field Values

CELL_HEADER

protected static final int CELL_HEADER
See Also:
Constant Field Values

CELL_ICON

protected static final int CELL_ICON
See Also:
Constant Field Values

CELL_ITEMID

protected static final int CELL_ITEMID
See Also:
Constant Field Values

CELL_GENERATED_ROW

protected static final int CELL_GENERATED_ROW
See Also:
Constant Field Values

CELL_FIRSTCOL

protected static final int CELL_FIRSTCOL
See Also:
Constant Field Values

ALIGN_LEFT

@Deprecated
public static final Table.Align ALIGN_LEFT
Deprecated. As of 7.0, use Table.Align.LEFT instead

ALIGN_CENTER

@Deprecated
public static final Table.Align ALIGN_CENTER
Deprecated. As of 7.0, use Table.Align.CENTER instead

ALIGN_RIGHT

@Deprecated
public static final Table.Align ALIGN_RIGHT
Deprecated. As of 7.0, use Table.Align.RIGHT instead

COLUMN_HEADER_MODE_HIDDEN

@Deprecated
public static final Table.ColumnHeaderMode COLUMN_HEADER_MODE_HIDDEN
Deprecated. As of 7.0, use Table.ColumnHeaderMode.HIDDEN instead

COLUMN_HEADER_MODE_ID

@Deprecated
public static final Table.ColumnHeaderMode COLUMN_HEADER_MODE_ID
Deprecated. As of 7.0, use Table.ColumnHeaderMode.ID instead

COLUMN_HEADER_MODE_EXPLICIT

@Deprecated
public static final Table.ColumnHeaderMode COLUMN_HEADER_MODE_EXPLICIT
Deprecated. As of 7.0, use Table.ColumnHeaderMode.EXPLICIT instead

COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID

@Deprecated
public static final Table.ColumnHeaderMode COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID
Deprecated. As of 7.0, use Table.ColumnHeaderMode.EXPLICIT_DEFAULTS_ID instead

ROW_HEADER_MODE_HIDDEN

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_HIDDEN
Deprecated. As of 7.0, use Table.RowHeaderMode.HIDDEN instead

ROW_HEADER_MODE_ID

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_ID
Deprecated. As of 7.0, use Table.RowHeaderMode.ID instead

ROW_HEADER_MODE_ITEM

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_ITEM
Deprecated. As of 7.0, use Table.RowHeaderMode.ITEM instead

ROW_HEADER_MODE_INDEX

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_INDEX
Deprecated. As of 7.0, use Table.RowHeaderMode.INDEX instead

ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID
Deprecated. As of 7.0, use Table.RowHeaderMode.EXPLICIT_DEFAULTS_ID instead

ROW_HEADER_MODE_EXPLICIT

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_EXPLICIT
Deprecated. As of 7.0, use Table.RowHeaderMode.EXPLICIT instead

ROW_HEADER_MODE_ICON_ONLY

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_ICON_ONLY
Deprecated. As of 7.0, use Table.RowHeaderMode.ICON_ONLY instead

ROW_HEADER_MODE_PROPERTY

@Deprecated
public static final Table.RowHeaderMode ROW_HEADER_MODE_PROPERTY
Deprecated. As of 7.0, use Table.RowHeaderMode.PROPERTY instead

alwaysRecalculateColumnWidths

protected boolean alwaysRecalculateColumnWidths
Constructor Detail

Table

public Table()
Creates a new empty table.


Table

public Table(java.lang.String caption)
Creates a new empty table with caption.

Parameters:
caption -

Table

public Table(java.lang.String caption,
             Container dataSource)
Creates a new table with caption and connect it to a Container.

Parameters:
caption -
dataSource -
Method Detail

getVisibleColumns

public java.lang.Object[] getVisibleColumns()
Gets the array of visible column id:s, including generated columns.

The columns are show in the order of their appearance in this array.

Returns:
an array of currently visible propertyIds and generated column ids.

setVisibleColumns

public void setVisibleColumns(java.lang.Object... visibleColumns)
Sets the array of visible column property id:s.

The columns are show in the order of their appearance in this array.

Parameters:
visibleColumns - the Array of shown property id:s.

getColumnHeaders

public java.lang.String[] getColumnHeaders()
Gets the headers of the columns.

The headers match the property id:s given my the set visible column headers. The table must be set in either COLUMN_HEADER_MODE_EXPLICIT or COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID mode to show the headers. In the defaults mode any nulls in the headers array are replaced with id.toString().

Returns:
the Array of column headers.

setColumnHeaders

public void setColumnHeaders(java.lang.String... columnHeaders)
Sets the headers of the columns.

The headers match the property id:s given my the set visible column headers. The table must be set in either COLUMN_HEADER_MODE_EXPLICIT or COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID mode to show the headers. In the defaults mode any nulls in the headers array are replaced with id.toString() outputs when rendering.

Parameters:
columnHeaders - the Array of column headers that match the getVisibleColumns() method.

getColumnIcons

public Resource[] getColumnIcons()
Gets the icons of the columns.

The icons in headers match the property id:s given my the set visible column headers. The table must be set in either COLUMN_HEADER_MODE_EXPLICIT or COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID mode to show the headers with icons.

Returns:
the Array of icons that match the getVisibleColumns().

setColumnIcons

public void setColumnIcons(Resource... columnIcons)
Sets the icons of the columns.

The icons in headers match the property id:s given my the set visible column headers. The table must be set in either COLUMN_HEADER_MODE_EXPLICIT or COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID mode to show the headers with icons.

Parameters:
columnIcons - the Array of icons that match the getVisibleColumns() .

getColumnAlignments

public Table.Align[] getColumnAlignments()
Gets the array of column alignments.

The items in the array must match the properties identified by getVisibleColumns(). The possible values for the alignments include:

The alignments default to Table.Align.LEFT: any null values are rendered as align lefts.

Returns:
the Column alignments array.

setColumnAlignments

public void setColumnAlignments(Table.Align... columnAlignments)
Sets the column alignments.

The amount of items in the array must match the amount of properties identified by getVisibleColumns(). The possible values for the alignments include:

The alignments default to Table.Align.LEFT

Parameters:
columnAlignments - the Column alignments array.

setColumnWidth

public void setColumnWidth(java.lang.Object propertyId,
                           int width)
Sets columns width (in pixels). Theme may not necessary respect very small or very big values. Setting width to -1 (default) means that theme will make decision of width.

Column can either have a fixed width or expand ratio. The latter one set is used. See @link setColumnExpandRatio(Object, float).

Parameters:
propertyId - colunmns property id
width - width to be reserved for colunmns content
Since:
4.0.3

setColumnExpandRatio

public void setColumnExpandRatio(java.lang.Object propertyId,
                                 float expandRatio)
Sets the column expand ratio for given column.

Expand ratios can be defined to customize the way how excess space is divided among columns. Table can have excess space if it has its width defined and there is horizontally more space than columns consume naturally. Excess space is the space that is not used by columns with explicit width (see setColumnWidth(Object, int)) or with natural width (no width nor expand ratio).

By default (without expand ratios) the excess space is divided proportionally to columns natural widths.

Only expand ratios of visible columns are used in final calculations.

Column can either have a fixed width or expand ratio. The latter one set is used.

A column with expand ratio is considered to be minimum width by default (if no excess space exists). The minimum width is defined by terminal implementation.

If terminal implementation supports re-sizable columns the column becomes fixed width column if users resizes the column.

Parameters:
propertyId - columns property id
expandRatio - the expandRatio used to divide excess space for this column

getColumnExpandRatio

public float getColumnExpandRatio(java.lang.Object propertyId)
Gets the column expand ratio for a columnd. See setColumnExpandRatio(Object, float)

Parameters:
propertyId - columns property id
Returns:
the expandRatio used to divide excess space for this column

getColumnWidth

public int getColumnWidth(java.lang.Object propertyId)
Gets the pixel width of column

Parameters:
propertyId -
Returns:
width of column or -1 when value not set

getPageLength

public int getPageLength()
Gets the page length.

Setting page length 0 disables paging.

Returns:
the Length of one page.

setPageLength

public void setPageLength(int pageLength)
Sets the page length.

Setting page length 0 disables paging. The page length defaults to 15.

If Table has width set (#setWidth(float, int) ) the client side may update the page length automatically the correct value.

Parameters:
pageLength - the length of one page.

setCacheRate

public void setCacheRate(double cacheRate)
This method adjusts a possible caching mechanism of table implementation.

Table component may fetch and render some rows outside visible area. With complex tables (for example containing layouts and components), the client side may become unresponsive. Setting the value lower, UI will become more responsive. With higher values scrolling in client will hit server less frequently.

The amount of cached rows will be cacheRate multiplied with pageLength ( setPageLength(int) both below and above visible area..

Parameters:
cacheRate - a value over 0 (fastest rendering time). Higher value will cache more rows on server (smoother scrolling). Default value is 2.

getCacheRate

public double getCacheRate()
Returns:
the current cache rate value
See Also:
setCacheRate(double)

getCurrentPageFirstItemId

public java.lang.Object getCurrentPageFirstItemId()
Getter for property currentPageFirstItem.

Returns:
the Value of property currentPageFirstItem.

getIdByIndex

protected java.lang.Object getIdByIndex(int index)
Returns the item ID for the item represented by the index given. Assumes that the current container implements Container.Indexed. See Container.Indexed#getIdByIndex(int) for more information about the exceptions that can be thrown.

Parameters:
index - the index for which the item ID should be fetched
Returns:
the item ID for the given index
Throws:
java.lang.ClassCastException - if container does not implement Container.Indexed
java.lang.IndexOutOfBoundsException - thrown by Container.Indexed#getIdByIndex(int) if the index is invalid

setCurrentPageFirstItemId

public void setCurrentPageFirstItemId(java.lang.Object currentPageFirstItemId)
Setter for property currentPageFirstItemId.

Parameters:
currentPageFirstItemId - the New value of property currentPageFirstItemId.

indexOfId

protected int indexOfId(java.lang.Object itemId)

getColumnIcon

public Resource getColumnIcon(java.lang.Object propertyId)
Gets the icon Resource for the specified column.

Parameters:
propertyId - the propertyId indentifying the column.
Returns:
the icon for the specified column; null if the column has no icon set, or if the column is not visible.

setColumnIcon

public void setColumnIcon(java.lang.Object propertyId,
                          Resource icon)
Sets the icon Resource for the specified column.

Throws IllegalArgumentException if the specified column is not visible.

Parameters:
propertyId - the propertyId identifying the column.
icon - the icon Resource to set.

getColumnHeader

public java.lang.String getColumnHeader(java.lang.Object propertyId)
Gets the header for the specified column.

Parameters:
propertyId - the propertyId identifying the column.
Returns:
the header for the specified column if it has one.

setColumnHeader

public void setColumnHeader(java.lang.Object propertyId,
                            java.lang.String header)
Sets the column header for the specified column;

Parameters:
propertyId - the propertyId identifying the column.
header - the header to set.

getColumnAlignment

public Table.Align getColumnAlignment(java.lang.Object propertyId)
Gets the specified column's alignment.

Parameters:
propertyId - the propertyID identifying the column.
Returns:
the specified column's alignment if it as one; Table.Align.LEFT otherwise.

setColumnAlignment

public void setColumnAlignment(java.lang.Object propertyId,
                               Table.Align alignment)
Sets the specified column's alignment.

Throws IllegalArgumentException if the alignment is not one of the following: Table.Align.LEFT, Table.Align.CENTER or Table.Align.RIGHT

Parameters:
propertyId - the propertyID identifying the column.
alignment - the desired alignment.

isColumnCollapsed

public boolean isColumnCollapsed(java.lang.Object propertyId)
Checks if the specified column is collapsed.

Parameters:
propertyId - the propertyID identifying the column.
Returns:
true if the column is collapsed; false otherwise;

setColumnCollapsed

public void setColumnCollapsed(java.lang.Object propertyId,
                               boolean collapsed)
                        throws java.lang.IllegalStateException
Sets whether the specified column is collapsed or not.

Parameters:
propertyId - the propertyID identifying the column.
collapsed - the desired collapsedness.
Throws:
java.lang.IllegalStateException - if column collapsing is not allowed

isColumnCollapsingAllowed

public boolean isColumnCollapsingAllowed()
Checks if column collapsing is allowed.

Returns:
true if columns can be collapsed; false otherwise.

setColumnCollapsingAllowed

public void setColumnCollapsingAllowed(boolean collapsingAllowed)
Sets whether column collapsing is allowed or not.

Parameters:
collapsingAllowed - specifies whether column collapsing is allowed.

setColumnCollapsible

public void setColumnCollapsible(java.lang.Object propertyId,
                                 boolean collapsible)
Sets whether the given column is collapsible. Note that collapsible columns can only be actually collapsed (via UI or with setColumnCollapsed()) if isColumnCollapsingAllowed() is true. By default all columns are collapsible.

Parameters:
propertyId - the propertyID identifying the column.
collapsible - true if the column should be collapsible, false otherwise.

isColumnCollapsible

public boolean isColumnCollapsible(java.lang.Object propertyId)
Checks if the given column is collapsible. Note that even if this method returns true, the column can only be actually collapsed (via UI or with setColumnCollapsed()) if isColumnCollapsingAllowed() is also true.

Returns:
true if the column can be collapsed; false otherwise.

isColumnReorderingAllowed

public boolean isColumnReorderingAllowed()
Checks if column reordering is allowed.

Returns:
true if columns can be reordered; false otherwise.

setColumnReorderingAllowed

public void setColumnReorderingAllowed(boolean columnReorderingAllowed)
Sets whether column reordering is allowed or not.

Parameters:
columnReorderingAllowed - specifies whether column reordering is allowed.

getCurrentPageFirstItemIndex

public int getCurrentPageFirstItemIndex()
Getter for property currentPageFirstItem.

Returns:
the Value of property currentPageFirstItem.

setCurrentPageFirstItemIndex

public void setCurrentPageFirstItemIndex(int newIndex)
Setter for property currentPageFirstItem.

Parameters:
newIndex - the New value of property currentPageFirstItem.

isSelectable

public boolean isSelectable()
Getter for property selectable.

The table is not selectable by default.

Returns:
the Value of property selectable.

setSelectable

public void setSelectable(boolean selectable)
Setter for property selectable.

The table is not selectable by default.

Parameters:
selectable - the New value of property selectable.

getColumnHeaderMode

public Table.ColumnHeaderMode getColumnHeaderMode()
Getter for property columnHeaderMode.

Returns:
the Value of property columnHeaderMode.

setColumnHeaderMode

public void setColumnHeaderMode(Table.ColumnHeaderMode columnHeaderMode)
Setter for property columnHeaderMode.

Parameters:
columnHeaderMode - the New value of property columnHeaderMode.

refreshRenderedCells

protected void refreshRenderedCells()
Refreshes the rows in the internal cache. Only if resetPageBuffer() is called before this then all values are guaranteed to be recreated.


requestRepaint

@Deprecated
public void requestRepaint()
Deprecated. As of 7.0, use markAsDirty() instead

Requests that the Table should be repainted as soon as possible. Note that a Table does not necessarily repaint its contents when this method has been called. See refreshRowCache() for forcing an update of the contents.

Specified by:
requestRepaint in interface ClientConnector
Overrides:
requestRepaint in class AbstractClientConnector

markAsDirty

public void markAsDirty()
Requests that the Table should be repainted as soon as possible. Note that a Table does not necessarily repaint its contents when this method has been called. See refreshRowCache() for forcing an update of the contents.

Specified by:
markAsDirty in interface ClientConnector
Specified by:
markAsDirty in interface LegacyComponent
Overrides:
markAsDirty in class AbstractClientConnector
See Also:
ClientConnector.markAsDirty()

markAsDirtyRecursive

public void markAsDirtyRecursive()
Description copied from interface: ClientConnector
Causes this connector and all connectors below it to be marked as dirty.

This should only be used in special cases, e.g when the state of a descendant depends on the state of an ancestor.

Specified by:
markAsDirtyRecursive in interface ClientConnector
Overrides:
markAsDirtyRecursive in class AbstractClientConnector
See Also:
ClientConnector.markAsDirty()

getItemIds

protected java.util.List<java.lang.Object> getItemIds(int firstIndex,
                                                      int rows)

registerComponent

protected void registerComponent(Component component)

unregisterComponent

protected void unregisterComponent(Component component)
This method cleans up a Component that has been generated when Table is in editable mode. The component needs to be detached from its parent and if it is a field, it needs to be detached from its property data source in order to allow garbage collection to take care of removing the unused component from memory. Override this method and getPropertyValue(Object, Object, Property) with custom logic if you need to deal with buffered fields.

Parameters:
oldVisibleComponents - a set of components that should be unregistered.
See Also:
getPropertyValue(Object, Object, Property)

setRowHeaderMode

public void setRowHeaderMode(Table.RowHeaderMode mode)
Sets the row header mode.

The mode can be one of the following ones:

The default value is ROW_HEADER_MODE_HIDDEN

Parameters:
mode - the One of the modes listed above.

getRowHeaderMode

public Table.RowHeaderMode getRowHeaderMode()
Gets the row header mode.

Returns:
the Row header mode.
See Also:
#setRowHeaderMode(int)

addItem

public java.lang.Object addItem(java.lang.Object[] cells,
                                java.lang.Object itemId)
                         throws java.lang.UnsupportedOperationException
Adds the new row to table and fill the visible cells (except generated columns) with given values.

Parameters:
cells - the Object array that is used for filling the visible cells new row. The types must be settable to visible column property types.
itemId - the Id the new row. If null, a new id is automatically assigned. If given, the table cant already have a item with given id.
Returns:
Returns item id for the new row. Returns null if operation fails.
Throws:
java.lang.UnsupportedOperationException

refreshRowCache

public void refreshRowCache()
Discards and recreates the internal row cache. Call this if you make changes that affect the rows but the information about the changes are not automatically propagated to the Table.

Do not call this e.g. if you have updated the data model through a Property. These types of changes are automatically propagated to the Table.

A typical case when this is needed is if you update a generator (e.g. CellStyleGenerator) and want to ensure that the rows are redrawn with new styles.

Note that calling this method is not cheap so avoid calling it unnecessarily.

Since:
6.7.2

setContainerDataSource

public void setContainerDataSource(Container newDataSource)
Sets the Container that serves as the data source of the viewer. As a side-effect the table's selection value is set to null as the old selection might not exist in new Container.

All rows and columns are generated as visible using this method. If the new container contains properties that are not meant to be shown you should use setContainerDataSource(Container, Collection) instead, especially if the table is editable.

Specified by:
setContainerDataSource in interface Container.Viewer
Overrides:
setContainerDataSource in class AbstractSelect
Parameters:
newDataSource - the new data source.
See Also:
Container.Viewer.setContainerDataSource(Container)

setContainerDataSource

public void setContainerDataSource(Container newDataSource,
                                   java.util.Collection<?> visibleIds)
Sets the container data source and the columns that will be visible. Columns are shown in the collection's iteration order.

Parameters:
newDataSource - the new data source.
visibleIds - IDs of the visible columns
See Also:
setContainerDataSource(Container), setVisibleColumns(Object[])

changeVariables

public void changeVariables(java.lang.Object source,
                            java.util.Map<java.lang.String,java.lang.Object> variables)
Invoked when the value of a variable has changed.

Specified by:
changeVariables in interface VariableOwner
Overrides:
changeVariables in class AbstractSelect
Parameters:
source - the Source of the variable change. This is the origin of the event. For example in Web Adapter this is the request.
variables - the Mapping from variable names to new variable values.
See Also:
ComboBox.changeVariables(java.lang.Object, java.util.Map)

disableContentRefreshing

protected boolean disableContentRefreshing()
Go to mode where content updates are not done. This is due we want to bypass expensive content for some reason (like when we know we may have other content changes on their way).

Returns:
true if content refresh flag was enabled prior this call

enableContentRefreshing

protected void enableContentRefreshing(boolean refreshContent)
Go to mode where content content refreshing has effect.

Parameters:
refreshContent - true if content refresh needs to be done

beforeClientResponse

public void beforeClientResponse(boolean initial)
Description copied from interface: ClientConnector
Called before the shared state and RPC invocations are sent to the client. Gives the connector an opportunity to set computed/dynamic state values or to invoke last minute RPC methods depending on other component features.

This method must not alter the component hierarchy in any way. Calling ClientConnector.markAsDirty() from this method will have no effect.

Specified by:
beforeClientResponse in interface ClientConnector
Overrides:
beforeClientResponse in class AbstractField<java.lang.Object>
Parameters:
initial - true if the client-side connector will be created and initialized after this method has been invoked. false if there is already an initialized client-side connector.

paintContent

public void paintContent(PaintTarget target)
                  throws PaintException
Description copied from class: AbstractSelect
Paints the content of this component.

Specified by:
paintContent in interface LegacyComponent
Overrides:
paintContent in class AbstractSelect
Parameters:
target - the Paint Event.
Throws:
PaintException - if the paint operation failed.

isRowCacheInvalidated

protected boolean isRowCacheInvalidated()

isPartialRowUpdate

protected boolean isPartialRowUpdate()
Subclass and override this to enable partial row updates and additions, which bypass the normal caching mechanism. This is useful for e.g. TreeTable.

Returns:
true if this update is a partial row update, false if not. For plain Table it is always false.

getFirstAddedItemIndex

protected int getFirstAddedItemIndex()
Subclass and override this to enable partial row additions, bypassing the normal caching mechanism. This is useful for e.g. TreeTable, where expanding a node should only fetch and add the items inside of that node.

Returns:
The index of the first added item. For plain Table it is always 0.

getAddedRowCount

protected int getAddedRowCount()
Subclass and override this to enable partial row additions, bypassing the normal caching mechanism. This is useful for e.g. TreeTable, where expanding a node should only fetch and add the items inside of that node.

Returns:
the number of rows to be added, starting at the index returned by getFirstAddedItemIndex(). For plain Table it is always 0.

shouldHideAddedRows

protected boolean shouldHideAddedRows()
Subclass and override this to enable removing of rows, bypassing the normal caching and lazy loading mechanism. This is useful for e.g. TreeTable, when you need to hide certain rows as a node is collapsed. This should return true if the rows pointed to by getFirstAddedItemIndex() and getAddedRowCount() should be hidden instead of added.

Returns:
whether the rows to add (see getFirstAddedItemIndex() and getAddedRowCount()) should be added or hidden. For plain Table it is always false.

getFirstUpdatedItemIndex

protected int getFirstUpdatedItemIndex()
Subclass and override this to enable partial row updates, bypassing the normal caching and lazy loading mechanism. This is useful for updating the state of certain rows, e.g. in the TreeTable the collapsed state of a single node is updated using this mechanism.

Returns:
the index of the first item to be updated. For plain Table it is always 0.

getUpdatedRowCount

protected int getUpdatedRowCount()
Subclass and override this to enable partial row updates, bypassing the normal caching and lazy loading mechanism. This is useful for updating the state of certain rows, e.g. in the TreeTable the collapsed state of a single node is updated using this mechanism.

Returns:
the number of rows to update, starting at the index returned by getFirstUpdatedItemIndex(). For plain table it is always 0.

paintRowHeader

protected void paintRowHeader(PaintTarget target,
                              java.lang.Object[][] cells,
                              int indexInRowbuffer)
                       throws PaintException
Throws:
PaintException

paintRowIcon

protected void paintRowIcon(PaintTarget target,
                            java.lang.Object[][] cells,
                            int indexInRowbuffer)
                     throws PaintException
Throws:
PaintException

paintRowAttributes

protected void paintRowAttributes(PaintTarget target,
                                  java.lang.Object itemId)
                           throws PaintException
A method where extended Table implementations may add their custom attributes for rows.

Parameters:
target -
itemId -
Throws:
PaintException

getPropertyValue

protected java.lang.Object getPropertyValue(java.lang.Object rowId,
                                            java.lang.Object colId,
                                            Property property)
Gets the value of property. By default if the table is editable the fieldFactory is used to create editors for table cells. Otherwise formatPropertyValue is used to format the value representation.

Parameters:
rowId - the Id of the row (same as item Id).
colId - the Id of the column.
property - the Property to be presented.
Returns:
Object Either formatted value or Component for field.
See Also:
setTableFieldFactory(TableFieldFactory)

bindPropertyToField

protected void bindPropertyToField(java.lang.Object rowId,
                                   java.lang.Object colId,
                                   Property property,
                                   Field field)
Binds an item property to a field generated by TableFieldFactory. The default behavior is to bind property straight to Field. If Property.Viewer type property (e.g. PropertyFormatter) is already set for field, the property is bound to that Property.Viewer.

Parameters:
rowId -
colId -
property -
field -
Since:
6.7.3

formatPropertyValue

protected java.lang.String formatPropertyValue(java.lang.Object rowId,
                                               java.lang.Object colId,
                                               Property<?> property)
Formats table cell property values. By default the property.toString() and return a empty string for null properties.

Parameters:
rowId - the Id of the row (same as item Id).
colId - the Id of the column.
property - the Property to be formatted.
Returns:
the String representation of property and its value.
Since:
3.1

addActionHandler

public void addActionHandler(Action.Handler actionHandler)
Registers a new action handler for this container

Specified by:
addActionHandler in interface Action.Container
Parameters:
actionHandler - the new handler to be added.
See Also:
Action.Container.addActionHandler(Action.Handler)

removeActionHandler

public void removeActionHandler(Action.Handler actionHandler)
Removes a previously registered action handler for the contents of this container.

Specified by:
removeActionHandler in interface Action.Container
Parameters:
actionHandler - the handler to be removed.
See Also:
Action.Container.removeActionHandler(Action.Handler)

removeAllActionHandlers

public void removeAllActionHandlers()
Removes all action handlers


valueChange

public void valueChange(Property.ValueChangeEvent event)
Notifies this listener that the Property's value has changed. Also listens changes in rendered items to refresh content area.

Specified by:
valueChange in interface Property.ValueChangeListener
Overrides:
valueChange in class AbstractField<java.lang.Object>
Parameters:
event - the value change event telling the data source contents have changed.
See Also:
Property.ValueChangeListener.valueChange(Property.ValueChangeEvent)

resetPageBuffer

protected void resetPageBuffer()
Clears the current page buffer. Call this before refreshRenderedCells() to ensure that all content is updated from the properties.


attach

public void attach()
Notifies the component that it is connected to an application.

Specified by:
attach in interface ClientConnector
Specified by:
attach in interface Component
Overrides:
attach in class AbstractSelect
See Also:
Component.attach()

detach

public void detach()
Notifies the component that it is detached from the application

Specified by:
detach in interface ClientConnector
Overrides:
detach in class AbstractSelect
See Also:
ClientConnector.detach()

removeAllItems

public boolean removeAllItems()
Removes all Items from the Container.

Specified by:
removeAllItems in interface Container
Overrides:
removeAllItems in class AbstractSelect
Returns:
True if the operation succeeded.
See Also:
Container.removeAllItems()

removeItem

public boolean removeItem(java.lang.Object itemId)
Removes the Item identified by ItemId from the Container.

Specified by:
removeItem in interface Container
Overrides:
removeItem in class AbstractSelect
Parameters:
itemId - ID of the Item to remove
Returns:
true if the operation succeeded, false if not
See Also:
Container.removeItem(Object)

removeContainerProperty

public boolean removeContainerProperty(java.lang.Object propertyId)
                                throws java.lang.UnsupportedOperationException
Removes a Property specified by the given Property ID from the Container.

Specified by:
removeContainerProperty in interface Container
Overrides:
removeContainerProperty in class AbstractSelect
Parameters:
propertyId - ID of the Property to remove
Returns:
True if the operation succeeded.
Throws:
java.lang.UnsupportedOperationException - if the container does not support removing container properties
See Also:
Container.removeContainerProperty(Object)

addContainerProperty

public boolean addContainerProperty(java.lang.Object propertyId,
                                    java.lang.Class<?> type,
                                    java.lang.Object defaultValue)
                             throws java.lang.UnsupportedOperationException
Adds a new property to the table and show it as a visible column.

Specified by:
addContainerProperty in interface Container
Overrides:
addContainerProperty in class AbstractSelect
Parameters:
propertyId - the Id of the proprty.
type - the class of the property.
defaultValue - the default value given for all existing items.
Returns:
True if the operation succeeded.
Throws:
java.lang.UnsupportedOperationException - if the container does not support explicitly adding container properties
See Also:
Container.addContainerProperty(Object, Class, Object)

addContainerProperty

public boolean addContainerProperty(java.lang.Object propertyId,
                                    java.lang.Class<?> type,
                                    java.lang.Object defaultValue,
                                    java.lang.String columnHeader,
                                    Resource columnIcon,
                                    Table.Align columnAlignment)
                             throws java.lang.UnsupportedOperationException
Adds a new property to the table and show it as a visible column.

Parameters:
propertyId - the Id of the proprty
type - the class of the property
defaultValue - the default value given for all existing items
columnHeader - the Explicit header of the column. If explicit header is not needed, this should be set null.
columnIcon - the Icon of the column. If icon is not needed, this should be set null.
columnAlignment - the Alignment of the column. Null implies align left.
Throws:
java.lang.UnsupportedOperationException - if the operation is not supported.
See Also:
Container.addContainerProperty(Object, Class, Object)

addGeneratedColumn

public void addGeneratedColumn(java.lang.Object id,
                               Table.ColumnGenerator generatedColumn)
Adds a generated column to the Table.

A generated column is a column that exists only in the Table, not as a property in the underlying Container. It shows up just as a regular column.

A generated column will override a property with the same id, so that the generated column is shown instead of the column representing the property. Note that getContainerProperty() will still get the real property.

Table will not listen to value change events from properties overridden by generated columns. If the content of your generated column depends on properties that are not directly visible in the table, attach value change listener to update the content on all depended properties. Otherwise your UI might not get updated as expected.

Also note that getVisibleColumns() will return the generated columns, while getContainerPropertyIds() will not.

Parameters:
id - the id of the column to be added
generatedColumn - the Table.ColumnGenerator to use for this column

getColumnGenerator

public Table.ColumnGenerator getColumnGenerator(java.lang.Object columnId)
                                         throws java.lang.IllegalArgumentException
Returns the ColumnGenerator used to generate the given column.

Parameters:
columnId - The id of the generated column
Returns:
The ColumnGenerator used for the given columnId or null.
Throws:
java.lang.IllegalArgumentException

removeGeneratedColumn

public boolean removeGeneratedColumn(java.lang.Object columnId)
Removes a generated column previously added with addGeneratedColumn.

Parameters:
columnId - id of the generated column to remove
Returns:
true if the column could be removed (existed in the Table)

getVisibleItemIds

public java.util.Collection<?> getVisibleItemIds()
Returns item identifiers of the items which are currently rendered on the client.

Note, that some due to historical reasons the name of the method is bit misleading. Some items may be partly or totally out of the viewport of the table's scrollable area. Actually detecting rows which can be actually seen by the end user may be problematic due to the client server architecture. Using getCurrentPageFirstItemId() combined with getPageLength() may produce good enough estimates in some situations.

Overrides:
getVisibleItemIds in class AbstractSelect
See Also:
AbstractSelect.getVisibleItemIds()

containerItemSetChange

public void containerItemSetChange(Container.ItemSetChangeEvent event)
Container datasource item set change. Table must flush its buffers on change.

Specified by:
containerItemSetChange in interface Container.ItemSetChangeListener
Overrides:
containerItemSetChange in class AbstractSelect
Parameters:
event - change event text
See Also:
Container.ItemSetChangeListener.containerItemSetChange(com.vaadin.data.Container.ItemSetChangeEvent)

containerPropertySetChange

public void containerPropertySetChange(Container.PropertySetChangeEvent event)
Container datasource property set change. Table must flush its buffers on change.

Specified by:
containerPropertySetChange in interface Container.PropertySetChangeListener
Overrides:
containerPropertySetChange in class AbstractSelect
Parameters:
event - Change event.
See Also:
Container.PropertySetChangeListener.containerPropertySetChange(com.vaadin.data.Container.PropertySetChangeEvent)

setNewItemsAllowed

public void setNewItemsAllowed(boolean allowNewOptions)
                        throws java.lang.UnsupportedOperationException
Adding new items is not supported.

Overrides:
setNewItemsAllowed in class AbstractSelect
Parameters:
allowNewOptions - the New value of property allowNewOptions.
Throws:
java.lang.UnsupportedOperationException - if set to true.
See Also:
AbstractSelect.setNewItemsAllowed(boolean)

nextItemId

public java.lang.Object nextItemId(java.lang.Object itemId)
Gets the ID of the Item following the Item that corresponds to itemId.

Specified by:
nextItemId in interface Container.Ordered
Parameters:
itemId - ID of a visible Item in the Container
Returns:
ID of the next visible Item or null
See Also:
Container.Ordered.nextItemId(java.lang.Object)

prevItemId

public java.lang.Object prevItemId(java.lang.Object itemId)
Gets the ID of the Item preceding the Item that corresponds to the itemId.

Specified by:
prevItemId in interface Container.Ordered
Parameters:
itemId - ID of a visible Item in the Container
Returns:
ID of the previous visible Item or null
See Also:
Container.Ordered.prevItemId(java.lang.Object)

firstItemId

public java.lang.Object firstItemId()
Gets the ID of the first Item in the Container.

Specified by:
firstItemId in interface Container.Ordered
Returns:
ID of the first visible Item in the Container
See Also:
Container.Ordered.firstItemId()

lastItemId

public java.lang.Object lastItemId()
Gets the ID of the last Item in the Container.

Specified by:
lastItemId in interface Container.Ordered
Returns:
ID of the last visible Item in the Container
See Also:
Container.Ordered.lastItemId()

isFirstId

public boolean isFirstId(java.lang.Object itemId)
Tests if the Item corresponding to the given Item ID is the first Item in the Container.

Specified by:
isFirstId in interface Container.Ordered
Parameters:
itemId - ID of an Item in the Container
Returns:
true if the Item is first visible item in the Container, false if not
See Also:
Container.Ordered.isFirstId(java.lang.Object)

isLastId

public boolean isLastId(java.lang.Object itemId)
Tests if the Item corresponding to the given Item ID is the last Item in the Container.

Specified by:
isLastId in interface Container.Ordered
Returns:
true if the Item is last visible item in the Container, false if not
See Also:
Container.Ordered.isLastId(java.lang.Object)

addItemAfter

public java.lang.Object addItemAfter(java.lang.Object previousItemId)
                              throws java.lang.UnsupportedOperationException
Adds new item after the given item.

Specified by:
addItemAfter in interface Container.Ordered
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.
Throws:
java.lang.UnsupportedOperationException - if the operation is not supported by the container
See Also:
Container.Ordered.addItemAfter(java.lang.Object)

addItemAfter

public Item addItemAfter(java.lang.Object previousItemId,
                         java.lang.Object newItemId)
                  throws java.lang.UnsupportedOperationException
Adds new item after the given item.

Specified by:
addItemAfter in interface Container.Ordered
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.
Throws:
java.lang.UnsupportedOperationException - if the operation is not supported by the container
See Also:
Container.Ordered.addItemAfter(java.lang.Object, java.lang.Object)

setTableFieldFactory

public void setTableFieldFactory(TableFieldFactory fieldFactory)
Sets the TableFieldFactory that is used to create editor for table cells. The TableFieldFactory is only used if the Table is editable. By default the DefaultFieldFactory is used.

Parameters:
fieldFactory - the field factory to set.
See Also:
isEditable(), DefaultFieldFactory

getTableFieldFactory

public TableFieldFactory getTableFieldFactory()
Gets the TableFieldFactory that is used to create editor for table cells. The FieldFactory is only used if the Table is editable.

Returns:
TableFieldFactory used to create the Field instances.
See Also:
isEditable()

isEditable

public boolean isEditable()
Is table editable. If table is editable a editor of type Field is created for each table cell. The assigned FieldFactory is used to create the instances. To provide custom editors for table cells create a class implementins the FieldFactory interface, and assign it to table, and set the editable property to true.

Returns:
true if table is editable, false oterwise.
See Also:
Field, FieldFactory

setEditable

public void setEditable(boolean editable)
Sets the editable property. If table is editable a editor of type Field is created for each table cell. The assigned FieldFactory is used to create the instances. To provide custom editors for table cells create a class implementins the FieldFactory interface, and assign it to table, and set the editable property to true.

Parameters:
editable - true if table should be editable by user.
See Also:
Field, FieldFactory

sort

public void sort(java.lang.Object[] propertyId,
                 boolean[] ascending)
          throws java.lang.UnsupportedOperationException
Sorts the table.

Specified by:
sort in interface Container.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 by Container.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. Use true to sort in ascending order, false to use descending order.
Throws:
java.lang.UnsupportedOperationException - if the container data source does not implement Container.Sortable
See Also:
Container.Sortable.sort(java.lang.Object[], boolean[])

sort

public void sort()
Sorts the table by currently selected sorting column.

Throws:
java.lang.UnsupportedOperationException - if the container data source does not implement Container.Sortable

getSortableContainerPropertyIds

public java.util.Collection<?> getSortableContainerPropertyIds()
Gets the container property IDs, which can be used to sort the item.

Note that the isSortEnabled() state affects what this method returns. Disabling sorting causes this method to always return an empty collection.

Specified by:
getSortableContainerPropertyIds in interface Container.Sortable
Returns:
the IDs of the properties that can be used for sorting the container
See Also:
Container.Sortable.getSortableContainerPropertyIds()

getSortContainerPropertyId

public java.lang.Object getSortContainerPropertyId()
Gets the currently sorted column property ID.

Returns:
the Container property id of the currently sorted column.

setSortContainerPropertyId

public void setSortContainerPropertyId(java.lang.Object propertyId)
Sets the currently sorted column property id.

Parameters:
propertyId - the Container property id of the currently sorted column.

isSortAscending

public boolean isSortAscending()
Is the table currently sorted in ascending order.

Returns:
true if ascending, false if descending.

setSortAscending

public void setSortAscending(boolean ascending)
Sets the table in ascending order.

Parameters:
ascending - true if ascending, false if descending.

isSortDisabled

@Deprecated
public boolean isSortDisabled()
Deprecated. As of 7.0, use isSortEnabled() instead

Is sorting disabled altogether. True iff no sortable columns are given even in the case where data source would support this.

Returns:
True iff sorting is disabled.

isSortEnabled

public boolean isSortEnabled()
Checks if sorting is enabled.

Returns:
true if sorting by the user is allowed, false otherwise

setSortDisabled

@Deprecated
public void setSortDisabled(boolean sortDisabled)
Deprecated. As of 7.0, use setSortEnabled(boolean) instead

Disables the sorting by the user altogether.

Parameters:
sortDisabled - True iff sorting is disabled.

setSortEnabled

public void setSortEnabled(boolean sortEnabled)
Enables or disables sorting.

Setting this to false disallows sorting by the user. It is still possible to call sort().

Parameters:
sortEnabled - true to allow the user to sort the table, false to disallow it

setCellStyleGenerator

public void setCellStyleGenerator(Table.CellStyleGenerator cellStyleGenerator)
Set cell style generator for Table.

Parameters:
cellStyleGenerator - New cell style generator or null to remove generator.

getCellStyleGenerator

public Table.CellStyleGenerator getCellStyleGenerator()
Get the current cell style generator.


addItemClickListener

public void addItemClickListener(ItemClickEvent.ItemClickListener listener)
Description copied from interface: ItemClickEvent.ItemClickNotifier
Register a listener to handle ItemClickEvents.

Specified by:
addItemClickListener in interface ItemClickEvent.ItemClickNotifier
Parameters:
listener - ItemClickListener to be registered

addListener

@Deprecated
public void addListener(ItemClickEvent.ItemClickListener listener)
Deprecated. As of 7.0, replaced by #addItemClickListener(ItemClickListener)

Specified by:
addListener in interface ItemClickEvent.ItemClickNotifier

removeItemClickListener

public void removeItemClickListener(ItemClickEvent.ItemClickListener listener)
Description copied from interface: ItemClickEvent.ItemClickNotifier
Removes an ItemClickListener.

Specified by:
removeItemClickListener in interface ItemClickEvent.ItemClickNotifier
Parameters:
listener - ItemClickListener to be removed

removeListener

@Deprecated
public void removeListener(ItemClickEvent.ItemClickListener listener)
Deprecated. As of 7.0, replaced by #removeItemClickListener(ItemClickListener)

Specified by:
removeListener in interface ItemClickEvent.ItemClickNotifier

setEnabled

public void setEnabled(boolean enabled)
Description copied from interface: Component
Enables or disables the component. The user can not interact disabled components, which are shown with a style that indicates the status, usually shaded in light gray color. Components are enabled by default.
 Button enabled = new Button("Enabled");
 enabled.setEnabled(true); // The default
 layout.addComponent(enabled);
 
 Button disabled = new Button("Disabled");
 disabled.setEnabled(false);
 layout.addComponent(disabled);
 

This method will trigger a RepaintRequestEvent for the component and, if it is a ComponentContainer, for all its children recursively.

Specified by:
setEnabled in interface Component
Overrides:
setEnabled in class AbstractComponent
Parameters:
enabled - a boolean value specifying if the component should be enabled or not

setDragMode

public void setDragMode(Table.TableDragMode newDragMode)
Sets the drag start mode of the Table. Drag start mode controls how Table behaves as a drag source.

Parameters:
newDragMode -

getDragMode

public Table.TableDragMode getDragMode()
Returns:
the current start mode of the Table. Drag start mode controls how Table behaves as a drag source.

getTransferable

public Table.TableTransferable getTransferable(java.util.Map<java.lang.String,java.lang.Object> rawVariables)
Description copied from interface: DragSource
DragSource may convert data added by client side component to meaningful values for server side developer or add other data based on it.

For example Tree converts item identifiers to generated string keys for the client side. Vaadin developer don't and can't know anything about these generated keys, only about item identifiers. When tree node is dragged client puts that key to Transferables client side counterpart. In Tree.getTransferable(Map) the key is converted back to item identifier that the server side developer can use.

Specified by:
getTransferable in interface DragSource
Parameters:
rawVariables - the data that client side initially included in Transferables client side counterpart.
Returns:
the Transferable instance that will be passed to DropHandler (and/or AcceptCriterion)

getDropHandler

public DropHandler getDropHandler()
Specified by:
getDropHandler in interface DropTarget
Returns:
the drop hanler that will receive the dragged data or null if drops are not currently accepted

setDropHandler

public void setDropHandler(DropHandler dropHandler)

translateDropTargetDetails

public AbstractSelect.AbstractSelectTargetDetails translateDropTargetDetails(java.util.Map<java.lang.String,java.lang.Object> clientVariables)
Description copied from interface: DropTarget
Called before the DragAndDropEvent is passed to DropHandler. Implementation may for example translate the drop target details provided by the client side (drop target) to meaningful server side values. If null is returned the terminal implementation will automatically create a TargetDetails with raw client side data.

Specified by:
translateDropTargetDetails in interface DropTarget
Parameters:
clientVariables - data passed from the DropTargets client side counterpart.
Returns:
A DropTargetDetails object with the translated data or null to use a default implementation.
See Also:
DragSource.getTransferable(Map)

setMultiSelectMode

public void setMultiSelectMode(MultiSelectMode mode)
Sets the behavior of how the multi-select mode should behave when the table is both selectable and in multi-select mode.

Note, that on some clients the mode may not be respected. E.g. on touch based devices CTRL/SHIFT base selection method is invalid, so touch based browsers always use the MultiSelectMode.SIMPLE.

Parameters:
mode - The select mode of the table

getMultiSelectMode

public MultiSelectMode getMultiSelectMode()
Returns the select mode in which multi-select is used.

Returns:
The multi select mode

addHeaderClickListener

public void addHeaderClickListener(Table.HeaderClickListener listener)
Adds a header click listener which handles the click events when the user clicks on a column header cell in the Table.

The listener will receive events which contain information about which column was clicked and some details about the mouse event.

Parameters:
listener - The handler which should handle the header click events.

addListener

@Deprecated
public void addListener(Table.HeaderClickListener listener)
Deprecated. As of 7.0, replaced by addHeaderClickListener(HeaderClickListener)


removeHeaderClickListener

public void removeHeaderClickListener(Table.HeaderClickListener listener)
Removes a header click listener

Parameters:
listener - The listener to remove.

removeListener

@Deprecated
public void removeListener(Table.HeaderClickListener listener)
Deprecated. As of 7.0, replaced by removeHeaderClickListener(HeaderClickListener)


addFooterClickListener

public void addFooterClickListener(Table.FooterClickListener listener)
Adds a footer click listener which handles the click events when the user clicks on a column footer cell in the Table.

The listener will receive events which contain information about which column was clicked and some details about the mouse event.

Parameters:
listener - The handler which should handle the footer click events.

addListener

@Deprecated
public void addListener(Table.FooterClickListener listener)
Deprecated. As of 7.0, replaced by addFooterClickListener(FooterClickListener)


removeFooterClickListener

public void removeFooterClickListener(Table.FooterClickListener listener)
Removes a footer click listener

Parameters:
listener - The listener to remove.

removeListener

@Deprecated
public void removeListener(Table.FooterClickListener listener)
Deprecated. As of 7.0, replaced by removeFooterClickListener(FooterClickListener)


getColumnFooter

public java.lang.String getColumnFooter(java.lang.Object propertyId)
Gets the footer caption beneath the rows

Parameters:
propertyId - The propertyId of the column *
Returns:
The caption of the footer or NULL if not set

setColumnFooter

public void setColumnFooter(java.lang.Object propertyId,
                            java.lang.String footer)
Sets the column footer caption. The column footer caption is the text displayed beneath the column if footers have been set visible.

Parameters:
propertyId - The properyId of the column
footer - The caption of the footer

setFooterVisible

public void setFooterVisible(boolean visible)
Sets the footer visible in the bottom of the table.

The footer can be used to add column related data like sums to the bottom of the Table using setColumnFooter(Object propertyId, String footer).

Parameters:
visible - Should the footer be visible

isFooterVisible

public boolean isFooterVisible()
Is the footer currently visible?

Returns:
Returns true if visible else false

addColumnResizeListener

public void addColumnResizeListener(Table.ColumnResizeListener listener)
Adds a column resize listener to the Table. A column resize listener is called when a user resizes a columns width.

Parameters:
listener - The listener to attach to the Table

addListener

@Deprecated
public void addListener(Table.ColumnResizeListener listener)
Deprecated. As of 7.0, replaced by addColumnResizeListener(ColumnResizeListener)


removeColumnResizeListener

public void removeColumnResizeListener(Table.ColumnResizeListener listener)
Removes a column resize listener from the Table.

Parameters:
listener - The listener to remove

removeListener

@Deprecated
public void removeListener(Table.ColumnResizeListener listener)
Deprecated. As of 7.0, replaced by removeColumnResizeListener(ColumnResizeListener)


addColumnReorderListener

public void addColumnReorderListener(Table.ColumnReorderListener listener)
Adds a column reorder listener to the Table. A column reorder listener is called when a user reorders columns.

Parameters:
listener - The listener to attach to the Table

addListener

@Deprecated
public void addListener(Table.ColumnReorderListener listener)
Deprecated. As of 7.0, replaced by addColumnReorderListener(ColumnReorderListener)


removeColumnReorderListener

public void removeColumnReorderListener(Table.ColumnReorderListener listener)
Removes a column reorder listener from the Table.

Parameters:
listener - The listener to remove

removeListener

@Deprecated
public void removeListener(Table.ColumnReorderListener listener)
Deprecated. As of 7.0, replaced by removeColumnReorderListener(ColumnReorderListener)


setItemDescriptionGenerator

public void setItemDescriptionGenerator(AbstractSelect.ItemDescriptionGenerator generator)
Set the item description generator which generates tooltips for cells and rows in the Table

Parameters:
generator - The generator to use or null to disable

getItemDescriptionGenerator

public AbstractSelect.ItemDescriptionGenerator getItemDescriptionGenerator()
Get the item description generator which generates tooltips for cells and rows in the Table.


setRowGenerator

public void setRowGenerator(Table.RowGenerator generator)
Assigns a row generator to the table. The row generator will be able to replace rows in the table when it is rendered.

Parameters:
generator - the new row generator

getRowGenerator

public Table.RowGenerator getRowGenerator()
Returns:
the current row generator

setConverter

public void setConverter(java.lang.Object propertyId,
                         Converter<java.lang.String,?> converter)
Sets a converter for a property id.

The converter is used to format the the data for the given property id before displaying it in the table.

Parameters:
propertyId - The propertyId to format using the converter
converter - The converter to use for the property id

hasConverter

protected boolean hasConverter(java.lang.Object propertyId)
Checks if there is a converter set explicitly for the given property id.

Parameters:
propertyId - The propertyId to check
Returns:
true if a converter has been set for the property id, false otherwise

getConverter

public Converter<java.lang.String,java.lang.Object> getConverter(java.lang.Object propertyId)
Returns the converter used to format the given propertyId.

Parameters:
propertyId - The propertyId to check
Returns:
The converter used to format the propertyId or null if no converter has been set

setVisible

public void setVisible(boolean visible)
Description copied from interface: Component
Sets the visibility of the component.

Visible components are drawn in the user interface, while invisible ones are not. The effect is not merely a cosmetic CSS change - no information about an invisible component will be sent to the client. The effect is thus the same as removing the component from its parent.

 TextField readonly = new TextField("Read-Only");
 readonly.setValue("You can't see this!");
 readonly.setVisible(false);
 layout.addComponent(readonly);
 

A component is visible only if all of its parents are also visible. If a component is explicitly set to be invisible, changes in the visibility of its parents will not change the visibility of the component.

Specified by:
setVisible in interface Component
Overrides:
setVisible in class AbstractComponent
Parameters:
visible - the boolean value specifying if the component should be visible after the call or not.
See Also:
Component.isVisible()

iterator

public java.util.Iterator<Component> iterator()
Description copied from interface: HasComponents
Gets an iterator to the collection of contained components. Using this iterator it is possible to step through all components contained in this container.

Specified by:
iterator in interface HasComponents
Specified by:
iterator in interface java.lang.Iterable<Component>
Returns:
the component iterator.

getComponentIterator

@Deprecated
public java.util.Iterator<Component> getComponentIterator()
Deprecated. As of 7.0, use iterator() instead.



Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.