/** Save state to the PreferencesExt. */ public void saveState(PreferencesExt store) { if (store == null) return; int ncols = table.getColumnCount(); int[] size = new int[ncols]; int[] modelIndex = new int[ncols]; TableColumnModel tcm = table.getColumnModel(); for (int i = 0; i < ncols; i++) { TableColumn tc = tcm.getColumn(i); size[i] = tc.getWidth(); modelIndex[i] = tc.getModelIndex(); } store.putBeanObject("ColumnWidths", size); store.putBeanObject("ColumnOrder", modelIndex); store.putInt("SortOnCol", model.getSortCol()); store.putBoolean("SortReverse", model.getReverse()); store.putBoolean("isThreadsOn", model.isThreadsOn()); if (debug) { System.out.println(" store widths = "); for (int i = 0; i < size.length; i++) System.out.print(" " + size[i]); System.out.println(); } }
/** this array translates the column index to the model index */ public int[] getModelIndex() { int[] modelIndex = new int[model.getColumnCount()]; try { TableColumnModel tcm = table.getColumnModel(); for (int i = 0; i < model.getColumnCount(); i++) { TableColumn tc = tcm.getColumn(i); modelIndex[i] = tc.getModelIndex(); } } catch (java.lang.ArrayIndexOutOfBoundsException e) { // can happen when model size increases } return modelIndex; }