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]