You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/03/23 20:25:57 UTC
svn commit: r521876 - in /jakarta/jmeter/branches/rel-2-2:
src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
xdocs/changes.xml
Author: sebb
Date: Fri Mar 23 12:25:56 2007
New Revision: 521876
URL: http://svn.apache.org/viewvc?view=rev&rev=521876
Log:
Bug 41905 - Can't cut/paste/select Header Manager fields in Java 1.6
Modified:
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java?view=diff&rev=521876&r1=521875&r2=521876
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java Fri Mar 23 12:25:56 2007
@@ -20,23 +20,16 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
import java.io.File;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
-import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellEditor;
@@ -54,24 +47,23 @@
* Allows the user to specify if she needs HTTP header services, and give
* parameters for this service.
*
- * @version $Revision$
*/
-public class HeaderPanel extends AbstractConfigGui implements ActionListener, FocusListener {
- transient private static Logger log = LoggingManager.getLoggerForClass();
+public class HeaderPanel extends AbstractConfigGui implements ActionListener
+{
+ private static final Logger log = LoggingManager.getLoggerForClass();
- private static final String ADD_COMMAND = "Add";
+ private static final String ADD_COMMAND = "Add"; // $NON-NLS-1$
- private static final String DELETE_COMMAND = "Delete";
+ private static final String DELETE_COMMAND = "Delete"; // $NON-NLS-1$
- private static final String LOAD_COMMAND = "Load";
+ private static final String LOAD_COMMAND = "Load"; // $NON-NLS-1$
- private static final String SAVE_COMMAND = "Save";
+ private static final String SAVE_COMMAND = "Save"; // $NON-NLS-1$
private InnerTableModel tableModel;
- /**
- * A table to show the authentication information.
- */
+ private HeaderManager headerManager;
+
private JTable headerTable;
private JButton addButton;
@@ -82,16 +74,13 @@
private JButton saveButton;
- /**
- * Default constructor.
- */
public HeaderPanel() {
- tableModel = new InnerTableModel();
+ headerManager = new HeaderManager();
+ tableModel = new InnerTableModel(headerManager);
init();
}
public TestElement createTestElement() {
- HeaderManager headerManager = tableModel.manager;
configureTestElement(headerManager);
return (TestElement) headerManager.clone();
}
@@ -102,15 +91,18 @@
* @see org.apache.jmeter.gui.JMeterGUIComponent#modifyTestElement(TestElement)
*/
public void modifyTestElement(TestElement el) {
+ if (headerTable.isEditing()) {// Bug 41905
+ headerTable.getCellEditor().stopCellEditing();
+ }
el.clear();
- el.addTestElement(tableModel.manager);
+ el.addTestElement(headerManager);
configureTestElement(el);
}
public void configure(TestElement el) {
- tableModel.manager.clear();
+ headerManager.clear();
super.configure(el);
- tableModel.manager.addTestElement(el);
+ headerManager.addTestElement(el);
boolean hasRows = tableModel.getRowCount() > 0;
deleteButton.setEnabled(hasRows);
saveButton.setEnabled(hasRows);
@@ -118,22 +110,9 @@
}
public String getLabelResource() {
- return "header_manager_title";
+ return "header_manager_title"; // $NON-NLS-1$
}
- /**
- * Gets a HeaderManager to manage the file that is currently selected. Null
- * is returned if no file is currently selected. Null will also be returned
- * if there is a problem reading the file while getting the HeaderManager.
- *
- * @returns a HeaderManager for the current file, or null
- *
- * public HeaderManager getHeaderMgr() { return manager; }
- */
-
- /**
- * Shows the main header configuration panel.
- */
public void init() {
setLayout(new BorderLayout());
setBorder(makeBorder());
@@ -145,13 +124,13 @@
public void actionPerformed(ActionEvent e) {
String action = e.getActionCommand();
- if (action.equals("Delete")) {
+ if (action.equals(DELETE_COMMAND)) {
if (tableModel.getRowCount() > 0) {
// If a table cell is being edited, we must cancel the editing
// before deleting the row.
if (headerTable.isEditing()) {
- TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable
- .getEditingColumn());
+ TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(),
+ headerTable.getEditingColumn());
cellEditor.cancelCellEditing();
}
@@ -181,12 +160,12 @@
}
}
}
- } else if (action.equals("Add")) {
+ } else if (action.equals(ADD_COMMAND)) {
// If a table cell is being edited, we should accept the current
// value and stop the editing before adding a new row.
if (headerTable.isEditing()) {
- TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable
- .getEditingColumn());
+ TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(),
+ headerTable.getEditingColumn());
cellEditor.stopCellEditing();
}
@@ -205,11 +184,11 @@
// Highlight (select) the appropriate row.
int rowToSelect = tableModel.getRowCount() - 1;
headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
- } else if (action.equals("Load")) {
+ } else if (action.equals(LOAD_COMMAND)) {
try {
File tmp = FileDialoger.promptToOpenFile().getSelectedFile();
if (tmp != null) {
- tableModel.manager.addFile(tmp.getAbsolutePath());
+ headerManager.addFile(tmp.getAbsolutePath());
tableModel.fireTableDataChanged();
if (tableModel.getRowCount() > 0) {
@@ -218,17 +197,17 @@
}
}
} catch (IOException ex) {
- log.error("", ex);
+ log.error("Could not load headers", ex);
} catch (NullPointerException err) {
}
- } else if (action.equals("Save")) {
+ } else if (action.equals(SAVE_COMMAND)) {
try {
File tmp = FileDialoger.promptToSaveFile(null).getSelectedFile();
if (tmp != null) {
- tableModel.manager.save(tmp.getAbsolutePath());
+ headerManager.save(tmp.getAbsolutePath());
}
} catch (IOException ex) {
- log.error("", ex);
+ log.error("Could not save headers", ex);
} catch (NullPointerException err) {
}
}
@@ -237,13 +216,12 @@
public JPanel createHeaderTablePanel() {
// create the JTable that holds header per row
headerTable = new JTable(tableModel);
- headerTable.addFocusListener(this);
headerTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
headerTable.setPreferredScrollableViewportSize(new Dimension(100, 70));
JPanel panel = new JPanel(new BorderLayout(0, 5));
- panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), JMeterUtils
- .getResString("headers_stored")));
+ panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
+ JMeterUtils.getResString("headers_stored"))); // $NON-NLS-1$
panel.add(new JScrollPane(headerTable), BorderLayout.CENTER);
panel.add(createButtonPanel(), BorderLayout.SOUTH);
return panel;
@@ -261,10 +239,10 @@
private JPanel createButtonPanel() {
boolean tableEmpty = (tableModel.getRowCount() == 0);
- addButton = createButton("add", 'A', ADD_COMMAND, true);
- deleteButton = createButton("delete", 'D', DELETE_COMMAND, !tableEmpty);
- loadButton = createButton("load", 'L', LOAD_COMMAND, true);
- saveButton = createButton("save", 'S', SAVE_COMMAND, !tableEmpty);
+ addButton = createButton("add", 'A', ADD_COMMAND, true); // $NON-NLS-1$
+ deleteButton = createButton("delete", 'D', DELETE_COMMAND, !tableEmpty); // $NON-NLS-1$
+ loadButton = createButton("load", 'L', LOAD_COMMAND, true); // $NON-NLS-1$
+ saveButton = createButton("save", 'S', SAVE_COMMAND, !tableEmpty); // $NON-NLS-1$
JPanel buttonPanel = new JPanel();
buttonPanel.add(addButton);
@@ -274,149 +252,11 @@
return buttonPanel;
}
- /**
- * Updates a header record.
- *
- * @version $Revision$
- */
- class HeaderUpdater implements ActionListener {
- JTextField nameField = new JTextField(20);
-
- JTextField valueField = new JTextField(20);
-
- JButton ok = new JButton("Ok");
-
- JButton cancel = new JButton("Cancel");
-
- int index;
-
- JDialog updateDialog;
-
- public HeaderUpdater() {
- }
-
- /**
- * Returns the contructed panel containing the header record.
- */
- public JPanel getPanel() {
- JPanel main = new JPanel();
- GridBagLayout g = new GridBagLayout();
-
- main.setLayout(g);
- GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.BOTH;
- c.gridwidth = 1;
- c.gridheight = 1;
- JLabel nameLabel = new JLabel(JMeterUtils.getResString("name") + ":");
- c.gridx = 1;
- c.gridy = 1;
- g.setConstraints(nameLabel, c);
- main.add(nameLabel);
- JLabel valueLabel = new JLabel(JMeterUtils.getResString("value") + ":");
- c.gridx = 1;
- c.gridy = 2;
- g.setConstraints(valueLabel, c);
- main.add(valueLabel);
-
- c.gridx = 2;
- c.gridy = 1;
- g.setConstraints(nameField, c);
- main.add(nameField);
- c.gridx = 2;
- c.gridy = 2;
- g.setConstraints(valueField, c);
- main.add(valueField);
-
- JPanel buttons = new JPanel();
- ok.setPreferredSize(cancel.getPreferredSize());
- buttons.add(ok);
- buttons.add(cancel);
- c.gridwidth = 2;
- c.gridx = 1;
- c.gridy = 7;
- g.setConstraints(buttons, c);
- main.add(buttons);
-
- return main;
- }
-
- public void actionPerformed(ActionEvent e) {
- String command = e.getActionCommand();
- boolean valid = true;
- index = -1;
- if (command.equals("Edit")) {
- index = headerTable.getSelectedRow();
- if (index < 0) {
- valid = false;
- } else {
- Header c = tableModel.manager.get(index);
- nameField = new JTextField(c.getName(), 20);
- valueField = new JTextField(c.getValue(), 20);
- ok = new JButton("Ok");
- cancel = new JButton("Cancel");
- }
- } else if (command.equals("Add")) {
- nameField = new JTextField(20);
- valueField = new JTextField(20);
- ok = new JButton("Ok");
- cancel = new JButton("Cancel");
- }
- if (valid) {
- if (updateDialog != null) {
- updateDialog.dispose();
- }
- updateDialog = new JDialog();
- updateDialog.setSize(350, 300);
-
- ok.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent ev) {
- int i = index;
- Header c = new Header();
- if (i >= 0) {
- c = tableModel.manager.get(index);
- }
- c.setName(nameField.getText());
- c.setValue(valueField.getText());
- if (i < 0) {
- tableModel.manager.add(c);
- }
- tableModel.fireTableDataChanged();
- updateDialog.dispose();
- }
- });
- cancel.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent ev) {
- updateDialog.dispose();
- }
- });
- updateDialog.getContentPane().add(getPanel());
- updateDialog.show();
- }
- }
- }
-
- public void focusGained(FocusEvent e) {
- }
-
- public void focusLost(FocusEvent e) {
- try {
- headerTable.getCellEditor().stopCellEditing();
- } catch (RuntimeException err) {
- }
- }
-
- /**
- * @version $Revision$
- */
private static class InnerTableModel extends AbstractTableModel {
- HeaderManager manager;
+ private HeaderManager manager;
public InnerTableModel(HeaderManager man) {
manager = man;
- }
-
- public InnerTableModel() {
- manager = new HeaderManager();
}
public void removeRow(int row) {
Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=521876&r1=521875&r2=521876
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Fri Mar 23 12:25:56 2007
@@ -192,6 +192,7 @@
<li>Bug 41902 - NPE in HTTPSampler when responseCode = -1</li>
<li>Bug 41903 - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>
<li>Bug 41837 - Parameter value corruption in proxy</li>
+<li>Bug 41905 - Can't cut/paste/select Header Manager fields in Java 1.6</li>
</ul>
<h3>Version 2.2</h3>
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org