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]

Reply via email to