Author: pmouawad
Date: Thu Oct 27 17:41:04 2011
New Revision: 1189888
URL: http://svn.apache.org/viewvc?rev=1189888&view=rev
Log:
Bug 52085 - Allow multiple selection in arguments panel
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
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=1189888&r1=1189887&r2=1189888&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
Thu Oct 27 17:41:04 2011
@@ -334,10 +334,16 @@ public class ArgumentsPanel extends Abst
private void moveDown() {
cancelEditing();
- int rowSelected = table.getSelectedRow();
- if (rowSelected >=0 && rowSelected < table.getRowCount()-1) {
- tableModel.moveRow(rowSelected, rowSelected+1, rowSelected+1);
- table.setRowSelectionInterval(rowSelected+1, rowSelected+1);
+ int[] rowsSelected = table.getSelectedRows();
+ if (rowsSelected.length > 0 && rowsSelected[rowsSelected.length - 1] <
table.getRowCount() - 1) {
+ table.clearSelection();
+ for (int i = rowsSelected.length - 1; i >= 0; i--) {
+ int rowSelected = rowsSelected[i];
+ tableModel.moveRow(rowSelected, rowSelected + 1, rowSelected +
1);
+ }
+ for (int rowSelected : rowsSelected) {
+ table.addRowSelectionInterval(rowSelected + 1, rowSelected +
1);
+ }
}
}
@@ -347,11 +353,16 @@ public class ArgumentsPanel extends Abst
private void moveUp() {
cancelEditing();
- int rowSelected = table.getSelectedRow();
- if (rowSelected > 0) {
- tableModel.moveRow(rowSelected, rowSelected+1, rowSelected-1);
- table.setRowSelectionInterval(rowSelected-1, rowSelected-1);
- }
+ int[] rowsSelected = table.getSelectedRows();
+ if (rowsSelected.length > 0 && rowsSelected[0] > 0) {
+ table.clearSelection();
+ for (int rowSelected : rowsSelected) {
+ tableModel.moveRow(rowSelected, rowSelected + 1, rowSelected -
1);
+ }
+ for (int rowSelected : rowsSelected) {
+ table.addRowSelectionInterval(rowSelected - 1, rowSelected -
1);
+ }
+ }
}
/**
@@ -360,32 +371,31 @@ public class ArgumentsPanel extends Abst
protected void deleteArgument() {
cancelEditing();
- int rowSelected = table.getSelectedRow();
- if (rowSelected >= 0) {
- tableModel.removeRow(rowSelected);
- tableModel.fireTableDataChanged();
+ int[] rowsSelected = table.getSelectedRows();
+ int anchorSelection =
table.getSelectionModel().getAnchorSelectionIndex();
+ table.clearSelection();
+ if (rowsSelected.length > 0) {
+ for (int i = rowsSelected.length - 1; i >= 0; i--) {
+ tableModel.removeRow(rowsSelected[i]);
+ }
// Disable DELETE if there are no rows in the table to delete.
if (tableModel.getRowCount() == 0) {
delete.setEnabled(false);
}
+ // Table still contains one or more rows, so highlight (select)
+ // the appropriate one.
+ else if (tableModel.getRowCount() > 0) {
+ if (anchorSelection >= tableModel.getRowCount()) {
+ anchorSelection = tableModel.getRowCount() - 1;
+ }
+ table.setRowSelectionInterval(anchorSelection,
anchorSelection);
+ }
if(enableUpDown && tableModel.getRowCount()>1) {
up.setEnabled(true);
down.setEnabled(true);
}
-
- // Table still contains one or more rows, so highlight (select)
- // the appropriate one.
- else {
- int rowToSelect = rowSelected;
-
- if (rowSelected >= tableModel.getRowCount()) {
- rowToSelect = rowSelected - 1;
- }
-
- table.setRowSelectionInterval(rowToSelect, rowToSelect);
- }
}
}
@@ -456,7 +466,7 @@ public class ArgumentsPanel extends Abst
new Functor("setName"), // $NON-NLS-1$
new Functor("setValue") }, // $NON-NLS-1$
new Class[] { String.class, String.class });
- }
+ }
}
public static boolean testFunctors(){
@@ -483,7 +493,7 @@ public class ArgumentsPanel extends Abst
initializeTableModel();
table = new JTable(tableModel);
table.getTableHeader().setDefaultRenderer(new
HeaderAsPropertyRenderer());
- table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
if (this.background != null) {
table.setBackground(this.background);
}
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1189888&r1=1189887&r2=1189888&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Oct 27 17:41:04 2011
@@ -188,6 +188,7 @@ Mirror server now uses default port 8081
<li>Bug 52052 - Using a delimiter to separate result-messages for JMS
Subscriber</li>
<li>Bug 52103 - Add automatic scrolling option to table visualizer</li>
<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>
</ul>
<h2>Non-functional changes</h2>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]