Wt: Wt::Ext::TableView Class Reference

Wt 3.3.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions
Wt::Ext::TableView Class Reference
Ext widgets (Wt::Ext, deprecated)

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

`#include <Wt/Ext/TableView>`

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

List of all members.

## Public Member Functions
| TableView (WContainerWidget *parent=0)
| Create a new table view.
void | setModel (WAbstractItemModel *model)
| Specify the model.
WAbstractItemModel * | model () 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.
ToolBar * | createPagingToolBar ()
| 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.
Signal & | itemSelectionChanged ()
| 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.

Example of a TableView
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++ type | JavaScript type
WString | string
WDate | Ext.Date
number type | number

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:

- use SelectRows to only select whole rows, and use the method selectedRows() to inspect the current selection.
- or use SelectItems to select (a single) individual item, and use the methods currentColumn(), currentRow(), setCurrentCell() to inspect and modify the current selection.

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