public void addSortInfo(String sortColumn, boolean sortAscending) { SortInfo sortInfo = new SortInfo(sortColumn, sortAscending); List<SortInfo> sortInfos = getSortInfos(); if (sortInfos == null) { setSortInfo(sortInfo); } else { sortInfos.add(sortInfo); setSortInfos(sortInfos); } }
public void setSortInfo(String sortColumn, boolean sortAscending, boolean removeOtherSortInfos) { if (removeOtherSortInfos) { SortInfo sortInfo = new SortInfo(sortColumn, sortAscending); setSortInfo(sortInfo); } else { if (getSortInfoIndex(sortColumn, sortAscending) != -1) { // do nothing: sort on this column is not set } else if (getSortInfoIndex(sortColumn, !sortAscending) != -1) { // change direction List<SortInfo> newSortInfos = new ArrayList<SortInfo>(); for (SortInfo sortInfo : getSortInfos()) { if (sortColumn.equals(sortInfo.getSortColumn())) { newSortInfos.add(new SortInfo(sortColumn, sortAscending)); } else { newSortInfos.add(sortInfo); } } setSortInfos(newSortInfos); } else { // just add it addSortInfo(sortColumn, sortAscending); } } }