org.apache.jmeter.visualizers.gui
Class AbstractVisualizer
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--javax.swing.JComponent
|
+--javax.swing.JPanel
|
+--org.apache.jmeter.gui.AbstractJMeterGuiComponent
|
+--org.apache.jmeter.visualizers.gui.AbstractVisualizer
- All Implemented Interfaces:
- Accessible, ChangeListener, EventListener, ImageObserver, JMeterGUIComponent, MenuContainer, Serializable, UnsharedComponent, Visualizer
- Direct Known Subclasses:
- AssertionVisualizer, GraphAccumVisualizer, GraphVisualizer, MailerVisualizer, SimpleDataWriter, SplineVisualizer, StatVisualizer, TableVisualizer, ViewResultsFullVisualizer
- public abstract class AbstractVisualizer
- extends AbstractJMeterGuiComponent
- implements Visualizer, ChangeListener, UnsharedComponent
This is the base class for JMeter GUI components which can display test
results in some way. It provides the following conveniences to developers:
- Implements the
JMeterGUIComponent
interface that allows your Gui visualizer to "plug-in" to the JMeter
GUI environment. Provides implementations for the following methods:
- Provides convenience methods to help you make a JMeter-compatible GUI:
makeTitlePanel()
. Returns a panel that includes the name
of the component, and a FilePanel that allows users to control what
file samples are logged to.
getModel()
and setModel(ResultCollector)
methods
for setting and getting the model class that handles the receiving
and logging of sample results.
For most developers, making a new visualizer is primarly for the purpose of
either calculating new statistics on the sample results that other
visualizers don't calculate, or displaying the results visually in a new and
interesting way. Making a new visualizer for either of these purposes is
easy - just extend this class and implement the
add(SampleResult)
method and display the results as you see fit. This AbstractVisualizer and
the default ResultCollector
handle logging and registering to receive SampleEvents for you - all you need
to do is include the JPanel created by makeTitlePanel somewhere in your gui
to allow users set the log file.
If you are doing more than that, you may need to extend
ResultCollector
as well
and modify the configure(TestElement)
,
modifyTestElement(TestElement)
, and createTestElement()
methods to create and modify your alternate ResultCollector. For an example
of this, see the
MailerVisualizer
.
Copyright: 2000,2003
- Version:
- $Revision: 1.19 $
- Author:
- Michael Stover
- See Also:
- Serialized Form
Field Summary |
protected static org.apache.log.Logger |
log
Logging. |
Method Summary |
void |
configure(TestElement el)
A newly created gui component can be initialized with the contents of
a Test Element object by calling this method. |
protected void |
configureTestElement(AbstractListenerElement mc)
This provides a convenience for extenders when they implement the
JMeterGUIComponent#createTestElement() method. |
JPopupMenu |
createPopupMenu()
When a user right-clicks on the component in the test tree, or
selects the edit menu when the component is selected, the
component will be asked to return a JPopupMenu that provides
all the options available to the user from this component.
|
TestElement |
createTestElement()
JMeter test components are separated into a model and a GUI
representation. |
protected JCheckBox |
getErrorLoggingCheckbox()
Gets the checkbox which selects whether or not only errors should be
logged. |
String |
getFile()
Gets the filename which has been entered in the FilePanel. |
protected Component |
getFilePanel()
Gets the file panel which allows the user to save results to a file.
|
Collection |
getMenuCategories()
This is the list of menu categories this gui component will be available
under. |
protected ResultCollector |
getModel()
Provides access to the ResultCollector model class for extending
implementations. |
protected Container |
makeTitlePanel()
Create a standard title section for JMeter components. |
void |
modifyTestElement(TestElement c)
GUI components are responsible for populating TestElements they create
with the data currently held in the GUI components. |
void |
setFile(String filename)
Sets the filename which results will be saved to. |
protected void |
setModel(ResultCollector collector)
Provides extending classes the opportunity to set the ResultCollector
model for the Visualizer. |
void |
stateChanged(ChangeEvent e)
Invoked when the target of the listener has changed its state. |
Methods inherited from class org.apache.jmeter.gui.AbstractJMeterGuiComponent |
clear, configureTestElement, createTitleLabel, getName, getNamePanel, getNode, isEnabled, makeBorder, makeScrollPane, makeScrollPane, setEnabled, setName, setNode |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
Methods inherited from interface org.apache.jmeter.visualizers.Visualizer |
add |
log
protected static transient org.apache.log.Logger log
- Logging.
AbstractVisualizer
public AbstractVisualizer()
getErrorLoggingCheckbox
protected JCheckBox getErrorLoggingCheckbox()
- Gets the checkbox which selects whether or not only errors should be
logged. Subclasses don't normally need to worry about this checkbox,
because it is automatically added to the GUI in
makeTitlePanel()
, and the behavior is handled in this base
class.
- Returns:
- the error logging checkbox
getModel
protected ResultCollector getModel()
- Provides access to the ResultCollector model class for extending
implementations. Using this method and setModel(ResultCollector) is
only necessary if your visualizer requires a differently behaving
ResultCollector. Using these methods will allow maximum reuse of the
methods provided by AbstractVisualizer in this event.
getFilePanel
protected Component getFilePanel()
- Gets the file panel which allows the user to save results to a file.
Subclasses don't normally need to worry about this panel, because it
is automatically added to the GUI in
makeTitlePanel()
, and the
behavior is handled in this base class.
- Returns:
- the file panel allowing users to save results
setFile
public void setFile(String filename)
- Sets the filename which results will be saved to. This will set the
filename in the FilePanel. Subclasses don't normally need to call this
method, because configuration of the FilePanel is handled in this base
class.
- Parameters:
filename
- the new filename- See Also:
getFilePanel()
getFile
public String getFile()
- Gets the filename which has been entered in the FilePanel. Subclasses
don't normally need to call this method, because configuration of the
FilePanel is handled in this base class.
- Returns:
- the current filename
- See Also:
getFilePanel()
createPopupMenu
public JPopupMenu createPopupMenu()
- When a user right-clicks on the component in the test tree, or
selects the edit menu when the component is selected, the
component will be asked to return a JPopupMenu that provides
all the options available to the user from this component.
This implementation returns menu items appropriate for most
visualizer components.
- Specified by:
createPopupMenu
in interface JMeterGUIComponent
- Returns:
- a JPopupMenu appropriate for the component.
stateChanged
public void stateChanged(ChangeEvent e)
- Invoked when the target of the listener has changed its state. This
implementation assumes that the target is the FilePanel, and will
update the result collector for the new filename.
- Specified by:
stateChanged
in interface ChangeListener
- Parameters:
e
- the event that has occurred
getMenuCategories
public Collection getMenuCategories()
- This is the list of menu categories this gui component will be available
under. This implementation returns
MenuFactory.LISTENERS
, which
is appropriate for most visualizer components.
- Specified by:
getMenuCategories
in interface JMeterGUIComponent
- Returns:
- a Collection of Strings, where each element is one of the
constants defined in MenuFactory
- See Also:
MenuFactory
createTestElement
public TestElement createTestElement()
- Description copied from interface:
JMeterGUIComponent
- JMeter test components are separated into a model and a GUI
representation. The model holds the data and the GUI displays it. The
GUI class is responsible for knowing how to create and initialize with
data the model class that it knows how to display, and this method is
called when new test elements are created.
- Specified by:
createTestElement
in interface JMeterGUIComponent
- Returns:
- the Test Element object that the GUI component represents.
modifyTestElement
public void modifyTestElement(TestElement c)
- Description copied from interface:
JMeterGUIComponent
- GUI components are responsible for populating TestElements they create
with the data currently held in the GUI components. This method should
overwrite whatever data is currently in the TestElement as it is called
after a user has filled out the form elements in the gui with new
information.
- Specified by:
modifyTestElement
in interface JMeterGUIComponent
- Parameters:
c
- the TestElement to modify
configure
public void configure(TestElement el)
- Description copied from class:
AbstractJMeterGuiComponent
- A newly created gui component can be initialized with the contents of
a Test Element object by calling this method. The component is
responsible for querying the Test Element object for the
relevant information to display in its GUI.
AbstractJMeterGuiComponent provides a partial implementation of this
method, setting the name of the component and its enabled status.
Subclasses should override this method, performing their own
configuration as needed, but also calling this super-implementation.
- Specified by:
configure
in interface JMeterGUIComponent
- Overrides:
configure
in class AbstractJMeterGuiComponent
- Parameters:
el
- the TestElement to configure
configureTestElement
protected void configureTestElement(AbstractListenerElement mc)
- This provides a convenience for extenders when they implement the
JMeterGUIComponent#createTestElement()
method. This method
will set the name, gui class, and test class for the created Test
Element. It should be called by every extending class when creating
Test Elements, as that will best assure consistent behavior.
- Parameters:
mc
- the TestElement being created.
makeTitlePanel
protected Container makeTitlePanel()
- Create a standard title section for JMeter components. This includes
the title for the component and the Name Panel allowing the user to
change the name for the component. The AbstractVisualizer also adds
the FilePanel allowing the user to save the results, and the
error logging checkbox, allowing the user to choose whether or not only
errors should be logged.
This method is typically added to the top of the component at the
beginning of the component's init method.
- Overrides:
makeTitlePanel
in class AbstractJMeterGuiComponent
- Returns:
- a panel containing the component title, name panel, file panel,
and error logging checkbox
setModel
protected void setModel(ResultCollector collector)
- Provides extending classes the opportunity to set the ResultCollector
model for the Visualizer. This is useful to allow maximum reuse of the
methods from AbstractVisualizer.
- Parameters:
collector
-
Copyright © 1998-2003 Apache Software Foundation. All Rights Reserved.