in src/main/java/org/jetbrains/plugins/spotbugs/common/util/GuiUtil.java [240:276]
public static JBTable createCheckboxTable(
@NotNull final TableModel model,
final int checkboxColumn,
@NotNull final ActionListener swapEnabled
) {
final JBTable ret = new JBTable() {
@Override
public void setRowHeight(final int rowHeight) {
// do not allow this ; JTable#initializeLocalVars set a default value which will set JBTable#myRowHeightIsExplicitlySet
}
};
ret.setModel(model);
ret.setShowGrid(false);
ret.setIntercellSpacing(new Dimension(0, 0));
ret.setTableHeader(null);
ret.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
ret.setColumnSelectionAllowed(false);
final TableColumnModel columnModel = ret.getColumnModel();
final TableColumn column = columnModel.getColumn(checkboxColumn);
TableUtil.setupCheckboxColumn(column);
ret.registerKeyboardAction(
new ActionListener() {
@Override
public void actionPerformed(@NotNull final ActionEvent e) {
final int[] rows = ret.getSelectedRows();
if (rows.length > 0) {
swapEnabled.actionPerformed(e);
final int lastRow = rows[rows.length - 1];
ret.setRowSelectionInterval(lastRow, lastRow);
}
}
},
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0),
JComponent.WHEN_FOCUSED
);
return ret;
}