Other Relevant Extension Points

There are some Eclipse extension points that are relevant as-is to the Remote System Explorer, which we list here. We do not describe how to use these extension points here, except to document the information needed to enable them to in Remote System Explorer.

Extension Point Description
org.eclipse.ui.viewActions For adding actions to the pulldown menu in any view's local toolbar, or to the toolbar itself. To use this you need to know the ID of the RSE views, for the targetID attribute: There are:
  • org.eclipse.rse.ui.view.systemView for the primary Remote Systems view.
  • org.eclipse.rse.ui.view.teamView for the Team view in the RSE perspective.
  • org.eclipse.rse.ui.view.systemTableView for the Remote System Details view in the RSE perspective.
org.eclipse.ui.propertyPages For adding property pages for objects within the Remote System Explorer. To use this you need to know the class type of these objects for the objectClass attribute of the <page> element: Because all RSE elements adapt to ISystemViewElementAdapter, which in turn implements org.eclipse.ui.IActionFilter, it is possible to scope your property pages to only appear for certain system types or subsystems, using the extension point's <filter> element. For example:

               <extension point="org.eclipse.ui.propertyPages">
                   <page name="Team Info"
                         class="samples.ui.propertypages.TeamFilterPropertyPage"
                         id="samples.ui.pp.filter.team"
                         objectClass="org.eclipse.rse.core.filters.ISystemFilterReference" >
                    <filter name="subsystemConfigurationId" value="samples.subsystems.factory"/>
                   </page>
               </extension>
            
See Scoping for all the filter names supported by RSE objects.
org.eclipse.ui.popupMenus For adding pop-up menu actions for objects within the Remote System Explorer. To use this you need to know the class type of these objects for the objectClass attribute of the <objectContribution> element: Because all RSE elements adapt to ISystemViewElementAdapter, which in turn extends org.eclipse.ui.IActionFilter, it is possible to scope your actions to only appear for certain system types or subsystems, using the extension point's <filter> element. For example:

               <extension point="org.eclipse.ui.popupMenus">
                   <objectContribution
                         id ="samples.ui.actions.TeamFilterActions"
                         objectClass="org.eclipse.rse.core.filters.ISystemFilterReference">
                         <filter name="subsystemConfigurationId" value="samples.subsystems.factory"/>
                         <action id="samples.ui.actions.TeamFilterAction1"
                                 label="Sample Team Filter Action"
                                 class="samples.ui.actions.ShowJarContents">
                         </action>
                   </objectContribution>
               </extension>
             
See Scoping for all the filter names supported by RSE objects.

Scoping

For the org.eclipse.ui.propertyPages and org.eclipse.ui.popupMenus extension points, it is possible to scope your property pages and actions to only filters in a particular subsystem, or connections of a particular system type, say. These extension points support the <filter> element, which allows you to specify a property name, and a property value, such that the page or action will only show if that property's value is the one given:


  <filter name="name" value="value"/>
It is up to the selected object's adapter to perform this test, in its testAttribute(Object target,String name,String value) method. This method is implemented for the adapters for every object shown in the Remote Systems view, and what follows is a list of the tests it will do on the given value, for the given name:

For system filter objects of type org.eclipse.rse.core.filters.ISystemFilterReference, the following names are also supported:

For the org.eclipse.ui.popupMenus extension point, you can also use the above names in the <visibility> and <enablement> elements, for extreme flexibility in when the action is shown, and when it is enabled or disabled. These map to the objectState attribute. For example:


   <enablement>
       <objectState name="hasChildren" value="true"/>
   </enablement>

Be aware the <visibility> element is available at the <objectContribution> level, while the <enablement> element is available at the <Action> level.