# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/matthias/NetBeansProjects/main-golden # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewTableUI.java --- db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewTableUI.java Base (BASE) +++ db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewTableUI.java Locally Modified (Based On LOCAL) @@ -96,6 +96,7 @@ private DataViewActionHandler handler; private int selectedRow = -1; private int selectedColumn = -1; + private int[] selectedRows = new int[0]; private TableModelListener dataChangedListener = new TableModelListener() { @Override public void tableChanged(TableModelEvent e) { @@ -307,7 +308,7 @@ } if (e.getSource() == table.getSelectionModel() && table.getRowSelectionAllowed()) { - boolean rowSelected = table.getSelectedRows().length > 0; + boolean rowSelected = selectedRows.length > 0; if (rowSelected && getModel().isEditable()) { dataviewUI.enableDeleteBtn(true); } else { @@ -438,10 +439,9 @@ @Override public void actionPerformed(ActionEvent e) { try { - int[] rows = getSelectedRows(); String insertSQL = ""; - for (int j = 0; j < rows.length; j++) { - int modelIndex = convertRowIndexToModel(rows[j]); + for (int j = 0; j < selectedRows.length; j++) { + int modelIndex = convertRowIndexToModel(selectedRows[j]); Object[] insertRow = getModel().getRowData(modelIndex); // @todo make table configurable DBTable table = pageContext.getTableMetaData().getTable(0); @@ -466,11 +466,10 @@ @Override public void actionPerformed(ActionEvent e) { - int[] rows = getSelectedRows(); String rawDeleteStmt = ""; - for (int j = 0; j < rows.length; j++) { + for (int j = 0; j < selectedRows.length; j++) { SQLStatementGenerator generator = dataView.getSQLStatementGenerator(); - int modelIndex = convertRowIndexToModel(rows[j]); + int modelIndex = convertRowIndexToModel(selectedRows[j]); // @todo make table configurable DBTable table = pageContext.getTableMetaData().getTable(0); final String deleteStmt = generator.generateDeleteStatement(table, modelIndex, getModel()); @@ -549,9 +548,9 @@ selectedRow = rowAtPoint(e.getPoint()); selectedColumn = columnAtPoint(e.getPoint()); boolean inSelection = false; - int[] rows = getSelectedRows(); - for (int a = 0; a < rows.length; a++) { - if (rows[a] == selectedRow) { + selectedRows = getSelectedRows(); + for (int a = 0; a < selectedRows.length; a++) { + if (selectedRows[a] == selectedRow) { inSelection = true; break; } @@ -568,6 +567,7 @@ } if (!inSelection) { changeSelection(selectedRow, selectedColumn, false, false); + selectedRows = getSelectedRows(); } if (! getModel().isEditable()) { miInsertAction.setEnabled(false); @@ -587,6 +587,24 @@ miCancelEdits.setEnabled(true); miCommitSQLScript.setEnabled(true); } + if(selectedRows.length > 0) { + miCopyRowValues.setEnabled(true); + miCopyRowValuesH.setEnabled(true); + miInsertSQLScript.setEnabled(true); + miDeleteSQLScript.setEnabled(true); + miDeleteAction.setEnabled(true); + } else { + miCopyRowValues.setEnabled(false); + miCopyRowValuesH.setEnabled(false); + miInsertSQLScript.setEnabled(false); + miDeleteSQLScript.setEnabled(false); + miDeleteAction.setEnabled(false); + } + if(selectedColumn >= 0 && selectedRow >= 0) { + miCopyValue.setEnabled(true); + } else { + miCopyValue.setEnabled(false); + } tablePopupMenu.show(DataViewTableUI.this, e.getX(), e.getY()); } }