Apache JMeter

org.apache.jmeter.gui
Class GuiPackage

java.lang.Object
  extended by org.apache.jmeter.gui.GuiPackage
All Implemented Interfaces:
UndoHistory.HistoryListener, LocaleChangeListener

public final class GuiPackage
extends Object
implements LocaleChangeListener, UndoHistory.HistoryListener

GuiPackage is a static class that provides convenient access to information about the current state of JMeter's GUI. Any GUI class can grab a handle to GuiPackage by calling the static method getInstance() and then use it to query the GUI about it's state. When actions, for instance, need to affect the GUI, they typically use GuiPackage to get access to different parts of the GUI.


Method Summary
 HashTree addSubTree(HashTree subTree)
          Add a subtree to the currently selected node.
 boolean canRedo()
           
 boolean canUndo()
           
 void clearTestPlan()
          Clears the test plan and associated objects.
 void clearTestPlan(TestElement element)
          Clears the test plan element and associated object
 TestElement createTestElement(Class<?> guiClass, Class<?> testClass)
          Create a TestElement corresponding to the specified GUI class.
 TestElement createTestElement(String objClass)
          Create a TestElement for a GUI or TestBean class.
 void displayPopUp(Component invoker, MouseEvent e, JPopupMenu popup)
          Display the specified popup menu at the location specified by a mouse event with the specified source component.
 void displayPopUp(MouseEvent e, JPopupMenu popup)
          Display the specified popup menu with the source component and location from the specified mouse event.
 TestElement getCurrentElement()
           
 JMeterGUIComponent getCurrentGui()
          Convenience method for grabbing the gui for the current node.
 JMeterTreeNode getCurrentNode()
           
 HashTree getCurrentSubTree()
          Get the currently selected subtree.
 JMeterGUIComponent getGui(TestElement node)
          Get a JMeterGUIComponent for the specified test element.
 JMeterGUIComponent getGui(TestElement node, Class<?> guiClass, Class<?> testClass)
          Get a JMeterGUIComponent for the specified test element.
static GuiPackage getInstance()
          Retrieve the singleton GuiPackage instance.
static GuiPackage getInstance(JMeterTreeListener listener, JMeterTreeModel treeModel)
          When GuiPackage is requested for the first time, it should be given handles to JMeter's Tree Listener and TreeModel.
 LoggerPanel getLoggerPanel()
           
 MainFrame getMainFrame()
          Get the main JMeter frame.
 JToolBar getMainToolbar()
          Get the main JMeter toolbar.
 JCheckBoxMenuItem getMenuItemLoggerPanel()
          Get the menu item LoggerPanel.
 JCheckBoxMenuItem getMenuItemToolbar()
          Get the menu item toolbar.
 JMeterTreeNode getNodeOf(TestElement userObject)
          Find the JMeterTreeNode for a certain TestElement object.
 ValueReplacer getReplacer()
          Get a ValueReplacer for the test tree.
 List<Stoppable> getStoppables()
           
 String getTestPlanFile()
           
 JMeterTreeListener getTreeListener()
          Get the listener for JMeter's test tree.
 JMeterTreeModel getTreeModel()
          Get the model for JMeter's test tree.
 void goInHistory(int offset)
          Navigate back and forward through undo history
 boolean isDirty()
          Retrieves the state of the 'dirty' property, a flag that indicates if there are test tree components that have been modified since they were last saved.
 void localeChanged(LocaleChangeEvent event)
          
 void notifyChangeInHistory(UndoHistory history)
          Called when history changes, it updates toolbar
 void register(Stoppable stoppable)
          Register process to stop on reload
 void registerAsListener()
          Register as listener of: - UndoHistory - Locale Changes
 void removeNode(TestElement node)
          Remove a test element from the tree.
 void setDirty(boolean dirty)
          The dirty property is a flag that indicates whether there are parts of JMeter's test tree that the user has not saved since last modification.
 void setLoggerPanel(LoggerPanel loggerPanel)
           
 void setMainFrame(MainFrame newMainFrame)
          Set the main JMeter frame.
 void setMainToolbar(JToolBar newToolbar)
          Set the main JMeter toolbar.
 void setMenuItemLoggerPanel(JCheckBoxMenuItem menuItemLoggerPanel)
          Set the menu item LoggerPanel.
 void setMenuItemToolbar(JCheckBoxMenuItem newMenuToolBar)
          Set the menu item toolbar.
 void setTestPlanFile(String f)
          Sets the filepath of the current test plan.
static void showErrorMessage(String message, String title)
           
static void showInfoMessage(String message, String title)
           
static void showMessage(String message, String title, int type)
           
static void showWarningMessage(String message, String title)
           
 void unregister(Stoppable stoppable)
          Unregister stoppable
 void updateCurrentGui()
          Update the GUI for the currently selected node.
 void updateCurrentNode()
          This method should be called in order for GuiPackage to change the current node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static GuiPackage getInstance()
Retrieve the singleton GuiPackage instance.

Returns:
the GuiPackage instance (may be null, e.g in non-Gui mode)

registerAsListener

public void registerAsListener()
Register as listener of: - UndoHistory - Locale Changes


getInstance

public static GuiPackage getInstance(JMeterTreeListener listener,
                                     JMeterTreeModel treeModel)
When GuiPackage is requested for the first time, it should be given handles to JMeter's Tree Listener and TreeModel.

Parameters:
listener - the TreeListener for JMeter's test tree
treeModel - the model for JMeter's test tree
Returns:
GuiPackage

getGui

public JMeterGUIComponent getGui(TestElement node)
Get a JMeterGUIComponent for the specified test element. If the GUI has already been created, that instance will be returned. Otherwise, if a GUI component of the same type has been created, and the component is not marked as an UnsharedComponent, that shared component will be returned. Otherwise, a new instance of the component will be created. The TestElement's GUI_CLASS property will be used to determine the appropriate type of GUI component to use.

Parameters:
node - the test element which this GUI is being created for
Returns:
the GUI component corresponding to the specified test element

getGui

public JMeterGUIComponent getGui(TestElement node,
                                 Class<?> guiClass,
                                 Class<?> testClass)
Get a JMeterGUIComponent for the specified test element. If the GUI has already been created, that instance will be returned. Otherwise, if a GUI component of the same type has been created, and the component is not marked as an UnsharedComponent, that shared component will be returned. Otherwise, a new instance of the component will be created.

Parameters:
node - the test element which this GUI is being created for
guiClass - the fully qualifed class name of the GUI component which will be created if it doesn't already exist
testClass - the fully qualifed class name of the test elements which have to be edited by the returned GUI component
Returns:
the GUI component corresponding to the specified test element

removeNode

public void removeNode(TestElement node)
Remove a test element from the tree. This removes the reference to any associated GUI component.

Parameters:
node - the test element being removed

getCurrentGui

public JMeterGUIComponent getCurrentGui()
Convenience method for grabbing the gui for the current node.

Returns:
the GUI component associated with the currently selected node

getNodeOf

public JMeterTreeNode getNodeOf(TestElement userObject)
Find the JMeterTreeNode for a certain TestElement object.

Parameters:
userObject - the test element to search for
Returns:
the tree node associated with the test element

createTestElement

public TestElement createTestElement(Class<?> guiClass,
                                     Class<?> testClass)
Create a TestElement corresponding to the specified GUI class.

Parameters:
guiClass - the fully qualified class name of the GUI component or a TestBean class for TestBeanGUIs.
testClass - the fully qualified class name of the test elements edited by this GUI component.
Returns:
the test element corresponding to the specified GUI class.

createTestElement

public TestElement createTestElement(String objClass)
Create a TestElement for a GUI or TestBean class.

This is a utility method to help actions do with one single String parameter.

Parameters:
objClass - the fully qualified class name of the GUI component or of the TestBean subclass for which a TestBeanGUI is wanted.
Returns:
the test element corresponding to the specified GUI class.

updateCurrentGui

public void updateCurrentGui()
Update the GUI for the currently selected node. The GUI component is configured to reflect the settings in the current tree node.


updateCurrentNode

public void updateCurrentNode()
This method should be called in order for GuiPackage to change the current node. This will save any changes made to the earlier node before choosing the new node.


getCurrentNode

public JMeterTreeNode getCurrentNode()

getCurrentElement

public TestElement getCurrentElement()

setDirty

public void setDirty(boolean dirty)
The dirty property is a flag that indicates whether there are parts of JMeter's test tree that the user has not saved since last modification. Various (@link Command actions) set this property when components are modified/created/saved.

Parameters:
dirty - the new value of the dirty flag

isDirty

public boolean isDirty()
Retrieves the state of the 'dirty' property, a flag that indicates if there are test tree components that have been modified since they were last saved.

Returns:
true if some tree components have been modified since they were last saved, false otherwise

addSubTree

public HashTree addSubTree(HashTree subTree)
                    throws IllegalUserActionException
Add a subtree to the currently selected node.

Parameters:
subTree - the subtree to add.
Returns:
the resulting subtree starting with the currently selected node
Throws:
IllegalUserActionException - if a subtree cannot be added to the currently selected node

getCurrentSubTree

public HashTree getCurrentSubTree()
Get the currently selected subtree.

Returns:
the subtree of the currently selected node

getTreeModel

public JMeterTreeModel getTreeModel()
Get the model for JMeter's test tree.

Returns:
the JMeter tree model

getReplacer

public ValueReplacer getReplacer()
Get a ValueReplacer for the test tree.

Returns:
a ValueReplacer configured for the test tree

setMainFrame

public void setMainFrame(MainFrame newMainFrame)
Set the main JMeter frame.

Parameters:
newMainFrame - the new JMeter main frame

getMainFrame

public MainFrame getMainFrame()
Get the main JMeter frame.

Returns:
the main JMeter frame

getTreeListener

public JMeterTreeListener getTreeListener()
Get the listener for JMeter's test tree.

Returns:
the JMeter test tree listener

setMainToolbar

public void setMainToolbar(JToolBar newToolbar)
Set the main JMeter toolbar.

Parameters:
newToolbar - the new JMeter main toolbar

getMainToolbar

public JToolBar getMainToolbar()
Get the main JMeter toolbar.

Returns:
the main JMeter toolbar

setMenuItemToolbar

public void setMenuItemToolbar(JCheckBoxMenuItem newMenuToolBar)
Set the menu item toolbar.

Parameters:
newMenuToolBar - the new menu item toolbar

getMenuItemToolbar

public JCheckBoxMenuItem getMenuItemToolbar()
Get the menu item toolbar.

Returns:
the menu item toolbar

displayPopUp

public void displayPopUp(MouseEvent e,
                         JPopupMenu popup)
Display the specified popup menu with the source component and location from the specified mouse event.

Parameters:
e - the mouse event causing this popup to be displayed
popup - the popup menu to display

displayPopUp

public void displayPopUp(Component invoker,
                         MouseEvent e,
                         JPopupMenu popup)
Display the specified popup menu at the location specified by a mouse event with the specified source component.

Parameters:
invoker - the source component
e - the mouse event causing this popup to be displayed
popup - the popup menu to display

localeChanged

public void localeChanged(LocaleChangeEvent event)

Specified by:
localeChanged in interface LocaleChangeListener

setTestPlanFile

public void setTestPlanFile(String f)
Sets the filepath of the current test plan. It's shown in the main frame title and used on saving.

Parameters:
f -

getTestPlanFile

public String getTestPlanFile()

clearTestPlan

public void clearTestPlan()
Clears the test plan and associated objects. Clears the test plan file name.


clearTestPlan

public void clearTestPlan(TestElement element)
Clears the test plan element and associated object

Parameters:
element - to clear

showErrorMessage

public static void showErrorMessage(String message,
                                    String title)

showInfoMessage

public static void showInfoMessage(String message,
                                   String title)

showWarningMessage

public static void showWarningMessage(String message,
                                      String title)

showMessage

public static void showMessage(String message,
                               String title,
                               int type)

unregister

public void unregister(Stoppable stoppable)
Unregister stoppable

Parameters:
stoppable - Stoppable

register

public void register(Stoppable stoppable)
Register process to stop on reload

Parameters:
stoppable -

getStoppables

public List<Stoppable> getStoppables()
Returns:
List Copy of IStoppable

setMenuItemLoggerPanel

public void setMenuItemLoggerPanel(JCheckBoxMenuItem menuItemLoggerPanel)
Set the menu item LoggerPanel.

Parameters:
menuItemLoggerPanel -

getMenuItemLoggerPanel

public JCheckBoxMenuItem getMenuItemLoggerPanel()
Get the menu item LoggerPanel.

Returns:
the menu item LoggerPanel

setLoggerPanel

public void setLoggerPanel(LoggerPanel loggerPanel)
Parameters:
loggerPanel - LoggerPanel

getLoggerPanel

public LoggerPanel getLoggerPanel()
Returns:
the loggerPanel

goInHistory

public void goInHistory(int offset)
Navigate back and forward through undo history

Parameters:
offset - int

canRedo

public boolean canRedo()
Returns:
true if history contains redo item

canUndo

public boolean canUndo()
Returns:
true if history contains undo item

notifyChangeInHistory

public void notifyChangeInHistory(UndoHistory history)
Called when history changes, it updates toolbar

Specified by:
notifyChangeInHistory in interface UndoHistory.HistoryListener

Apache JMeter

Copyright © 1998-2014 Apache Software Foundation. All Rights Reserved.