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/07 17:37:27 UTC
cvs commit: jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/gui MultipartUrlConfigGui.java
khammond 01/10/07 08:37:27
Modified: src/org/apache/jmeter/protocol/http/config/gui
MultipartUrlConfigGui.java
Log:
New GUI style.
Revision Changes Path
1.7 +235 -53 jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java
Index: MultipartUrlConfigGui.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/config/gui/MultipartUrlConfigGui.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MultipartUrlConfigGui.java 2001/08/09 18:48:50 1.6
+++ MultipartUrlConfigGui.java 2001/10/07 15:37:27 1.7
@@ -1,8 +1,65 @@
+/*
+ * ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache JMeter" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache JMeter", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
package org.apache.jmeter.protocol.http.config.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
+import javax.swing.border.*;
+import java.io.*;
import org.apache.jmeter.gui.VerticalLayout;
import org.apache.jmeter.gui.NamePanel;
@@ -22,14 +79,19 @@
public class MultipartUrlConfigGui extends UrlConfigGui
{
private static String FILENAME = "filename";
- private static String BROWSE = "Browse";
- private static String FIELDNAME = "fieldname";
+ private static String BROWSE = "browse";
+ private static String PARAMNAME = "paramname";
private static String MIMETYPE = "mimetype";
+ private static String SENDFILE = "sendfile";
- JTextField filenameField = new JTextField(15);
- JButton browse = new JButton(JMeterUtils.getResString("browse"));
- JTextField fieldNameField = new JTextField(15);
- JTextField mimetypeField = new JTextField(15);
+ JTextField filenameField;
+ JTextField paramNameField;
+ JTextField mimetypeField;
+ JLabel filenameLabel;
+ JLabel paramNameLabel;
+ JLabel mimetypeLabel;
+ JButton browseFileButton;
+ JCheckBox sendFileCheckBox;
public MultipartUrlConfigGui()
{
@@ -40,60 +102,143 @@
super(displayName);
}
- public void updateGui()
+ public void updateGui()
{
super.updateGui();
}
- protected void init()
+ protected void init()
{
- this.setLayout(new VerticalLayout(2,VerticalLayout.LEFT));
- if(displayName)
+ this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT, VerticalLayout.TOP));
+
+ // WEB SERVER PANEL
+ JPanel webServerPanel = new JPanel();
+ webServerPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT, VerticalLayout.TOP));
+ webServerPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), JMeterUtils.getResString("web_server")));
+ webServerPanel.add(getDomainPanel());
+ webServerPanel.add(getPortPanel());
+
+ // WEB REQUEST PANEL
+ JPanel webRequestPanel = new JPanel();
+ webRequestPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT, VerticalLayout.TOP));
+ webRequestPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), JMeterUtils.getResString("web_request")));
+ webRequestPanel.add(getProtocolAndMethodPanel());
+ webRequestPanel.add(getPathPanel());
+ webRequestPanel.add(getParameterPanel());
+ webRequestPanel.add(getFilePanel());
+
+ // If displayName is TRUE, then this GUI is not embedded in another GUI.
+ if (displayName)
+ {
+ // MAIN PANEL
+ JPanel mainPanel = new JPanel();
+ Border margin = new EmptyBorder(10, 10, 5, 10);
+ mainPanel.setBorder(margin);
+ mainPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
+
+ // TITLE
+ JLabel panelTitleLabel = new JLabel(JMeterUtils.getResString("url_full_config_title"));
+ Font curFont = panelTitleLabel.getFont();
+ int curFontSize = curFont.getSize();
+ curFontSize += 4;
+ panelTitleLabel.setFont(new Font(curFont.getFontName(), curFont.getStyle(), curFontSize));
+ mainPanel.add(panelTitleLabel);
+
+ // NAME
+ namePanel = new NamePanel(model);
+ mainPanel.add(namePanel);
+
+ mainPanel.add(webServerPanel);
+ mainPanel.add(webRequestPanel);
+
+ this.add(mainPanel);
+ }
+ else // Embed this GUI in the parent GUI
{
- namePanel = new NamePanel();
- namePanel.setModel(model);
- this.add(namePanel);
- }
- this.add(getProtocolPanel());
- this.add(getMethodPanel());
- this.add(getDomainPanel());
- this.add(getPortPanel());
- this.add(getPathPanel());
- this.add(getFilePanel());
- this.add(getParameterPanel());
- }
-
- private JPanel getFilePanel()
- {
- JPanel panel = new JPanel(new VerticalLayout(1,VerticalLayout.LEFT));
- panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),JMeterUtils.getResString("upload")));
- JPanel tempPanel = new JPanel();
- tempPanel.add(new JLabel(JMeterUtils.getResString("file")));
+ this.add(webServerPanel);
+ this.add(webRequestPanel);
+ }
+ }
+
+ protected JPanel getFilePanel()
+ {
+ // FILE PANEL (all main components are add to this panel)
+ JPanel filePanel = new JPanel();
+ filePanel.setLayout(new VerticalLayout(1, VerticalLayout.LEFT));
+ filePanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
+
+ // SEND FILE CHECKBOX
+ sendFileCheckBox = new JCheckBox(JMeterUtils.getResString("send_file"));
+ sendFileCheckBox.setActionCommand(SENDFILE);
+ sendFileCheckBox.addActionListener(this);
+ filePanel.add(sendFileCheckBox);
+
+ // FILENAME PANEL (contains filename label and text field and Browse button)
+ JPanel filenamePanel = new JPanel();
+ filenamePanel.setBorder(BorderFactory.createEmptyBorder(0, 25, 0, 0));
+
+ // --- FILENAME LABEL
+ filenameLabel = new JLabel(JMeterUtils.getResString("send_file_filename_label"));
+ filenameLabel.setEnabled(false);
+
+ // --- FILENAME TEXT FIELD
+ filenameField = new JTextField(15);
+ filenameField.setEnabled(false);
filenameField.setText(((MultipartUrlConfig)model).getFilename());
filenameField.setName(FILENAME);
filenameField.addKeyListener(this);
- tempPanel.add(filenameField);
- browse.setActionCommand(BROWSE);
- browse.addActionListener(this);
- tempPanel.add(browse);
- panel.add(tempPanel);
-
- tempPanel = new JPanel();
- tempPanel.add(new JLabel(JMeterUtils.getResString("field_name")));
- fieldNameField.setText(((MultipartUrlConfig)model).getFileFieldName());
- fieldNameField.setName(FIELDNAME);
- fieldNameField.addKeyListener(this);
- tempPanel.add(fieldNameField);
- panel.add(tempPanel);
- tempPanel = new JPanel();
- tempPanel.add(new JLabel(JMeterUtils.getResString("mimetype")));
+ // --- BROWSE BUTTON
+ browseFileButton = new JButton(JMeterUtils.getResString("send_file_browse"));
+ browseFileButton.setEnabled(false);
+ browseFileButton.setActionCommand(BROWSE);
+ browseFileButton.addActionListener(this);
+
+ filenamePanel.add(filenameLabel);
+ filenamePanel.add(filenameField);
+ filenamePanel.add(browseFileButton);
+
+ // PARAM NAME PANEL (contains param name label and text field)
+ JPanel paramNamePanel = new JPanel();
+ paramNamePanel.setBorder(BorderFactory.createEmptyBorder(0, 25, 0, 0));
+
+ // --- PARAM NAME LABEL
+ paramNameLabel = new JLabel(JMeterUtils.getResString("send_file_param_name_label"));
+ paramNameLabel.setEnabled(false);
+
+ // --- PARAM NAME TEXT FIELD
+ paramNameField = new JTextField(15);
+ paramNameField.setText(((MultipartUrlConfig)model).getFileFieldName());
+ paramNameField.setName(PARAMNAME);
+ paramNameField.addKeyListener(this);
+ paramNameField.setEnabled(false);
+
+ paramNamePanel.add(paramNameLabel);
+ paramNamePanel.add(paramNameField);
+
+ // MIME TYPE PANEL (contains mime type label and text field)
+ JPanel mimePanel = new JPanel();
+ mimePanel.setBorder(BorderFactory.createEmptyBorder(0, 25, 0, 0));
+
+ // --- MIME TYPE LABEL
+ mimetypeLabel = new JLabel(JMeterUtils.getResString("send_file_mime_label"));
+ mimetypeLabel.setEnabled(false);
+
+ // --- MIME TYPE TEXT FIELD
+ mimetypeField = new JTextField(15);
+ mimetypeField.setEnabled(false);
mimetypeField.setText(((MultipartUrlConfig)model).getMimeType());
mimetypeField.setName(MIMETYPE);
mimetypeField.addKeyListener(this);
- tempPanel.add(mimetypeField);
- panel.add(tempPanel);
- return panel;
+
+ mimePanel.add(mimetypeLabel);
+ mimePanel.add(mimetypeField);
+
+ filePanel.add(filenamePanel);
+ filePanel.add(paramNamePanel);
+ filePanel.add(mimePanel);
+
+ return filePanel;
}
public void keyReleased(KeyEvent e)
@@ -104,9 +249,9 @@
{
((MultipartUrlConfig)model).setFilename(filenameField.getText());
}
- else if(name.equals(FIELDNAME))
+ else if(name.equals(PARAMNAME))
{
- ((MultipartUrlConfig)model).setFileFieldName(fieldNameField.getText());
+ ((MultipartUrlConfig)model).setFileFieldName(paramNameField.getText());
}
else if (name.equals(MIMETYPE)) {
((MultipartUrlConfig)model).setMimeType(mimetypeField.getText());
@@ -116,12 +261,49 @@
public void actionPerformed(ActionEvent e)
{
String name = e.getActionCommand();
- if(name.equals(BROWSE))
+ if (name.equals(BROWSE))
{
JFileChooser chooser = FileDialoger.promptToOpenFile();
- ((MultipartUrlConfig)model).setFilename(chooser.getSelectedFile().getPath());
- filenameField.setText(chooser.getSelectedFile().getPath());
+
+ File file = chooser.getSelectedFile();
+ if (file != null)
+ {
+ ((MultipartUrlConfig)model).setFilename(file.getPath());
+ filenameField.setText(file.getPath());
+ }
+ }
+ else if (name.equals(SENDFILE))
+ {
+ if (sendFileCheckBox.isSelected())
+ {
+ filenameLabel.setEnabled(true);
+ filenameField.setEnabled(true);
+ mimetypeLabel.setEnabled(true);
+ mimetypeField.setEnabled(true);
+ paramNameLabel.setEnabled(true);
+ paramNameField.setEnabled(true);
+ browseFileButton.setEnabled(true);
+ }
+ else
+ {
+ filenameLabel.setEnabled(false);
+ filenameField.setEnabled(false);
+ mimetypeLabel.setEnabled(false);
+ mimetypeField.setEnabled(false);
+ paramNameLabel.setEnabled(false);
+ paramNameField.setEnabled(false);
+ browseFileButton.setEnabled(false);
+
+ filenameField.setText("");
+ paramNameField.setText("");
+ mimetypeField.setText("");
+
+ ((MultipartUrlConfig)model).setFilename("");
+ ((MultipartUrlConfig)model).setFileFieldName("");
+ ((MultipartUrlConfig)model).setMimeType("");
+ }
}
+
super.actionPerformed(e);
}
-}
\ No newline at end of file
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org