can you pleas help me to select one row on right click in row header table.
the use case is to click right on the row header table than to
select the row in row header table and data table
and edit the row in data table.
- Code: Select all
rowHeaderTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e) ) {
final PivotTablePane pivotTablePane = activePivotTable.getPivotTablePane();
final JideTable rowHeaderTable = (JideTable) activePivotTable.getPivotTablePane().getRowHeaderTable();
final JTable dataTable = pivotTablePane.getDataTable();
//this works, listener get invoked
//rowHeaderTable.selectAll();
//dataTable.selectAll();
// this works, listener get invoked
//rowHeaderTable.clearSelection();
//dataTable.clearSelection();
// depends on previous clear or selectAll
int[] rowsd0 = dataTable.getSelectedRows();
// allways empty
int[] rowsh0 = rowHeaderTable.getSelectedRows();
// find out clicked row
int rowcount = pivotTablePane.getRowHeaderTable().getRowCount();
int rowHeight = e.getComponent().getHeight() / rowcount;
int componentHeight = e.getY();
final int clickedRow = componentHeight / rowHeight;
// this all doesn't work, listener not invoked
dataTable.setRowSelectionInterval(clickedRow, clickedRow);
dataTable.setColumnSelectionInterval(clickedRow, clickedRow);
dataTable.getSelectionModel().setSelectionInterval(clickedRow, clickedRow);
dataTable.getColumnModel().getSelectionModel().setSelectionInterval(clickedRow, clickedRow);
rowHeaderTable.setRowSelectionInterval(clickedRow, clickedRow);
rowHeaderTable.setColumnSelectionInterval(clickedRow, clickedRow);
rowHeaderTable.getSelectionModel().setSelectionInterval(clickedRow, clickedRow);
rowHeaderTable.getColumnModel().getSelectionModel().setSelectionInterval(clickedRow, clickedRow);
// nothing changed
int[] rowsd1 = dataTable.getSelectedRows();
int[] rowsh1 = rowHeaderTable.getSelectedRows();
}
}
}
by the way. the other listener methods don't get invoked. this is strange.
- Code: Select all
rowHeaderTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
System.out.println("invoked");
}
});
rowHeaderTable.getTableSelectionModel().addTableSelectionListener(new TableSelectionListener() {
@Override
public void valueChanged(TableSelectionEvent e) {
System.out.println("invoked");
}
});
cheers