# 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.core/src/org/netbeans/modules/db/sql/execute/ui/SQLHistoryPanel.java --- db.core/src/org/netbeans/modules/db/sql/execute/ui/SQLHistoryPanel.java Base (BASE) +++ db.core/src/org/netbeans/modules/db/sql/execute/ui/SQLHistoryPanel.java Locally Modified (Based On LOCAL) @@ -43,6 +43,8 @@ import java.awt.Component; import java.awt.EventQueue; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -169,6 +171,7 @@ updateFilter(); } }); + sqlHistoryTable.setTransferHandler(new TableTransferHandler()); } private void updateFilter() { @@ -574,6 +577,36 @@ private javax.swing.JTextField sqlLimitTextField; // End of variables declaration//GEN-END:variables + private final class TableTransferHandler extends TransferHandler { + + /** + * Map Transferable to createTransferableTSV from ResultSetJXTable + * + * This is needed so that CTRL-C Action of JTable gets the same + * treatment as the transfer via the copy Methods of DataTableUI + */ + @Override + protected Transferable createTransferable(JComponent c) { + StringBuilder sb = new StringBuilder(); + for (int id : sqlHistoryTable.getSelectedRows()) { + int modelIndex = sqlHistoryTable.convertRowIndexToModel(id); + if (sb.length() != 0) { + sb.append(System.lineSeparator()); + } + // Column 1 => Column of SQL + String sql = (String) htm.getValueAt(modelIndex, 1); + sb.append(sql); + sb.append(";"); + } + return new StringSelection(sb.toString()); + } + + @Override + public int getSourceActions(JComponent c) { + return COPY; + } + } + private final class HistoryTableModel extends AbstractTableModel { private List sqlList;