public static JBTable createCheckboxTable()

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;
	}