mstover1    02/03/17 08:06:49

  Modified:    src/org/apache/jmeter/resources messages.properties
                        messages_ja.properties messages_no.properties
               src/org/apache/jmeter/visualizers GraphModel.java
  Added:       src/org/apache/jmeter/visualizers TableDataModel.java
                        TableVisualizer.java
  Log:
  New Table Visualizer from Alf Hogemark
  
  Revision  Changes    Path
  1.47      +2 -0      
jakarta-jmeter/src/org/apache/jmeter/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/resources/messages.properties,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- messages.properties       17 Mar 2002 15:30:06 -0000      1.46
  +++ messages.properties       17 Mar 2002 16:06:49 -0000      1.47
  @@ -197,3 +197,5 @@
   cut=Cut
   paste_insert=Paste As Insert
   paste_add=Paste As Add
  +url=URL
  +Success?=Success?
  
  
  
  1.8       +2 -0      
jakarta-jmeter/src/org/apache/jmeter/resources/messages_ja.properties
  
  Index: messages_ja.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/resources/messages_ja.properties,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- messages_ja.properties    17 Mar 2002 15:30:06 -0000      1.7
  +++ messages_ja.properties    17 Mar 2002 16:06:49 -0000      1.8
  @@ -187,3 +187,5 @@
   jndi_method_button_invoke=\u547c\u3073\u51fa\u3057
   insert_parent=Insert Parent
   
uniform_timer_memo=\u4E00\u69D8\u306B\u30E9\u30F3\u30C0\u30E0\u306A\u9045\u5EF6\u3092\u8FFD\u52A0
  +url=URL
  +Success?=Success?
  \ No newline at end of file
  
  
  
  1.4       +2 -1      
jakarta-jmeter/src/org/apache/jmeter/resources/messages_no.properties
  
  Index: messages_no.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/resources/messages_no.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- messages_no.properties    17 Mar 2002 15:30:06 -0000      1.3
  +++ messages_no.properties    17 Mar 2002 16:06:49 -0000      1.4
  @@ -178,4 +178,5 @@
   jndi_method_button_reflect=Reflect
   jndi_method_button_invoke=Invoke
   insert_parent=Insert Parent
  -
  +url=URL
  +Success?=Success?
  
  
  
  1.10      +1 -1      jakarta-jmeter/src/org/apache/jmeter/visualizers/GraphModel.java
  
  Index: GraphModel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/visualizers/GraphModel.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- GraphModel.java   4 Mar 2002 23:08:55 -0000       1.9
  +++ GraphModel.java   17 Mar 2002 16:06:49 -0000      1.10
  @@ -493,7 +493,7 @@
   
   
   
  -     private void addNewSample(long sample)
  +     protected void addNewSample(long sample)
   
        {
   
  
  
  
  1.1                  
jakarta-jmeter/src/org/apache/jmeter/visualizers/TableDataModel.java
  
  Index: TableDataModel.java
  ===================================================================
  /*
   * ====================================================================
   * 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 [EMAIL PROTECTED]
   *
   * 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.visualizers;
  
  import org.apache.jmeter.gui.*;
  import java.util.*;
  import javax.swing.table.TableModel;
  import javax.swing.event.TableModelListener;
  
  import org.apache.jmeter.samplers.*;
  import org.apache.jmeter.save.Saveable;
  import org.apache.jmeter.util.JMeterUtils;
  
  /**
   *  This class implements the TableModel for the information kept
   *  by the GraphModel.
   *
   *@author     <a href="mailto:[EMAIL PROTECTED]";>Alf Hogemark</a>Hogemark
   *@created    March 10, 2002
   *@version    1.0
   */
  public class TableDataModel extends GraphModel implements TableModel
  {
        List successList = new ArrayList();
        List urlList = new ArrayList();
  
        /**
         *  Constructor for the TableDataModel object
         */
        public TableDataModel()
        {
                super();
        }
  
        /**
         * Gets the GuiClass attribute of the TableModel object
         *
         * @return    The GuiClass value
         */
        public Class getGuiClass()
        {
                return TableVisualizer.class;
        }
  
        /**
         * Gets the ClassLabel attribute of the GraphModel object
         *
         * @return    The ClassLabel value
         */
        public String getClassLabel()
        {
                return "View Results in Table";
        }
  
        public void sampleOccurred(SampleEvent e)
        {
                addNewSample(e.getResult().getTime(),e.getResult().isSuccessfull(),
                                
(String)e.getResult().getValue(SampleResult.SAMPLE_LABEL));
                this.fireDataChanged();
        }
  
        public void addNewSample(long time,boolean success,String url)
        {
                super.addNewSample(time);
                successList.add(new Boolean(success));
                urlList.add(url);
        }
  
                  // Implmentation of the TableModel interface
        public int getRowCount()
        {
                return getSampleCount();
        }
  
        public int getColumnCount()
        {
                // We have two columns : sampleNo and sampleValue
                return 4;
        }
  
        public String getColumnName(int columnIndex)
        {
                switch(columnIndex)
                {
                        case 0:
                                return "SampleNo";
                        case 1:
                                return JMeterUtils.getResString("url");
                        case 2:
                                return "Sample - ms";
                        case 3:
                                return JMeterUtils.getResString("Success?");
                        default:
                                return null;
                }
        }
  
        public Class getColumnClass(int columnIndex)
        {
                if(columnIndex == 0)
                {
                        return Integer.class;
                }
                else if(columnIndex == 1)
                {
                        return String.class;
                }
                else if(columnIndex == 2)
                {
                        return Long.class;
                }
                else if(columnIndex == 3)
                {
                        return Boolean.class;
                }
                else
                {
                        return null;
                }
        }
  
        public boolean isCellEditable(int rowIndex, int columnIndex)
        {
                return false;
        }
  
        public Object getValueAt(int rowIndex, int columnIndex)
        {
                if(columnIndex == 0)
                {
                        if((rowIndex >= 0) && (rowIndex < getSampleCount()))
                        {
                                return new Integer(rowIndex);
                        }
                }
                else if(columnIndex == 1)
                {
                        if((rowIndex >= 0) && (rowIndex < urlList.size()))
                        {
                                return urlList.get(rowIndex);
                        }
                }
                else if(columnIndex == 2)
                {
                        if((rowIndex >= 0) && (rowIndex < getSampleCount()))
                        {
                                return new 
Long(((Sample)getSamples().get(rowIndex)).data);
                        }
                }
                else if(columnIndex == 3)
                {
                        if((rowIndex >= 0) && (rowIndex < successList.size()))
                        {
                                return successList.get(rowIndex);
                        }
                }
                return null;
        }
  
        /**
         * Dummy implementation
         */
        public void setValueAt(Object aValue, int rowIndex, int columnIndex)
        {
        }
  
        /**
         * Dummy implementation
         */
        public void addTableModelListener(TableModelListener l)
        {
        }
  
        /**
         * Dummy implementation
         */
        public void removeTableModelListener(TableModelListener l)
        {
        }
  }
  
  
  
  
  
  1.1                  
jakarta-jmeter/src/org/apache/jmeter/visualizers/TableVisualizer.java
  
  Index: TableVisualizer.java
  ===================================================================
  /*
   * ====================================================================
   * 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 [EMAIL PROTECTED]
   *
   * 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.visualizers;
  
  import java.awt.*;
  import java.util.*;
  import java.awt.event.*;
  import javax.swing.*;
  import javax.swing.border.*;
  
  import org.apache.jmeter.samplers.SampleResult;
  import org.apache.jmeter.gui.*;
  import org.apache.jmeter.util.JMeterUtils;
  
  /**
   *  This class implements a statistical analyser that calculates both the
   *  average and the standard deviation of the sampling process.
   *  The samples are displayed in a JTable, and the statistics are
   *  displayed at the bottom of the table.
   *
   *@author     <a href="mailto:[EMAIL PROTECTED]";>Alf Hogemark</a>
   *@created    March 10, 2002
   */
  public class TableVisualizer extends JPanel
                 implements ModelSupported,GraphListener,
                GenericGraphListener
  {
        private TableDataModel model = null;
  
        private NamePanel namePanel = null;
  
        private JTable table = null;
        private JTextField dataField = null;
        private JTextField averageField = null;
        private JTextField deviationField = null;
        private JTextField noSamplesField = null;
  
        /**
         *  Constructor for the TableVisualizer object
         */
        public TableVisualizer()
        {
                super();
        }
  
        public void setModel(Object model)
        {
                this.model = (TableDataModel)model;
                this.model.addModelListener(this);
                init();
        }
  
        public void updateGui()
        {
                namePanel.updateGui();
                // Not completely sure if this is the correct way of updating the table
                table.revalidate();
                table.repaint();
                noSamplesField.setText(Long.toString(model.getSampleCount()));
                dataField.setText(Long.toString(model.getCurrentData()));
                averageField.setText(Long.toString(model.getCurrentAverage()));
                deviationField.setText(Long.toString(model.getCurrentDeviation()));
        }
  
        public void updateGui(Sample s)
        {
                // We have received one more sample
                // Not completely sure if this is the correct way of updating the table
                table.revalidate();
                table.repaint();
                noSamplesField.setText(Long.toString(model.getSampleCount()));
                dataField.setText(Long.toString(s.data));
                averageField.setText(Long.toString(s.average));
                deviationField.setText(Long.toString(s.deviation));
        }
  
        private void init()
        {
                this.setLayout(new BorderLayout());
  
                // 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("View Results in Table");
                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);
  
                // Set up the table itself
                table = new JTable(model);
                //table.getTableHeader().setReorderingAllowed(false);
                JScrollPane tableScrollPanel = new JScrollPane(table);
                tableScrollPanel.setViewportBorder(BorderFactory.createEmptyBorder(2, 
2, 2, 2));
  
                // Set up footer of table which displays numerics of the graphs
                JPanel dataPanel = new JPanel();
                JLabel dataLabel = new 
JLabel(JMeterUtils.getResString("graph_results_latest_sample"));
                dataLabel.setForeground(Color.black);
                dataField = new JTextField(5);
                dataField.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
                dataField.setEditable(false);
                dataField.setForeground(Color.black);
                dataField.setBackground(getBackground());
                dataPanel.add(dataLabel);
                dataPanel.add(dataField);
                JPanel averagePanel = new JPanel();
                JLabel averageLabel = new 
JLabel(JMeterUtils.getResString("graph_results_average"));
                averageLabel.setForeground(Color.blue);
                averageField = new JTextField(5);
                averageField.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
                averageField.setEditable(false);
                averageField.setForeground(Color.blue);
                averageField.setBackground(getBackground());
                averagePanel.add(averageLabel);
                averagePanel.add(averageField);
                JPanel deviationPanel = new JPanel();
                JLabel deviationLabel = new 
JLabel(JMeterUtils.getResString("graph_results_deviation"));
                deviationLabel.setForeground(Color.red);
                deviationField = new JTextField(5);
                deviationField.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
                deviationField.setEditable(false);
                deviationField.setForeground(Color.red);
                deviationField.setBackground(getBackground());
                deviationPanel.add(deviationLabel);
                deviationPanel.add(deviationField);
                JPanel noSamplesPanel = new JPanel();
                JLabel noSamplesLabel = new 
JLabel(JMeterUtils.getResString("graph_results_no_samples"));
                noSamplesField = new JTextField(10);
                noSamplesField.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
                noSamplesField.setEditable(false);
                noSamplesField.setForeground(Color.black);
                noSamplesField.setBackground(getBackground());
                noSamplesPanel.add(noSamplesLabel);
                noSamplesPanel.add(noSamplesField);
  
                JPanel tableInfoPanel = new JPanel();
                tableInfoPanel.setLayout(new FlowLayout());
                tableInfoPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
  
                tableInfoPanel.add(noSamplesPanel);
                tableInfoPanel.add(dataPanel);
                tableInfoPanel.add(averagePanel);
                tableInfoPanel.add(deviationPanel);
  
                // Set up the table with footer
                JPanel tablePanel = new JPanel();
                tablePanel.setLayout(new BorderLayout());
                tablePanel.add(tableScrollPanel, BorderLayout.CENTER);
                tablePanel.add(tableInfoPanel, BorderLayout.SOUTH);
  
                // Add the main panel and the graph
                this.add(mainPanel,BorderLayout.NORTH);
                this.add(tablePanel, BorderLayout.CENTER);
        }
  
        /**
         *  Description of the Method
         */
        public synchronized void clear()
        {
                //this.graph.clear();
  
                dataField.setText("0000");
                averageField.setText("0000");
                deviationField.setText("0000");
                repaint();
        }
  
        /**
         *  Description of the Method
         *
         *@return    Description of the Returned Value
         */
        public String toString()
        {
                return "Show the samples in a table";
        }
  
  
  
  
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to