Public Member Functions | Static Public Member Functions

Wt::Ext::TableView Class Reference
[Ext widgets]

A widget that displays data in a table. More...

#include <Wt/Ext/TableView>

Inheritance diagram for Wt::Ext::TableView:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 TableView (WContainerWidget *parent=0)
 Create a new table view.
void setModel (WAbstractItemModel *model)
 Specify the model.
WAbstractItemModelmodel () const
 Return the model.
void resizeColumnsToContents (bool onResize=false)
 Let the table view resize columns to fit their contents.
void setAutoExpandColumn (int column, int minWidth=50, int maxWidth=1000)
 Set the column which will auto-expand to take the remaining space.
int autoExpandColumn () const
 Return the column index of the column that auto-expands.
void setDataLocation (DataLocation dataLocation)
 Configure the location of the data.
void setColumnsMovable (bool movable)
 Allow the user to move columns using drag and drop.
bool columnsMovable () const
 Return if columns are movable.
void setAlternatingRowColors (bool enable)
 Render rows with alternating colors.
bool alternatingRowColors () const
 Return if rows are rendered with alternating colors.
void setHighlightMouseOver (bool highlight)
 Configure if the row under the mouse will be highlighted.
bool highlightMouseOver () const
 Return if the row under the mouse will be highlighted.
void setColumnHidden (int column, bool hide)
 Change the visibility of a column.
bool isColumnHidden (int column) const
 Return if a column is hidden.
void hideColumn (int column)
 Hide a column.
void showColumn (int column)
 Show a column.
void setColumnWidth (int column, int pixels)
 Set the column width (in pixels) for a column.
int columnWidth (int column) const
 Return the column width.
void setColumnAlignment (int column, AlignmentFlag alignment)
 Set the horizontal content alignment of a column.
AlignmentFlag columnAlignment (int column) const
 Return the horizontal content alignment of a column.
void setColumnSortable (int column, bool sortable)
 Allow a column to be sorted by the user.
bool isColumnSortable (int column) const
 Return if a column is sortable.
void enableColumnHiding (int column, bool enable)
 Allow a column to be hidden through its context menu.
bool isColumnHidingEnabled (int column) const
 Return if a column may be hidden through its context menu.
void setEditor (int column, FormField *editor)
 Configure an editor for the given column.
void setRenderer (int column, const std::string &rendererJS)
 Configure a custom renderer for the given column.
void setPageSize (int pageSize)
 Configure a page size to browse the data page by page.
int pageSize () const
 Return the page size.
ToolBarcreatePagingToolBar ()
 Create a paging tool bar.
virtual void refresh ()
 Refresh the widget.
void setCurrentCell (int row, int column)
 Give a cell focus.
int currentRow () const
 Return the index of the row currently selected.
int currentColumn () const
 Return the index of the column currently selected.
const std::vector< int > & selectedRows ()
 The list of rows that are currently selected.
void clearSelection ()
 Clear the current selection.
SelectionMode selectionMode () const
 Return the current selection mode.
void setSelectionMode (SelectionMode mode)
 Set the selection mode.
void setSelectionBehavior (SelectionBehavior behavior)
 Set the selection behaviour.
SelectionBehavior selectionBehavior () const
 Return the current selection behaviour.
Signal< int, int > & cellClicked ()
 Signal emitted when a cell is clicked.
Signal< int, int, int, int > & currentCellChanged ()
 Signal emitted when a new cell received focus.
SignalitemSelectionChanged ()
 Signal emitted when the selection changes.

Static Public Member Functions

static std::string dateRenderer (const WString &format)
 Create a date renderer for the given format.

Detailed Description

A widget that displays data in a table.

This class is an MVC view widget, which works in conjunction with a WAbstractItemModel for the data. The model may be set (and changed) using setModel().

The widget may be configured to allow the user to hide or resize columns, sort on column data, or reorder columns using drag&drop.

By default, the table is not editable. Use setEditor() to specify a form field that may be used for inline editing for a particular column. Changes are then reflected in the model().

The table supports single and multiple selection modes, that work on a row-level, or cell-level. The latter option is enforced when the table is editable.

By default, the data of the model is stored client-side, but this may be changed using setDataLocation() to be server-side. The latter option allows, in conjunction with a paging tool bar (see createPagingToolBar()) to support viewing (and editing) of large data sets.

Although TableView inherits from Container (through Panel), specifying a layout for adding or removing widgets is not supported. The Panel methods to specify tool bars, titles, and buttons are however supported.

ExtTableView-1.png

Example of a TableView

ExtTableView-2.png

Example of a editing in a TableView using a ComboBox

CSS

A TableView has the table.x-grid3-row-table style classes.


Constructor & Destructor Documentation

Wt::Ext::TableView::TableView ( WContainerWidget parent = 0 )

Create a new table view.

You should specify a model using setModel(WAbstractItemModel *).


Member Function Documentation

bool Wt::Ext::TableView::alternatingRowColors (  ) const

Return if rows are rendered with alternating colors.

See also:
setAlternatingRowColors(bool)
Signal<int, int>& Wt::Ext::TableView::cellClicked (  )

Signal emitted when a cell is clicked.

The signal arguments are row and column of the cell that is clicked.

See also:
currentCellChanged()
void Wt::Ext::TableView::clearSelection (  )

Clear the current selection.

See also:
setCurrentCell(int, int)
AlignmentFlag Wt::Ext::TableView::columnAlignment ( int  column ) const

Return the horizontal content alignment of a column.

See also:
setColumnAlignment(int, AlignmentFlag)
bool Wt::Ext::TableView::columnsMovable (  ) const

Return if columns are movable.

See also:
setColumnsMovable(bool)
int Wt::Ext::TableView::columnWidth ( int  column ) const

Return the column width.

See also:
setColumnWidth(int, int)
ToolBar * Wt::Ext::TableView::createPagingToolBar (  )

Create a paging tool bar.

Create a toolbar that provides paging controls for this table. You should configure the page size using setPageSize(int).

See also:
setPageSize(int), setDataLocation(DataLocation)
setBottomToolBar(ToolBar *), setTopToolBar(ToolBar *)
Signal<int, int, int, int>& Wt::Ext::TableView::currentCellChanged (  )

Signal emitted when a new cell received focus.

This signal is only emitted when selectionBehavior() is SelectItems. The four arguments are row, column, prevrow, prevcolumn which hold respectively the location of the new focussed cell, and the previously focussed cell.

Values of -1 indicate 'no selection'.

int Wt::Ext::TableView::currentColumn (  ) const

Return the index of the column currently selected.

See also:
currentRow(), setCurrentCell(int, int)
int Wt::Ext::TableView::currentRow (  ) const

Return the index of the row currently selected.

See also:
currentColumn(), setCurrentCell(int, int)
std::string Wt::Ext::TableView::dateRenderer ( const WString format ) [static]

Create a date renderer for the given format.

The result is a JavaScript function that renders WDate (or more precisely, Ext.Date) values according to the given format, for use in setRenderer()

See also:
setRenderer()
WDate::toString(const WString& format)
void Wt::Ext::TableView::enableColumnHiding ( int  column,
bool  enable 
)

Allow a column to be hidden through its context menu.

See also:
isColumnHidingEnabled(int)
void Wt::Ext::TableView::hideColumn ( int  column )

Hide a column.

See also:
showColumn(int), setColumnHidden(int, bool)
bool Wt::Ext::TableView::isColumnHidden ( int  column ) const

Return if a column is hidden.

See also:
setColumnHidden(int, bool)
bool Wt::Ext::TableView::isColumnHidingEnabled ( int  column ) const

Return if a column may be hidden through its context menu.

See also:
enableColumnHiding(int, bool)
bool Wt::Ext::TableView::isColumnSortable ( int  column ) const

Return if a column is sortable.

See also:
setColumnSortable(int, bool)
Signal& Wt::Ext::TableView::itemSelectionChanged (  )

Signal emitted when the selection changes.

See also:
currentRow(), currentColumn() when selectionBehavior() is SelectItems
selectedRows() when selectionBehavior() is SelectRows.
WAbstractItemModel* Wt::Ext::TableView::model (  ) const

Return the model.

See also:
setModel(WAbstractItemModel *)
int Wt::Ext::TableView::pageSize (  ) const

Return the page size.

See also:
setPageSize(int)
void Wt::Ext::TableView::refresh (  ) [virtual]

Refresh the widget.

The refresh method is invoked when the locale is changed using WApplication::setLocale() or when the user hit the refresh button.

The widget must actualize its contents in response.

Reimplemented from Wt::Ext::Panel.

void Wt::Ext::TableView::resizeColumnsToContents ( bool  onResize = false )

Let the table view resize columns to fit their contents.

By default, columns are sized using the column sizes that are provided. Using this method, this is changed to let columns expand to fit the entire table. By setting onResize, this is done also whenever the entire table or one of the columns is resized.

const std::vector<int>& Wt::Ext::TableView::selectedRows (  )

The list of rows that are currently selected.

This is the way to retrieve the list of currently selected rows when selectionBehavior() is SelectRows. This list is always empty when selectionBehavior() is SelectItems and you should use currentRow() and currentColumn() instead.

SelectionBehavior Wt::Ext::TableView::selectionBehavior (  ) const

Return the current selection behaviour.

See also:
selectionBehavior()
SelectionMode Wt::Ext::TableView::selectionMode (  ) const

Return the current selection mode.

See also:
setSelectionMode(SelectionMode)
void Wt::Ext::TableView::setAlternatingRowColors ( bool  enable )

Render rows with alternating colors.

By defaults, all rows are rendered using the same color.

See also:
alternatingRowColors()
void Wt::Ext::TableView::setAutoExpandColumn ( int  column,
int  minWidth = 50,
int  maxWidth = 1000 
)

Set the column which will auto-expand to take the remaining space.

By default the last column will do that.

void Wt::Ext::TableView::setColumnAlignment ( int  column,
AlignmentFlag  alignment 
)

Set the horizontal content alignment of a column.

The default value is AlignLeft. The alignment parameter is a horizontal alignment flag.

void Wt::Ext::TableView::setColumnHidden ( int  column,
bool  hide 
)

Change the visibility of a column.

See also:
isColumnHidden(int), enableColumnHiding(int, bool)
void Wt::Ext::TableView::setColumnsMovable ( bool  movable )

Allow the user to move columns using drag and drop.

Setting movable to true, enables the user to move columns around by drag and drop.

Note: this currently breaks the CellSelection mode to record the view column number, but not the data column number.

See also:
columnsMovable()
void Wt::Ext::TableView::setColumnSortable ( int  column,
bool  sortable 
)

Allow a column to be sorted by the user.

See also:
isColumnSortable(int)
void Wt::Ext::TableView::setColumnWidth ( int  column,
int  pixels 
)

Set the column width (in pixels) for a column.

See also:
columnWidth(int)
void Wt::Ext::TableView::setCurrentCell ( int  row,
int  column 
)

Give a cell focus.

When selectionBehavior() is SelectRows, only the row argument is used, and the effect is to select a particular row.

Even when selectionMode() is ExtendedSelection, this method will first clear selection, and the result is that the given row,column will be the only selected cell.

See also:
currentRow(), currentColumn(), currentCellChanged() signal
setSelectionMode(SelectionMode), setSelectionBehavior(SelectionBehavior)
void Wt::Ext::TableView::setDataLocation ( DataLocation  dataLocation )

Configure the location of the data.

By default, data is stored at the client, and therefore entirely transmitted when rendering the table for the first time. Alternatively, the data may be kept at the server. Unless a paging tool bar is configured however, this will still cause the entire table to be anyway, after the table is rendered. When a paging tool bar is configured, only a single page of data is displayed, and transmitted, giving the best performance for big data sets.

See also:
createPagingToolBar()
void Wt::Ext::TableView::setEditor ( int  column,
FormField editor 
)

Configure an editor for the given column.

Sets an inline editor that will be used to edit values in this column. The edited value will be reflected in the data model.

When configuring an editor, the selectionBehaviour() is set to SelectItems mode.

See also:
LineEdit, NumberField, DateField, ComboBox
void Wt::Ext::TableView::setHighlightMouseOver ( bool  highlight )

Configure if the row under the mouse will be highlighted.

By default, the row under the mouse is not highlighted.

See also:
highlightMouseOver()
void Wt::Ext::TableView::setModel ( WAbstractItemModel model )

Specify the model.

You can change the model at any time, with the contraint that you should keep the same column configuration.

You may also reset the same model. This will result in retransmission of the model from scratch. In some cases, this could result in a higher preformance when you have removed many rows or modified a lot of data.

void Wt::Ext::TableView::setPageSize ( int  pageSize )

Configure a page size to browse the data page by page.

By setting a pageSize that is different from -1, the table view will display only single pages of the whole data set. You should probably add a paging tool bar to allow the user to scroll through the pages.

See also:
pageSize(), createPagingToolBar()
void Wt::Ext::TableView::setRenderer ( int  column,
const std::string &  rendererJS 
)

Configure a custom renderer for the given column.

Sets a JavaScript function to render values in the given column. The JavaScript function takes one argument (the value), which has a type that corresponds to the C++ type:

C++ typeJavaScript type
WStringstring
WDateExt.Date
number typenumber

An example of rendererJS for numerical data, which renders positive values in green and negative values in red could be:

 function change(val) {
   if (val > 0){
     return '<span style="color:green;">' + val + '</span>';
   } else if(val < 0) {
     return '<span style="color:red;">' + val + '</span>';
   }
   return val;
 }
See also:
dateRenderer()
void Wt::Ext::TableView::setSelectionBehavior ( SelectionBehavior  behavior )

Set the selection behaviour.

The selection behavior defines the unit of selection. The selection behavior also determines the set of methods that must be used to inspect the current selection.

You may either:

void Wt::Ext::TableView::setSelectionMode ( SelectionMode  mode )

Set the selection mode.

The selection mode determines if no, only one, or multiple items may be selected.

When selectionBehavior() is SelectItems, ExtendedSelection is not supported.

void Wt::Ext::TableView::showColumn ( int  column )

Show a column.

See also:
hideColumn(int), setColumnHidden(int, bool)
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator

Generated on Fri Jul 8 2011 for the C++ Web Toolkit (Wt) by doxygen 1.7.2