khammond    01/10/07 21:44:23

  Modified:    src/org/apache/jmeter/protocol/http/gui HeaderPanel.java
  Log:
  New GUI style.
  
  Revision  Changes    Path
  1.5       +257 -24   
jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
  
  Index: HeaderPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui/HeaderPanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- HeaderPanel.java  2001/07/26 00:34:48     1.4
  +++ HeaderPanel.java  2001/10/08 04:44:23     1.5
  @@ -71,11 +71,11 @@
    *  and give parameters
    *  for this service.
    *
  - *@author     $Author: mstover1 $
  - *@created    $Date: 2001/07/26 00:34:48 $
  - *@version    $Revision: 1.4 $
  + *@author     $Author: khammond $
  + *@created    $Date: 2001/10/08 04:44:23 $
  + *@version    $Revision: 1.5 $
    ***********************************************************/
  -public class HeaderPanel extends JPanel implements ModelSupported {
  +public class HeaderPanel extends JPanel implements ModelSupported, ActionListener {
   
        HeaderManager manager;
        InnerTableModel tableModel;
  @@ -86,6 +86,12 @@
        JTable headerTable;
        NamePanel namePanel;
   
  +     JButton addButton;
  +     JButton deleteButton;
  +     JButton loadButton;
  +     JButton saveButton;
  +     JPanel headerManagerPanel;
  +
        /************************************************************
         *  Default constructor
         ***********************************************************/
  @@ -129,6 +135,33 @@
         ***********************************************************/
        public void init()
        {
  +             // set the layout of the control panel
  +             this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
  +
  +             headerManagerPanel = new JPanel();
  +
  +             Border margin = new EmptyBorder(10, 10, 5, 10);
  +             headerManagerPanel.setBorder(margin);
  +
  +             headerManagerPanel.setLayout(new VerticalLayout(5, 
VerticalLayout.LEFT));
  +
  +             JLabel panelTitleLabel = new 
JLabel(JMeterUtils.getResString("header_manager_title"));
  +             Font curFont = panelTitleLabel.getFont();
  +             int curFontSize = curFont.getSize();
  +             curFontSize += 4;
  +             panelTitleLabel.setFont(new Font(curFont.getFontName(), 
curFont.getStyle(), curFontSize));
  +             headerManagerPanel.add(panelTitleLabel);
  +
  +             namePanel = new NamePanel(manager);
  +             headerManagerPanel.add(namePanel);
  +
  +             JPanel headerTablePanel = createHeaderTablePanel();
  +             headerManagerPanel.add(headerTablePanel);
  +
  +             this.add(headerManagerPanel);
  +
  +
  +/*
                this.setLayout(new VerticalLayout());
                namePanel = new NamePanel(manager);
                this.add(namePanel);
  @@ -152,11 +185,6 @@
                buttonPanel.addButtonListener(buttonPanel.DELETE_BUTTON,
                        new ActionListener()
                        {
  -                             
/************************************************************
  -                              *  !ToDo (Method description)
  -                              *
  -                              *@param  e  !ToDo (Parameter description)
  -                              
***********************************************************/
                                public void actionPerformed(ActionEvent e)
                                {
                                        int row = headerTable.getSelectedRow();
  @@ -170,11 +198,6 @@
                buttonPanel.addButtonListener(buttonPanel.LOAD_BUTTON,
                        new ActionListener()
                        {
  -                             
/************************************************************
  -                              *  !ToDo (Method description)
  -                              *
  -                              *@param  e  !ToDo (Parameter description)
  -                              
***********************************************************/
                                public void actionPerformed(ActionEvent e)
                                {
                                        try
  @@ -196,11 +219,6 @@
                buttonPanel.addButtonListener(buttonPanel.SAVE_BUTTON,
                        new ActionListener()
                        {
  -                             
/************************************************************
  -                              *  !ToDo (Method description)
  -                              *
  -                              *@param  e  !ToDo (Parameter description)
  -                              
***********************************************************/
                                public void actionPerformed(ActionEvent e)
                                {
                                        try
  @@ -220,14 +238,194 @@
                        });
                main.add(buttonPanel, "South");
                this.add(main);
  +*/
        }
   
        /************************************************************
  +      *  Description of the Method
  +      *
  +      *@param  e  Description of Parameter
  +      ***********************************************************/
  +     public void actionPerformed(ActionEvent e)
  +     {
  +             String action = e.getActionCommand();
  +
  +             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 (headerTable.isEditing())
  +                             {
  +                                     TableCellEditor cellEditor = 
headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn());
  +                                     cellEditor.cancelCellEditing();
  +                             }
  +
  +                             int rowSelected = headerTable.getSelectedRow();
  +
  +                             if (rowSelected != -1)
  +                             {
  +                                     tableModel.removeRow(rowSelected);
  +                                     tableModel.fireTableDataChanged();
  +
  +                                     // Disable the DELETE and SAVE buttons if no 
rows remaining after delete
  +                                     if (tableModel.getRowCount() == 0)
  +                                     {
  +                                             deleteButton.setEnabled(false);
  +                                             saveButton.setEnabled(false);
  +                                     }
  +                             
  +                                     // Table still contains one or more rows, so 
highlight (select)
  +                                     // the appropriate one. 
  +                                     else
  +                                     {
  +                                             int rowToSelect = rowSelected;
  +
  +                                             if (rowSelected >= 
tableModel.getRowCount())
  +                                             {
  +                                                     rowToSelect = rowSelected - 1;
  +                                             }
  +
  +                                             
headerTable.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 (headerTable.isEditing())
  +                     {
  +                             TableCellEditor cellEditor = 
headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.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;
  +                     headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
  +             }
  +             else if (action.equals("Load"))
  +             {
  +                     try
  +                     {
  +                             File tmp = 
FileDialoger.promptToOpenFile().getSelectedFile();
  +                             if (tmp != null)
  +                             {
  +                                     manager.addFile(tmp.getAbsolutePath());
  +                                     tableModel.fireTableDataChanged();
  +
  +                                     if (tableModel.getRowCount() > 0)
  +                                     {
  +                                             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();
  +                     }
  +             }
  +     }
  +
  +     public JPanel createHeaderTablePanel()
  +     {
  +             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("headers_stored")), margin));
  +
  +             // create the JTable that holds header per row
  +             headerTable = new JTable(tableModel);
  +             headerTable.setCellSelectionEnabled(true);
  +             headerTable.setRowSelectionAllowed(true);
  +             headerTable.setColumnSelectionAllowed(false);
  +             headerTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  +
  +             // create a JScrollPane and place the header JTable inside it
  +             JScrollPane scroller = new JScrollPane(headerTable);
  +             headerTable.setPreferredScrollableViewportSize(new Dimension(520, 
150));
  +             JTableHeader tableHeader = headerTable.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;
  +     }
  +
  +     /************************************************************
         *  Updates a header record
         *
  -      *@author     $Author: mstover1 $
  -      *@created    $Date: 2001/07/26 00:34:48 $
  -      *@version    $Revision: 1.4 $
  +      *@author     $Author: khammond $
  +      *@created    $Date: 2001/10/08 04:44:23 $
  +      *@version    $Revision: 1.5 $
         ***********************************************************/
        class HeaderUpdater implements ActionListener
        {
  @@ -390,22 +588,42 @@
                        manager = man;
                }
   
  +             public void removeRow(int row)
  +             {
  +                     manager.remove(row);
  +             }
  +
  +             public void addNewRow()
  +             {
  +                     manager.add();
  +             }
  +
  +             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 */
                 public int getRowCount() {
                        return manager.getHeaders().size();
                 }
  +
                 /** required by table model interface */
                 public int getColumnCount() {
                        return manager.getColumnCount();
                 }
  +
                 /** required by table model interface */
                 public String getColumnName(int column) {
                        return manager.getColumnName(column);
  -              }
  -              /** required by table model interface */
  -              public Class getColumnClass(int column) {
  -                     return manager.getColumnClass(column);
                 }
  +
                 /** required by table model interface */
                 public Object getValueAt(int row, int column) {
                          Header head = manager.getHeader(row);
  @@ -416,5 +634,20 @@
                          }
                          return null;
                 }
  +
  +             public void setValueAt(Object value, int row, int column)
  +             {
  +                     Header header = manager.getHeader(row);
  +
  +                     if (column == 0)
  +                     {
  +                             header.setName((String)value);
  +                     }
  +                     else if (column == 1)
  +                     {
  +                             header.setValue((String)value);
  +                     }
  +             }
  +
         }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to