Author: pmouawad
Date: Fri Oct 7 20:30:33 2011
New Revision: 1180205
URL: http://svn.apache.org/viewvc?rev=1180205&view=rev
Log:
Bug 51817 - Moving variables up and down in User Defined Variables control.
Fixed a ConcurrentModificationException in ObjectTableModel#moveRow I had to
use.
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/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
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=1180205&r1=1180204&r2=1180205&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
Fri Oct 7 20:30:33 2011
@@ -81,12 +81,24 @@ public class ArgumentsPanel extends Abst
*/
private boolean standalone = true;
+ /** Button to move a argument up*/
+ private JButton up;
+
+ /** Button to move a argument down*/
+ private JButton down;
+
/** Command for adding a row to the table. */
private static final String ADD = "add"; // $NON-NLS-1$
/** Command for removing a row from the table. */
private static final String DELETE = "delete"; // $NON-NLS-1$
+ /** Command for moving a row up in the table. */
+ private static final String UP = "up"; // $NON-NLS-1$
+
+ /** Command for moving a row down in the table. */
+ private static final String DOWN = "down"; // $NON-NLS-1$
+
public static final String COLUMN_RESOURCE_NAMES_0 = "name"; // $NON-NLS-1$
public static final String COLUMN_RESOURCE_NAMES_1 = "value"; //
$NON-NLS-1$
@@ -239,6 +251,11 @@ public class ArgumentsPanel extends Abst
} else {
delete.setEnabled(true);
}
+
+ if(tableModel.getRowCount()>1) {
+ up.setEnabled(true);
+ down.setEnabled(true);
+ }
}
@Override
@@ -268,19 +285,56 @@ public class ArgumentsPanel extends Abst
deleteArgument();
} else if (action.equals(ADD)) {
addArgument();
+ } else if (action.equals(UP)) {
+ moveUp();
+ } else if (action.equals(DOWN)) {
+ moveDown();
}
}
/**
- * Remove the currently selected argument from the table.
+ * Cancel cell editing if it is being edited
*/
- protected void deleteArgument() {
+ private void cancelEditing() {
// If a table cell is being edited, we must cancel the editing before
// deleting the row
if (table.isEditing()) {
TableCellEditor cellEditor =
table.getCellEditor(table.getEditingRow(), table.getEditingColumn());
cellEditor.cancelCellEditing();
}
+ }
+
+ /**
+ * Move a row down
+ */
+ private void moveDown() {
+ cancelEditing();
+
+ int rowSelected = table.getSelectedRow();
+ if (rowSelected < table.getRowCount()-1) {
+ tableModel.moveRow(rowSelected, rowSelected+1, rowSelected+1);
+ table.setRowSelectionInterval(rowSelected+1, rowSelected+1);
+ }
+ }
+
+ /**
+ * Move a row down
+ */
+ private void moveUp() {
+ cancelEditing();
+
+ int rowSelected = table.getSelectedRow();
+ if (rowSelected > 0) {
+ tableModel.moveRow(rowSelected, rowSelected+1, rowSelected-1);
+ table.setRowSelectionInterval(rowSelected-1, rowSelected-1);
+ }
+ }
+
+ /**
+ * Remove the currently selected argument from the table.
+ */
+ protected void deleteArgument() {
+ cancelEditing();
int rowSelected = table.getSelectedRow();
if (rowSelected >= 0) {
@@ -291,6 +345,11 @@ public class ArgumentsPanel extends Abst
if (tableModel.getRowCount() == 0) {
delete.setEnabled(false);
}
+
+ if(tableModel.getRowCount()>1) {
+ up.setEnabled(true);
+ down.setEnabled(true);
+ }
// Table still contains one or more rows, so highlight (select)
// the appropriate one.
@@ -318,7 +377,10 @@ public class ArgumentsPanel extends Abst
// Enable DELETE (which may already be enabled, but it won't hurt)
delete.setEnabled(true);
-
+ if(tableModel.getRowCount()>1) {
+ up.setEnabled(true);
+ down.setEnabled(true);
+ }
// Highlight (select) the appropriate row.
int rowToSelect = tableModel.getRowCount() - 1;
table.setRowSelectionInterval(rowToSelect, rowToSelect);
@@ -417,6 +479,12 @@ public class ArgumentsPanel extends Abst
delete = new JButton(JMeterUtils.getResString("delete")); //
$NON-NLS-1$
delete.setActionCommand(DELETE);
+ up = new JButton(JMeterUtils.getResString("up")); // $NON-NLS-1$
+ up.setActionCommand(UP);
+
+ down = new JButton(JMeterUtils.getResString("down")); // $NON-NLS-1$
+ down.setActionCommand(DOWN);
+
checkDeleteStatus();
JPanel buttonPanel = new JPanel();
@@ -426,8 +494,12 @@ public class ArgumentsPanel extends Abst
}
add.addActionListener(this);
delete.addActionListener(this);
+ up.addActionListener(this);
+ down.addActionListener(this);
buttonPanel.add(add);
buttonPanel.add(delete);
+ buttonPanel.add(up);
+ buttonPanel.add(down);
return buttonPanel;
}
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=1180205&r1=1180204&r2=1180205&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
Fri Oct 7 20:30:33 2011
@@ -191,6 +191,7 @@ distribution_note1=The graph will update
dn=DN
domain=Domain
done=Done
+down=Down
duration=Duration (seconds)
duration_assertion_duration_test=Duration to Assert
duration_assertion_failure=The operation lasted too long\: It took {0}
milliseconds, but should not have lasted longer than {1} milliseconds.
@@ -939,6 +940,7 @@ uniform_timer_delay=Constant Delay Offse
uniform_timer_memo=Adds a random delay with a uniform distribution
uniform_timer_range=Random Delay Maximum (in milliseconds)\:
uniform_timer_title=Uniform Random Timer
+up=Up
update_per_iter=Update Once Per Iteration
upload=File Upload
upper_bound=Upper Bound
Modified:
jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java?rev=1180205&r1=1180204&r2=1180205&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
(original)
+++
jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
Fri Oct 7 20:30:33 2011
@@ -202,7 +202,7 @@ public class ObjectTableModel extends De
/** {@inheritDoc} */
@Override
public void moveRow(int start, int end, int to) {
- List<Object> subList = objects.subList(start, end);
+ List<Object> subList = new ArrayList(objects.subList(start, end));
for (int x = end - 1; x >= start; x--) {
objects.remove(x);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]