khammond    01/10/07 08:39:38

  Modified:    src/org/apache/jmeter/config/gui ArgumentsPanel.java
  Log:
  New GUI style.
  
  Revision  Changes    Path
  1.9       +150 -17   
jakarta-jmeter/src/org/apache/jmeter/config/gui/ArgumentsPanel.java
  
  Index: ArgumentsPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/config/gui/ArgumentsPanel.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ArgumentsPanel.java       2001/07/26 00:34:43     1.8
  +++ ArgumentsPanel.java       2001/10/07 15:39:38     1.9
  @@ -57,6 +57,7 @@
   import java.awt.event.*;
   
   import javax.swing.*;
  +import javax.swing.border.*;
   import javax.swing.table.*;
   import org.apache.jmeter.config.*;
   import org.apache.jmeter.util.JMeterUtils;
  @@ -79,7 +80,13 @@
        JButton add;
        JButton delete;
        InnerTableModel tableModel;
  +     JCheckBox sendCheckBox;
  +     JPanel innerPanel;
   
  +     private static String SEND = "send";
  +     private static String ADD = "add";
  +     private static String DELETE = "delete";
  +
        /************************************************************
         *  Constructor for the ArgumentsPanel object
         ***********************************************************/
  @@ -95,9 +102,16 @@
        public void setModel(Object model)
        {
                this.model = (Arguments)model;
  -             try{
  -             tableModel = new InnerTableModel(this.model);
  -             }catch(Throwable e){e.printStackTrace();}
  +     
  +             try
  +             {
  +                     tableModel = new InnerTableModel(this.model);
  +             }
  +             catch (Throwable e)
  +             {
  +                     e.printStackTrace();
  +             }
  +
                init();
        }
   
  @@ -107,6 +121,8 @@
        public void updateGui()
        {
                tableModel.fireTableDataChanged();
  +
  +             this.validate();
                this.repaint();
        }
   
  @@ -148,23 +164,93 @@
        public void actionPerformed(ActionEvent e)
        {
                String action = e.getActionCommand();
  -             if(action.equals("Delete"))
  +             if (action.equals(DELETE))
                {
  -                     tableModel.removeRow(table.getSelectedRow());
  -                     tableModel.fireTableDataChanged();
  +                     // If a table cell is being edited, we must cancel the editing 
before 
  +                     // deleting the row
  +                     if (table.isEditing())
  +                     {
  +                             TableCellEditor cellEditor = 
table.getCellEditor(table.getEditingRow(), table.getEditingColumn());
  +                             cellEditor.cancelCellEditing();
  +                     }
  +
  +                     int rowSelected = table.getSelectedRow();
  +                     if (rowSelected >= 0)
  +                     {
  +                             tableModel.removeRow(rowSelected);
  +                             tableModel.fireTableDataChanged();
  +
  +                             // Disable DELETE if there are no rows in the table to 
delete.
  +                             if (tableModel.getRowCount() == 0)
  +                             {
  +                                     delete.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;
  +                                     }
  +
  +                                     table.setRowSelectionInterval(rowToSelect, 
rowToSelect);
  +                             }
  +                     }
                }
  -             else if(action.equals("Add"))
  +             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 (table.isEditing())
  +                     {
  +                             TableCellEditor cellEditor = 
table.getCellEditor(table.getEditingRow(), table.getEditingColumn());
  +                             cellEditor.stopCellEditing();
  +                     }
  +
                        tableModel.addNewRow();
                        tableModel.fireTableDataChanged();
  +
  +                     // Enable DELETE (which may already be enabled, but it won't 
hurt)
  +                     delete.setEnabled(true);
  +
  +                     // Highlight (select) the appropriate row.
  +                     int rowToSelect = tableModel.getRowCount() - 1;
  +                     table.setRowSelectionInterval(rowToSelect, rowToSelect);
  +             }
  +             else if (action.equals(SEND))
  +             {
  +                     if (sendCheckBox.isSelected())
  +                     {
  +                             table.setEnabled(true);
  +                             add.setEnabled(true);
  +
  +                             // Disable DELETE because there are no rows in 
  +                             // the table to delete.
  +                             delete.setEnabled(false);
  +                     }
  +                     else
  +                     {
  +                             table.setEnabled(false);
  +                             add.setEnabled(false);
  +                             delete.setEnabled(false);
  +                             tableModel.removeAllRows();
  +                             tableModel.fireTableDataChanged();
  +                     }
                }
        }
   
  -     private void init()
  +     public void addInnerPanel()
        {
  -             this.setLayout(new VerticalLayout());
  -             this.add(new JLabel(JMeterUtils.getResString("paramtable")));
  +             innerPanel = new JPanel();
  +             innerPanel.setLayout(new VerticalLayout());
  +             innerPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
  +
                table = new JTable(tableModel);
  +             table.setEnabled(false);
                table.addKeyListener(this);
                table.setCellSelectionEnabled(true);
                table.setRowSelectionAllowed(true);
  @@ -173,23 +259,63 @@
   
                JScrollPane scroller = new JScrollPane(table);
                Dimension tableDim = scroller.getPreferredSize();
  -             tableDim.height = (int)tableDim.getHeight() / 2;
  +             tableDim.height = 70;
                scroller.setPreferredSize(tableDim);
  -
                scroller.setColumnHeaderView(table.getTableHeader());
  -             this.add(scroller);
  +
  +             JPanel innerPanel2 = new JPanel();
  +             innerPanel2.setLayout(new BoxLayout(innerPanel2, BoxLayout.X_AXIS));
  +             innerPanel2.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
  +             innerPanel2.add(Box.createRigidArea(new Dimension(20, 0)));
  +             innerPanel2.add(scroller);
  +
  +             innerPanel.add(innerPanel2);
  +
                add = new JButton(JMeterUtils.getResString("add"));
  -             add.setActionCommand("Add");
  +             add.setActionCommand(ADD);
  +             add.setEnabled(false);
  +
                delete = new JButton(JMeterUtils.getResString("delete"));
  -             delete.setActionCommand("Delete");
  +             delete.setActionCommand(DELETE);
  +             delete.setEnabled(false);
  +
                JPanel buttonPanel = new JPanel();
  +             buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
                add.addActionListener(this);
                delete.addActionListener(this);
                buttonPanel.add(add);
                buttonPanel.add(delete);
  -             this.add(buttonPanel);
  +             innerPanel.add(buttonPanel);
  +
  +             this.add(innerPanel);
  +     }
  +
  +     public void removeInnerPanel()
  +     {
  +             table.setEnabled(false);
  +             add.setEnabled(false);
  +             delete.setEnabled(false);
  +             tableModel.removeAllRows();
  +             tableModel.fireTableDataChanged();
  +
  +             this.remove(innerPanel);
  +             innerPanel = null;
  +             updateGui();
        }
   
  +     private void init()
  +     {
  +             this.setLayout(new VerticalLayout(1, VerticalLayout.LEFT));
  +             this.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
  +
  +             sendCheckBox = new JCheckBox(JMeterUtils.getResString("paramtable"));
  +             sendCheckBox.setActionCommand(SEND);
  +             sendCheckBox.addActionListener(this);
  +
  +             this.add(sendCheckBox);
  +             this.addInnerPanel();
  +     }
  +
        /**
         * Inner class to handle table model calls
         */
  @@ -218,6 +344,14 @@
                }
   
                /************************************************************
  +              *  Description of the Method
  +              ***********************************************************/
  +             public void removeAllRows()
  +             {
  +                     args.removeAllArguments();
  +             }
  +
  +             /************************************************************
                 *  Adds a feature to the NewRow attribute of the Arguments object
                 ***********************************************************/
                public void addNewRow()
  @@ -322,5 +456,4 @@
                        }
                }
        }
  -
   }
  
  
  

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

Reply via email to