|
What this is
Other links
The source code
// $Header: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/JMeterGUIComponent.java,v 1.14 2004/03/05 13:18:38 sebb Exp $
/*
* Copyright 2002-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.jmeter.gui;
import java.util.Collection;
import javax.swing.JPopupMenu;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.testelement.TestElement;
/**
* Implementing this interface indicates that the class is a JMeter GUI
* Component. A JMeter GUI Component is essentially the GUI display code
* associated with a JMeter Test Element. The writer of the component must
* take care to make the component be consistent with the rest of JMeter's
* GUI look and feel and behavior. Use of the provided abstract classes is
* highly recommended to make this task easier.
*
* @see AbstractJMeterGuiComponent
* @see org.apache.jmeter.config.gui.AbstractConfigGui
* @see org.apache.jmeter.assertions.gui.AbstractAssertionGui
* @see org.apache.jmeter.control.gui.AbstractControllerGui
* @see org.apache.jmeter.timers.gui.AbstractTimerGui
* @see org.apache.jmeter.visualizers.gui.AbstractVisualizer
* @see org.apache.jmeter.samplers.gui.AbstractSamplerGui
*
* @version $Revision: 1.14 $ on $Date: 2004/03/05 13:18:38 $
*
*/
public interface JMeterGUIComponent
{
/**
* Sets the name of the JMeter GUI Component. The name
* of the component is used in the Test Tree as the name of the
* tree node.
*
* @param name the name of the component
*/
void setName(String name);
/**
* Gets the name of the JMeter GUI component. The name
* of the component is used in the Test Tree as the name of the tree node.
*
* @return the name of the component
*/
String getName();
/**
* Get the component's label. This label is used in drop down
* lists that give the user the option of choosing one type of
* component in a list of many. It should therefore be a descriptive
* name for the end user to see. It must be unique to the class.
*
* It is also used by Help to find the appropriate location in the documentation
*
* @return GUI label for the component.
*/
String getStaticLabel();
/**
* Get the component's resource name, which getStaticLabel uses
* to derive the component's label in the local language.
* The resource name is fixed, and does not vary with the selected language.
*
* @return the resource name
*/
String getLabelResource();
/**
* Get the component's document anchor name.
* Used by Help to find the appropriate location in the documentation
*
* @return Document anchor (#ref) for the component.
*/
String getDocAnchor();
/**
* 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.
*
* @return the Test Element object that the GUI component represents.
*/
TestElement createTestElement();
/**
* 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.
*
* @param element the TestElement to modify
*/
void modifyTestElement(TestElement element);
/**
* Test GUI elements can be disabled, in which case
* they do not become part of the test when run.
*
* @return true if the element should be part of the test run, false
* otherwise
*/
boolean isEnabled();
/**
* Set whether this component is enabled.
*
* @param enabled true for enabled, false for disabled.
*/
void setEnabled(boolean enabled);
/**
* 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.
*
* @return a JPopupMenu appropriate for the component.
*/
JPopupMenu createPopupMenu();
/**
* The GUI must be able to extract the data from the TestElement and update
* all GUI fields to represent those data. This method is called to allow
* JMeter to show the user the GUI that represents the test element's data.
*
* @param element the TestElement to configure
*/
void configure(TestElement element);
/**
* 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.
*
* @return a Collection of Strings, where each element is one of the
* constants defined in MenuFactory
*
* @see org.apache.jmeter.gui.util.MenuFactory
*/
Collection getMenuCategories();
/**
* Sets the tree node which this component is associated with.
*
* @param node the tree node corresponding to this component
*/
void setNode(JMeterTreeNode node);
/**
* Clear the gui and return it to initial default values. This is
* necessary because most gui classes are instantiated just once and
* re-used for multiple test element objects and thus they need to be
* cleared between use.
* TODO: implement this in all gui classes.
*/
public void clear();
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.