<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="fr">
<head>
<!-- Generated by javadoc (1.8.0_51) on Thu Jan 12 10:00:03 CET 2017 -->
<title>IEEFSection</title>
<meta name="date" content="2017-01-12">
<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="IEEFSection";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/eef/properties/ui/api/EEFTypeMapper.html" title="class in org.eclipse.eef.properties.ui.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSectionDescriptor.html" title="interface in org.eclipse.eef.properties.ui.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/eef/properties/ui/api/IEEFSection.html" target="_top">Frames</a></li>
<li><a href="IEEFSection.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.eclipse.eef.properties.ui.api</div>
<h2 title="Interface IEEFSection" class="title">Interface IEEFSection</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/eclipse/eef/properties/ui/api/AbstractEEFPropertySection.html" title="class in org.eclipse.eef.properties.ui.api">AbstractEEFPropertySection</a>, <a href="../../../../../../org/eclipse/eef/properties/ui/api/AbstractEEFSection.html" title="class in org.eclipse.eef.properties.ui.api">AbstractEEFSection</a>, <a href="../../../../../../org/eclipse/eef/properties/ui/legacy/internal/legacy2eef/EEFLegacySection.html" title="class in org.eclipse.eef.properties.ui.legacy.internal.legacy2eef">EEFLegacySection</a>, <a href="../../../../../../org/eclipse/eef/ide/ui/properties/api/EEFSection.html" title="class in org.eclipse.eef.ide.ui.properties.api">EEFSection</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">IEEFSection</span></pre>
<div class="block">Represents a section of properties for a given input.
 <p>
 The lifecycle of an IEEFSection is as follows:
 <ul>
 <li><code>IEEFSection.createControls()</code></li>
 <li><code>IEEFSection.setInput()</code></li>
 <li><code>IEEFSection.aboutToBeShown()</code></li>
 <li><code>IEEFSection.refresh()</code></li>
 <li><code>IEEFSection.aboutToBeHidden()</code></li>
 <li><code>IEEFSection.dispose()</code></li>
 </ul>
 </p>
 <p>
 Implementors of this class should be aware that a section instance might be reused for different input objects (as
 long as they are valid section inputs). It means that <code>IEEFSection.setInput</code> can be called at any time
 between <code>IEEFSection.createControls</code> and <code>IEEFSection.dispose</code>.
 </p>
 <p>
 When an input change event occurs, such as a tab selection or a workbench selection change, an IEEFSection is sent:
 <ul>
 <li><code>IEEFSection.setInput()</code></li>
 <li><code>IEEFSection.refresh()</code></li>
 </ul>
 </p>
 <p>
 When an part activation event occurs, such as the contributor part activation event, an IEEFSection is sent:
 <ul>
 <li><code>IEEFSection.setInput()</code></li>
 <li><code>IEEFSection.aboutToBeShown()</code></li>
 <li><code>IEEFSection.refresh()</code></li>
 <li><code>IEEFSection.setInput()</code></li>
 <li><code>IEEFSection.refresh()</code></li>
 </ul>
 This is because both a tab selection event and an input selection event have occurred.
 </p>
 <p>
 This interface should not be extended or implemented. New section instances should be created using
 <code>AbstractEEFPropertySection</code>.
 </p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>ISection</code></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></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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#aboutToBeHidden--">aboutToBeHidden</a></span>()</code>
<div class="block">Notifies the section that its controls are about to be hidden.</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/eclipse/eef/properties/ui/api/IEEFSection.html#aboutToBeShown--">aboutToBeShown</a></span>()</code>
<div class="block">Notifies the section that its controls are about to be shown.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#createControls-org.eclipse.swt.widgets.Composite-org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage-">createControls</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
              <a href="../../../../../../org/eclipse/eef/properties/ui/api/EEFTabbedPropertySheetPage.html" title="class in org.eclipse.eef.properties.ui.api">EEFTabbedPropertySheetPage</a>&nbsp;tabbedPropertySheetPage)</code>
<div class="block">Creates the controls for the section.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#dispose--">dispose</a></span>()</code>
<div class="block">Dispose this section.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#getMinimumHeight--">getMinimumHeight</a></span>()</code>
<div class="block">Returns the minimum height needed by this section.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#refresh--">refresh</a></span>()</code>
<div class="block">Refresh the contents of the controls displayed in this section.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#setInput-org.eclipse.ui.IWorkbenchPart-org.eclipse.jface.viewers.ISelection-">setInput</a></span>(org.eclipse.ui.IWorkbenchPart&nbsp;part,
        org.eclipse.jface.viewers.ISelection&nbsp;selection)</code>
<div class="block">Notifies the section that the workbench selection has changed.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSection.html#shouldUseExtraSpace--">shouldUseExtraSpace</a></span>()</code>
<div class="block">Determine whether this section would like extra height space in case there is some left.</div>
</td>
</tr>
</table>
</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="createControls-org.eclipse.swt.widgets.Composite-org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createControls</h4>
<pre>void&nbsp;createControls(org.eclipse.swt.widgets.Composite&nbsp;parent,
                    <a href="../../../../../../org/eclipse/eef/properties/ui/api/EEFTabbedPropertySheetPage.html" title="class in org.eclipse.eef.properties.ui.api">EEFTabbedPropertySheetPage</a>&nbsp;tabbedPropertySheetPage)</pre>
<div class="block">Creates the controls for the section.
 <p>
 Clients should take advantage of the widget factory provided by the framework to achieve a common look between
 property sections.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - the parent composite for the section.</dd>
<dd><code>tabbedPropertySheetPage</code> - the tabbed property sheet page.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/eclipse/eef/properties/ui/api/EEFTabbedPropertySheetPage.html#getWidgetFactory--"><code>EEFTabbedPropertySheetPage.getWidgetFactory()</code></a></dd>
</dl>
</li>
</ul>
<a name="setInput-org.eclipse.ui.IWorkbenchPart-org.eclipse.jface.viewers.ISelection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInput</h4>
<pre>void&nbsp;setInput(org.eclipse.ui.IWorkbenchPart&nbsp;part,
              org.eclipse.jface.viewers.ISelection&nbsp;selection)</pre>
<div class="block">Notifies the section that the workbench selection has changed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>part</code> - The active workbench part.</dd>
<dd><code>selection</code> - The active selection in the workbench part.</dd>
</dl>
</li>
</ul>
<a name="aboutToBeShown--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aboutToBeShown</h4>
<pre>void&nbsp;aboutToBeShown()</pre>
<div class="block">Notifies the section that its controls are about to be shown. It is expected that sections enable domain related
 functions in this method, most commonly add listeners.
 <p>
 Since the controls are not visible, the section should wait for the refresh() before updating the section
 controls.
 </p></div>
</li>
</ul>
<a name="aboutToBeHidden--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aboutToBeHidden</h4>
<pre>void&nbsp;aboutToBeHidden()</pre>
<div class="block">Notifies the section that its controls are about to be hidden. It is expected that sections disable domain
 related functions in this method, most commonly remove listeners.</div>
</li>
</ul>
<a name="dispose--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispose</h4>
<pre>void&nbsp;dispose()</pre>
<div class="block">Dispose this section.</div>
</li>
</ul>
<a name="getMinimumHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinimumHeight</h4>
<pre>int&nbsp;getMinimumHeight()</pre>
<div class="block">Returns the minimum height needed by this section. A return value of <code>SWT.DEFAULT</code> indicates that no
 minimum height is defined.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the minimum height needed by this section.</dd>
</dl>
</li>
</ul>
<a name="shouldUseExtraSpace--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldUseExtraSpace</h4>
<pre>boolean&nbsp;shouldUseExtraSpace()</pre>
<div class="block">Determine whether this section would like extra height space in case there is some left. Normally this is true
 when the section is the last to be displayed on a tab or is the only section on a tab.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this section would like extra height space.</dd>
</dl>
</li>
</ul>
<a name="refresh--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>refresh</h4>
<pre>void&nbsp;refresh()</pre>
<div class="block">Refresh the contents of the controls displayed in this section.</div>
</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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/eef/properties/ui/api/EEFTypeMapper.html" title="class in org.eclipse.eef.properties.ui.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/eclipse/eef/properties/ui/api/IEEFSectionDescriptor.html" title="interface in org.eclipse.eef.properties.ui.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/eef/properties/ui/api/IEEFSection.html" target="_top">Frames</a></li>
<li><a href="IEEFSection.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 ======= -->
</body>
</html>
