Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

26
LINES

< > BotCompany Repo | #1001537 // setTableModel - tries to preserve selection & column widths

JavaX fragment (include)

static Map<JTable, VF1<JTable>> setTableModel_after = weakHashMap();
static Map<JTable, VF2<JTable, RowSorter>> setTableModel_fixSorter = weakHashMap();

static void setTableModel(final JTable table, final TableModel model) {
  swing {
    Map<S, Int> widths = tableColumnWidthsByName(table);
    int[] i = table.getSelectedRows();
    TableRowSorter sorter = model.getColumnCount() == tableColumnCount(table) ? (TableRowSorter) table.getRowSorter() : null;
    L<? extends RowSorter.SortKey> sortKeys = sorter == null ? null : sorter.getSortKeys();
    table.setModel(model);
    int n = model.getRowCount();
    ListSelectionModel sel = table.getSelectionModel();
    for (int j = 0; j < i.length; j++)
      if (i[j] < n)
        sel.addSelectionInterval(i[j], i[j]);
    tableSetColumnPreferredWidths(table, widths);
    if (sorter != null) {
      sorter.setModel(model);
      callF(setTableModel_fixSorter.get(table), table, sorter);
      //print("Keeping sorter: " + sorter + " Sort keys: " + sortKeys);
      if (sortKeys != null) sorter.setSortKeys(sortKeys);
    }
    table.setRowSorter(sorter);
    callF(setTableModel_after.get(table), table);
  }
}

download  show line numbers  debug dex  old transpilations   

Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1001537
Snippet name: setTableModel - tries to preserve selection & column widths
Eternal ID of this version: #1001537/22
Text MD5: b95f2e417a7e7ab38e85985887446523
Author: stefan
Category:
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2018-11-07 01:29:38
Source code size: 1191 bytes / 26 lines
Pitched / IR pitched: No / No
Views / Downloads: 818 / 1260
Version history: 21 change(s)
Referenced in: [show references]