Package org.apache.jmeter.threads.gui

# Class AbstractThreadGroupGui

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.apache.jmeter.gui.AbstractJMeterGuiComponent
org.apache.jmeter.threads.gui.AbstractThreadGroupGui

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`, `ClearGui`, `JMeterGUIComponent`, `Printable`

Direct Known Subclasses:
  `ThreadGroupGui`

public abstract class AbstractThreadGroupGui extends AbstractJMeterGuiComponent

See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class javax.swing.JPanel

`JPanel.AccessibleJPanel`

## Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

## Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

## Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

### Fields inherited from class org.apache.jmeter.gui.AbstractJMeterGuiComponent

`bindingGroup, namePanel`

### Fields inherited from class javax.swing.JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class java.awt.Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractThreadGroupGui()`

## Method Summary

Modifier and Type
Method
Description
`void`
`assignDefaultValues(org.apache.jmeter.testelement.TestElement element)`
Configures default values for element after its creation.
`void`
`clearGui()`
Provides a default implementation that resets the name field to the value of getStaticLabel(), reset comment and sets enabled to true.
`void`
`configure(org.apache.jmeter.testelement.TestElement tg)`
A newly created gui component can be initialized with the contents of a Test Element object by calling this method.
`protected void`
`configureTestElement(org.apache.jmeter.testelement.TestElement tg)`
Deprecated.
Override `modifyTestElement(TestElement)` instead
`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.
`Collection<String>`
`getMenuCategories()`
This is the list of add menu categories this gui component will be available under.
`Dimension`
`getPreferredSize()`
`void`
`modifyTestElement(org.apache.jmeter.testelement.TestElement element)`
GUI components are responsible for populating TestElements they create with the data currently held in the GUI components.

### Methods inherited from class org.apache.jmeter.gui.AbstractJMeterGuiComponent

`createTitleLabel, getComment, getDocAnchor, getName, getNamePanel, getPrintableComponent, getStaticLabel, isEnabled, makeBorder, makeScrollPane, makeScrollPane, makeTitlePanel, setComment, setEnabled, setName, wrapTitlePanel`

### Methods inherited from class javax.swing.JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, 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, 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, update`

### Methods inherited from class java.awt.Container

`add, 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, 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, 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, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.jmeter.gui.JMeterGUIComponent

`canBeAdded, createTestElement, getLabelResource, makeTestElement`

## Constructor Details

### AbstractThreadGroupGui

protected AbstractThreadGroupGui()

## Method Details

### getMenuCategories

public Collection<String> getMenuCategories()
Description copied from interface: `JMeterGUIComponent`
This is the list of add menu categories this gui component will be available under. For instance, if this represents a Controller, then the MenuFactory.CONTROLLERS category should be in the returned collection. When a user right-clicks on a tree element and looks through the "add" menu, which category your GUI component shows up in is determined by which categories are returned by this method. Most GUI's belong to only one category, but it is possible for a component to exist in multiple categories.

Returns:
  a Collection of Strings, where each element is one of the constants defined in MenuFactory
See Also:
  - `MenuFactory`

### createPopupMenu

public JPopupMenu createPopupMenu()
Description copied from interface: `JMeterGUIComponent`
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.

Returns:
  a JPopupMenu appropriate for the component.

### getPreferredSize

public Dimension getPreferredSize()

Overrides:
  `getPreferredSize` in class `JComponent`

### clearGui

public void clearGui()
Description copied from class: `AbstractJMeterGuiComponent`
Provides 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:
  `clearGui` in interface `ClearGui`
Overrides:
  `clearGui` in class `AbstractJMeterGuiComponent`

### assignDefaultValues

public void assignDefaultValues(org.apache.jmeter.testelement.TestElement element)
Description copied from interface: `JMeterGUIComponent`
Configures default values for element after its creation. Plugin authors should call this once in their `JMeterGUIComponent.createTestElement()` implementation.

Parameters:
  `element` - test element to configure

### configure

public void configure(org.apache.jmeter.testelement.TestElement tg)
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:
  `tg` - the TestElement to configure

### modifyTestElement

public void modifyTestElement(org.apache.jmeter.testelement.TestElement element)
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.

If you override `AbstractJMeterGuiComponent`, you might want using `AbstractJMeterGuiComponent.bindingGroup` instead of overriding `modifyTestElement`.

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:
  `modifyTestElement` in interface `JMeterGUIComponent`
Overrides:
  `modifyTestElement` in class `AbstractJMeterGuiComponent`
Parameters:
  `element` - the TestElement to modify

### configureTestElement

@Deprecated @API(status=DEPRECATED, since="5.6.3") protected void configureTestElement(org.apache.jmeter.testelement.TestElement tg)
Deprecated.
Override `modifyTestElement(TestElement)` instead
This provides a convenience for extenders when they implement the `JMeterGUIComponent.modifyTestElement(TestElement)` 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/modifying Test Elements, as that will best assure consistent behavior.

Deprecation notice: most likely you do not need the method, and you should override `AbstractJMeterGuiComponent.modifyTestElement(TestElement)` instead

Overrides:
  `configureTestElement` in class `AbstractJMeterGuiComponent`
Parameters:
  `tg` - the TestElement being configured.