ValueExpression filterByVE = column.getValueExpression(Column.PropertyKeys.filterBy.toString());
writer.endElement("label"); if (column.getValueExpression(Column.PropertyKeys.filterOptions.toString()) == null) { filterStyleClass = filterStyleClass == null ? DataTable.COLUMN_INPUT_FILTER_CLASS
String clientId = column.getContainerClientId(context); ValueExpression columnSortByVE = column.getValueExpression(Column.PropertyKeys.sortBy.toString()); ValueExpression columnFilterByVE = column.getValueExpression(Column.PropertyKeys.filterBy.toString()); boolean sortable = (columnSortByVE != null && column.isSortable()); boolean filterable = (columnFilterByVE != null && column.isFilterable());
ValueExpression sortByVE = sortColumn.getValueExpression(Column.PropertyKeys.sortBy.toString()); table.setValueExpression(DataTable.PropertyKeys.sortBy.toString(), sortByVE); table.setSortColumn(sortColumn);
Column column = (Column) headerRowChild; if (column.isRendered()) { ValueExpression filterVE = column.getValueExpression(Column.PropertyKeys.filterBy.toString()); if (filterVE != null) { UIComponent filterFacet = column.getFacet("filter"); dynaColumn.applyStatelessModel(); if (dynaColumn.isRendered()) { ValueExpression filterVE = dynaColumn.getValueExpression(Column.PropertyKeys.filterBy.toString()); if (filterVE != null) { String filterId = dynaColumn.getContainerClientId(context) + separator + "filter";
public void multiSort(FacesContext context, DataTable table) { Object value = table.getValue(); if (value == null) { return; } List<SortMeta> sortMeta = table.getMultiSortMeta(); List list = resolveList(value); boolean caseSensitiveSort = table.isCaseSensitiveSort(); Locale locale = table.resolveDataLocale(); int nullSortOrder = table.getNullSortOrder(); ChainedBeanPropertyComparator chainedComparator = new ChainedBeanPropertyComparator(); for (SortMeta meta : sortMeta) { BeanPropertyComparator comparator; UIColumn sortColumn = meta.getColumn(); ValueExpression sortByVE = sortColumn.getValueExpression(Column.PropertyKeys.sortBy.toString()); if (sortColumn.isDynamic()) { ((DynamicColumn) sortColumn).applyStatelessModel(); comparator = new DynamicChainedPropertyComparator( (DynamicColumn) sortColumn, sortByVE, table.getVar(), meta.getSortOrder(), sortColumn.getSortFunction(), caseSensitiveSort, locale, nullSortOrder); } else { comparator = new BeanPropertyComparator(sortByVE, table.getVar(), meta.getSortOrder(), sortColumn.getSortFunction(), caseSensitiveSort, locale, nullSortOrder); } chainedComparator.addComparator(comparator); } Collections.sort(list, chainedComparator); context.getApplication().publishEvent(context, PostSortEvent.class, table); }
@Override public void processUpdates(FacesContext context) { super.processUpdates(context); ValueExpression selectionVE = getValueExpression(PropertyKeys.selection.toString()); if (selectionVE != null) { selectionVE.setValue(context.getELContext(), getLocalSelection()); setSelection(null); } List<FilterMeta> filterMeta = getFilterMetadata(); if (filterMeta != null && !filterMeta.isEmpty()) { ELContext eLContext = context.getELContext(); for (FilterMeta fm : filterMeta) { UIColumn column = fm.getColumn(); ValueExpression columnFilterValueVE = column.getValueExpression(Column.PropertyKeys.filterValue.toString()); if (columnFilterValueVE != null) { if (column.isDynamic()) { DynamicColumn dynamicColumn = (DynamicColumn) column; dynamicColumn.applyStatelessModel(); columnFilterValueVE.setValue(eLContext, fm.getFilterValue()); dynamicColumn.cleanStatelessModel(); } columnFilterValueVE.setValue(eLContext, fm.getFilterValue()); } } } }
private void populateFilterMetaDataWithoutColumnGroups(FacesContext context, DataTable table, List<FilterMeta> filterMetadata, Map<String, String> params, String separator) { for (UIColumn column : table.getColumns()) { ValueExpression filterVE = column.getValueExpression(Column.PropertyKeys.filterBy.toString()); if (filterVE != null) { UIComponent filterFacet = column.getFacet("filter"); Object filterValue = null; String filterId; if (column instanceof Column) { filterId = column.getClientId(context) + separator + "filter"; filterValue = (filterFacet == null) ? params.get(filterId) : ((ValueHolder) filterFacet).getLocalValue(); } else if (column instanceof DynamicColumn) { DynamicColumn dynamicColumn = (DynamicColumn) column; dynamicColumn.applyModel(); filterId = dynamicColumn.getContainerClientId(context) + separator + "filter"; filterValue = (filterFacet == null) ? params.get(filterId) : ((ValueHolder) filterFacet).getLocalValue(); dynamicColumn.cleanModel(); } filterMetadata.add(new FilterMeta(column, filterVE, filterValue)); } } }
protected List<String> getSortableHeadersText(FacesContext context, DataTable table) { List<UIColumn> columns = table.getColumns(); List<String> headersText = new ArrayList<>(); ValueExpression columnSortByVE = null; boolean sortable = false; for (UIColumn column : columns) { columnSortByVE = column.getValueExpression(Column.PropertyKeys.sortBy.toString()); sortable = (columnSortByVE != null && column.isSortable()); if (sortable) { String headerText = getHeaderLabel(context, column); if (headerText != null) { headersText.add(headerText); } } } return headersText; } }