| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <HTML lang="en"> |
| <HEAD> |
| |
| <meta name="copyright" |
| content="Copyright (c) Oakland Software and others 2009, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page."> |
| |
| <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
| <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> |
| |
| <LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" |
| TYPE="text/css"> |
| <TITLE>Operational Topics</TITLE> |
| </HEAD> |
| <BODY BGCOLOR="#ffffff"> |
| |
| <h1>Operational Topics</h1> |
| <p>This section covers the operation of the CNF in detail.</p> |
| |
| <h2>Content Provider selection</h2> |
| <p>Selecting the content provider is done by finding one or more |
| NCEs associated with an object. The CNF is registered as a content |
| provider a viewer and thus gets called at the content provider APIs in |
| response to actions by the user on the viewer. In general, if the user |
| is navigating by expanding in the viewer, the <code>getElements()</code> |
| or <code>getChildren()</code> methods are called. However if the user |
| has selected some object (like in an editor) and wishes to show it in |
| the viewer, the <code>getParent()</code> method is used because the |
| viewer needs to be able to figure out the part of the tree between the |
| object and the content currently visible in the viewer.</p> |
| |
| <p>When selecting an NCE in reaction to the <code>getElements()</code> |
| or <code>getChildren()</code> call on the viewer, the <b>triggerPoints</b> |
| (or <b>enablement</b> if specified) expression is evaluated against the |
| object. The content provider associated with that NCE is invoked. If |
| there are multiple content providers enabled by their <b>triggerPoints</b> |
| (or <b>enablement</b>) expressions, they are all invoked in order |
| according to priority and their results are concatenated.</p> |
| |
| <p>When selecting an NCE in reaction to the <code>getParent()</code> |
| call on the viewer, the <b>possibleChildren</b> (or <b>enablement</b> if |
| specified) expression is evaluated against the object. The content |
| provider associated with that NCE is invoked. If there are multiple |
| content providers enabled by their <b>possibleChildren</b> (or <b>enablement</b>) |
| expressions, the content providers are invoked in priority order. The |
| first non-null parent returned by the content provider is used.</p> |
| |
| <p>The <b>overrides</b> element allows an NCE to be overridden by |
| another. In this case the content provider associated with the |
| suppressed NCE will not be invoked to contribute.</p> |
| |
| <p>During the initialization of the viewer, the it gets the initial |
| input by invocation of the <a |
| href="../reference/api/org/eclipse/ui/navigator/CommonNavigator.html#getInitialInput"><code>CommonNavigator.getInitialInput()</code></a>. |
| The default implementation of this method is to return the input of the |
| current page. Thus, the initial input becomes the first object that is |
| evaluated for the selection of NCEs.</p> |
| |
| <!-- |
| |
| <h2>Label Provider selection</h2> |
| |
| <p>TBS - talk about the association of the object with the NCE that |
| is associated with the object's content provider.</p> |
| |
| <p>More ???TBS</p> |
| |
| <h2>Pipelining</h2> |
| |
| <p>Pipelining works with the override mechanism to allow reshaping |
| the tree of objects. To use pipelining service, your content provider |
| must implement the <b>IPipedlinedTreeContentProvider</b> interface.</p> |
| <p>??? More TBS</p> |
| |
| --> |
| |
| </BODY> |
| </HTML> |