getFacesContext().renderResponse();
}
private void addRange() {
ScrollableTableDataRange visitedRange = (ScrollableTableDataRange)getComponentState().getRange();
if(ranges == null){
ranges = new ArrayList<ScrollableTableDataRange>();
}
Iterator<ScrollableTableDataRange> iter = ranges.iterator();
ScrollableTableDataRange range = null;
while (iter.hasNext() && range == null) {
ScrollableTableDataRange temp = iter.next();
if (temp.getLast() >= visitedRange.getFirst()) {
range = temp;
}
}
if (range != null) {
if (range.getFirst() > visitedRange.getLast()) {
ranges.add(0, visitedRange);
} else {
if (range.getFirst() > visitedRange.getFirst()) {
range.setFirst(visitedRange.getFirst());
}
if (range.getLast() < visitedRange.getLast()) {
ScrollableTableDataRange nextRange = null;
if (iter.hasNext()) {
nextRange = iter.next();
}
if (nextRange != null && nextRange.getFirst() <= visitedRange.getLast()) {
range.setLast(nextRange.getLast());
} else {
range.setLast(visitedRange.getLast());
}
}
}