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 kh...@apache.org on 2001/10/08 07:20:49 UTC
cvs commit: jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui AuthPanel.java
khammond 01/10/07 22:20:49
Modified: src/org/apache/jmeter/protocol/http/gui AuthPanel.java
Log:
New GUI style.
Revision Changes Path
1.10 +228 -287 jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui/AuthPanel.java
Index: AuthPanel.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui/AuthPanel.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- AuthPanel.java 2001/07/26 00:34:48 1.9
+++ AuthPanel.java 2001/10/08 05:20:49 1.10
@@ -52,7 +52,7 @@
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
- package org.apache.jmeter.protocol.http.gui;
+package org.apache.jmeter.protocol.http.gui;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
@@ -68,11 +68,11 @@
* Sampler. It also understands how to get AuthManagers for the files that the
* user selects.
*
- *@author $Author: mstover1 $
- *@created $Date: 2001/07/26 00:34:48 $
- *@version $Revision: 1.9 $
+ *@author $Author: khammond $
+ *@created $Date: 2001/10/08 05:20:49 $
+ *@version $Revision: 1.10 $
***********************************************************/
-public class AuthPanel extends JPanel implements ModelSupported
+public class AuthPanel extends JPanel implements ModelSupported, ActionListener
{
InnerTableModel tableModel;
@@ -86,6 +86,11 @@
***********************************************************/
JTable authTable;
private NamePanel namePanel;
+ JButton addButton;
+ JButton deleteButton;
+ JButton loadButton;
+ JButton saveButton;
+ JPanel authManagerPanel;
/************************************************************
* Default Constructor
@@ -124,299 +129,206 @@
***********************************************************/
public void init()
{
- this.setLayout(new VerticalLayout());
+ // set the layout of the control panel
+ this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
+
+ authManagerPanel = new JPanel();
+
+ Border margin = new EmptyBorder(10, 10, 5, 10);
+ authManagerPanel.setBorder(margin);
+
+ authManagerPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
+
+ JLabel panelTitleLabel = new JLabel(JMeterUtils.getResString("auth_manager_title"));
+ Font curFont = panelTitleLabel.getFont();
+ int curFontSize = curFont.getSize();
+ curFontSize += 4;
+ panelTitleLabel.setFont(new Font(curFont.getFontName(), curFont.getStyle(), curFontSize));
+ authManagerPanel.add(panelTitleLabel);
+
namePanel = new NamePanel(manager);
- this.add(namePanel);
- authTable = new JTable(tableModel);
- authTable.setCellSelectionEnabled(false);
- authTable.setRowSelectionAllowed(true);
- authTable.setColumnSelectionAllowed(false);
- authTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ authManagerPanel.add(namePanel);
- JPanel main = new JPanel();
- main.setLayout(new BorderLayout());
+ JPanel authTablePanel = createAuthTablePanel();
+ authManagerPanel.add(authTablePanel);
- JScrollPane scroller = new JScrollPane(authTable);
- JTableHeader tableHeader = authTable.getTableHeader();
- scroller.setColumnHeaderView(tableHeader);
- main.add(scroller);
+ this.add(authManagerPanel);
+ }
- ButtonPanel buttons = new ButtonPanel();
- buttons.addButtonListener(buttons.ADD_BUTTON,
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent e)
- {
- final JDialog addDialog = new JDialog();
- addDialog.setSize(300, 150);
+ public void actionPerformed(ActionEvent e)
+ {
+ String action = e.getActionCommand();
- JPanel _main = new JPanel();
- GridBagLayout g = new GridBagLayout();
- _main.setLayout(g);
- GridBagConstraints c = new GridBagConstraints();
- c.fill = c.BOTH;
- c.gridwidth = 1;
- c.gridheight = 1;
- c.gridx = 1;
- c.gridy = 1;
- JLabel urlLabel = new JLabel("Base URL:");
- g.setConstraints(urlLabel, c);
-
- _main.add(urlLabel);
- final JTextField nameField = new JTextField(20);
- c.gridx = 2;
- c.gridy = 1;
- g.setConstraints(nameField, c);
- _main.add(nameField);
- JLabel usernameLabel = new JLabel(JMeterUtils.getResString("username")+":");
- c.gridx = 1;
- c.gridy = 2;
- g.setConstraints(usernameLabel, c);
- _main.add(usernameLabel);
- final JTextField usernameField = new JTextField(20);
- c.gridx = 2;
- c.gridy = 2;
- g.setConstraints(usernameField, c);
- _main.add(usernameField);
- JLabel passwordLabel = new JLabel(JMeterUtils.getResString("password")+":");
- c.gridx = 1;
- c.gridy = 3;
- g.setConstraints(passwordLabel, c);
- _main.add(passwordLabel);
- final JPasswordField passwordField = new JPasswordField(20);
- c.gridx = 2;
- c.gridy = 3;
- g.setConstraints(passwordField, c);
- _main.add(passwordField);
- JButton ok = new JButton("Ok");
- JButton cancel = new JButton("Cancel");
- ok.setPreferredSize(cancel.getPreferredSize());
- ok.addActionListener(
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param ev !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent ev)
- {
- manager.set(-1, nameField.getText(), usernameField.getText(), new String(passwordField.getPassword()));
- tableModel.fireTableDataChanged();
- addDialog.dispose();
- }
- });
- cancel.addActionListener(
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param ev !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent ev)
- {
- addDialog.dispose();
- }
- });
- c.fill = c.NONE;
- c.anchor = c.EAST;
- c.gridx = 1;
- c.gridy = 4;
- g.setConstraints(ok, c);
- _main.add(ok);
- c.anchor = c.WEST;
- c.gridx = 2;
- c.gridy = 4;
- g.setConstraints(cancel, c);
- _main.add(cancel);
- addDialog.getContentPane().add(_main);
- addDialog.show();
- }
- });
- buttons.addButtonListener(buttons.EDIT_BUTTON,
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent e)
+ if (action.equals("Delete"))
+ {
+ if (tableModel.getRowCount() > 0)
+ {
+ // If a table cell is being edited, we must cancel the editing before
+ // deleting the row
+ if (authTable.isEditing())
{
- final int row = authTable.getSelectedRow();
- if (row >= 0)
- {
- Authorization auth = manager.get(row);
- final JDialog addDialog = new JDialog();
- addDialog.setSize(300, 150);
-
- JPanel _main = new JPanel();
- GridBagLayout g = new GridBagLayout();
-
- _main.setLayout(g);
- GridBagConstraints c = new GridBagConstraints();
- c.fill = c.BOTH;
- c.gridwidth = 1;
- c.gridheight = 1;
- c.gridx = 1;
- c.gridy = 1;
- JLabel urlLabel = new JLabel("Base URL:");
- g.setConstraints(urlLabel, c);
-
- _main.add(urlLabel);
- final JTextField nameField = new JTextField(auth.getURL(), 20);
- c.gridx = 2;
- c.gridy = 1;
- g.setConstraints(nameField, c);
- _main.add(nameField);
- JLabel usernameLabel = new JLabel(JMeterUtils.getResString("username")+":");
- c.gridx = 1;
- c.gridy = 2;
- g.setConstraints(usernameLabel, c);
- _main.add(usernameLabel);
- final JTextField usernameField = new JTextField(auth.getUser(), 20);
- c.gridx = 2;
- c.gridy = 2;
- g.setConstraints(usernameField, c);
- _main.add(usernameField);
- JLabel passwordLabel = new JLabel(JMeterUtils.getResString("password")+":");
- c.gridx = 1;
- c.gridy = 3;
- g.setConstraints(passwordLabel, c);
- _main.add(passwordLabel);
- final JPasswordField passwordField = new JPasswordField(auth.getPass(), 20);
- c.gridx = 2;
- c.gridy = 3;
- g.setConstraints(passwordField, c);
- _main.add(passwordField);
- JButton ok = new JButton("Ok");
- JButton cancel = new JButton("Cancel");
- ok.setPreferredSize(cancel.getPreferredSize());
- ok.addActionListener(
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param ev !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent ev)
- {
- manager.set(row, nameField.getText(), usernameField.getText(), new String(passwordField.getPassword()));
- tableModel.fireTableDataChanged();
- addDialog.dispose();
- }
- });
- cancel.addActionListener(
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param ev !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent ev)
- {
- addDialog.dispose();
- }
- });
- c.fill = c.NONE;
- c.anchor = c.EAST;
- c.gridx = 1;
- c.gridy = 4;
- g.setConstraints(ok, c);
- _main.add(ok);
- c.anchor = c.WEST;
- c.gridx = 2;
- c.gridy = 4;
- g.setConstraints(cancel, c);
- _main.add(cancel);
- addDialog.getContentPane().add(_main);
- addDialog.show();
- }
+ TableCellEditor cellEditor = authTable.getCellEditor(authTable.getEditingRow(), authTable.getEditingColumn());
+ cellEditor.cancelCellEditing();
}
- });
- buttons.addButtonListener(buttons.DELETE_BUTTON,
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent e)
+
+ int rowSelected = authTable.getSelectedRow();
+
+ if (rowSelected != -1)
{
- int row = authTable.getSelectedRow();
- if (row >= 0)
+ tableModel.removeRow(rowSelected);
+ tableModel.fireTableDataChanged();
+
+ // Disable the DELETE and SAVE buttons if no rows remaining after delete
+ if (tableModel.getRowCount() == 0)
{
- manager.remove(row);
- tableModel.fireTableDataChanged();
+ deleteButton.setEnabled(false);
+ saveButton.setEnabled(false);
}
- }
- });
- buttons.addButtonListener(buttons.LOAD_BUTTON,
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent e)
- {
- try
+
+ // Table still contains one or more rows, so highlight (select)
+ // the appropriate one.
+ else
{
- File tmp = FileDialoger.promptToOpenFile()
- .getSelectedFile();
- if (tmp != null)
+ int rowToSelect = rowSelected;
+
+ if (rowSelected >= tableModel.getRowCount())
{
- manager.addFile(tmp.getAbsolutePath());
- tableModel.fireTableDataChanged();
+ rowToSelect = rowSelected - 1;
}
- }
- catch (IOException ex)
- {
- JOptionPane.showMessageDialog(null,ex.getMessage(),
- "Information", JOptionPane.INFORMATION_MESSAGE);
+
+ authTable.setRowSelectionInterval(rowToSelect, rowToSelect);
}
}
- });
- buttons.addButtonListener(buttons.SAVE_BUTTON,
- new ActionListener()
- {
- /************************************************************
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent e)
+ }
+ }
+ else if(action.equals("Add"))
+ {
+ // If a table cell is being edited, we should accept the current value
+ // and stop the editing before adding a new row.
+ if (authTable.isEditing())
+ {
+ TableCellEditor cellEditor = authTable.getCellEditor(authTable.getEditingRow(), authTable.getEditingColumn());
+ cellEditor.stopCellEditing();
+ }
+
+ tableModel.addNewRow();
+ tableModel.fireTableDataChanged();
+
+ // Enable the DELETE and SAVE buttons if they are currently disabled.
+ if (!deleteButton.isEnabled())
+ {
+ deleteButton.setEnabled(true);
+ }
+ if (!saveButton.isEnabled())
+ {
+ saveButton.setEnabled(true);
+ }
+
+ // Highlight (select) the appropriate row.
+ int rowToSelect = tableModel.getRowCount() - 1;
+ authTable.setRowSelectionInterval(rowToSelect, rowToSelect);
+ }
+ else if (action.equals("Load"))
+ {
+ try
+ {
+ File tmp = FileDialoger.promptToOpenFile().getSelectedFile();
+ if (tmp != null)
{
- try
- {
- File tmp = FileDialoger.promptToOpenFile()
- .getSelectedFile();
- if (tmp != null)
- {
- manager.save(tmp.getAbsolutePath());
- }
- }
- catch (IOException ex)
+ manager.addFile(tmp.getAbsolutePath());
+ tableModel.fireTableDataChanged();
+
+ if (tableModel.getRowCount() > 0)
{
- JOptionPane.showMessageDialog(null,ex.getMessage(),
- "Information", JOptionPane.INFORMATION_MESSAGE);
+ deleteButton.setEnabled(true);
+ saveButton.setEnabled(true);
}
+ }
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ else if (action.equals("Save"))
+ {
+ try
+ {
+ File tmp = FileDialoger.promptToSaveFile(null).getSelectedFile();
+ if (tmp != null)
+ {
+ manager.save(tmp.getAbsolutePath());
}
- });
- main.add(buttons, "South");
- this.add(main);
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
}
+ public JPanel createAuthTablePanel()
+ {
+ Border margin = new EmptyBorder(5, 10, 10, 10);
+
+ JPanel tempPanel = new JPanel();
+ tempPanel.setLayout(new VerticalLayout(0, VerticalLayout.CENTER));
+ tempPanel.setBorder(new CompoundBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), JMeterUtils.getResString("auths_stored")), margin));
+
+ // create the JTable that holds auth per row
+ authTable = new JTable(tableModel);
+ authTable.setCellSelectionEnabled(true);
+ authTable.setRowSelectionAllowed(true);
+ authTable.setColumnSelectionAllowed(false);
+ authTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+
+ // create a JScrollPane and place the auth JTable inside it
+ JScrollPane scroller = new JScrollPane(authTable);
+ authTable.setPreferredScrollableViewportSize(new Dimension(520, 150));
+ JTableHeader tableHeader = authTable.getTableHeader();
+ scroller.setColumnHeaderView(tableHeader);
+
+ tempPanel.add(scroller);
+
+ // ADD button
+ addButton = new JButton(JMeterUtils.getResString("add"));
+ addButton.setMnemonic('A');
+ addButton.setActionCommand("Add");
+ addButton.addActionListener(this);
+
+ // DELETE button
+ deleteButton = new JButton(JMeterUtils.getResString("delete"));
+ deleteButton.setEnabled(false); // disabled by default
+ deleteButton.setMnemonic('D');
+ deleteButton.setActionCommand("Delete");
+ deleteButton.addActionListener(this);
+
+ // LOAD button
+ loadButton = new JButton(JMeterUtils.getResString("load"));
+ loadButton.setMnemonic('L');
+ loadButton.setActionCommand("Load");
+ loadButton.addActionListener(this);
+
+ // SAVE button
+ saveButton = new JButton(JMeterUtils.getResString("save"));
+ saveButton.setEnabled(false); // disabled by default
+ saveButton.setMnemonic('S');
+ saveButton.setActionCommand("Save");
+ saveButton.addActionListener(this);
+
+ // Button Panel
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.add(addButton);
+ buttonPanel.add(deleteButton);
+ buttonPanel.add(loadButton);
+ buttonPanel.add(saveButton);
+
+ tempPanel.add(Box.createRigidArea(new Dimension(0, 10)));
+ tempPanel.add(buttonPanel);
+
+ return tempPanel;
+ }
+
private class InnerTableModel extends AbstractTableModel
{
AuthManager manager;
@@ -426,6 +338,27 @@
manager = man;
}
+ public void removeRow(int row)
+ {
+ manager.remove(row);
+ }
+
+ public void addNewRow()
+ {
+ manager.addAuth();
+ }
+
+ public boolean isCellEditable(int row, int column)
+ {
+ // all table cells are editable
+ return true;
+ }
+
+ public Class getColumnClass(int column)
+ {
+ return getValueAt(0, column).getClass();
+ }
+
/************************************************************
* required by table model interface
*
@@ -460,17 +393,6 @@
/************************************************************
* required by table model interface
*
- *@param column !ToDo (Parameter description)
- *@return !ToDo (Return description)
- ***********************************************************/
- public Class getColumnClass(int column)
- {
- return manager.getColumnClass(column);
- }
-
- /************************************************************
- * required by table model interface
- *
*@param row !ToDo (Parameter description)
*@param column !ToDo (Parameter description)
*@return !ToDo (Return description)
@@ -478,6 +400,7 @@
public Object getValueAt(int row, int column)
{
Authorization auth = manager.getAuthObjectAt(row);
+
if (column == 0)
{
return auth.getURL();
@@ -491,6 +414,24 @@
return auth.getPass();
}
return null;
+ }
+
+ public void setValueAt(Object value, int row, int column)
+ {
+ Authorization auth = manager.getAuthObjectAt(row);
+
+ if (column == 0)
+ {
+ auth.setURL((String)value);
+ }
+ else if (column == 1)
+ {
+ auth.setUser((String)value);
+ }
+ else if (column == 2)
+ {
+ auth.setPass((String)value);
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org