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]>