From: Shamshad A. <sha...@gm...> - 2014-04-07 17:33:50
|
--Method Modified in copy of DefaultRowSorter available java swing library-- sort() : replaced Arrays.sort(viewToModel) with sort(table.getSelectedRows()); sortExistingData() : again replaced Arrays.sort(viewToModel) with sort(table.getSelectedRows()); //--Method Added private void sort(int[] selected) { if (selected.length != 0) { Row[] selectedRows = new Row[selected.length]; Row[] remaining = new Row[viewToModel.length - selected.length]; int k = 0; int lastSelectedIndex = selected[selected.length - 1]; for (int i = 0, j = 0; i <= lastSelectedIndex; i++) { if (selected[j] == i) { selectedRows[j++] = viewToModel[i]; } else { remaining[k++] = viewToModel[i]; } } System.arraycopy(viewToModel, lastSelectedIndex + 1, remaining, k, viewToModel.length - lastSelectedIndex - 1); Arrays.sort(selectedRows); Arrays.sort(remaining); System.arraycopy(selectedRows, 0, viewToModel, 0, selectedRows.length); System.arraycopy(remaining, 0, viewToModel, selectedRows.length, remaining.length); } else { Arrays.sort(viewToModel); } } --Everything else is a copy of DefaultRowSorter and TableRowSorter implementation available in java swing-- |