Column

compared with
Current by Ken Fyten
on Nov 13, 2014 12:01.


 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 32 changes. View first change.

 h3. Overview
 _Column_ renders an HTML td element.
  h2. Overview
 _Since 3.0_
  
Features of the table and dependant components include:
 * Cell Selection, Multiple and Single
 * Row Selection, Multiple and Single
  The _ace:Column_ renders a HTML td element representing a single column of data in the rows of the iterating parent DataTable.
  
 Features of the column and interacting components include:
 * Row Editing
 * Row Panel Expansion
 * Row Sub-row Expansion
* Per-Row Feature Configuration
 * Filtering, Per-Column and Global
 * Sorting, Multiple and Single Column
 * Column Reordering
 * Column Resizing
  * Filtering
 * Sorting
 * Column Visibility
 * Column Stacking
 * Column Configuration Panel
* Pagination
 * Scrolling (incl. Lazy Mode)
 * Lazy Loading Integration
 * Select, Edit and Filter Event Listeners
  * Edit and Filter Event Listeners
 * Column, Row Spanning Headers & Footers
 * Optional Application-bound State
** Rows (selection, expansion, etc.)
  ** Filtering
  ** Sorting
  ** Column Reordering
  ** Pagination
  ** Filtering
 ** Sorting
  
  
 
  
 h3. General Usage
  h2. Getting Started
 {code}
<ice:column headerText="Expansion">
  <ice:expansionToggler />
  </ice:column>
  
  <ice:column headerText="UPC">
  <h:outputText value="#{track.upc}"/>
  </ice:column>
  
  <ice:column headerText="Artist">
  <h:outputText value="#{track.artist}" />
  </ice:column>
  
  <ice:column headerText="Album">
  <h:outputText value="#{track.album}"/>
  </ice:column>
  
  <ice:column headerText="Name">
  <h:outputText value="#{track.name}"/>
  </ice:column>
   <ace:dataTable var="track" value="#{bean.tracks}">
  <ace:column headerText="Album">
  <h:outputText value="#{track.album}"/>
  </ace:column>
  </ace:dataTable>
 {code}
  
  
  
  
 
 h3. Component Documentation
  
 {info:title=TLD Documentation}This section covers attributes signifigant to the conventional row selection / pagination / expandable panel sample above. For further reference on the features listed in the overview, see the [related components section|DataTable#related], the [section related to lazy loading|DataTable#lazy] and the [complete taglib|http://www.icefaces.org/docs/v2_latest/ace/tld/ace/dataTable.html] & [API] documentation for this component.{info}
  
  h2. Attributes
 {tip:title=TagLib Documentation}This section covers attributes involved in the typical use-cases for this component. For reference, the complete taglib documentation for this component is available [here|http://www.icefaces.org/docs/v4_latest/ace/tld/ace/column.html].{tip}
 {panel}
*var* - Name of a request-scope attribute under which the model data for the current row will be exposed.
  *sortBy* \- Value expression defining the object this column will sort by.
 {code:xml|borderStyle=dashed} <ace:column sortBy="#{track.album}">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
 
 {panel}
*value* - The model data for this table. Expected type is a List or DataModel. Lazy loading requires an instance of the LazyDataModel object. Sub-row expansion requires a model of type List<Map.Entry<Object, List>> where the Entry object make up the nodes of a tree; with the key being the value, and the List as possible child nodes.
 {panel}
  
  *sortFunction* \- Value expression for a Comparator<Object> that will be used to sort the objects referred to by *sortBy*. If this property is not defined, it is assumed that the objects referred to by *sortBy* implement the Comparable interface.
 {code:xml|borderStyle=dashed} <ace:column sortBy="#{track.album}" sortFunction="#{bean.albumCustomSortFunction}">
  <h:outputText value="#{track.album.name}"/>
  </ace:column>
 {code}
 {panel}
*stateMap* - Optionally application-bound RowStateMap object. Instantiated by the user or the component, allows app-level manipulation of row properties like selectability, visibility and expansion. Maps from table model objects to RowState objects that keep state for component features. See the [RowStateMap API] for full details.
 {panel}
 
  *sortPriority* \- Priority of this column among columns of a multi-column sort, starting at 1. Available for binding in situations of application initated or application persisted sorted states. Having a non-null priority enables sorting for this column when applyFilters() is called on the DataTable.
 {code:xml|borderStyle=dashed} <ace:column sortBy="#{track.album}" sortPriority="#{bean.albumSortPriority}" >
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
*paginator* - Boolean indicating the use of pagination on this table. Default is false.
 {panel}
  
 {panel}
*rows* - Number of rows to display per page. Default is 0, to show all rows.
  *sortAscending* \- Boolean value indicating if this sorted (as indicated by a set *sortPriority*) column is ascending.
 {code:xml|borderStyle=dashed} <ace:column sortBy="#{track.album}" sortAscending="#{bean.albumSortAscending}">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
 
 {panel}
*update* - Space separated list of component id(s) to be updated following row selection or deselection. These can be independently set using the *onRowSelectionUpdate* and *onRowUnselectionUpdate*.
  *filterBy* \- Value expression defining the object this column will filter by.
 {code:xml|borderStyle=dashed} <ace:column filterBy="#{track.album}">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
 
 {panel}
*rowSelectListener* - Method reference called whenever a table element is selected. The method receives a single argument, SelectEvent.
  *filterValue* \- Value of the filter input field. The input that will be used to filter the objects defined by *filterBy*.
 {code:xml|borderStyle=dashed} <ace:column filterBy="#{track.album}" filterValue="#{bean.albumFilterInput}">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
 
 {panel}
*rowUnselectListener* - Method reference called whenever a table element is selected. The method receives a single argument, UnselectEvent.
 {panel}
  
  *filterOptions* \- A collection of SelectItem objects for use as filter choices.
 Managed Bean:
 {code:java|borderStyle=dashed} public List<SelectItem> filterOptions = new ArrayList<SelectItem>() {{
  add(new SelectItem("Van"));
  add(new SelectItem("Bus"));
  add(new SelectItem("Compact"));
  add(new SelectItem("Semi-Truck"));
  add(new SelectItem("Pickup"));
  }};
 {code}
 Facelet Markup:
 {code:xml|borderStyle=dashed} <ace:column filterBy="#{track.albumn}" filterOptions="#{bean.filterOptions}">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
*onRowSelectComplete* - A Javascript statement to evaluate following a ajax row selection event. The above uses the included ICEfaces jQuery implementation to highlight the updated component.
 {panel}
 
  *filterMatchMode* \- Method of String comparison used to evaluate the filter, types available include: "contains", "exact", "startsWith", "endsWith". Defaults to "startsWith".
 {code:xml|borderStyle=dashed} <ace:column filterBy="#{track.albumn}" filterMatchMode="exact">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
 {panel}
 *rowspan* \- Defines the number of Row objects this Column should span. Only relevant on a Column used inside a ColumnGroup and Row component.
 {code:xml|borderStyle=dashed} <ace:columnGroup type="header">
  <ace:row>
  <ace:column colSpan="2">
  Track
  </ace:column>
  <ace:column rowSpan="2">
  Download
  </ace:column>
  </ace:row>
  <ace:row>
  <ace:column>
  Artist
  </ace:column>
  <ace:column>
  Album
  </ace:column>
  </ace:row>
  </ace:columnGroup>
 {code}
 {panel}
 {panel}
 *colspan* \- Defines the number of TD elements this Column should span. Only relevant on a Column used inside a ColumnGroup and Row component.
 {code:xml|borderStyle=dashed} <ace:columnGroup type="header">
  <ace:row>
  <ace:column colSpan="2">
  Track
  </ace:column>
  </ace:row>
  <ace:row>
  <ace:column>
  Artist
  </ace:column>
  <ace:column>
  Album
  </ace:column>
  </ace:row>
  </ace:columnGroup>
 {code}
 {panel}
 {panel}
 *headerText* \- A plain text header with less effort than adding a facet. Note that even when using a header facet this property should also be set as a short-form label for the column that will be used within the ace:tableConfigPanel.")
  
{code:xml|borderStyle=dashed} <ace:column headerText="Album">
  <h:outputText value="#{track.album}"/>
  </ace:column>
 {code}
 {panel}
  
{info:title=Component Documentation}This section covers components signifigant to the conventional row selection / pagination / expandable panel sample above. For further reference on the features listed in the overview, see the [related components section|DataTable#related], the [section related to lazy loading|DataTable#lazy] and the [complete taglib|http://www.icefaces.org/docs/v2_latest/ace/tld/ace/dataTable.html] & [API] documentation for this component.{info}
  
  {info:title=Component Documentation}This section covers components signifigant to the conventional row selection / pagination / expandable panel sample above. For further reference on the features listed in the overview, see the [related components section|DataTable#related], the [section related to lazy loading|DataTable#lazy] and the [complete taglib|http://www.icefaces.org/docs/v3_latest/ace/tld/ace/dataTable.html] & [API] documentation for this component.{info}
 {panel}
_column_ - Renders a td element (unless stacked) that represents a single column of data within a parent DataTable container. Stacking a column causes it render in the bottom half of the column previous to it. HeaderText defines a simple header in lieu of a facet or _ColumnGroup_.
 {panel}
  [_TableConfigPanel_|TableConfigPanel] \- Renders a panel allowing the configuration of Column features, like visibility, filtering, sorting and column order in a single compact control.
 {panel}
 h2. Known Issues
  
{anchor:related}
  
h3. JavaScript APIs / Client Behaviours
  h2. Related Components
  
Not applicable to this component. It has no JS instance of it's own, rather being part of the overall DataTable JS object.
  
 {anchor:lazy}
 h3. Lazy Loading
  
 {anchor:related}
 h3. Related Components
 * _[DataTable|DataTable]_
 * _[ColumnGroup|ColumnGroup]_
* _[CellEditor|CellEditor]_
  * _[CellEditor|CellEditor]_
 * _[Row|Row]_
* _[RowEditor|RowEditor]_
  * _[RowEditor|RowEditor]_
 * _[ExpansionToggler|ExpansionToggler]_
 * _[TableConfigPanel|TableConfigPanel]_
 * _[DataExporter|DataExporter]_
  
 h3. Keyboard and ARIA support
 The only feature using keyboard navigation on the column is editing.
  
 h3. Known Issues
  
 h3. Other Resources

© Copyright 2018 ICEsoft Technologies Canada Corp.