mstover1 2002/08/02 18:50:38
Modified: src_1/org/apache/jmeter/visualizers MailerVisualizer.java
Log:
Update to the Mailer Visualizer from Wolfram Rittmeyer
Revision Changes Path
1.6 +333 -216
jakarta-jmeter/src_1/org/apache/jmeter/visualizers/MailerVisualizer.java
Index: MailerVisualizer.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/visualizers/MailerVisualizer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MailerVisualizer.java 29 Apr 2002 17:08:15 -0000 1.5
+++ MailerVisualizer.java 3 Aug 2002 01:50:38 -0000 1.6
@@ -58,6 +58,7 @@
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
+import javax.swing.border.*;
import javax.swing.event.*;
import java.util.*;
import java.net.*;
@@ -66,8 +67,9 @@
//import javax.activation.* ;
import java.util.Properties;
import org.apache.jmeter.util.*;
-import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.samplers.Sampler;
+import org.apache.jmeter.gui.util.*;
+import org.apache.jmeter.samplers.*;
+import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
/*
* TODO :
@@ -83,170 +85,72 @@
* This class implements a visualizer that mails a message when an error
* occurs.
*
- *@author <a href="mailto:[EMAIL PROTECTED]">Stuart Schmukler</a>
+ *@author <a href="mailto:[EMAIL PROTECTED]">Stuart Schmukler</a> and <a
href="mailto:[EMAIL PROTECTED]">Wolfram Rittmeyer</a>
*@created $Date$
*@version $Revision$ $Date$
***********************************************************/
-public class MailerVisualizer extends JPanel implements Visualizer, ActionListener
-{
+//public class MailerVisualizer extends JPanel implements Visualizer, ActionListener
+public class MailerVisualizer extends AbstractVisualizer
+ implements ActionListener, FocusListener, Clearable {
+
+ private String addressie;
+ private String from;
+ private String smtpHost;
+ private String failsubject;
+ private String successsubject;
+ private long failureCount = 0;
+ private long successCount = 0;
+ private long failureLimit = 2;
+ private long successLimit = 2;
+ private boolean failureMsgSent = false;
+ private boolean siteDown = false;
+ private boolean successMsgSent = false;
+
+ private Properties appProperties;
+
+ private JButton testerButton;
+ private JTextField addressField;
+ private JTextField fromField;
+ private JTextField smtpHostField;
+ private JTextField failsubjectField;
+ private JTextField successsubjectField;
+ private JTextField failureField;
+ private JTextField failureLimitField;
+ private JTextField successLimitField;
+
+ private JPanel mainPanel;
+ private JLabel panelTitleLabel;
- String addressie;
- String from;
- String smtpHost;
- String failsubject;
- String successsubject;
- long failureCount = 0;
- long successCount = 0;
- long failureLimit = 2;
- long successLimit = 2;
- boolean failureMsgSent = false;
- boolean siteDown = false;
- boolean successMsgSent = false;
-
- Properties appProperties;
-
- JButton testerButton;
- JTextField addressField;
- JTextField fromField;
- JTextField smtpHostField;
- JTextField failsubjectField;
- JTextField successsubjectField;
- JTextField failureField;
- JTextField failureLimitField;
- JTextField successLimitField;
//-----------
/************************************************************
* !ToDo (Constructor description)
***********************************************************/
- public MailerVisualizer()
- {
+ public MailerVisualizer() {
super();
// Properties connection.
this.appProperties = JMeterUtils.getJMeterProperties();
- // File panel
- JPanel mailerPanel = new JPanel();
- GridBagLayout g = new GridBagLayout();
- mailerPanel.setLayout(g);
- GridBagConstraints c = new GridBagConstraints();
-
- c.anchor = GridBagConstraints.NORTHWEST;
- c.insets = new Insets(0, 0, 0, 0);
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("From:"));
-
- from = appProperties.getProperty("mailer.from");
- fromField = new JTextField(from, 25);
- fromField.setEditable(true);
- fromField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(fromField, c);
- mailerPanel.add(fromField);
-
- c.anchor = GridBagConstraints.NORTHWEST;
- c.insets = new Insets(0, 0, 0, 0);
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("Addressie(s):"));
-
- addressie = appProperties.getProperty("mailer.addressies");
- addressField = new JTextField(addressie, 25);
- addressField.setEditable(true);
- addressField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(addressField, c);
- mailerPanel.add(addressField);
-
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("SMTP Host:"));
-
- smtpHost = appProperties.getProperty("mailer.smtphost");
- smtpHostField = new JTextField(smtpHost, 25);
- smtpHostField.setEditable(true);
- smtpHostField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(smtpHostField, c);
- mailerPanel.add(smtpHostField);
-
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("Failure Subject:"));
-
- failsubject = appProperties.getProperty("mailer.failsubject");
- failsubjectField = new JTextField(failsubject, 25);
- failsubjectField.setEditable(true);
- failsubjectField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(failsubjectField, c);
- mailerPanel.add(failsubjectField);
-
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("Success Subject:"));
-
- successsubject = appProperties.getProperty("mailer.successsubject");
- successsubjectField = new JTextField(successsubject, 25);
- successsubjectField.setEditable(true);
- successsubjectField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(successsubjectField, c);
- mailerPanel.add(successsubjectField);
-
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("Failure Limit:"));
-
- try
- {
- failureLimit =
-
Long.parseLong(appProperties.getProperty("mailer.failurelimit"));
+ // retrieve successLimit from properties
+ try {
+ successLimit =
Long.parseLong(appProperties.getProperty("mailer.successlimit"));
}
- catch (NumberFormatException ex)
- {
+ catch (Exception ex) {
// Ignore any garbage
}
- failureLimitField = new JTextField(Long.toString(failureLimit), 6);
- failureLimitField.setEditable(true);
- failureLimitField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(failureLimitField, c);
- mailerPanel.add(failureLimitField);
-
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("Success Limit:"));
- try
- {
- successLimit =
-
Long.parseLong(appProperties.getProperty("mailer.successlimit"));
+ // retrieve failureLimit from properties
+ try {
+ failureLimit =
Long.parseLong(appProperties.getProperty("mailer.failurelimit"));
}
- catch (NumberFormatException ex)
- {
+ catch (Exception ex) {
// Ignore any garbage
}
- successLimitField = new JTextField(Long.toString(successLimit), 6);
- successLimitField.setEditable(true);
- successLimitField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(successLimitField, c);
- mailerPanel.add(successLimitField);
-
- testerButton = new JButton("Test Mail");
- testerButton.addActionListener(this);
- testerButton.setEnabled(true);
- c.gridwidth = 1;
- g.setConstraints(testerButton, c);
- mailerPanel.add(testerButton);
- c.gridwidth = 1;
- mailerPanel.add(new JLabel("Failures:"));
- failureField = new JTextField(6);
- failureField.setEditable(false);
- failureField.addActionListener(this);
- c.gridwidth = GridBagConstraints.REMAINDER;
- g.setConstraints(failureField, c);
- mailerPanel.add(failureField);
-
- this.add(mailerPanel);
+ // initialize GUI.
+ initGui();
}
/************************************************************
@@ -269,77 +173,6 @@
return this;
}
- /************************************************************
- * !ToDo (Method description)
- *
- *@param e !ToDo (Parameter description)
- ***********************************************************/
- public void actionPerformed(ActionEvent e)
- {
- try
- {
- JComponent c = (JComponent)e.getSource();
- if (c == addressField)
- {
- this.addressie = this.addressField.getText();
- System.out.println("AddressField=" +
addressField.getText());
- }
- else if (c == fromField)
- {
- this.from = this.fromField.getText();
- System.out.println("FromField=" + fromField.getText());
- }
- else if (c == smtpHostField)
- {
- this.smtpHost = this.smtpHostField.getText();
- System.out.println("smtpHostField=" +
smtpHostField.getText());
- }
- else if (c == failsubjectField)
- {
- this.failsubject = this.failsubjectField.getText();
- System.out.println("failsubjectField=" +
failsubjectField.getText());
- }
- else if (c == successsubjectField)
- {
- this.successsubject =
this.successsubjectField.getText();
- System.out.println("successsubjectField=" +
successsubjectField.getText());
- }
- else if (c == failureLimitField)
- {
- this.failureLimit =
Long.parseLong(this.failureLimitField.getText());
- System.out.println("failureLimitField=" +
failureLimitField.getText());
- }
- else if (c == successLimitField)
- {
- this.successLimit =
Long.parseLong(this.successLimitField.getText());
- System.out.println("successLimitField=" +
successLimitField.getText());
- }
- else if (c == testerButton)
- {
- System.out.println("### Test To: " + this.addressie +
", " +
- "Via: " + this.smtpHost + ", " +
- "Fail Subject: " + this.failsubject +
", " +
- "Success Subject: " +
this.successsubject);
-
- String testMessage = ("### Test To: " +
this.addressie + ", " +
- "Via: " + this.smtpHost + ", " +
- "Fail Subject: " + this.failsubject +
", " +
- "Success Subject: " +
this.successsubject);
-
- Vector addressVector = newAddressVector(addressie);
- sendMail(from, addressVector, "Testing addressies",
testMessage, smtpHost);
- }
- else
- {
- // do nothing!
- }
- }
- catch (Exception ex)
- {
- JOptionPane.showMessageDialog(this, ex, "Error",
JOptionPane.ERROR_MESSAGE);
- }
- }
-
/************************************************************
* !ToDo (Method description)
@@ -506,4 +339,288 @@
System.exit(1);
}
}
+
+ /**
+ * Initializes the GUI. Lays out components and adds them to the
+ * container.
+ */
+ private void initGui() {
+ this.setLayout(new VerticalLayout(5, VerticalLayout.LEFT,
VerticalLayout.TOP));
+
+ // 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(getStaticLabel());
+ Font curFont = panelTitleLabel.getFont();
+ int curFontSize = curFont.getSize();
+ curFontSize += 4;
+ panelTitleLabel.setFont(new Font(curFont.getFontName(),
curFont.getStyle(), curFontSize));
+ mainPanel.add(panelTitleLabel);
+
+ // NAME
+ mainPanel.add(getNamePanel());
+
+ // mailer panel
+ JPanel mailerPanel = new JPanel();
+
mailerPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
getAttributesTitle()));
+ GridBagLayout g = new GridBagLayout();
+ mailerPanel.setLayout(g);
+ GridBagConstraints c = new GridBagConstraints();
+
+ c.anchor = GridBagConstraints.NORTHWEST;
+ c.insets = new Insets(0, 0, 0, 0);
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("From:"));
+
+ from = appProperties.getProperty("mailer.from");
+ fromField = new JTextField(from, 25);
+ fromField.setEditable(true);
+ fromField.addActionListener(this);
+ fromField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(fromField, c);
+ mailerPanel.add(fromField);
+
+ c.anchor = GridBagConstraints.NORTHWEST;
+ c.insets = new Insets(0, 0, 0, 0);
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("Addressie(s):"));
+
+ addressie = appProperties.getProperty("mailer.addressies");
+ addressField = new JTextField(addressie, 25);
+ addressField.setEditable(true);
+ addressField.addActionListener(this);
+ addressField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(addressField, c);
+ mailerPanel.add(addressField);
+
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("SMTP Host:"));
+
+ smtpHost = appProperties.getProperty("mailer.smtphost");
+ smtpHostField = new JTextField(smtpHost, 25);
+ smtpHostField.setEditable(true);
+ smtpHostField.addActionListener(this);
+ smtpHostField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(smtpHostField, c);
+ mailerPanel.add(smtpHostField);
+
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("Failure Subject:"));
+
+ failsubject = appProperties.getProperty("mailer.failsubject");
+ failsubjectField = new JTextField(failsubject, 25);
+ failsubjectField.setEditable(true);
+ failsubjectField.addActionListener(this);
+ failsubjectField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(failsubjectField, c);
+ mailerPanel.add(failsubjectField);
+
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("Success Subject:"));
+
+ successsubject = appProperties.getProperty("mailer.successsubject");
+ successsubjectField = new JTextField(successsubject, 25);
+ successsubjectField.setEditable(true);
+ successsubjectField.addActionListener(this);
+ successsubjectField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(successsubjectField, c);
+ mailerPanel.add(successsubjectField);
+
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("Failure Limit:"));
+
+ failureLimitField = new JTextField(Long.toString(failureLimit), 6);
+ failureLimitField.setEditable(true);
+ failureLimitField.addActionListener(this);
+ failureLimitField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(failureLimitField, c);
+ mailerPanel.add(failureLimitField);
+
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("Success Limit:"));
+
+ successLimitField = new JTextField(Long.toString(successLimit), 6);
+ successLimitField.setEditable(true);
+ successLimitField.addActionListener(this);
+ successLimitField.addFocusListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(successLimitField, c);
+ mailerPanel.add(successLimitField);
+
+ testerButton = new JButton("Test Mail");
+ testerButton.addActionListener(this);
+ testerButton.setEnabled(true);
+ c.gridwidth = 1;
+ g.setConstraints(testerButton, c);
+ mailerPanel.add(testerButton);
+
+ c.gridwidth = 1;
+ mailerPanel.add(new JLabel("Failures:"));
+ failureField = new JTextField(6);
+ failureField.setEditable(false);
+ failureField.addActionListener(this);
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ g.setConstraints(failureField, c);
+ mailerPanel.add(failureField);
+
+ mainPanel.add(mailerPanel, BorderLayout.CENTER);
+
+ this.add(mainPanel);
+ }
+
+ /**
+ * Returns a String for the title of the component
+ * as set up in the properties-file using the lookup-constant
+ * "mailer_visualizer_title".
+ *
+ *@return The title of the component.
+ */
+ public String getStaticLabel()
+ {
+ // should be something like this:
+ // return JMeterUtils.getResString("mailer_visualizer_title");
+ return "Mailer Visualizer";
+ }
+
+ /**
+ * Returns a String for the title of the attributes-panel
+ * as set up in the properties-file using the lookup-constant
+ * "mailer_attributes_panel".
+ *
+ *@return The title of the component.
+ */
+ public String getAttributesTitle()
+ {
+ // should be something like this:
+ // return JMeterUtils.getResString("mailer_attributes_panel")
+ return "Mailing attributes";
+ }
+ /**
+ * Method used to log a String.
+ *
+ * @param str String to be logged.
+ */
+ private static void log(String str) {
+ // this is just a tewmporary solution
+ // will be replaced by a call to the logging-API
+ // of the commons-project.
+ System.out.println("MailerVisualizer - " + str);
+ }
+
+
+ /**
+ * Does the actual EventHandling. Gets called by EventHandlers
+ * for either ActionEvents or FocusEvents.
+ *
+ * @param source The object that caused the event.
+ */
+ private void doEventHandling(Object source) {
+ if (source == addressField) {
+ this.addressie = this.addressField.getText();
+ log("AddressField=" + addressField.getText());
+ }
+ else if (source == fromField) {
+ this.from = this.fromField.getText();
+ log("FromField=" + fromField.getText());
+ }
+ else if (source == smtpHostField) {
+ this.smtpHost = this.smtpHostField.getText();
+ log("smtpHostField=" + smtpHostField.getText());
+ }
+ else if (source == failsubjectField) {
+ this.failsubject = this.failsubjectField.getText();
+ log("failsubjectField=" + failsubjectField.getText());
+ }
+ else if (source == successsubjectField) {
+ this.successsubject = this.successsubjectField.getText();
+ log("successsubjectField=" + successsubjectField.getText());
+ }
+ else if (source == failureLimitField) {
+ this.failureLimit =
Long.parseLong(this.failureLimitField.getText());
+ log("failureLimitField=" + failureLimitField.getText());
+ }
+ else if (source == successLimitField) {
+ this.successLimit =
Long.parseLong(this.successLimitField.getText());
+ log("successLimitField=" + successLimitField.getText());
+ }
+ }
+
+
+ //////////////////////////////////////////////////////////////
+ //
+ // Implementation of the ActionListener-Interface.
+ //
+ //////////////////////////////////////////////////////////////
+
+ /************************************************************
+ * !ToDo (Method description)
+ *
+ *@param e !ToDo (Parameter description)
+ ***********************************************************/
+ public void actionPerformed(ActionEvent e) {
+ try {
+ JComponent c = (JComponent)e.getSource();
+ if (c == testerButton) {
+ log("### Test To: " + this.addressie + ", " +
+ "Via: " + this.smtpHost + ", " +
+ "Fail Subject: " + this.failsubject +
", " +
+ "Success Subject: " +
this.successsubject);
+
+ String testMessage = ("### Test To: " +
this.addressie + ", " +
+ "Via: " + this.smtpHost + ", " +
+ "Fail Subject: " + this.failsubject +
", " +
+ "Success Subject: " +
this.successsubject);
+
+ Vector addressVector = newAddressVector(addressie);
+ sendMail(from, addressVector, "Testing addressies",
testMessage, smtpHost);
+ }
+ else {
+ doEventHandling(c);
+ }
+ }
+ catch (Exception ex) {
+ JOptionPane.showMessageDialog(this, ex, "Error",
JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+ //////////////////////////////////////////////////////////////
+ //
+ // Implementation of the FocusListener-Interface.
+ //
+ //////////////////////////////////////////////////////////////
+
+ /**
+ * Empty implementation of the FocusListener-method.
+ */
+ public void focusGained(FocusEvent e) {
+ }
+
+ /**
+ * Called every time a element looses its focus. Here used to determine
+ * wether the text inside a JTextField has changed and wether
+ * the field has changed.
+ *
+ * @param e The FocusEvent-object encapsulating all relevant informations
+ * about the FocusEvent.
+ */
+ public void focusLost(FocusEvent e) {
+ Object source = e.getSource();
+ doEventHandling(source);
+ }
+
}
+
+// new ressource_strings:
+// mailer_visualizer_title - used as the title of this Visualizer
+// mailer_attributes_panel - used as the title of the JPanel (EtchedBorder - title)
where the attributes are entered
+
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>