From e5169cc219ed9eb1c104c2d0550df3e3671abbc1 Mon Sep 17 00:00:00 2001 From: Chrriis Date: Mon, 27 Feb 2012 19:03:18 +0000 Subject: [PATCH] Improved contextual menu for copy/pasting operations. --- .../org/jooq/debug/console/LoggerPane.java | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java b/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java index 0e9f7d039b..0baa820013 100644 --- a/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java +++ b/jOOQ-console/src/main/java/org/jooq/debug/console/LoggerPane.java @@ -86,6 +86,7 @@ import javax.swing.RowSorter.SortKey; import javax.swing.SortOrder; import javax.swing.SwingUtilities; import javax.swing.Timer; +import javax.swing.TransferHandler; import javax.swing.UIManager; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -524,8 +525,19 @@ public class LoggerPane extends JPanel { for(int i=0; i= 0 && table.getSelectedColumn() >= 0) { + JMenuItem copyCellsToClipboardMenuItem = new JMenuItem("Copy Selected Cells to Clipboard"); +// copyCellsToClipboardMenuItem.setAccelerator(keyStroke); + copyCellsToClipboardMenuItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + table.getTransferHandler().exportToClipboard(table, Toolkit.getDefaultToolkit().getSystemClipboard(), TransferHandler.COPY); + } + }); + popupMenu.add(copyCellsToClipboardMenuItem); + } if(selectedQueryDebuggingInfos.length > 0) { - JMenuItem copyToClipboardMenuItem = new JMenuItem("Copy " + (selectedQueryDebuggingInfos.length > 1? selectedQueryDebuggingInfos.length + " ": "") + "Statement" + (selectedQueryDebuggingInfos.length == 1? "": "s") + " to Clipboard"); + JMenuItem copyToClipboardMenuItem = new JMenuItem("Copy " + (selectedQueryDebuggingInfos.length > 1? selectedQueryDebuggingInfos.length + " ": "") + "Statement Data to Clipboard"); copyToClipboardMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -535,7 +547,7 @@ public class LoggerPane extends JPanel { popupMenu.add(copyToClipboardMenuItem); } if(displayedQueryDebuggingInfoList.size() > 0) { - JMenuItem copyAllToClipboardMenuItem = new JMenuItem("Copy All Statements (" + displayedQueryDebuggingInfoList.size() + ") to Clipboard"); + JMenuItem copyAllToClipboardMenuItem = new JMenuItem("Copy All Statements Data (" + displayedQueryDebuggingInfoList.size() + ") to Clipboard"); copyAllToClipboardMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -545,15 +557,10 @@ public class LoggerPane extends JPanel { popupMenu.add(copyAllToClipboardMenuItem); } if(selectedQueryDebuggingInfos.length == 1) { - JMenuItem dumpStackMenuItem = new JMenuItem("Dump Statement Call Stack"); - dumpStackMenuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - selectedQueryDebuggingInfos[0].getThrowable().printStackTrace(); - } - }); - popupMenu.add(dumpStackMenuItem); - JMenuItem copyStackToClipboardMenuItem = new JMenuItem("Copy Statement Call Stack to Clipboard"); + if(popupMenu.getComponentCount() > 0) { + popupMenu.addSeparator(); + } + JMenuItem copyStackToClipboardMenuItem = new JMenuItem("Copy Call Stack to Clipboard"); copyStackToClipboardMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -564,6 +571,14 @@ public class LoggerPane extends JPanel { } }); popupMenu.add(copyStackToClipboardMenuItem); + JMenuItem dumpStackMenuItem = new JMenuItem("Dump Call Stack"); + dumpStackMenuItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + selectedQueryDebuggingInfos[0].getThrowable().printStackTrace(); + } + }); + popupMenu.add(dumpStackMenuItem); } if(popupMenu.getComponentCount() > 0) { popupMenu.show(table, e.getX(), e.getY()); @@ -875,6 +890,7 @@ public class LoggerPane extends JPanel { StringBuilder htmlSB = new StringBuilder(); htmlSB.append("\n\n\n"); htmlSB.append("" + + "" + "" + "" + "" + @@ -890,6 +906,9 @@ public class LoggerPane extends JPanel { DebuggerResultSetData resultSetData = queryDebuggingInfo.getSqlQueryDebuggerResultSetData(); htmlSB.append("\n"); htmlSB.append("\n"); + htmlSB.append("\n"); htmlSB.append("
TypeThread nameThread IDTimestamp
"); + htmlSB.append(queryDebuggingInfo.getQueryType()); + htmlSB.append(""); htmlSB.append(queryDebuggingInfo.getThreadName()); htmlSB.append("");