Class AbstractVisualizer
- All Implemented Interfaces:
- ImageObserver,- MenuContainer,- Serializable,- EventListener,- Accessible,- ChangeListener,- ClearGui,- JMeterGUIComponent,- UnsharedComponent,- Clearable,- Printable,- Visualizer
- Direct Known Subclasses:
- AssertionVisualizer,- ComparisonVisualizer,- GraphVisualizer,- MailerVisualizer,- RespTimeGraphVisualizer,- SimpleDataWriter,- StatGraphVisualizer,- StatVisualizer,- SummaryReport,- TableVisualizer,- ViewResultsFullVisualizer
- Implements the
 JMeterGUIComponentinterface that allows your Gui visualizer to "plug-in" to the JMeter GUI environment. Provides implementations for the following methods:- configure(TestElement). Any additional parameters of your Visualizer need to be handled by you.
- createTestElement(). For most purposes, the default- ResultCollectorcreated by this method is sufficient.
- getMenuCategories(). To control where in the GUI your visualizer can be added.
- modifyTestElement(TestElement). Again, additional parameters you require have to be handled by you.
- createPopupMenu().
 
- 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.
 
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.
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class javax.swing.JPanelJPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponentJComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.ContainerContainer.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.ComponentComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
- 
Field SummaryFieldsFields inherited from class org.apache.jmeter.gui.AbstractJMeterGuiComponentbindingGroup, namePanelFields inherited from class javax.swing.JComponentlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.ComponentaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserverABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidclearGui()Provides a default implementation that resets the name field to the value of getStaticLabel(), reset comment and sets enabled to true.voidconfigure(org.apache.jmeter.testelement.TestElement el) A newly created gui component can be initialized with the contents of a Test Element object by calling this method.protected voidThis provides a convenience for extenders when they implement theJMeterGUIComponent.createTestElement()method.org.apache.jmeter.testelement.TestElementJMeter test components are separated into a model and a GUI representation.protected JCheckBoxGets the checkbox which selects whether or not only errors should be logged.getFile()Gets the filename which has been entered in the FilePanel.protected ComponentGets the file panel which allows the user to save results to a file.protected ResultCollectorgetModel()Provides access to the ResultCollector model class for extending implementations.booleanisStats()This method is used to indicate a visualizer generates statistics.protected ContainerCreate a standard title section for JMeter components.voidmodifyTestElement(org.apache.jmeter.testelement.TestElement c) GUI components are responsible for populating TestElements they create with the data currently held in the GUI components.voidSets the filename which results will be saved to.protected voidsetModel(ResultCollector collector) Provides extending classes the opportunity to set the ResultCollector model for the Visualizer.voidInvoked when the target of the listener has changed its state.Methods inherited from class org.apache.jmeter.visualizers.gui.AbstractListenerGuicreatePopupMenu, getMenuCategoriesMethods inherited from class org.apache.jmeter.gui.AbstractJMeterGuiComponentconfigureTestElement, createTitleLabel, getComment, getDocAnchor, getName, getNamePanel, getPrintableComponent, getStaticLabel, isEnabled, makeBorder, makeScrollPane, makeScrollPane, setComment, setEnabled, setName, wrapTitlePanelMethods inherited from class javax.swing.JPanelgetAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods inherited from class javax.swing.JComponentaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Containeradd, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Componentaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.jmeter.gui.JMeterGUIComponentassignDefaultValues, canBeAdded, getLabelResource, makeTestElementMethods inherited from interface org.apache.jmeter.visualizers.Visualizeradd
- 
Field Details- 
collector
- 
isStatsprotected boolean isStats
 
- 
- 
Constructor Details- 
AbstractVisualizerprotected AbstractVisualizer()
 
- 
- 
Method Details- 
isStatspublic boolean isStats()Description copied from interface:VisualizerThis method is used to indicate a visualizer generates statistics.- Specified by:
- isStatsin interface- Visualizer
- Returns:
- true if visualiser generates statistics
 
- 
getErrorLoggingCheckboxGets 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 inmakeTitlePanel(), and the behavior is handled in this base class.- Returns:
- the error logging checkbox
 
- 
getModelProvides 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.- Returns:
- the associated collector
 
- 
getFilePanelGets 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 inmakeTitlePanel(), and the behavior is handled in this base class.- Returns:
- the file panel allowing users to save results
 
- 
setFileSets 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:
 
- 
getFileGets 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:
 
- 
stateChangedInvoked 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:
- stateChangedin interface- ChangeListener
- Parameters:
- e- the event that has occurred
 
- 
createTestElementpublic org.apache.jmeter.testelement.TestElement createTestElement()Description copied from interface:JMeterGUIComponentJMeter 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.Since 5.6.3, the default implementation is as follows, and subclasses should override JMeterGUIComponent.makeTestElement()public TestElement createTestElement() { TestElement element = makeTestElement(); assignDefaultValues(element); return el; }Before 5.6.3 the canonical implementation was as follows, however, it is recommended to avoid overriding JMeterGUIComponent.createTestElement()and overrideJMeterGUIComponent.makeTestElement()instead.public TestElement createTestElement() { TestElementXYZ el = new TestElementXYZ(); modifyTestElement(el); return el; }- Specified by:
- createTestElementin interface- JMeterGUIComponent
- Returns:
- the Test Element object that the GUI component represents.
 
- 
modifyTestElementpublic void modifyTestElement(org.apache.jmeter.testelement.TestElement c) Description copied from interface:JMeterGUIComponentGUI 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.If you override AbstractJMeterGuiComponent, you might want usingAbstractJMeterGuiComponent.bindingGroupinstead of overridingmodifyTestElement.The canonical implementation looks like this: @Override public void modifyTestElement(TestElement element) { super.modifyTestElement(element); // clear the element and assign basic fields like name, gui class, test class // Using the element setters (preferred): // If the field is empty, you probably want to remove the property instead of storing an empty string // See Streamline binding of UI elements to TestElement properties // for more details TestElementXYZ xyz = (TestElementXYZ) element; xyz.setState(StringUtils.defaultIfEmpty(guiState.getText(), null)); xyz.setCode(StringUtils.defaultIfEmpty(guiCode.getText(), null)); ... other GUI fields ... // or directly (do not use unless there is no setter for the field): element.setProperty(TestElementXYZ.STATE, StringUtils.defaultIfEmpty(guiState.getText(), null)) element.setProperty(TestElementXYZ.CODE, StringUtils.defaultIfEmpty(guiCode.getText(), null)) ... other GUI fields ... }- Specified by:
- modifyTestElementin interface- JMeterGUIComponent
- Overrides:
- modifyTestElementin class- AbstractJMeterGuiComponent
- Parameters:
- c- the TestElement to modify
 
- 
configurepublic void configure(org.apache.jmeter.testelement.TestElement el) Description copied from class:AbstractJMeterGuiComponentA 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:
- configurein interface- JMeterGUIComponent
- Overrides:
- configurein class- AbstractJMeterGuiComponent
- Parameters:
- el- the TestElement to configure
 
- 
configureTestElementThis provides a convenience for extenders when they implement theJMeterGUIComponent.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.
 
- 
makeTitlePanelCreate 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:
- makeTitlePanelin class- AbstractJMeterGuiComponent
- Returns:
- a panel containing the component title, name panel, file panel, and error logging checkbox
 
- 
setModelProvides 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-- ResultCollectorfor the visualizer
 
- 
clearGuipublic void clearGui()Description copied from class:AbstractJMeterGuiComponentProvides a default implementation that resets the name field to the value of getStaticLabel(), reset comment and sets enabled to true. Your GUI may need more things cleared, in which case you should override, clear the extra fields, and still call super.clearGui().- Specified by:
- clearGuiin interface- ClearGui
- Overrides:
- clearGuiin class- AbstractJMeterGuiComponent
 
 
-