<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JMeterGUIComponent (Apache JMeter dist API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="JMeterGUIComponent (Apache JMeter dist API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache JMeter</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/jmeter/gui/JMeterFileFilter.html" title="class in org.apache.jmeter.gui"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/jmeter/gui/LoggerPanel.html" title="class in org.apache.jmeter.gui"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/jmeter/gui/JMeterGUIComponent.html" target="_top">Frames</a></li>
<li><a href="JMeterGUIComponent.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.jmeter.gui</div>
<h2 title="Interface JMeterGUIComponent" class="title">Interface JMeterGUIComponent</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../org/apache/jmeter/gui/ClearGui.html" title="interface in org.apache.jmeter.gui">ClearGui</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/jmeter/assertions/gui/AbstractAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">AbstractAssertionGui</a>, <a href="../../../../org/apache/jmeter/config/gui/AbstractConfigGui.html" title="class in org.apache.jmeter.config.gui">AbstractConfigGui</a>, <a href="../../../../org/apache/jmeter/control/gui/AbstractControllerGui.html" title="class in org.apache.jmeter.control.gui">AbstractControllerGui</a>, <a href="../../../../org/apache/jmeter/gui/AbstractJMeterGuiComponent.html" title="class in org.apache.jmeter.gui">AbstractJMeterGuiComponent</a>, <a href="../../../../org/apache/jmeter/visualizers/gui/AbstractListenerGui.html" title="class in org.apache.jmeter.visualizers.gui">AbstractListenerGui</a>, <a href="../../../../org/apache/jmeter/processor/gui/AbstractPostProcessorGui.html" title="class in org.apache.jmeter.processor.gui">AbstractPostProcessorGui</a>, <a href="../../../../org/apache/jmeter/processor/gui/AbstractPreProcessorGui.html" title="class in org.apache.jmeter.processor.gui">AbstractPreProcessorGui</a>, <a href="../../../../org/apache/jmeter/timers/gui/AbstractRandomTimerGui.html" title="class in org.apache.jmeter.timers.gui">AbstractRandomTimerGui</a>, <a href="../../../../org/apache/jmeter/samplers/gui/AbstractSamplerGui.html" title="class in org.apache.jmeter.samplers.gui">AbstractSamplerGui</a>, <a href="../../../../org/apache/jmeter/gui/AbstractScopedJMeterGuiComponent.html" title="class in org.apache.jmeter.gui">AbstractScopedJMeterGuiComponent</a>, <a href="../../../../org/apache/jmeter/threads/gui/AbstractThreadGroupGui.html" title="class in org.apache.jmeter.threads.gui">AbstractThreadGroupGui</a>, <a href="../../../../org/apache/jmeter/timers/gui/AbstractTimerGui.html" title="class in org.apache.jmeter.timers.gui">AbstractTimerGui</a>, <a href="../../../../org/apache/jmeter/visualizers/gui/AbstractVisualizer.html" title="class in org.apache.jmeter.visualizers.gui">AbstractVisualizer</a>, <a href="../../../../org/apache/jmeter/protocol/http/control/gui/AjpSamplerGui.html" title="class in org.apache.jmeter.protocol.http.control.gui">AjpSamplerGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/modifier/gui/AnchorModifierGui.html" title="class in org.apache.jmeter.protocol.http.modifier.gui">AnchorModifierGui</a>, <a href="../../../../org/apache/jmeter/config/gui/ArgumentsPanel.html" title="class in org.apache.jmeter.config.gui">ArgumentsPanel</a>, <a href="../../../../org/apache/jmeter/assertions/gui/AssertionGui.html" title="class in org.apache.jmeter.assertions.gui">AssertionGui</a>, <a href="../../../../org/apache/jmeter/visualizers/AssertionVisualizer.html" title="class in org.apache.jmeter.visualizers">AssertionVisualizer</a>, <a href="../../../../org/apache/jmeter/protocol/http/gui/AuthPanel.html" title="class in org.apache.jmeter.protocol.http.gui">AuthPanel</a>, <a href="../../../../org/apache/jmeter/visualizers/backend/BackendListenerGui.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/BeanShellAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">BeanShellAssertionGui</a>, <a href="../../../../org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.html" title="class in org.apache.jmeter.protocol.java.control.gui">BeanShellSamplerGui</a>, <a href="../../../../org/apache/jmeter/extractor/gui/BoundaryExtractorGui.html" title="class in org.apache.jmeter.extractor.gui">BoundaryExtractorGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/gui/CacheManagerGui.html" title="class in org.apache.jmeter.protocol.http.gui">CacheManagerGui</a>, <a href="../../../../org/apache/jmeter/visualizers/ComparisonVisualizer.html" title="class in org.apache.jmeter.visualizers">ComparisonVisualizer</a>, <a href="../../../../org/apache/jmeter/timers/gui/ConstantTimerGui.html" title="class in org.apache.jmeter.timers.gui">ConstantTimerGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/gui/CookiePanel.html" title="class in org.apache.jmeter.protocol.http.gui">CookiePanel</a>, <a href="../../../../org/apache/jmeter/modifiers/gui/CounterConfigGui.html" title="class in org.apache.jmeter.modifiers.gui">CounterConfigGui</a>, <a href="../../../../org/apache/jmeter/control/gui/CriticalSectionControllerGui.html" title="class in org.apache.jmeter.control.gui">CriticalSectionControllerGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/gui/DNSCachePanel.html" title="class in org.apache.jmeter.protocol.http.gui">DNSCachePanel</a>, <a href="../../../../org/apache/jmeter/assertions/gui/DurationAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">DurationAssertionGui</a>, <a href="../../../../org/apache/jmeter/control/gui/ForeachControlPanel.html" title="class in org.apache.jmeter.control.gui">ForeachControlPanel</a>, <a href="../../../../org/apache/jmeter/protocol/ftp/config/gui/FtpConfigGui.html" title="class in org.apache.jmeter.protocol.ftp.config.gui">FtpConfigGui</a>, <a href="../../../../org/apache/jmeter/protocol/ftp/control/gui/FtpTestSamplerGui.html" title="class in org.apache.jmeter.protocol.ftp.control.gui">FtpTestSamplerGui</a>, <a href="../../../../org/apache/jmeter/timers/gui/GaussianRandomTimerGui.html" title="class in org.apache.jmeter.timers.gui">GaussianRandomTimerGui</a>, <a href="../../../../org/apache/jmeter/visualizers/GraphVisualizer.html" title="class in org.apache.jmeter.visualizers">GraphVisualizer</a>, <a href="../../../../org/apache/jmeter/protocol/http/gui/HeaderPanel.html" title="class in org.apache.jmeter.protocol.http.gui">HeaderPanel</a>, <a href="../../../../org/apache/jmeter/assertions/gui/HTMLAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">HTMLAssertionGui</a>, <a href="../../../../org/apache/jmeter/extractor/gui/HtmlExtractorGui.html" title="class in org.apache.jmeter.extractor.gui">HtmlExtractorGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.html" title="class in org.apache.jmeter.protocol.http.gui">HTTPArgumentsPanel</a>, <a href="../../../../org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.html" title="class in org.apache.jmeter.protocol.http.config.gui">HttpDefaultsGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/control/gui/HttpMirrorControlGui.html" title="class in org.apache.jmeter.protocol.http.control.gui">HttpMirrorControlGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.html" title="class in org.apache.jmeter.protocol.http.control.gui">HttpTestSampleGui</a>, <a href="../../../../org/apache/jmeter/control/gui/IfControllerPanel.html" title="class in org.apache.jmeter.control.gui">IfControllerPanel</a>, <a href="../../../../org/apache/jmeter/control/gui/IncludeControllerGui.html" title="class in org.apache.jmeter.control.gui">IncludeControllerGui</a>, <a href="../../../../org/apache/jmeter/control/gui/InterleaveControlGui.html" title="class in org.apache.jmeter.control.gui">InterleaveControlGui</a>, <a href="../../../../org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.html" title="class in org.apache.jmeter.protocol.java.config.gui">JavaConfigGui</a>, <a href="../../../../org/apache/jmeter/protocol/java/control/gui/JavaTestSamplerGui.html" title="class in org.apache.jmeter.protocol.java.control.gui">JavaTestSamplerGui</a>, <a href="../../../../org/apache/jmeter/assertions/jmespath/gui/JMESPathAssertionGui.html" title="class in org.apache.jmeter.assertions.jmespath.gui">JMESPathAssertionGui</a>, <a href="../../../../org/apache/jmeter/extractor/json/jmespath/gui/JMESPathExtractorGui.html" title="class in org.apache.jmeter.extractor.json.jmespath.gui">JMESPathExtractorGui</a>, <a href="../../../../org/apache/jmeter/protocol/jms/control/gui/JMSPublisherGui.html" title="class in org.apache.jmeter.protocol.jms.control.gui">JMSPublisherGui</a>, <a href="../../../../org/apache/jmeter/protocol/jms/control/gui/JMSSamplerGui.html" title="class in org.apache.jmeter.protocol.jms.control.gui">JMSSamplerGui</a>, <a href="../../../../org/apache/jmeter/protocol/jms/control/gui/JMSSubscriberGui.html" title="class in org.apache.jmeter.protocol.jms.control.gui">JMSSubscriberGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/JSONPathAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">JSONPathAssertionGui</a>, <a href="../../../../org/apache/jmeter/extractor/json/jsonpath/gui/JSONPostProcessorGui.html" title="class in org.apache.jmeter.extractor.json.jsonpath.gui">JSONPostProcessorGui</a>, <a href="../../../../org/apache/jmeter/protocol/java/control/gui/JUnitTestSamplerGui.html" title="class in org.apache.jmeter.protocol.java.control.gui">JUnitTestSamplerGui</a>, <a href="../../../../org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.html" title="class in org.apache.jmeter.protocol.ldap.config.gui">LDAPArgumentsPanel</a>, <a href="../../../../org/apache/jmeter/protocol/ldap/config/gui/LdapConfigGui.html" title="class in org.apache.jmeter.protocol.ldap.config.gui">LdapConfigGui</a>, <a href="../../../../org/apache/jmeter/protocol/ldap/config/gui/LdapExtConfigGui.html" title="class in org.apache.jmeter.protocol.ldap.config.gui">LdapExtConfigGui</a>, <a href="../../../../org/apache/jmeter/protocol/ldap/control/gui/LdapExtTestSamplerGui.html" title="class in org.apache.jmeter.protocol.ldap.control.gui">LdapExtTestSamplerGui</a>, <a href="../../../../org/apache/jmeter/protocol/ldap/control/gui/LdapTestSamplerGui.html" title="class in org.apache.jmeter.protocol.ldap.control.gui">LdapTestSamplerGui</a>, <a href="../../../../org/apache/jmeter/control/gui/LogicControllerGui.html" title="class in org.apache.jmeter.control.gui">LogicControllerGui</a>, <a href="../../../../org/apache/jmeter/config/gui/LoginConfigGui.html" title="class in org.apache.jmeter.config.gui">LoginConfigGui</a>, <a href="../../../../org/apache/jmeter/control/gui/LoopControlPanel.html" title="class in org.apache.jmeter.control.gui">LoopControlPanel</a>, <a href="../../../../org/apache/jmeter/visualizers/MailerVisualizer.html" title="class in org.apache.jmeter.visualizers">MailerVisualizer</a>, <a href="../../../../org/apache/jmeter/protocol/mail/sampler/gui/MailReaderSamplerGui.html" title="class in org.apache.jmeter.protocol.mail.sampler.gui">MailReaderSamplerGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/MD5HexAssertionGUI.html" title="class in org.apache.jmeter.assertions.gui">MD5HexAssertionGUI</a>, <a href="../../../../org/apache/jmeter/control/gui/ModuleControllerGui.html" title="class in org.apache.jmeter.control.gui">ModuleControllerGui</a>, <a href="../../../../org/apache/jmeter/gui/NamePanel.html" title="class in org.apache.jmeter.gui">NamePanel</a>, <a href="../../../../org/apache/jmeter/config/gui/ObsoleteGui.html" title="class in org.apache.jmeter.config.gui">ObsoleteGui</a>, <a href="../../../../org/apache/jmeter/control/gui/OnceOnlyControllerGui.html" title="class in org.apache.jmeter.control.gui">OnceOnlyControllerGui</a>, <a href="../../../../org/apache/jmeter/timers/gui/PoissonRandomTimerGui.html" title="class in org.apache.jmeter.timers.gui">PoissonRandomTimerGui</a>, <a href="../../../../org/apache/jmeter/threads/gui/PostThreadGroupGui.html" title="class in org.apache.jmeter.threads.gui">PostThreadGroupGui</a>, <a href="../../../../org/apache/jmeter/visualizers/PropertyControlGui.html" title="class in org.apache.jmeter.visualizers">PropertyControlGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.html" title="class in org.apache.jmeter.protocol.http.proxy.gui">ProxyControlGui</a>, <a href="../../../../org/apache/jmeter/control/gui/RandomControlGui.html" title="class in org.apache.jmeter.control.gui">RandomControlGui</a>, <a href="../../../../org/apache/jmeter/control/gui/RandomOrderControllerGui.html" title="class in org.apache.jmeter.control.gui">RandomOrderControllerGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/control/gui/RecordController.html" title="class in org.apache.jmeter.protocol.http.control.gui">RecordController</a>, <a href="../../../../org/apache/jmeter/extractor/gui/RegexExtractorGui.html" title="class in org.apache.jmeter.extractor.gui">RegexExtractorGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/modifier/gui/RegExUserParametersGui.html" title="class in org.apache.jmeter.protocol.http.modifier.gui">RegExUserParametersGui</a>, <a href="../../../../org/apache/jmeter/visualizers/RespTimeGraphVisualizer.html" title="class in org.apache.jmeter.visualizers">RespTimeGraphVisualizer</a>, <a href="../../../../org/apache/jmeter/reporters/gui/ResultActionGui.html" title="class in org.apache.jmeter.reporters.gui">ResultActionGui</a>, <a href="../../../../org/apache/jmeter/reporters/gui/ResultSaverGui.html" title="class in org.apache.jmeter.reporters.gui">ResultSaverGui</a>, <a href="../../../../org/apache/jmeter/control/gui/RunTimeGui.html" title="class in org.apache.jmeter.control.gui">RunTimeGui</a>, <a href="../../../../org/apache/jmeter/modifiers/gui/SampleTimeoutGui.html" title="class in org.apache.jmeter.modifiers.gui">SampleTimeoutGui</a>, <a href="../../../../org/apache/jmeter/threads/gui/SetupThreadGroupGui.html" title="class in org.apache.jmeter.threads.gui">SetupThreadGroupGui</a>, <a href="../../../../org/apache/jmeter/config/gui/SimpleConfigGui.html" title="class in org.apache.jmeter.config.gui">SimpleConfigGui</a>, <a href="../../../../org/apache/jmeter/visualizers/SimpleDataWriter.html" title="class in org.apache.jmeter.visualizers">SimpleDataWriter</a>, <a href="../../../../org/apache/jmeter/assertions/gui/SizeAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">SizeAssertionGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/SMIMEAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">SMIMEAssertionGui</a>, <a href="../../../../org/apache/jmeter/protocol/smtp/sampler/gui/SmtpSamplerGui.html" title="class in org.apache.jmeter.protocol.smtp.sampler.gui">SmtpSamplerGui</a>, <a href="../../../../org/apache/jmeter/visualizers/StatGraphVisualizer.html" title="class in org.apache.jmeter.visualizers">StatGraphVisualizer</a>, <a href="../../../../org/apache/jmeter/gui/menu/StaticJMeterGUIComponent.html" title="class in org.apache.jmeter.gui.menu">StaticJMeterGUIComponent</a>, <a href="../../../../org/apache/jmeter/visualizers/StatVisualizer.html" title="class in org.apache.jmeter.visualizers">StatVisualizer</a>, <a href="../../../../org/apache/jmeter/reporters/gui/SummariserGui.html" title="class in org.apache.jmeter.reporters.gui">SummariserGui</a>, <a href="../../../../org/apache/jmeter/visualizers/SummaryReport.html" title="class in org.apache.jmeter.visualizers">SummaryReport</a>, <a href="../../../../org/apache/jmeter/control/gui/SwitchControllerGui.html" title="class in org.apache.jmeter.control.gui">SwitchControllerGui</a>, <a href="../../../../org/apache/jmeter/protocol/system/gui/SystemSamplerGui.html" title="class in org.apache.jmeter.protocol.system.gui">SystemSamplerGui</a>, <a href="../../../../org/apache/jmeter/visualizers/TableVisualizer.html" title="class in org.apache.jmeter.visualizers">TableVisualizer</a>, <a href="../../../../org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.html" title="class in org.apache.jmeter.protocol.tcp.config.gui">TCPConfigGui</a>, <a href="../../../../org/apache/jmeter/protocol/tcp/control/gui/TCPSamplerGui.html" title="class in org.apache.jmeter.protocol.tcp.control.gui">TCPSamplerGui</a>, <a href="../../../../org/apache/jmeter/sampler/gui/TestActionGui.html" title="class in org.apache.jmeter.sampler.gui">TestActionGui</a>, <a href="../../../../org/apache/jmeter/testbeans/gui/TestBeanGUI.html" title="class in org.apache.jmeter.testbeans.gui">TestBeanGUI</a>, <a href="../../../../org/apache/jmeter/control/gui/TestFragmentControllerGui.html" title="class in org.apache.jmeter.control.gui">TestFragmentControllerGui</a>, <a href="../../../../org/apache/jmeter/control/gui/TestPlanGui.html" title="class in org.apache.jmeter.control.gui">TestPlanGui</a>, <a href="../../../../org/apache/jmeter/threads/gui/ThreadGroupGui.html" title="class in org.apache.jmeter.threads.gui">ThreadGroupGui</a>, <a href="../../../../org/apache/jmeter/control/gui/ThroughputControllerGui.html" title="class in org.apache.jmeter.control.gui">ThroughputControllerGui</a>, <a href="../../../../org/apache/jmeter/control/gui/TransactionControllerGui.html" title="class in org.apache.jmeter.control.gui">TransactionControllerGui</a>, <a href="../../../../org/apache/jmeter/timers/gui/UniformRandomTimerGui.html" title="class in org.apache.jmeter.timers.gui">UniformRandomTimerGui</a>, <a href="../../../../org/apache/jmeter/protocol/http/modifier/gui/URLRewritingModifierGui.html" title="class in org.apache.jmeter.protocol.http.modifier.gui">URLRewritingModifierGui</a>, <a href="../../../../org/apache/jmeter/modifiers/gui/UserParametersGui.html" title="class in org.apache.jmeter.modifiers.gui">UserParametersGui</a>, <a href="../../../../org/apache/jmeter/visualizers/ViewResultsFullVisualizer.html" title="class in org.apache.jmeter.visualizers">ViewResultsFullVisualizer</a>, <a href="../../../../org/apache/jmeter/control/gui/WhileControllerGui.html" title="class in org.apache.jmeter.control.gui">WhileControllerGui</a>, <a href="../../../../org/apache/jmeter/control/gui/WorkBenchGui.html" title="class in org.apache.jmeter.control.gui">WorkBenchGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/XMLAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">XMLAssertionGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/XMLSchemaAssertionGUI.html" title="class in org.apache.jmeter.assertions.gui">XMLSchemaAssertionGUI</a>, <a href="../../../../org/apache/jmeter/assertions/gui/XPath2AssertionGui.html" title="class in org.apache.jmeter.assertions.gui">XPath2AssertionGui</a>, <a href="../../../../org/apache/jmeter/extractor/gui/XPath2ExtractorGui.html" title="class in org.apache.jmeter.extractor.gui">XPath2ExtractorGui</a>, <a href="../../../../org/apache/jmeter/assertions/gui/XPathAssertionGui.html" title="class in org.apache.jmeter.assertions.gui">XPathAssertionGui</a>, <a href="../../../../org/apache/jmeter/extractor/gui/XPathExtractorGui.html" title="class in org.apache.jmeter.extractor.gui">XPathExtractorGui</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">JMeterGUIComponent</span>
extends <a href="../../../../org/apache/jmeter/gui/ClearGui.html" title="interface in org.apache.jmeter.gui">ClearGui</a></pre>
<div class="block">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.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/jmeter/gui/AbstractJMeterGuiComponent.html" title="class in org.apache.jmeter.gui"><code>AbstractJMeterGuiComponent</code></a>, 
<a href="../../../../org/apache/jmeter/config/gui/AbstractConfigGui.html" title="class in org.apache.jmeter.config.gui"><code>AbstractConfigGui</code></a>, 
<a href="../../../../org/apache/jmeter/assertions/gui/AbstractAssertionGui.html" title="class in org.apache.jmeter.assertions.gui"><code>AbstractAssertionGui</code></a>, 
<a href="../../../../org/apache/jmeter/control/gui/AbstractControllerGui.html" title="class in org.apache.jmeter.control.gui"><code>AbstractControllerGui</code></a>, 
<a href="../../../../org/apache/jmeter/timers/gui/AbstractTimerGui.html" title="class in org.apache.jmeter.timers.gui"><code>AbstractTimerGui</code></a>, 
<a href="../../../../org/apache/jmeter/visualizers/gui/AbstractVisualizer.html" title="class in org.apache.jmeter.visualizers.gui"><code>AbstractVisualizer</code></a>, 
<a href="../../../../org/apache/jmeter/samplers/gui/AbstractSamplerGui.html" title="class in org.apache.jmeter.samplers.gui"><code>AbstractSamplerGui</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#canBeAdded--">canBeAdded</a></span>()</code>
<div class="block">Returns whether a component of this type can be added to the test plan.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#configure-org.apache.jmeter.testelement.TestElement-">configure</a></span>(<a href="../../../../org/apache/jmeter/testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;element)</code>
<div class="block">The GUI must be able to extract the data from the TestElement and update
 all GUI fields to represent those data.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/swing/JPopupMenu.html?is-external=true" title="class or interface in javax.swing">JPopupMenu</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#createPopupMenu--">createPopupMenu</a></span>()</code>
<div class="block">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.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/jmeter/testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#createTestElement--">createTestElement</a></span>()</code>
<div class="block">JMeter test components are separated into a model and a GUI
 representation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#getDocAnchor--">getDocAnchor</a></span>()</code>
<div class="block">Get the component's document anchor name.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#getLabelResource--">getLabelResource</a></span>()</code>
<div class="block">Get the component's resource name, which getStaticLabel uses to derive
 the component's label in the local language.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#getMenuCategories--">getMenuCategories</a></span>()</code>
<div class="block">This is the list of add menu categories this gui component will be
 available under.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#getName--">getName</a></span>()</code>
<div class="block">Gets the name of the JMeter GUI component.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#getStaticLabel--">getStaticLabel</a></span>()</code>
<div class="block">Get the component's label.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#isEnabled--">isEnabled</a></span>()</code>
<div class="block">Test GUI elements can be disabled, in which case they do not become part
 of the test when run.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#modifyTestElement-org.apache.jmeter.testelement.TestElement-">modifyTestElement</a></span>(<a href="../../../../org/apache/jmeter/testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;element)</code>
<div class="block">GUI components are responsible for populating TestElements they create
 with the data currently held in the GUI components.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#setEnabled-boolean-">setEnabled</a></span>(boolean&nbsp;enabled)</code>
<div class="block">Set whether this component is enabled.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#setName-java.lang.String-">setName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Sets the name of the JMeter GUI Component.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.jmeter.gui.ClearGui">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.jmeter.gui.<a href="../../../../org/apache/jmeter/gui/ClearGui.html" title="interface in org.apache.jmeter.gui">ClearGui</a></h3>
<code><a href="../../../../org/apache/jmeter/gui/ClearGui.html#clearGui--">clearGui</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setName-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setName</h4>
<pre>void&nbsp;setName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the component</dd>
</dl>
</li>
</ul>
<a name="getName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
<div class="block">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.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the name of the component</dd>
</dl>
</li>
</ul>
<a name="getStaticLabel--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStaticLabel</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getStaticLabel()</pre>
<div class="block">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.

 Normally getLabelResource() should be overridden instead of
 this method; the definition of this method in AbstractJMeterGuiComponent
 is intended for general use.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>GUI label for the component.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/jmeter/gui/JMeterGUIComponent.html#getLabelResource--"><code>getLabelResource()</code></a></dd>
</dl>
</li>
</ul>
<a name="getLabelResource--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelResource</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getLabelResource()</pre>
<div class="block">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.

 Normally this method should be overridden in preference to overriding
 getStaticLabel(). However where the resource name is not available or required,
 getStaticLabel() may be overridden instead.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the resource name</dd>
</dl>
</li>
</ul>
<a name="getDocAnchor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDocAnchor</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getDocAnchor()</pre>
<div class="block">Get the component's document anchor name. Used by Help to find the
 appropriate location in the documentation</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Document anchor (#ref) for the component.</dd>
</dl>
</li>
</ul>
<a name="createTestElement--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTestElement</h4>
<pre><a href="../../../../org/apache/jmeter/testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;createTestElement()</pre>
<div class="block">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.

 <p>
 The canonical implementation looks like this:
 <pre>
 public TestElement createTestElement() {
     TestElementXYZ el = new TestElementXYZ();
     modifyTestElement(el);
     return el;
 }
 </pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Test Element object that the GUI component represents.</dd>
</dl>
</li>
</ul>
<a name="modifyTestElement-org.apache.jmeter.testelement.TestElement-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>modifyTestElement</h4>
<pre>void&nbsp;modifyTestElement(<a href="../../../../org/apache/jmeter/testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;element)</pre>
<div class="block">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.

 <p>
 The canonical implementation looks like this:
 <pre>
 public void modifyTestElement(TestElement element) {
     element.clear(); // many implementations use this
     configureTestElement(element);
     // Using the element setters (preferred):
     TestElementXYZ xyz = (TestElementXYZ) element;
     xyz.setState(guiState.getText());
     xyz.setCode(guiCode.getText());
     ... other GUI fields ...
     // or directly (do not use unless there is no setter for the field):
     element.setProperty(TestElementXYZ.STATE, guiState.getText())
     element.setProperty(TestElementXYZ.CODE, guiCode.getText())
     ... other GUI fields ...
 }
 </pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>element</code> - the TestElement to modify</dd>
</dl>
</li>
</ul>
<a name="isEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnabled</h4>
<pre>boolean&nbsp;isEnabled()</pre>
<div class="block">Test GUI elements can be disabled, in which case they do not become part
 of the test when run.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the element should be part of the test run, false
         otherwise</dd>
</dl>
</li>
</ul>
<a name="setEnabled-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEnabled</h4>
<pre>void&nbsp;setEnabled(boolean&nbsp;enabled)</pre>
<div class="block">Set whether this component is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabled</code> - true for enabled, false for disabled.</dd>
</dl>
</li>
</ul>
<a name="createPopupMenu--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPopupMenu</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/swing/JPopupMenu.html?is-external=true" title="class or interface in javax.swing">JPopupMenu</a>&nbsp;createPopupMenu()</pre>
<div class="block">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.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a JPopupMenu appropriate for the component.</dd>
</dl>
</li>
</ul>
<a name="configure-org.apache.jmeter.testelement.TestElement-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre>void&nbsp;configure(<a href="../../../../org/apache/jmeter/testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;element)</pre>
<div class="block">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.

 <p>
 The canonical implementation looks like this:
 <pre>
 public void configure(TestElement element) {
     super.configure(element);
     // Using the element getter (preferred):
     TestElementXYZ xyz = (TestElementXYZ) element;
     guiState.setText(xyz.getState());
     guiCode.setText(xyz.getCode());
     ... other GUI fields ...
     // or using the element property names directly (do not use unless there is no getter for the field)
     guiState.setText(element.getPropertyAsString(TestElementXYZ.STATE));
     guiCode.setText(element.getPropertyAsString(TestElementXYZ.CODE));
     ... other GUI fields ...
 }
 </pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>element</code> - the TestElement to configure</dd>
</dl>
</li>
</ul>
<a name="getMenuCategories--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMenuCategories</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getMenuCategories()</pre>
<div class="block">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.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Collection of Strings, where each element is one of the
         constants defined in MenuFactory</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/jmeter/gui/util/MenuFactory.html" title="class in org.apache.jmeter.gui.util"><code>MenuFactory</code></a></dd>
</dl>
</li>
</ul>
<a name="canBeAdded--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>canBeAdded</h4>
<pre>default&nbsp;boolean&nbsp;canBeAdded()</pre>
<div class="block">Returns whether a component of this type can be added to the test plan.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the component can be added, false otherwise.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache JMeter</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/jmeter/gui/JMeterFileFilter.html" title="class in org.apache.jmeter.gui"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/jmeter/gui/LoggerPanel.html" title="class in org.apache.jmeter.gui"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/jmeter/gui/JMeterGUIComponent.html" target="_top">Frames</a></li>
<li><a href="JMeterGUIComponent.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright © 1998-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>
