<p>
This extension point is modelled after the eclipse workbench
extension point <samp>org.eclipse.ui.propertyPages</samp>.
However, because we know we are targeting remote resources, it
is simplified a bit. Specifically,
there is no need to specify the object class, as we assume these
actions apply to remote resources, which often share a common
object class.
On the other hand, we need additional filtering capabilities
to scope which remote resources these pages are to apply to.
</p>
<p>
To this end, there is a rich set of filtering attributes to enable
fine-grained scoping by a number
of criteria. These scoping attributes are the same as those for
our <samp>org.eclipse.rse.ui.popupMenus</samp>
extension point.
<p>
While not fully documented here, this extension point supports
the
<samp><filter></samp>
element from the <samp>org.eclipse.ui.popupMenus</samp>
extension point. See its
documentation in the help for information on this element.
For example:
<samp><pre>
<filter name="subsystemFactoryCategory" value="files"/>
</pre></samp>
This element is for conditionally deciding whether to show
the property page, very much like the attributes of the <page> element
do; in fact there is some overlap. <br>
The <samp>name</samp>s
supported for the <samp><filter></samp>
element are:</p>
<ul>
<li><b><samp>"name"</samp></b>. Will test the <i>value</i> for
an exact match on an object's name,
or beginning-of-name match if ends with an asterisk.
<li><b><samp>"type"</samp></b>. Will test the <i>value</i> for
an exact match on an object's type.
<li><b><samp>"offline"</samp></b>.Will test the <i>value</i>
against "true" if the user is working
in "offline" mode or "false" if not. Currently only supported
for iSeries connections.
<li><b><samp>"connected"</samp></b>. Will test the <i>value</i>
against "true" if the connection
containing the selected object is active or "false" if not.
<li><b><samp>"hasChildren"</samp></b>. Will test the <i>value</i>
against "true" if this object's
adapter reports that it has children or "false" if it doesn't
have children.
<li><b><samp>"systemType"</samp></b>. Will test the <i>value</i>
for an exact match on the system type of
this object's parent SystemConnection object.
You can specify multiple values if you comma-separate them.
<li><b><samp>"subsystemFactoryId"</samp></b>. Will test the <i>value</i>
for an exact match on the
<samp>ID</samp> of the subsystem factory that created this object's
subsystem. Returns false for SystemConnection objects.
You can specify multiple values if you comma-separate them.
<li><b><samp>"subsystemFactoryCategory"</samp></b>. Will test
the <i>value</i> for an exact match
on the <samp>category</samp> of the subsystem factory that created
this object's subsystem.
You can specify multiple values if you comma-separate them.
</ul>
(no description available)
Identifies an individual property page contribution.
a unique ID that will be used to identify this page.
a translatable name that will be used in the UI for this page.
a fully qualified name of the class that implements <code>org.eclipse.ui.IWorkbenchPropertyPage</code>.
Or better yet, extends one of the IBM-supplied base classes, described in the API Information section.
A relative path to an icon that will be used in the UI in addition to the page name. Optional.
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope this property page element.
<p>
This filter specifies a subsystem configuration id, such that this
property page will only appear for remote resources returned from subsystems of the given subsystem configuration.
This ID can be scalar, or it can be generic to match on multiple subsystem configuration IDs.
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope
this property page element.
<p>
This filter specifies a subsystem configuration category, such that
this
property page will only appear for remote resources returned from subsystems
owned by subsystem configurations
declared defined with the specified category.
<p>
This category can be scalar, or it can be generic to match on
multiple subsystem configuration categories. The
categories of the Predefined subsystem configurations that display
remote resources in the Remote
Systems view are:
</p>
<ul>
<li><b>files</b>. For subsystems that list hierarchical file
system resources, such as folders and files.
<li><b>nativefiles</b>. For subsystems that list non-hierarchical file
system resources, such as in the iSeries QSYS file system.
<li><b>commands</b>. For subsystems that list remote commands.
<li><b>jobs</b>. For subsystems that list remote jobs.
</ul>
<br>
One of the optional filters to scope the remote resources for
which the popup menu actions are to appear.
Specify as many of these optional filters like this as needed to explicitly scope
all the actions defined in this objectContribution element.
<br>
This filter specifies a single system type, or semicolon-separated list of system types,
or asterisk for all system types (the default).
Will scope these actions to only remote objects from systems of this type or types.
<br><br>
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope this property page element.
<p>
This filter specifies a simple or generic resource name.
Only resources whose name matches this filter will show the property page
defined within this page element.
</p>
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope this property page element.
<p>
This filter specifies a type category. Normally the subsystemconfigurationid
is sufficient, but some subsystems display multiple types of
resources, and these are categorized by a type name that can
be used to scope property pages. Here are the type categories supported by IBM-
supplied subsystems:
</p>
<ul>
<li><b>files</b>. For hierarchical file systems resources.
<li><b>commands</b>. For remote commands.
<li><b>jobs</b>. For remote jobs.
</ul>
<br>
The IBM-supplied subsystem for iSeries native file system objects also supports
these type categories:
<ul>
<li><b>LIBRARIES</b>. Set for libraries.
<li><b>OBJECTS</b>. Set for objects, excluding files.
<li><b>OBJECTFILES</b>. Set for file objects. Use <samp>OBJECTS*</samp>
to match on all objects.
<li><b>MEMBERS</b>. Set for data and source file members.
<li><b>RECORDS</b>. Set for record formats within files.
<li><b>FIELDS</b>. Set for fields within record formats.
<li><b>MESSAGE_DESCRIPTIONS</b>. Set for messages within message
files.
</ul>
<br>
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope
this property page element.
<p>
This filter specifies a resource type, either simple or generic.
The resource types depends on the subsystem. The types
for IBM-supplied subsystems which support them are:
</p>
<ul>
<li><b>filesXXX</b>. Either <i>folder</i> or <i>file</i>.
<li><b>files400</b>. This is the object's type (for objects),
such as <i>*PGM</i>, or member's type (for members),
such as <i>RPGLE</i>. Since * is a valid character in an iSeries
object type, use %ast. instead of * to prevent wildcard matching.
For example, to prevent matching on both *PGM and *SRVPGM, use %ast.PGM
for the type.
</ul>
<br>
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope
this property page element.
<p>
This filter specifies a simple or generic resource subtype to
match. Not all subsystems support subtypes for their resources.
The IBM-supplied subsystems that do support this are:
</p>
<ul>
<li>FilesXXX. This can be either <i>subfolder</i> for nested
folders only, or
<i>root</i> for the root folder or Windows' drives.
<li>Files400. For iSeries objects within a library, this is the
object's attribute. For members, this is either <i>DTA</i> or <i>SRC</i>.
For fields, this is the field's datatype (a single character).
</ul>
<br>
One of the optional filters to scope the remote resources for
which the property page is to appear.
Specify as many of these optional filters like this as needed to explicitly scope
this property page element.
<p>
This filter specifies a simple or generic resource sub-subtype
to match. No IBM-supplied subsystems support sub-subtypes for
their resources today.
</p>
The following is a simple example of a property page for
files or folders in any remote system type:
<h3>Example One</h3>
<p>
<pre>
<extension point="org.eclipse.rse.ui.propertyPages">
<page
class="com.acme.myPropertyPage1"
id="com.acme.mypropertypage1"
name="Remote Folder and File Info"
typecategoryfilter="files">
</page>
</extension>
</pre>
</p>
The following refines the first example so it only applies
to files, versus folders, and only for local files:
<h3>Example Two</h3>
<p>
<pre>
<extension point="org.eclipse.rse.ui.propertyPages">
<page
class="com.acme.myPropertyPage2"
id="com.acme.mypropertypage2"
name="Remote File Info"
typecategoryfilter="files"
typefilter="file"
subsystemconfigurationid="local.files">
</page>
</extension>
</pre>
</p>
The following refines the second example so it only applies
to local Java files:
<h3>Example Three</h3>
<p>
<pre>
<extension point="org.eclipse.rse.ui.propertyPages">
<page
class="com.acme.myPropertyPage3"
id="com.acme.mypropertypage3"
name="Remote Java File Info"
typecategoryfilter="files"
typefilter="file"
subsystemconfigurationid="local.files"
namefilter="*.java">
</page>
</extension>
</pre>
</p>
<p>
Remember, you can repeat the <samp>page</samp> elements as needed, to define
multiple property pages within the same extension configuration.
</p>
Your actions must all implement the interface <samp>org.eclipse.ui.IWorkbenchPropertyPage</samp>.
Typically, you will subclass one of the supplied base classes
for this extension point:
<ul>
<li><b>org.eclipse.rse.ui.propertypages.SystemAbstractPropertyPageExtensionAction</b>,
in plugin org.eclipse.rse.ui.
Base class offering generic support for any remote resource property page, for any system type.
<li><b>org.eclipse.rse.files.ui.propertypages.SystemAbstractRemoteFilePropertyPageExtensionAction</b>,
in plugin org.eclipse.rse.files.ui.
Specialized base class offering specific support for any remote file or folder property page, for any system type.
</ul>
<br>
There is no supplied implementation for this extension point.
Copyright (c) 2002, 2006 IBM Corporation. All Rights Reserved.
This program and the accompanying materials are made available under the terms
of the Eclipse Public License v1.0 which accompanies this distribution, and is
available at http://www.eclipse.org/legal/epl-v10.html
Contributors:
IBM Corporation - initial API and implementation