ASF Bugzilla – Attachment 34122 Details for
Bug 59974
Response Assertion : Add button "Add from clipboard"
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch implementing the enhancement
BUG_59974.patch (text/plain), 5.20 KB, created by
UbikLoadPack support
on 2016-08-11 10:21:28 UTC
(
hide
)
Description:
Patch implementing the enhancement
Filename:
MIME Type:
Creator:
UbikLoadPack support
Created:
2016-08-11 10:21:28 UTC
Size:
5.20 KB
patch
obsolete
>Index: src/components/org/apache/jmeter/assertions/gui/AssertionGui.java >=================================================================== >--- src/components/org/apache/jmeter/assertions/gui/AssertionGui.java (revision 1754657) >+++ src/components/org/apache/jmeter/assertions/gui/AssertionGui.java (working copy) >@@ -20,21 +20,26 @@ > > import java.awt.BorderLayout; > import java.awt.Dimension; >+import java.awt.datatransfer.DataFlavor; >+import java.awt.datatransfer.UnsupportedFlavorException; > import java.awt.event.ActionEvent; > import java.awt.event.ActionListener; >+import java.io.IOException; > > import javax.swing.BorderFactory; > import javax.swing.Box; > import javax.swing.ButtonGroup; > import javax.swing.JButton; > import javax.swing.JCheckBox; >+import javax.swing.JOptionPane; > import javax.swing.JPanel; > import javax.swing.JRadioButton; > import javax.swing.JScrollPane; > import javax.swing.JTable; >-import javax.swing.table.TableCellEditor; >+import javax.swing.ListSelectionModel; > > import org.apache.jmeter.assertions.ResponseAssertion; >+import org.apache.jmeter.gui.GuiPackage; > import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer; > import org.apache.jmeter.gui.util.PowerTableModel; > import org.apache.jmeter.gui.util.TextAreaCellRenderer; >@@ -365,6 +370,9 @@ > tableModel = new PowerTableModel(new String[] { COL_RESOURCE_NAME }, new Class[] { String.class }); > stringTable = new JTable(tableModel); > stringTable.getTableHeader().setDefaultRenderer(new HeaderAsPropertyRenderer()); >+ stringTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); >+ JMeterUtils.applyHiDPI(stringTable); >+ > > TextAreaCellRenderer renderer = new TextAreaCellRenderer(); > stringTable.setRowHeight(renderer.getPreferredHeight()); >@@ -390,6 +398,9 @@ > private JPanel createButtonPanel() { > JButton addPattern = new JButton(JMeterUtils.getResString("add")); //$NON-NLS-1$ > addPattern.addActionListener(new AddPatternListener()); >+ >+ JButton addFromClipboardPattern = new JButton(JMeterUtils.getResString("add_from_clipboard")); //$NON-NLS-1$ >+ addFromClipboardPattern.addActionListener(new AddFromClipboardListener()); > > deletePattern = new JButton(JMeterUtils.getResString("delete")); //$NON-NLS-1$ > deletePattern.addActionListener(new ClearPatternsListener()); >@@ -397,6 +408,7 @@ > > JPanel buttonPanel = new JPanel(); > buttonPanel.add(addPattern); >+ buttonPanel.add(addFromClipboardPattern); > buttonPanel.add(deletePattern); > return buttonPanel; > } >@@ -427,14 +439,62 @@ > > /** > * An ActionListener for adding a pattern. >- * > */ > private class AddPatternListener implements ActionListener { > @Override > public void actionPerformed(ActionEvent e) { >+ GuiUtils.stopTableEditing(stringTable); > tableModel.addNewRow(); >+ checkButtonsStatus(); >+ tableModel.fireTableDataChanged(); >+ } >+ } >+ >+ /** >+ * An ActionListener for pasting from clipboard >+ */ >+ private class AddFromClipboardListener implements ActionListener { >+ @Override >+ public void actionPerformed(ActionEvent e) { > deletePattern.setEnabled(true); >+ GuiUtils.stopTableEditing(stringTable); >+ int rowCount = stringTable.getRowCount(); >+ try { >+ String clipboardContent = GuiUtils.getPastedText(); >+ if(clipboardContent == null) { >+ return; >+ } >+ String[] clipboardLines = clipboardContent.split("\n"); >+ for (String clipboardLine : clipboardLines) { >+ tableModel.addRow(new Object[] { clipboardLine.trim() }); >+ } >+ if (stringTable.getRowCount() > rowCount) { >+ checkButtonsStatus(); >+ >+ // Highlight (select) and scroll to the appropriate rows. >+ int rowToSelect = tableModel.getRowCount() - 1; >+ stringTable.setRowSelectionInterval(rowCount, rowToSelect); >+ stringTable.scrollRectToVisible(stringTable.getCellRect(rowCount, 0, true)); >+ } >+ } catch (IOException ioe) { >+ JOptionPane.showMessageDialog(GuiPackage.getInstance().getMainFrame(), >+ "Could not add data from clipboard:\n" + ioe.getLocalizedMessage(), "Error", >+ JOptionPane.ERROR_MESSAGE); >+ } catch (UnsupportedFlavorException ufe) { >+ JOptionPane.showMessageDialog(GuiPackage.getInstance().getMainFrame(), >+ "Could not add retrieve " + DataFlavor.stringFlavor.getHumanPresentableName() >+ + " from clipboard" + ufe.getLocalizedMessage(), "Error", JOptionPane.ERROR_MESSAGE); >+ } > tableModel.fireTableDataChanged(); > } > } >+ >+ protected void checkButtonsStatus() { >+ // Disable DELETE if there are no rows in the table to delete. >+ if (tableModel.getRowCount() == 0) { >+ deletePattern.setEnabled(false); >+ } else { >+ deletePattern.setEnabled(true); >+ } >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 59974
: 34122