You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by mi...@apache.org on 2012/08/23 14:22:11 UTC

svn commit: r1376458 - /jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java

Author: milamber
Date: Thu Aug 23 12:22:11 2012
New Revision: 1376458

URL: http://svn.apache.org/viewvc?rev=1376458&view=rev
Log:
Applied some improvements from Bug 53718 (new Response Time Graph) to Aggregate Graph

Modified:
    jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java

Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1376458&r1=1376457&r2=1376458&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Thu Aug 23 12:22:11 2012
@@ -56,6 +56,8 @@ import javax.swing.JTextField;
 import javax.swing.SwingConstants;
 import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 import javax.swing.table.TableCellRenderer;
 
 import org.apache.jmeter.gui.action.ActionNames;
@@ -193,7 +195,7 @@ public class StatGraphVisualizer extends
 
     private JTextField columnMatchLabel = new JTextField();
 
-    private JButton reloadButton = new JButton(JMeterUtils.getResString("aggregate_graph_reload_data")); // $NON-NLS-1$
+    private JButton applyFilterBtn = new JButton(JMeterUtils.getResString("graph_apply_filter")); // $NON-NLS-1$
 
     private JCheckBox caseChkBox = new JCheckBox(JMeterUtils.getResString("search_text_chkbox_case"), false); // $NON-NLS-1$
 
@@ -231,6 +233,10 @@ public class StatGraphVisualizer extends
     
     private int nbColToGraph = 1;
 
+    private Pattern pattern = null;
+
+    private Matcher matcher = null;
+
     public StatGraphVisualizer() {
         super();
         model = new ObjectTableModel(COLUMNS,
@@ -285,10 +291,9 @@ public class StatGraphVisualizer extends
 
     public void add(final SampleResult res) {
         final String sampleLabel = res.getSampleLabel();
-        Matcher matcher = null;
-        if (columnSelection.isSelected() && columnMatchLabel.getText() != null && columnMatchLabel.getText().length() > 0) {
-                Pattern pattern = createPattern(columnMatchLabel.getText());
-                matcher = pattern.matcher(sampleLabel);
+        // Sampler selection
+        if (columnSelection.isSelected() && pattern != null) {
+            matcher = pattern.matcher(sampleLabel);
         }
         if ((matcher == null) || (matcher.find())) {
             JMeterUtils.runSafe(new Runnable() {
@@ -361,6 +366,18 @@ public class StatGraphVisualizer extends
         tabbedGraph.addTab(JMeterUtils.getResString("aggregate_graph_tab_settings"), settingsPane); //$NON-NLS-1$
         tabbedGraph.addTab(JMeterUtils.getResString("aggregate_graph_tab_graph"), graphPanel); //$NON-NLS-1$
 
+        // If clic on the Graph tab, make the graph (without apply interval or filter)
+        ChangeListener changeListener = new ChangeListener() {
+            public void stateChanged(ChangeEvent changeEvent) {
+                JTabbedPane srcTab = (JTabbedPane) changeEvent.getSource();
+                int index = srcTab.getSelectedIndex();
+                if (srcTab.getTitleAt(index).equals(JMeterUtils.getResString("aggregate_graph_tab_graph"))) { //$NON-NLS-1$
+                    actionMakeGraph();
+                }
+            }
+        };
+        tabbedGraph.addChangeListener(changeListener);
+
         spane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
         spane.setLeftComponent(myScrollPane);
         spane.setRightComponent(tabbedGraph);
@@ -521,17 +538,10 @@ public class StatGraphVisualizer extends
     }
 
     public void actionPerformed(ActionEvent event) {
+        boolean forceReloadData = false;
         final Object eventSource = event.getSource();
         if (eventSource == displayButton) {
-            if (model.getRowCount() > 1) {
-                makeGraph();
-                tabbedGraph.setSelectedIndex(1);
-            } else {
-                JOptionPane.showMessageDialog(null, JMeterUtils
-                        .getResString("aggregate_graph_no_values_to_graph"), // $NON-NLS-1$
-                        JMeterUtils.getResString("aggregate_graph_no_values_to_graph"), // $NON-NLS-1$
-                        JOptionPane.WARNING_MESSAGE);
-            }
+            actionMakeGraph();
         } else if (eventSource == saveGraph) {
             saveGraphToFile = true;
             try {
@@ -579,16 +589,27 @@ public class StatGraphVisualizer extends
         } else if (eventSource == columnSelection) {
             if (columnSelection.isSelected()) {
                 columnMatchLabel.setEnabled(true);
-                reloadButton.setEnabled(true);
+                applyFilterBtn.setEnabled(true);
                 caseChkBox.setEnabled(true);
                 regexpChkBox.setEnabled(true);
             } else {
                 columnMatchLabel.setEnabled(false);
-                reloadButton.setEnabled(false);
+                applyFilterBtn.setEnabled(false);
                 caseChkBox.setEnabled(false);
                 regexpChkBox.setEnabled(false);
+                // Force reload data
+                forceReloadData = true;
+            }
+        }
+        // Not 'else if' because forceReloadData 
+        if (eventSource == applyFilterBtn || forceReloadData) {
+            if (columnSelection.isSelected() && columnMatchLabel.getText() != null
+                    && columnMatchLabel.getText().length() > 0) {
+                pattern = createPattern(columnMatchLabel.getText());
+            } else if (forceReloadData) {
+                pattern = null;
+                matcher = null;
             }
-        } else if (eventSource == reloadButton) {
             if (getFile() != null && getFile().length() > 0) {
                 clearData();
                 FilePanel filePanel = (FilePanel) getFilePanel();
@@ -610,6 +631,17 @@ public class StatGraphVisualizer extends
         }
     }
 
+    private void actionMakeGraph() {
+        if (model.getRowCount() > 1) {
+            makeGraph();
+            tabbedGraph.setSelectedIndex(1);
+        } else {
+            JOptionPane.showMessageDialog(null, JMeterUtils
+                    .getResString("aggregate_graph_no_values_to_graph"), // $NON-NLS-1$
+                    JMeterUtils.getResString("aggregate_graph_no_values_to_graph"), // $NON-NLS-1$
+                    JOptionPane.WARNING_MESSAGE);
+        }
+    }
     @Override
     public JComponent getPrintableComponent() {
         if (saveGraphToFile == true) {
@@ -696,7 +728,7 @@ public class StatGraphVisualizer extends
 
         searchPanel.add(columnSelection);
         columnMatchLabel.setEnabled(false);
-        reloadButton.setEnabled(false);
+        applyFilterBtn.setEnabled(false);
         caseChkBox.setEnabled(false);
         regexpChkBox.setEnabled(false);
         columnSelection.addActionListener(this);
@@ -705,9 +737,9 @@ public class StatGraphVisualizer extends
         searchPanel.add(Box.createRigidArea(new Dimension(5,0)));
 
         // Button
-        reloadButton.setFont(font);
-        reloadButton.addActionListener(this);
-        searchPanel.add(reloadButton);
+        applyFilterBtn.setFont(font);
+        applyFilterBtn.addActionListener(this);
+        searchPanel.add(applyFilterBtn);
 
         // checkboxes
         caseChkBox.setFont(font);