khammond 01/10/07 21:15:09
Modified: src/org/apache/jmeter/protocol/http/gui CookiePanel.java
Log:
New GUI style.
Revision Changes Path
1.9 +257 -305
jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui/CookiePanel.java
Index: CookiePanel.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui/CookiePanel.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- CookiePanel.java 2001/07/14 19:51:07 1.8
+++ CookiePanel.java 2001/10/08 04:15:09 1.9
@@ -60,7 +60,7 @@
import java.awt.*;
import java.awt.event.*;
import java.io.*;
-
+import javax.swing.text.*;
import org.apache.jmeter.protocol.http.control.*;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.gui.*;
@@ -69,20 +69,23 @@
* Allows the user to specify if she needs cookie services, and give parameters
* for this service.
*
- *@author $Author: mstover1 $
- *@created $Date: 2001/07/14 19:51:07 $
- *@version $Revision: 1.8 $
+ *@author $Author: khammond $
+ *@created $Date: 2001/10/08 04:15:09 $
+ *@version $Revision: 1.9 $
*/
-public class CookiePanel extends JPanel implements ModelSupported
+public class CookiePanel extends JPanel implements ModelSupported, ActionListener
{
-
CookieManager manager;
InnerTableModel tableModel;
-
- /**
- * A table to show the authentication information
- */
JTable cookieTable;
+ JTextField nicknameField;
+ JButton addButton;
+ JButton deleteButton;
+ JButton loadButton;
+ JButton saveButton;
+ JPanel cookieManagerPanel;
+ JTextPane nicknameTextPane;
+ JTextArea nicknameText;
NamePanel namePanel;
/**
@@ -123,108 +126,218 @@
public void updateGui()
{
tableModel.fireTableDataChanged();
- namePanel.updateGui();
}
- /**
- * Shows the main cookie configuration panel
- */
- public void init()
+ /************************************************************
+ * Description of the Method
+ *
+ *@param e Description of Parameter
+ ***********************************************************/
+ public void actionPerformed(ActionEvent e)
{
- this.setLayout(new VerticalLayout());
- namePanel = new NamePanel(manager);
- this.add(namePanel);
- cookieTable = new JTable(tableModel);
- cookieTable.setCellSelectionEnabled(false);
- cookieTable.setRowSelectionAllowed(true);
- cookieTable.setColumnSelectionAllowed(false);
- cookieTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ String action = e.getActionCommand();
- JPanel main = new JPanel();
- main.setLayout(new BorderLayout());
+ 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 (cookieTable.isEditing())
+ {
+ TableCellEditor cellEditor =
cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn());
+ cellEditor.cancelCellEditing();
+ }
- JScrollPane scroller = new JScrollPane(cookieTable);
- JTableHeader tableHeader = cookieTable.getTableHeader();
- scroller.setColumnHeaderView(tableHeader);
- main.add(scroller);
- CookieUpdater updater = new CookieUpdater();
- ButtonPanel buttons = new ButtonPanel();
- buttons.addButtonListener(buttons.ADD_BUTTON,updater);
- buttons.addButtonListener(buttons.EDIT_BUTTON,updater);
- buttons.addButtonListener(buttons.DELETE_BUTTON,
- new ActionListener()
- {
- /**
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- */
- public void actionPerformed(ActionEvent e)
+ int rowSelected = cookieTable.getSelectedRow();
+
+ if (rowSelected != -1)
{
- int row = cookieTable.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);
+ deleteButton.setEnabled(false);
+ saveButton.setEnabled(false);
}
- tableModel.fireTableDataChanged();
- }
- });
- 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());
+ rowToSelect = rowSelected - 1;
}
- }
- catch (IOException ex)
- {
- ex.printStackTrace();
+
+
cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
}
}
- });
+ }
+ }
+ 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 (cookieTable.isEditing())
+ {
+ TableCellEditor cellEditor =
cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn());
+ cellEditor.stopCellEditing();
+ }
+
+ tableModel.addNewRow();
+ tableModel.fireTableDataChanged();
- buttons.addButtonListener(buttons.SAVE_BUTTON,
- new ActionListener()
+ // Enable the DELETE and SAVE buttons if they are currently
disabled.
+ if (!deleteButton.isEnabled())
+ {
+ deleteButton.setEnabled(true);
+ }
+ if (!saveButton.isEnabled())
{
- /**
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- */
- public void actionPerformed(ActionEvent e)
+ saveButton.setEnabled(true);
+ }
+
+ // Highlight (select) the appropriate row.
+ int rowToSelect = tableModel.getRowCount() - 1;
+ cookieTable.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)
{
- ex.printStackTrace();
+ 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());
}
- });
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * Shows the main cookie configuration panel
+ */
+ public void init()
+ {
+ // set the layout of the control panel
+ this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
- main.add(buttons, "South");
- this.add(main);
+ cookieManagerPanel = new JPanel();
+
+ Border margin = new EmptyBorder(10, 10, 5, 10);
+ cookieManagerPanel.setBorder(margin);
+
+ cookieManagerPanel.setLayout(new VerticalLayout(5,
VerticalLayout.LEFT));
+
+ JLabel panelTitleLabel = new
JLabel(JMeterUtils.getResString("cookie_manager_title"));
+ Font curFont = panelTitleLabel.getFont();
+ int curFontSize = curFont.getSize();
+ curFontSize += 4;
+ panelTitleLabel.setFont(new Font(curFont.getFontName(),
curFont.getStyle(), curFontSize));
+ cookieManagerPanel.add(panelTitleLabel);
+
+ namePanel = new NamePanel(manager);
+ cookieManagerPanel.add(namePanel);
+
+ JPanel cookieTablePanel = createCookieTablePanel();
+ cookieManagerPanel.add(cookieTablePanel);
+
+ this.add(cookieManagerPanel);
}
+ public JPanel createCookieTablePanel()
+ {
+ 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("cookies_stored")), margin));
+
+ // create the JTable that holds one cookie per row
+ cookieTable = new JTable(tableModel);
+ cookieTable.setCellSelectionEnabled(true);
+ cookieTable.setRowSelectionAllowed(true);
+ cookieTable.setColumnSelectionAllowed(false);
+ cookieTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+
+ // create a JScrollPane and place the cookie JTable inside it
+ JScrollPane scroller = new JScrollPane(cookieTable);
+ cookieTable.setPreferredScrollableViewportSize(new Dimension(520,
150));
+ JTableHeader tableHeader = cookieTable.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;
+ }
+
/**
* Description of the Class
*
@@ -245,6 +358,24 @@
manager = man;
}
+ /************************************************************
+ * Description of the Method
+ *
+ *@param row Description of Parameter
+ ***********************************************************/
+ public void removeRow(int row)
+ {
+ manager.remove(row);
+ }
+
+ /**
+ *
+ */
+ public void addNewRow()
+ {
+ manager.add();
+ }
+
/**
* required by table model interface
*
@@ -252,6 +383,7 @@
*/
public int getRowCount()
{
+ //System.out.println("manager.getCookieCount(): " +
manager.getCookieCount());
return manager.getCookieCount();
}
@@ -276,15 +408,16 @@
return manager.getColumnName(column);
}
- /**
- * required by table model interface
- *
- *@param column Description of Parameter
- *@return The ColumnClass value
- */
- public Class getColumnClass(int column)
+
+ public boolean isCellEditable(int row, int column)
+ {
+ // all table cells are editable
+ return true;
+ }
+
+ public Class getColumnClass(int column)
{
- return manager.getColumnClass(column);
+ return getValueAt(0, column).getClass();
}
/**
@@ -319,227 +452,46 @@
}
else if (column == 5)
{
- return new Long(cook.getExpires());
+ return
manager.convertLongToDateFormatStr(cook.getExpires());
}
return null;
}
- }
-
- /**
- * Updates a cookie record
- *
- *@author $Author: mstover1 $
- *@created $Date: 2001/07/14 19:51:07 $
- *@version $Revision: 1.8 $
- */
- class CookieUpdater implements ActionListener
- {
- int index;
- JTextField nameField = new JTextField(20);
- JTextField valueField = new JTextField(20);
- JTextField domainField = new JTextField(20);
- JTextField pathField = new JTextField(20);
- JCheckBox secureCheck = new JCheckBox("Secure");
- JTextField expiresField = new JTextField(20);
- JButton ok = new JButton("Ok");
- JButton cancel = new JButton("Cancel");
-
- JDialog updateDialog;
-
- /**
- * !ToDo (Constructor description)
- */
- public CookieUpdater()
- {
- }
- /**
- * returns the contructed panel containing the cookie record
+ /************************************************************
+ * Sets the ValueAt attribute of the Arguments object
*
- *@return !ToDo (Return description)
- */
- public JPanel getPanel()
+ *@param value The new ValueAt value
+ *@param row The new ValueAt value
+ *@param col The new ValueAt value
+ ***********************************************************/
+ public void setValueAt(Object value, int row, int column)
{
- 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;
- 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);
- JLabel domainLabel = new
JLabel(JMeterUtils.getResString("domain")+":");
- c.gridx = 1;
- c.gridy = 3;
- g.setConstraints(domainLabel, c);
- main.add(domainLabel);
- JLabel pathLabel = new
JLabel(JMeterUtils.getResString("path")+":");
- c.gridx = 1;
- c.gridy = 4;
- g.setConstraints(pathLabel, c);
- main.add(pathLabel);
- JLabel expiresLabel = new
JLabel(JMeterUtils.getResString("expiration")+":");
- c.gridx = 1;
- c.gridy = 6;
- g.setConstraints(expiresLabel, c);
- main.add(expiresLabel);
-
- c.gridwidth = 2;
- c.gridx = 1;
- c.gridy = 5;
- g.setConstraints(secureCheck, c);
- c.gridwidth = 1;
- main.add(secureCheck);
-
- 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);
- c.gridx = 2;
- c.gridy = 3;
- g.setConstraints(domainField, c);
- main.add(domainField);
- c.gridx = 2;
- c.gridy = 4;
- g.setConstraints(pathField, c);
- main.add(pathField);
- c.gridx = 2;
- c.gridy = 6;
- g.setConstraints(expiresField, c);
- main.add(expiresField);
-
- 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;
- }
+ Cookie cook = manager.getCookie(row);
- /**
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- */
- public void actionPerformed(ActionEvent e)
- {
- String command = e.getActionCommand();
- boolean valid = true;
- index = -1;
- if (command.equals("Edit"))
+ if (column == 0)
{
- index = cookieTable.getSelectedRow();
- if (index < 0)
- {
- valid = false;
- }
- else
- {
- Cookie c = manager.get(index);
- nameField = new JTextField(c.getName(), 20);
- valueField = new JTextField(c.getValue(), 20);
- domainField = new JTextField(c.getDomain(),
20);
- pathField = new JTextField(c.getPath(), 20);
- secureCheck = new JCheckBox("Secure",
c.getSecure());
- expiresField = new JTextField(new
Long(c.getExpires()).toString(), 20);
- ok = new JButton("Ok");
- cancel = new JButton("Cancel");
- }
+ cook.setName((String)value);
+ }
+ else if (column == 1)
+ {
+ cook.setValue((String)value);
}
- else if (command.equals("Add"))
+ else if (column == 2)
{
- nameField = new JTextField(20);
- valueField = new JTextField(20);
- domainField = new JTextField(20);
- pathField = new JTextField(20);
- secureCheck = new JCheckBox("Secure");
- expiresField = new JTextField(20);
- ok = new JButton("Ok");
- cancel = new JButton("Cancel");
+ cook.setDomain((String)value);
}
- if (valid)
+ else if (column == 3)
{
- if (updateDialog != null)
- {
- updateDialog.dispose();
- }
- updateDialog = new JDialog();
- updateDialog.setSize(350, 300);
-
- ok.addActionListener(
- new ActionListener()
- {
- /**
- * !ToDo (Method description)
- *
- *@param ev !ToDo (Parameter
description)
- */
- public void
actionPerformed(ActionEvent ev)
- {
- int i = index;
- Cookie c = new Cookie();
- if (i >= 0)
- {
- c = manager.get(index);
- }
- c.setName(nameField.getText());
-
c.setValue(valueField.getText());
-
c.setDomain(domainField.getText());
- c.setPath(pathField.getText());
-
c.setSecure(secureCheck.isSelected());
- try
- {
-
c.setExpires(Long.parseLong(expiresField.getText()));
- }
- catch (NumberFormatException
ex)
- {
- c.setExpires(0);
- }
- if (i < 0)
- {
- manager.add(c);
- }
-
tableModel.fireTableDataChanged();
- updateDialog.dispose();
- }
- });
- cancel.addActionListener(
- new ActionListener()
- {
- /**
- * !ToDo (Method description)
- *
- *@param ev !ToDo (Parameter
description)
- */
- public void
actionPerformed(ActionEvent ev)
- {
- updateDialog.dispose();
- }
- });
- updateDialog.getContentPane().add(getPanel());
- updateDialog.show();
+ cook.setPath((String)value);
+ }
+ else if (column == 4)
+ {
+ cook.setSecure(((Boolean)value).booleanValue());
}
+ else if (column == 5)
+ {
+
cook.setExpires(manager.convertDateFormatStrToLong((String)value));
+ }
}
}
-
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]