You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jakarta.apache.org by se...@apache.org on 2011/11/01 14:48:14 UTC
svn commit: r1195995 - in /jakarta/jmeter/trunk:
src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
src/core/org/apache/jmeter/resources/messages.properties xdocs/changes.xml
Author: sebb
Date: Tue Nov 1 13:48:14 2011
New Revision: 1195995
URL: http://svn.apache.org/viewvc?rev=1195995&view=rev
Log:
Bug 52116 - Allow to add (paste) entries from the clipboard to an arguments list
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/xdocs/changes.xml
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java?rev=1195995&r1=1195994&r2=1195995&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java Tue Nov 1 13:48:14 2011
@@ -22,15 +22,24 @@ import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
@@ -67,6 +76,9 @@ public class ArgumentsPanel extends Abst
/** A button for adding new arguments to the table. */
private JButton add;
+ /** A button for adding new arguments to the table from the clipboard. */
+ private JButton addFromClipboard;
+
/** A button for removing arguments from the table. */
private JButton delete;
@@ -92,6 +104,9 @@ public class ArgumentsPanel extends Abst
/** Command for adding a row to the table. */
private static final String ADD = "add"; // $NON-NLS-1$
+ /** Command for adding rows from the clipboard */
+ private static final String ADD_FROM_CLIPBOARD = "addFromClipboard"; // $NON-NLS-1$
+
/** Command for removing a row from the table. */
private static final String DELETE = "delete"; // $NON-NLS-1$
@@ -309,6 +324,8 @@ public class ArgumentsPanel extends Abst
deleteArgument();
} else if (action.equals(ADD)) {
addArgument();
+ } else if (action.equals(ADD_FROM_CLIPBOARD)) {
+ addFromClipboard();
} else if (action.equals(UP)) {
moveUp();
} else if (action.equals(DOWN)) {
@@ -421,6 +438,54 @@ public class ArgumentsPanel extends Abst
}
/**
+ * Add values from the clipboard
+ */
+ protected void addFromClipboard() {
+ stopTableEditing();
+ int rowCount = table.getRowCount();
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
+ Transferable trans = clipboard.getContents(null);
+ DataFlavor[] flavourList = trans.getTransferDataFlavors();
+ Collection<DataFlavor> flavours = new ArrayList<DataFlavor>(flavourList.length);
+ if (Collections.addAll(flavours, flavourList) && flavours.contains(DataFlavor.stringFlavor)) {
+ try {
+ String clipboardContent = (String) trans.getTransferData(DataFlavor.stringFlavor);
+ String[] clipboardLines = clipboardContent.split("\n");
+ for (String clipboardLine : clipboardLines) {
+ String[] clipboardCols = clipboardLine.split("\t");
+ if (clipboardCols.length > 0) {
+ Argument argument = makeNewArgument();
+ argument.setName(clipboardCols[0]);
+ if (clipboardCols.length > 1) {
+ argument.setValue(clipboardCols[1]);
+ if (clipboardCols.length > 2) {
+ argument.setDescription(clipboardCols[2]);
+ }
+ }
+ tableModel.addRow(argument);
+ }
+ }
+ } catch (IOException ioe) {
+ JOptionPane.showMessageDialog(this,
+ "Could not add read arguments from clipboard:\n" + ioe.getLocalizedMessage(), "Error",
+ JOptionPane.ERROR_MESSAGE);
+ } catch (UnsupportedFlavorException ufe) {
+ JOptionPane.showMessageDialog(this,
+ "Could not add retrieve " + DataFlavor.stringFlavor.getHumanPresentableName()
+ + " from clipboard" + ufe.getLocalizedMessage(), "Error", JOptionPane.ERROR_MESSAGE);
+ }
+ if (table.getRowCount() > rowCount) {
+ // Enable DELETE (which may already be enabled, but it won't hurt)
+ delete.setEnabled(true);
+
+ // Highlight (select) the appropriate rows.
+ int rowToSelect = tableModel.getRowCount() - 1;
+ table.setRowSelectionInterval(rowCount, rowToSelect);
+ }
+ }
+ }
+
+ /**
* Create a new Argument object.
*
* @return a new Argument object
@@ -524,6 +589,10 @@ public class ArgumentsPanel extends Abst
add.setActionCommand(ADD);
add.setEnabled(true);
+ addFromClipboard = new JButton(JMeterUtils.getResString("add_from_clipboard")); // $NON-NLS-1$
+ addFromClipboard.setActionCommand(ADD_FROM_CLIPBOARD);
+ addFromClipboard.setEnabled(true);
+
delete = new JButton(JMeterUtils.getResString("delete")); // $NON-NLS-1$
delete.setActionCommand(DELETE);
@@ -542,8 +611,10 @@ public class ArgumentsPanel extends Abst
buttonPanel.setBackground(this.background);
}
add.addActionListener(this);
+ addFromClipboard.addActionListener(this);
delete.addActionListener(this);
buttonPanel.add(add);
+ buttonPanel.add(addFromClipboard);
buttonPanel.add(delete);
if(enableUpDown) {
up.addActionListener(this);
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1195995&r1=1195994&r2=1195995&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Tue Nov 1 13:48:14 2011
@@ -22,6 +22,7 @@
about=About Apache JMeter
add=Add
+add_from_clipboard=Add from Clipboard
add_as_child=Add as Child
add_parameter=Add Variable
add_pattern=Add Pattern\:
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1195995&r1=1195994&r2=1195995&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Tue Nov 1 13:48:14 2011
@@ -200,6 +200,7 @@ these occurs, Sampler is marked as faile
<li>Bug 52097 - Save As should point to same folder that was used to open a file if MRU list is used</li>
<li>Bug 52085 - Allow multiple selection in arguments panel</li>
<li>Bug 52099 - Allow to set the transaction isolation in the JDBC Connection Configuration</li>
+<li>Bug 52116 - Allow to add (paste) entries from the clipboard to an arguments list</li>
</ul>
<h2>Non-functional changes</h2>
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org