You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by kh...@apache.org on 2001/10/08 06:44:23 UTC
cvs commit: jakarta-jmeter/src/org/apache/jmeter/protocol/http/gui HeaderPanel.java
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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org