Lines 96-101
Link Here
|
96 |
private DataViewActionHandler handler; |
96 |
private DataViewActionHandler handler; |
97 |
private int selectedRow = -1; |
97 |
private int selectedRow = -1; |
98 |
private int selectedColumn = -1; |
98 |
private int selectedColumn = -1; |
|
|
99 |
private int[] selectedRows = new int[0]; |
99 |
private TableModelListener dataChangedListener = new TableModelListener() { |
100 |
private TableModelListener dataChangedListener = new TableModelListener() { |
100 |
@Override |
101 |
@Override |
101 |
public void tableChanged(TableModelEvent e) { |
102 |
public void tableChanged(TableModelEvent e) { |
Lines 307-313
Link Here
|
307 |
} |
308 |
} |
308 |
|
309 |
|
309 |
if (e.getSource() == table.getSelectionModel() && table.getRowSelectionAllowed()) { |
310 |
if (e.getSource() == table.getSelectionModel() && table.getRowSelectionAllowed()) { |
310 |
boolean rowSelected = table.getSelectedRows().length > 0; |
311 |
boolean rowSelected = selectedRows.length > 0; |
311 |
if (rowSelected && getModel().isEditable()) { |
312 |
if (rowSelected && getModel().isEditable()) { |
312 |
dataviewUI.enableDeleteBtn(true); |
313 |
dataviewUI.enableDeleteBtn(true); |
313 |
} else { |
314 |
} else { |
Lines 438-447
Link Here
|
438 |
@Override |
439 |
@Override |
439 |
public void actionPerformed(ActionEvent e) { |
440 |
public void actionPerformed(ActionEvent e) { |
440 |
try { |
441 |
try { |
441 |
int[] rows = getSelectedRows(); |
|
|
442 |
String insertSQL = ""; |
442 |
String insertSQL = ""; |
443 |
for (int j = 0; j < rows.length; j++) { |
443 |
for (int j = 0; j < selectedRows.length; j++) { |
444 |
int modelIndex = convertRowIndexToModel(rows[j]); |
444 |
int modelIndex = convertRowIndexToModel(selectedRows[j]); |
445 |
Object[] insertRow = getModel().getRowData(modelIndex); |
445 |
Object[] insertRow = getModel().getRowData(modelIndex); |
446 |
// @todo make table configurable |
446 |
// @todo make table configurable |
447 |
DBTable table = pageContext.getTableMetaData().getTable(0); |
447 |
DBTable table = pageContext.getTableMetaData().getTable(0); |
Lines 466-476
Link Here
|
466 |
|
466 |
|
467 |
@Override |
467 |
@Override |
468 |
public void actionPerformed(ActionEvent e) { |
468 |
public void actionPerformed(ActionEvent e) { |
469 |
int[] rows = getSelectedRows(); |
|
|
470 |
String rawDeleteStmt = ""; |
469 |
String rawDeleteStmt = ""; |
471 |
for (int j = 0; j < rows.length; j++) { |
470 |
for (int j = 0; j < selectedRows.length; j++) { |
472 |
SQLStatementGenerator generator = dataView.getSQLStatementGenerator(); |
471 |
SQLStatementGenerator generator = dataView.getSQLStatementGenerator(); |
473 |
int modelIndex = convertRowIndexToModel(rows[j]); |
472 |
int modelIndex = convertRowIndexToModel(selectedRows[j]); |
474 |
// @todo make table configurable |
473 |
// @todo make table configurable |
475 |
DBTable table = pageContext.getTableMetaData().getTable(0); |
474 |
DBTable table = pageContext.getTableMetaData().getTable(0); |
476 |
final String deleteStmt = generator.generateDeleteStatement(table, modelIndex, getModel()); |
475 |
final String deleteStmt = generator.generateDeleteStatement(table, modelIndex, getModel()); |
Lines 549-557
Link Here
|
549 |
selectedRow = rowAtPoint(e.getPoint()); |
548 |
selectedRow = rowAtPoint(e.getPoint()); |
550 |
selectedColumn = columnAtPoint(e.getPoint()); |
549 |
selectedColumn = columnAtPoint(e.getPoint()); |
551 |
boolean inSelection = false; |
550 |
boolean inSelection = false; |
552 |
int[] rows = getSelectedRows(); |
551 |
selectedRows = getSelectedRows(); |
553 |
for (int a = 0; a < rows.length; a++) { |
552 |
for (int a = 0; a < selectedRows.length; a++) { |
554 |
if (rows[a] == selectedRow) { |
553 |
if (selectedRows[a] == selectedRow) { |
555 |
inSelection = true; |
554 |
inSelection = true; |
556 |
break; |
555 |
break; |
557 |
} |
556 |
} |
Lines 568-573
Link Here
|
568 |
} |
567 |
} |
569 |
if (!inSelection) { |
568 |
if (!inSelection) { |
570 |
changeSelection(selectedRow, selectedColumn, false, false); |
569 |
changeSelection(selectedRow, selectedColumn, false, false); |
|
|
570 |
selectedRows = getSelectedRows(); |
571 |
} |
571 |
} |
572 |
if (! getModel().isEditable()) { |
572 |
if (! getModel().isEditable()) { |
573 |
miInsertAction.setEnabled(false); |
573 |
miInsertAction.setEnabled(false); |
Lines 587-592
Link Here
|
587 |
miCancelEdits.setEnabled(true); |
587 |
miCancelEdits.setEnabled(true); |
588 |
miCommitSQLScript.setEnabled(true); |
588 |
miCommitSQLScript.setEnabled(true); |
589 |
} |
589 |
} |
|
|
590 |
if(selectedRows.length > 0) { |
591 |
miCopyRowValues.setEnabled(true); |
592 |
miCopyRowValuesH.setEnabled(true); |
593 |
miInsertSQLScript.setEnabled(true); |
594 |
miDeleteSQLScript.setEnabled(true); |
595 |
miDeleteAction.setEnabled(true); |
596 |
} else { |
597 |
miCopyRowValues.setEnabled(false); |
598 |
miCopyRowValuesH.setEnabled(false); |
599 |
miInsertSQLScript.setEnabled(false); |
600 |
miDeleteSQLScript.setEnabled(false); |
601 |
miDeleteAction.setEnabled(false); |
602 |
} |
603 |
if(selectedColumn >= 0 && selectedRow >= 0) { |
604 |
miCopyValue.setEnabled(true); |
605 |
} else { |
606 |
miCopyValue.setEnabled(false); |
607 |
} |
590 |
tablePopupMenu.show(DataViewTableUI.this, e.getX(), e.getY()); |
608 |
tablePopupMenu.show(DataViewTableUI.this, e.getX(), e.getY()); |
591 |
} |
609 |
} |
592 |
} |
610 |
} |