woolfel 2005/09/20 08:29:46
Modified: src/components/org/apache/jmeter/visualizers Tag: rel-2-1
StatGraphVisualizer.java
Log:
adding updates so users can easily save the table data as CSV with 1 click
peter
Revision Changes Path
No revision
No revision
1.1.2.4 +55 -2
jakarta-jmeter/src/components/org/apache/jmeter/visualizers/Attic/StatGraphVisualizer.java
Index: StatGraphVisualizer.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/Attic/StatGraphVisualizer.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- StatGraphVisualizer.java 11 Sep 2005 01:52:50 -0000 1.1.2.3
+++ StatGraphVisualizer.java 20 Sep 2005 15:29:45 -0000 1.1.2.4
@@ -22,13 +22,19 @@
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import java.util.Vector;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
+import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
@@ -39,17 +45,21 @@
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.SaveGraphics;
+import org.apache.jmeter.gui.util.FileDialoger;
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.samplers.Clearable;
import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.save.OldSaveService;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
import org.apache.jorphan.gui.JLabeledChoice;
import org.apache.jorphan.gui.JLabeledTextField;
import org.apache.jorphan.gui.ObjectTableModel;
+import org.apache.jorphan.logging.LoggingManager;
import org.apache.jorphan.reflect.Functor;
+import org.apache.log.Logger;
/**
* Aggregrate Table-Based Reporting Visualizer for JMeter. Props to the
people
@@ -61,6 +71,7 @@
*/
public class StatGraphVisualizer extends AbstractVisualizer implements
Clearable,
ActionListener {
+ transient private static Logger log = LoggingManager.getLoggerForClass();
private final String[] COLUMNS = { JMeterUtils.getResString("URL"),
JMeterUtils.getResString("aggregate_report_count"),
JMeterUtils.getResString("average"),
JMeterUtils.getResString("aggregate_report_median"),
JMeterUtils.getResString("aggregate_report_90%_line"),
@@ -103,6 +114,9 @@
protected JButton saveGraph =
new JButton(JMeterUtils.getResString("aggregate_graph_save"));
+ protected JButton saveTable =
+ new JButton(JMeterUtils.getResString("aggregate_graph_save_table"));
+
JLabeledTextField graphTitle =
new
JLabeledTextField(JMeterUtils.getResString("aggregate_graph_user_title"));
JLabeledTextField graphWidth =
@@ -203,6 +217,7 @@
buttonpanel.add(columns);
buttonpanel.add(displayButton);
buttonpanel.add(saveGraph);
+ buttonpanel.add(saveTable);
graph.add(graphLabel);
graph.add(graphTitle);
@@ -213,6 +228,7 @@
displayButton.addActionListener(this);
saveGraph.addActionListener(this);
+ saveTable.addActionListener(this);
graphScroll = new JScrollPane(graph);
graphScroll.setAutoscrolls(true);
@@ -279,6 +295,28 @@
}
}
+ /**
+ * We use this method to get the data, since we are using
+ * ObjectTableModel, so the calling getDataVector doesn't
+ * work as expected.
+ * @return
+ */
+ public Vector getAllTableData() {
+ Vector data = new Vector();
+ if (model.getRowCount() > 0) {
+ for (int rw=0; rw < model.getRowCount(); rw++) {
+ int cols = model.getColumnCount();
+ Vector column = new Vector();
+ data.add(column);
+ for (int idx=0; idx < cols; idx++) {
+ Object val = model.getValueAt(rw,idx);
+ column.add(val);
+ }
+ }
+ }
+ return data;
+ }
+
public void actionPerformed(ActionEvent event) {
if (event.getSource() == displayButton) {
makeGraph();
@@ -291,6 +329,21 @@
} catch (Exception e) {
e.printStackTrace();
}
+ } else if (event.getSource() == saveTable) {
+ JFileChooser chooser = FileDialoger.promptToSaveFile(
+ "statistics.csv");
+ File output = chooser.getSelectedFile();
+ FileWriter writer = null;
+ try {
+ writer = new FileWriter(output);
+ Vector data = this.getAllTableData();
+ OldSaveService.saveCSVStats(data,writer);
+ writer.close();
+ } catch (FileNotFoundException e) {
+ log.warn(e.getMessage());
+ } catch (IOException e) {
+ log.warn(e.getMessage());
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]