Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Eclipse Plug-in Developer Guide
Previous Page Home Next Page

Content and Action Binding

The sections below define the set of steps for usage of resource content and definition of own content for the CNF-based viewer. Finally, the steps needed for Action Binding are described. As described previously, in order to render content the viewer selects the corresponding NCEs based on the evaluation of the expressions on the selected objects.

Usage of Resource Content

One of the use cases of usage of the Common Navigator is the manipulation of the workspace resources. The resources-related content is defined by the org.eclipse.ui.navigator.resources plugin. The example of the resource usage of CNF can be found in org.eclipse.ui.examples.navigator.resources.

  1. Perform the general steps described in Creation of Common Navigator Viewer
  2. Add the following as dependent plug-ins:
    • org.eclipse.ui.navigator.resources
  3. Add a org.eclipse.ui.navigator.viewer extension that has:
    • viewerContentBinding, point this to Id of your view (example.view)
    • includes of:
      • org.eclipse.ui.navigator.resourceContent
      • org.eclipse.ui.navigator.resources.*
       <extension
             point="org.eclipse.ui.navigator.viewer">
           <viewerContentBinding 
                viewerId="example.view">
              <includes>
           	     <contentExtension pattern="org.eclipse.ui.navigator.resourceContent" />		       	      
    	     <contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/>
              </includes>
           </viewerContentBinding>
       </extension>
       

Please note, that using CNF inside of your own RCP requires three additional steps.

  1. Add the org.eclipse.ui.ide as dependent plug-in
  2. To get the resource workspace root (IWorkspaceRoot) as default page input, override the WorkbenchAdvisor.getDefaultPageInput() method in your WorkbenchAdvisor:
    	public IAdaptable getDefaultPageInput() 
    	{
    		return ResourcesPlugin.getWorkspace().getRoot();
    	}
    
  3. Hook the workbench adapters correctly before they are used, so add this code to the WorkbenchAdvisor.initialize(IWorkbenchConfigurer) method:
    	public void initialize(IWorkbenchConfigurer configurer) 
    	{
    		IDE.registerAdapters();
    	}
    

Own Content Definition

Along with resource content provided by the org.eclipse.ui.navigator.resources plugin, application-specific content can be defined and presented in the CNF-based viewer. In order to define and use application specific you need to:

  1. Use extension org.eclipse.ui.navigator.navigatorContent and declare the NCE, with it providers and trigger conditions for the content:
      <extension
             point="org.eclipse.ui.navigator.navigatorContent">
          <navigatorContent 
                id="org.eclipse.ui.examples.navigator.propertiesContent" 
                name="Properties File Contents"
                contentProvider="org.eclipse.ui.examples.navigator.PropertiesContentProvider"
                labelProvider="org.eclipse.ui.examples.navigator.PropertiesLabelProvider" 
                activeByDefault="true"
                icon="icons/prop_ps.gif"
                priority="normal" >
             <triggerPoints>
             	<or>
    	            <and>
    	               <instanceof value="org.eclipse.core.resources.IResource"/>
    	               <test
    	                     forcePluginActivation="true"
    	                     property="org.eclipse.core.resources.extension"
    	                     value="properties"/>
    	            </and>
    				<instanceof value="org.eclipse.ui.examples.navigator.PropertiesTreeData"/>
    			</or>
             </triggerPoints>
             <possibleChildren>
                <or>
                   <instanceof value="org.eclipse.ui.examples.navigator.PropertiesTreeData"/> 
                </or>
             </possibleChildren>
          </navigatorContent>
       </extension>
    
    For more details, please consult the CNF Configuration and Operational Topics.
  2. Bind the content to the viewer using the org.eclipse.ui.navigator.viewer extension.
       <extension
             point="org.eclipse.ui.navigator.viewer">
          <viewerContentBinding viewerId="example.view">
             <includes>
                <contentExtension pattern="org.eclipse.ui.examples.navigator.propertiesContent"/>
             </includes>
          </viewerContentBinding>
       </extension>
    
    Note, that instead of using the exact Id of the content, the usage of the regular expression is allowed in the pattern attribute, so org.eclipse.ui.examples.navigator.* would also work.

Action Binding

The usage of actions in the viewer follows the same pattern as the content binding. For usage of existing actions on resources defined in the org.eclipse.ui.navigator.resources plugin:

  1. Add the following as dependent plug-ins:
    • org.eclipse.ui.navigator.resources
  2. Add a org.eclipse.ui.navigator.viewer extension that has:
    • actionContentBinding, point this to Id of your view (example.view)
    • includes of:
      • org.eclipse.ui.navigator.resources.*
       <extension
             point="org.eclipse.ui.navigator.viewer">
           <viewerActionBinding 
                viewerId="example.view">
              <includes>
           	     <actionExtension pattern="org.eclipse.ui.navigator.resources.*" />		       	      
              </includes>
           </viewerContentBinding>
       </extension>
       

 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire