The OntologyNavigator does not provide any of the tree elements itself, it just collects the elements from the different extensions of the org.neontoolkit.gui.extendableTreeProvider extension-point and shows them. Generally, the different extensions are ordered in a hierarchy, which means that providers can be defined as sub-providers of other providers.
Sub-providers can provide additional children to elements provided by their parent providers. For example, if provider B is defined as a sub-provider of provider A and the system is querying for the children of an element E provided by A, provider B will also be called if it can provide additional children of E.
The extendableTreeProvider extension-point can also be used by other trees. By defining a view contribution in the extension definition, the defined extensions will not be used by the OntologyNavigator. The extensions for a given id can be retrieved from the GuiPlugin and a tree which uses a MainTreeDataProvider as ContentProvider which is initialized with the extensions for a given id, will automatically display the items of the defined providers.