/** * Sets the comparator to be used for sorting. * * @param sortComparator The comparator to be used for sorting. May be null. */ public void setSortComparator(Comparator<?> sortComparator) { if (sortComparator != this.sortComparator) { this.sortComparator = sortComparator; this.sortOrder = SortOrder.UNSORTED; updateClient(); } }
/** * Sort the column according to the sort order property. */ public void sort() { if (!sortColumn) { setSortColumn(true); return; } IListModel<Object> model = sortComparator == null || sortOrder == SortOrder.UNSORTED ? null : getRowsModel(); updateClient(); if (model != null) { @SuppressWarnings("unchecked") Comparator<Object> comparator = sortOrder == SortOrder.NATIVE ? null : (Comparator<Object>) sortComparator; model.sort(comparator, sortOrder != SortOrder.DESCENDING); } }
/** * Sets the sort column state. If set to true, the column is sorted and designated as the * current sort column. * * @param sortColumn If true, this column is sorted and designated as the current sort column. * @param notifyParent If true, update the sort column property of the parent. */ protected void _setSortColumn(boolean sortColumn, boolean notifyParent) { if (propertyChange("sortColumn", this.sortColumn, this.sortColumn = sortColumn, false)) { if (sortColumn) { sort(); } else { updateClient(); } if (notifyParent) { Columns parent = (Columns) getParent(); if (parent != null) { if (sortColumn) { parent.setSortColumn(this); } else if (parent.getSortColumn() == this) { parent.setSortColumn(null); } } } } }