1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-22 06:02:11 +02:00

bug 149339 - updating some documentation to remove etools references and fix other dead links.

This commit is contained in:
David Dykstal 2006-08-02 02:35:23 +00:00
parent 8dcdc17ebc
commit 55925c06dc
31 changed files with 386 additions and 338 deletions

View file

@ -13,55 +13,55 @@
<p>
Since RSE version 7.0 a substantial design change has been made to the DataStore that significantly reduces the memory footprint of the
DataElements in high-use, long up-time situations. A problem that was identified was that in the DataStore, DataElements were
rarely being destroyed only when the files they represented were themselves deleted. When directories in the file system were explored,
rarely being destroyed - only when the files they represented were themselves deleted. When directories in the file system were explored,
DataElements were being created to represent the files in the directories, but these DataElements were cached and never
removed from the cache. Therefore, the number of DataElements in the DataStore was always increasing. With no opportunity
to clear the cache or remove elements, the memory usage of the server continued to grow boundlessly.
</p>
<h2><a name="spirit">A solution – “spirit” DataElements:</a></h2>
<h2><a name="spirit">A solution - Spirit DataElements</a></h2>
<p>
The solution to the problem of an ever-growing set of DataElements was simple – provide a mechanism of removing “old”
The solution to the problem of an ever-growing set of DataElements was simple - provide a mechanism of removing "old"
DataElements and thus shrinking the set. Since server memory real-estate comes at a much higher premium, the focus here
is on server-side memory reduction. The assumption then, is that DataElements in the DataStore will always remain in
memory on the client, but that in the mirror-image DataStore that resides on the server, DataElements can be removed.
</p>
<p>
Formerly, the RSE ran under the assumption that the client and server DataStores mirrored each other. The new
implementation will have a server DataStore tree that is only a subset of all the elements in the client tree (because
implementation has a server DataStore tree that is only a subset of all the elements in the client tree (because
some elements get removed.) In order to accommodate this, a new boolean member variable was added to the DataElement
class called “isSpirit”. When this variable is set to true it means different things on the client and server. On the
server, a “spirit” DataElement means the element is treated in much the same way as a “deleted” element. At the first
opportunity, the element is purged from the DataStore and garbage collected by the JVM freeing up memory. On the client,
a “spirit” element means that that particular DataElement’s counterpart has been made a spirit; thus the client “knows”
class called "isSpirit". When this variable is set to true it means different things on the client and server. On the
server, a "spirit" DataElement means the element is treated in much the same way as a "deleted" element. At the first
opportunity, the element is purged from the DataStore and garbage collected by the JVM - freeing up memory. On the client,
a "spirit" element means that that particular DataElement's counterpart has been made a spirit; thus the client "knows"
that its twin element on the server side has either been deleted, or is about to be deleted.
</p>
<h2><a name="disconnecting">Disconnecting “old” DataElements:</a></h2>
<h2><a name="disconnecting">Disconnecting "old" DataElements:</a></h2>
<p>
How is it determined when to mark a given DataElement as a spirit? It was decided that the decision to this would be
left to clients of the DataStore (the miners), rather than to the DataStore itself. This was done for the purposes of
granularity: some individual miners may not want DataElements to be ever purged, some might want only specific elements,
etc. As an example, the UniversalFileSystemMiner employs the FileClassifier to classify files returned from a directory
query, and after each file has been classified, the DataStores disconnectObject() method is called on the DataElement
query, and after each file has been classified, the DataStore's disconnectObject() method is called on the DataElement
representing that file, setting the stage for its becoming a spirit.
</p>
<h2><a name="queue">Controlling the queue of DataElements:</a></h2>
<p>
A new class, the DataElementRemover, running in its own thread, maintains a queue of objects that were passed into
DataStores disconnectObject() method; each object is stored in the queue along with the time it was added. The
DataStore's disconnectObject() method; each object is stored in the queue along with the time it was added. The
DataElementRemover is configurable by two command-line options: -DSPIRIT_EXPIRY_TIME=x and -DSPIRIT_INTERVAL_TIME=y;
where x and y are integers representing a number of seconds. Every y seconds, the queue checks its elements and makes
spirit all those that are older than x seconds. The DataElement is then refreshed, and the change propagated to the
where x and y are integers representing a number of seconds. Every y seconds, the queue checks its elements and "makes
spirit" all those that are older than x seconds. The DataElement is then refreshed, and the change propagated to the
client. On the server side, the DataElement is deleted at the first opportunity.
</p>
<h2><a name="feature">Turning on the feature:</a></h2>
<p>
On the client side, this feature is always “on”. It is the server which is configured to do or not to do the spirit
DataElement behaviour. This way, backwards compatibility is maintained if a new client connects to an old server, or a
On the client side, this feature is always "on". It is the server which is configured to do or not to do the spirit
DataElement behaviour. This way, backwards compatibility is maintained - if a new client connects to an old server, or a
server with spirit turned off, the client detects this and operates as before. If an old client connects to a new server
with spirit turned on, the server detects that the client does not have spirit capability and behaves as it did before.
</p>
<p>
To turn on the spirit feature on the server side, one needs to include the command-line option DDSTORE_SPIRIT_ON=true.
To turn on the spirit feature on the server side, one needs to include the command-line option -DDSTORE_SPIRIT_ON=true.
The server scripts have been packaged in order to do this by default.
</p>
</body>

View file

@ -7,6 +7,7 @@
<topic label="DataStore Artifacts" href="guide/Artifacts.html" />
<topic label="DataStore Communications" href="guide/Communications.html" />
<topic label="DataElements and the DataStore Model" href="guide/DataElements.html" />
<topic label="Memory Management of DataElements" href="guide/MemoryManagement.html" />
<topic label="Miners" href="guide/Miners.html" />
</topic>
<topic label="Extending and Using the DataStore" href="guide/Extending.html">

View file

@ -1 +1,112 @@
@import "../PRODUCT_PLUGIN/book.css";
P.Code {
display: block;
text-align: left;
text-indent: 0.00pt;
margin-top: 0.000000pt;
margin-bottom: 0.000000pt;
margin-right: 0.000000pt;
margin-left: 15pt;
font-size: 10.000000pt;
font-weight: normal;
font-style: normal;
color: #4444CC;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Courier New", Courier, monospace;
}
H6.CaptionFigColumn {
display: block;
text-align: left;
text-indent: 0.000000pt;
margin-top: 3.000000pt;
margin-bottom: 11.000000pt;
margin-right: 0.000000pt;
margin-left: 0.000000pt;
font-size: 9.000000pt;
font-weight: bold;
font-style: Italic;
color: #000000;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
}
P.Note {
display: block;
text-align: left;
text-indent: 0pt;
margin-top: 19.500000pt;
margin-bottom: 19.500000pt;
margin-right: 0.000000pt;
margin-left: 30pt;
font-size: 11.000000pt;
font-weight: normal;
font-style: Italic;
color: #000000;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
}
EM.UILabel {
font-weight: Bold;
font-style: normal;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
}
EM.CodeName {
font-weight: Bold;
font-style: normal;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Courier New", Courier, monospace;
}
body, html { border: 0px }
/* following font face declarations need to be removed for DBCS */
body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, Helvetica, sans-serif; color: #000000}
pre { font-family: "Courier New", Courier, monospace;}
/* end font face declarations */
/* following font size declarations should be OK for DBCS */
body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 10pt; }
pre { font-size: 10pt}
/* end font size declarations */
body { background: #FFFFFF; margin-bottom: 1em }
h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 }
h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic }
p { margin-top: 10px; margin-bottom: 10px }
pre { margin-left: 6; font-size: 9pt; color: #4444CC }
a:link { color: #0000FF }
a:hover { color: #000080 }
a:visited { text-decoration: underline }
ul { margin-top: 10px; margin-bottom: 10px; }
li { margin-top: 5px; margin-bottom: 5px; }
li p { margin-top: 5px; margin-bottom: 5px; }
ol { margin-top: 10px; margin-bottom: 10px; }
dl { margin-top: 10px; margin-bottom: 10px; }
dt { margin-top: 5px; margin-bottom: 5px; font-weight: bold; }
dd { margin-top: 5px; margin-bottom: 5px; }
strong { font-weight: bold}
em { font-style: italic}
var { font-style: italic}
div.revision { border-left-style: solid; border-left-width: thin;
border-left-color: #7B68EE; padding-left:5 }
th { font-weight: bold }
a.command-link {
}
a.command-link img {
border-width: 0px;
border-style: none;
vertical-align: middle;
}

View file

@ -33,26 +33,27 @@ The view contains a prompt to create new Hosts, and pop-up menu actions to renam
<p>Hosts contain attributes, or data, that is saved between sessions of the workbench. These attributes are
the host name, the remote system's host name and system type, an optional description, and a user Id that is
used by default by each subordinate subsystem, at host time.
Underneath, all Hosts are stored via RSE persistence in an Eclipse project named <CODE>RemoteSystemshosts</CODE></A>, which
Underneath, all Hosts are stored via RSE persistence in an Eclipse project named <CODE>RemoteSystemsConnections</CODE></A>, which
the user can enable for team support, allowing Hosts to be shared by a team.
</p>
<h2><A name="profiles">Profiles</A></h2>
<p>
To facilitate team-shared and user-unique Hosts,
Hosts are owned by <b>profiles</b>. These are simply <A href="file_profiles.gif">folders in the RemoteSystemshosts
Hosts are owned by <b>profiles</b>. These are simply <A href="file_profiles.gif">folders in the RemoteSystemsConnections
project</A>, as it turns out, within which all other data including Hosts are scoped. Internally profiles are realized as
SystemProfile objects, managed by the SystemProfileManager.
For each profile there is also a SystemhostPool object
For each profile there is also a SystemHostPool object
created to manage the Hosts within that profile. There are menu actions for the
user to create and manage profiles. The collective of all Hosts of all <b><I>active</I> profiles</b> are shown in the Remote Systems view,
user to create and manage profiles. The collective of all Hosts of all <b><I>active</I> profiles</b> are shown in the
Remote Systems view,
and the user can easily decide which profiles are active using the <A href="preference_activeProfiles.gif">local pulldown menu</A> of the Remote Systems view.
The list of profiles currently active is stored locally on each user's workstation, and not shared by the team.
The list of profiles currently active is stored locally on each user's workstation, and not shared by teams.
By default, there exists a profile named <code>Team</code>, and a profile with a name unique to this user. When the first
host is created the user is asked to supply this unique name, which defaults to the hostname of their
workstation. Whenever a new host is created, the user is prompted for an active profile to contain the new
host. Both default profiles are active initially, so all Hosts from each are shown. There is a preferences
setting to show the host names qualified by their profile name. After synchronizing the RemoteSystemshost
setting to show the host names qualified by their profile name. After synchronizing the RemoteSystemsConnections
project with a team repository, using the RSE <A href="plugin/view_Team.gif">team view</A>, all profiles of all members of
the team will exist in the user's workspace, and hence
all the Hosts created by all the team members. However, only the two default profiles are active, so the Hosts
@ -60,13 +61,16 @@ in the other profiles are not seen unless the user explicitly makes another prof
for:
</p>
<ol>
<li>Team-shared Hosts (created in the team profile or any profile all team members make active)<li>User-private Hosts (created in their own profile or any profile not active by default)<li>User-roaming, whereby a user uses a different workstation than usual, and then synchronizes with the
team repository and sets their profile to be active.
<li>Team-shared Hosts (created in the Team profile or any profile all team members make active)
<li>User-private Hosts (created in their own profile or any profile not active by default)
<li>User-roaming, whereby a user uses a different workstation than usual,
and then synchronizes with the team repository and sets their profile to be active.
</ol>
<p>
As an aside, user IDs and passwords are not shared with the team repository, but rather stored only locally per
workstation.
Each subsystem can have a unique user ID, which if not set is inherited from its host, which in turn if not set is inherited from the
Each subsystem can have a unique user ID, which if not set is inherited from its host,
which in turn if not set is inherited from the
user ID preferences setting for the appropriate system type.
</p>
@ -94,30 +98,6 @@ remote commands. There is also a Remote Commands view supplied that logs all com
randomly enter a command to be run remotely. The commands all execute within the same shell, and users
can launch additional shells for the same host.
</ol>
For iSeries Hosts, these subsystems work with the folders and files in the Integrated File System,
and run commands in the QSHELL Unix-like environment. When using a WebSphere Studio configuration that
supports it, there is also additional subsystem configurations that supply three more subsystems for each
iSeries host:
<ol>
<li>iSeries Objects. This accesses the libraries, objects, and members in the native QSYS file system, allowing
users to explore and manipulate them via RSE-supplied actions. For programmers, this also supplies
common APIs for listing remote libraries, objects, members, records, and fields, with various filtering
capabilities, as well as editing remote source members. Furthermore, there are a number of iSeries-specific
user interface actions, wizards, dialogs, and widgets that programmers can easily re-use.
<li>iSeries Commands. This accesses the QSYS command shell and allows remote execution of any CL command. Users
can pre-defined commands or use the Commands view to randomly enter and run a command. For programmers, there
are APIs supplied to execute a remote CL command, with message retrieval.
<li>iSeries Jobs. This accesses the iSeries jobs the user has access to, allowing limited exploration
and manipulation of those jobs. For programmers, this also supplies APIs for listing jobs, with various
filtering capabilities.
</ol>
From any of these iSeries-specific subsystems, programmers can access the Toolbox for Java <code>AS400</code> object
for the current session, thus avoiding redundant signon requests for the user, and inheritence of existing
job attributes. There is also a method for returning a JDBC host object for accessing DB2/400 databases
on that iSeries host. Both of these getter methods are available in the
<A href="../../com.ibm.etools.iseries.core/com/ibm/etools/iseries/core/ISeriesSystemDataStore.html">ISeries system</A> object all iSeries
subsystems share. System objects are described next.</p>
<h2><A name="systems">Systems and System Managers</A></h2>
<p>While not seen by the user, subsystem objects are required to return a <b>connectorservice</b> object via the
<A href="../reference/api/org/eclipse/rse/core/subsystems/ISubSystem.html#getConnectorService()">getConnectorService()</A> method.
@ -134,7 +114,7 @@ system class that is easily extended.
</p>
<p>It may be the case that multiple subsystems, each from a different subsystem configuration, share the same live
host for a given host object. To enable this, the framework supplies a base
<b>connector service manager</b> <A href="../reference/api/org/eclipse/rse/core/subsystems/impl/AbstractConnectorServiceManager.html">class</A>
<b>connector service manager</b> <A href="../reference/api/org/eclipse/rse/core/subsystems/AbstractConnectorServiceManager.html">class</A>
that can be used to manage a single shared connector service object across multiple subsystems. It uses a hashtable to store and
return the connector service objects, keyed by a subsystem interface that all subsystems sharing the same connector service object
are to implement. The subclass of the base connector service manager class supplies that interface. Further, the subclass
@ -205,65 +185,6 @@ this is the default case for the default filter pool.
reference it.
</ol>
</p>
<h2><A name="useractions">User Actions and Named Types</A></h2>
<p>
If the subsystem configuration returns true to the
<A href="../reference/api/org/eclipse/rse/core/subsystems/ISubSystemConfiguration.html#supportsUserDefinedActions()">supportsUserDefinedActions</A>
method, users can create their own <b>actions</b>
that appear in the pop-up menu for remote objects, using the Work With User Actions <A href="useractions_ww_action.gif">action</A> and
<A href="useractions_ww_dialog.gif">dialog</A>. User actions use substitution variables that are resolved at
runtime to various attributes of the selected remote objects. The actions themselves are <I>run
on the remote system</I>
of the host where the objects are listed from. User actions are instances of the
<A href="../com/ibm/etools/systems/core/ui/uda/SystemUDActionElement.html">SystemUDAActionElement</A>
class from the <A href="../com/ibm/etools/systems/core/ui/uda/package-summary.html">org.eclipse.rse.core.ui.uda</A> package.
<BR>
<BR>
User actions can be scoped to only appear for objects of a
particular type. To facilitate this, users can create <b>named types</b> which are names that represent
one or more types of remote objects. Internally, they are
<A href="../com/ibm/etools/systems/core/ui/uda/SystemUDTypeElement.html">SystemUDTypeElement</A> objects.
This is done using the Work With Named Types <A href="namedtypes_ww_action.gif">action</A> and
<A href="namedtypes_ww_dialog.gif">dialog</A>.</p>
<p>
User actions are contained by each subsystem factory, scoped by profile. You can programmatically access them by calling
<A href="../reference/api/org/eclipse/rse/core/subsystems/util/ISubsystemConfigurationAdapter.html#getSubSystemActions(org.eclipse.rse.subsystems.ISubSystem)">getSubSystemActions</A>
in a subsystem configuration object. They are scoped to the configuration, not the subsystem,
so the same list of actions is available for every host. The <A href="useractions_menu.gif">User Actions cascading menu </A>
for remote objects lists <i>all</i> the actions defined for <i>all active profiles</i>, whose file type scoping criteria matches the
types of the currently selected remote objects. When users define new actions, they specify the profile to contain them.
This design allows for:
<ol>
<li>Team actions. This is done by defining actions in the team profile or any profile all team members
have been instructed to make active. This is useful for common actions shared by all team members.
<li>Private actions. This is done by defining actions in the user's profile or any profile that other team members
do not make active.
</ol>
<p>Named types, however, are not scoped by profile. Rather, there is only one master list, per subsystem factory.
It is assumed there will be fewer of these, and they are not likely to be different per user.
</p>
<h2><A name="compilecmds">Compile Commands</A></h2>
<p>
If the subsystem configuration returns true to the
<A href="../reference/api/org/eclipse/rse/core/subsystems/ISubSystemConfiguration.html#supportsCompileActions()">supportsCompileActions</A>
method, users will see a <b>Compile</b> <A href="compile_action.gif">action</A> in
the pop-up menu for compilable source files. Clearly, this support usually only makes sense for subsystems that
list remote source files. Whether a selected file is compilable or not is decided by the subsystem factory. It
actually defers this request to a compile manager, which must be programmed by subclassing the supplied base
class for this. The compile manager is also responsible for pre-supplying default compile commands.
</p>
<p>
The framework also supplies a Work With Compile Commands <A href="compile_ww_action.gif">action</A> and <A href="compile_ww_dialog.gif">dialog</A>,
by which users can create their own compile commands,
per source type. Compile commands internally are <A href="../reference/api/org/eclipse/rse/ui/compile/SystemCompileCommand.html">SystemCompileCommand</A> objects.
These compile commands are stored per subsystem configuration, such that they are usable across all Hosts.
They are also scoped by profile, and the cascading compile action will list all compile commands from all active profiles,
for the selected file's source type. This scoping by profile, as with user actions, enables team support such that
users can see and can easily access their own compile commands and any shared compile commands.
</p>
<h2><A name="preferences">Preferences</A></h2>
<p>
Many of the default characteristics of the Remote System Explorer view and perspective are configurable by each user

View file

@ -52,38 +52,38 @@ Here are the extension points that are defined by the RSE:
<TH>Description</TH>
</TR>
<TR>
<TD><A href="plugin/popup.html">org.eclipse.rse.core.<B>popupMenus</B></A></TD>
<TD><A href="plugin/systemtype.html">org.eclipse.rse.core.<b>systemType</b></A></TD>
<TD>For defining new system types that show up in the New Connection wizard.</TD>
</TR>
<TR>
<TD><A href="plugin/subsystem.html">org.eclipse.rse.core.<b>subsystemConfiguration</b></A></TD>
<TD>For defining new subsystems that appear when a connection is expanded.</TD>
</TR>
<TR>
<TD><A href="../reference/extension-points/org_eclipse_rse_ui_archivehandlers.html">org.eclipse.rse.core.<b>archivehandlers</b></A></TD>
<TD>For supporting additional archive file types, such as is done today for zip, jar and tar files. This adds support for expanding the archives and supporting all the usual actions on the contents.</TD>
</TR>
<TR>
<TD><A href="plugin/popup.html">org.eclipse.rse.ui.<B>popupMenus</B></A></TD>
<TD>For defining actions, which appear in the pop-up menu of remote objects
listed in the Remote Systems view.</TD>
</TR>
<TR>
<TD><A href="plugin/propertypage.html">org.eclipse.rse.core.<b>propertyPages</b></A></TD>
<TD><A href="plugin/propertypage.html">org.eclipse.rse.ui.<b>propertyPages</b></A></TD>
<TD>For defining property pages, which appear in the Properties dialog when
users select the Properties action from the pop-up menu of remote
objects listed in the Remote Systems view.</TD>
</TR>
<TR>
<TD><A href="plugin/subsystem.html">org.eclipse.rse.core.<b>subsystemfactory</b></A></TD>
<TD>For defining new subsystems that appear when a connection is expanded.</TD>
</TR>
<TR>
<TD><A href="plugin/systemtype.html">org.eclipse.rse.core.<b>systemtype</b></A></TD>
<TD>For defining new system types that show up in the New Connection wizard.</TD>
</TR>
<TR>
<TD><A href="../doc/org_eclipse_rse_ui_remoteSystemsViewPreferencesAction.html">org.eclipse.rse.core.<b>remoteSystemsViewPreferencesAction</b></A></TD>
<TD><A href="../reference/extension-points/org_eclipse_rse_ui_remoteSystemsViewPreferencesActions.html">org.eclipse.rse.ui.<b>remoteSystemsViewPreferencesAction</b></A></TD>
<TD>For contributing a fastpath action to jump to your preferences page, from the local pulldown menu of the Remote Systems view.</TD>
</TR>
<TR>
<TD><A href="../doc/org_eclipse_rse_ui_compile.html">org.eclipse.rse.core.<b>compile</b></A></TD>
<TD><A href="../reference/extension-points/org_eclipse_rse_ui_compile.html">org.eclipse.rse.ui.<b>compile</b></A></TD>
<TD>For contributing compile commands to the Compile menus and Work With Compile Commands dialog.</TD>
</TR>
<TR>
<TD><A href="../doc/org_eclipse_rse_ui_archivehandlers.html">org.eclipse.rse.core.<b>archivehandlers</b></A></TD>
<TD>For supporting additional archive file types, such as is done today for zip, jar and tar files. This adds support for expanding the archives and supporting all the usual actions on the contents.</TD>
</TR>
<TR>
<TD><A href="../doc/org_eclipse_rse_ui_setPreferenceDefaults.html">org.eclipse.rse.core.<b>setPreferenceDefaults</b></A></TD>
<TD><A href="../reference/extension-points/org_eclipse_rse_ui_rseConfigDefaults.html">org.eclipse.rse.ui.<b>rseConfigDefaults</b></A></TD>
<TD>For solution providers that are building a product that includes RSE, this extension point allows you to
pre-set some out-of-box preference values. For example, whether the New Connection tree item is shown in Remote Systems view.</TD>
</TR>

View file

@ -11,43 +11,46 @@
<body>
<h1>Remote System Explorer Model</h1>
<p>The underlying containment model for the RSE artifacts is shown here.
</p>
<p>The underlying containment model for the RSE static artifacts is shown here.</p>
<p><img ref="ModelRSE.gif" src="ModelRSE.png"></p>
<p>At runtime, the model takes a slightly different form:</p>
<ul>
<li>
<A href="../reference/api/org/eclipse/rse/model/ISystemProfile.html">Profiles</A> are managed by a
<A href="../reference/api/org/eclipse/rse/model/ISystemProfileManager.html">profile manager</A>, and contain:
</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/model/ISystemProfile.html">Profiles</A> are managed
by a <A href="../reference/api/org/eclipse/rse/model/ISystemProfileManager.html">profile manager</A>, and contain:</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/model/ISystemHostPool.html">Host Pools</A>, one per profile, which contain</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/model/IHost.html">Hosts</A></li>
</ul>
<li><A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPool.html">Filter pools</A>,
keyed by Subsystem Factory,
and managed by a <A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPoolManager.html">filter pool manager</A>
<li><A href="../reference/api/org/eclipse/rse/model/ISystemHostPool.html">Host Pools</A>, one per profile, which contain</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/model/IHost.html">Hosts</A></li>
</ul>
<li><A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPool.html">Filter pools</A>, keyed by Subsystem Configuration, and managed by a <A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPoolManager.html">filter pool manager</A>
which contain</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/filters/ISystemFilter.html">Filters</A>, which contain</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/filters/ISystemFilterString.html">Filter strings</A></li>
</ul>
</ul>
<li><A href="../reference/api/org/eclipse/rse/ui/uda/ISystemUDActionElement.html">User actions</A>, keyed by Subsystem Configuration, which contain</li>
<ul>
<li><i>References</i> to <A href="../reference/api/org/eclipse/rse/ui/uda/ISystemUDTypeElement.html">named types</A></li>
</ul>
<li><A href="../reference/api/org/eclipse/rse/ui/compile/SystemCompileCommand.html">Compile commands</A></li>
</ul>
<ul>
<li><A href="../reference/api/org/eclipse/rse/filters/ISystemFilter.html">Filters</A>, which contain</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/filters/ISystemFilterString.html">Filter strings</A></li>
</ul>
</ul>
<!--
<li><A href="../reference/api/org/eclipse/rse/ui/uda/ISystemUDActionElement.html">User actions</A>, keyed by Subsystem Configuration, which contain</li>
<ul>
<li><i>References</i> to <A href="../reference/api/org/eclipse/rse/ui/uda/ISystemUDTypeElement.html">named types</A></li>
</ul>
<li><A href="../reference/api/org/eclipse/rse/ui/compile/SystemCompileCommand.html">Compile commands</A></li>
-->
</ul>
<li><A href="../reference/api/org/eclipse/rse/core/subsystems/SubSystemConfiguration.html">Subsystem Configurations</A> contain:</li>
<ul>
<li><A href="../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html">Subsystems</A>, keyed by host,
which contain</li>
<ul>
<li><i><A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPoolReference.html">References</A></i>
to <A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPool.html">filter pools</A>, which are managed by <A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPoolManager.html">filter pool managers</A></li>
</ul>
<li><A href="../reference/api/org/eclipse/rse/ui/uda/SystemUDTypeElement.html">Named types</A></li>
</ul>
<ul>
<li><A href="../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html">Subsystems</A>, keyed by host, which contain</li>
<ul>
<li><i><A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPoolReference.html">References</A></i>
to <A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPool.html">filter pools</A>, which are managed by <A href="../reference/api/org/eclipse/rse/filters/ISystemFilterPoolManager.html">filter pool managers</A></li>
</ul>
<!--
<li><A href="../reference/api/org/eclipse/rse/ui/uda/SystemUDTypeElement.html">Named types</A></li>
-->
</ul>
</ul>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -135,7 +135,7 @@ development and test effort. All these dialogs are in package <samp><A href="../
<TD>Presents a dialog listing all the file types defined in the eclipse File Associations preferences page, and
allows the user to select one or more of these types, or enter additional types not defined in eclipse.</TD>
<TD align="center"><A href="selectTypesDialog.gif">Sample image</A></TD>
<TD><samp><A href="../../../reference/api/org/eclipse/rse/ui/actions/SystemSelectFileTypesAction.html">SystemSelectFileTypesAction</A></samp></TD>
<TD><samp></samp></TD>
</TR>
<TR>
<TD><samp><A href="../../../reference/api/org/eclipse/rse/ui/dialogs/SystemSimpleSelectDialog.html">SystemSimpleSelectDialog</A></samp></TD>
@ -151,15 +151,11 @@ development and test effort. All these dialogs are in package <samp><A href="../
</TBODY>
</TABLE>
<P><BR>While the dialogs can be instantiated directly, it is perhaps best to use them by instantiating their action class, and calling the run method on it.
<P><BR>While the dialogs can be instantiated directly, it is perhaps best to use them by instantiating their action class, and calling the run method on it.
The action classes are all in <samp><A href="../../../reference/api/org/eclipse/rse/ui/actions/package-summary.html">org.eclipse.rse.ui.actions</A></samp> package.
</P>
<P>In addition to these universal dialogs, there are dialogs specific to the Files subsystem supplied by IBM. These enable selection
of remote files or folders. They can be found in the <A href="../../../reference/api/org/eclipse/rse/files/ui/dialogss/package-summary.html">
org.eclipse.rse.files.ui.dialogs</A> package.
</p>
<TABLE border="1">
<p>In addition to these universal dialogs, there are dialogs specific to the Files subsystem supplied by IBM. These enable selection of remote files or folders. They can be found in the <a href="../../../reference/api/org/eclipse/rse/files/ui/dialogs/package-summary.html"><samp>org.eclipse.rse.files.ui.dialogs</samp></a> package.</p>
<TABLE border="1">
<TBODY>
<TR>
<TH>Class</TH>
@ -179,7 +175,6 @@ org.eclipse.rse.files.ui.dialogs</A> package.
</TR>
</TBODY>
</TABLE>
<P><BR></P>
<P><BR></P>
</body>
</html>

View file

@ -31,7 +31,7 @@ This log file support offers the ability to log the following types of log messa
<li>Define a static variable to hold the Logger instance, as in:<br>
<code>protected static Logger log = null;</code>
<li>Instantiate the Logger object, in your plugin class constructor, as in:<br>
<code>if (log == null) log = LoggerFactory.getInst(this);</code>
<code>if (log == null) log = LoggerFactory.getLogger(this);</code>
<li>For convenience, offer fastpaths to the logXXX methods in your Logger instance:
<pre>
public static void <b>logInfo</b>(String message)
@ -52,16 +52,11 @@ This log file support offers the ability to log the following types of log messa
}
public static void <b>logDebugMessage</b>(String prefix, String message)
{
if (Logger.DEBUG)
{
log.logDebugMessage(prefix, message);
}
log.logDebugMessage(prefix, message);
}
</pre>
<li>In the <samp>shutdown</samp> method of your plugin class, close the log file:
<code>
LoggerFactory.freeInst(this);
</code>
<code>LoggerFactory.freeLogger(this); </code>
</ol>
<p>Typically your code will write a healthy number of messages to the log file, to help you determine
what went wrong in an error situation in production. However, since this can result in a large number of
@ -73,10 +68,10 @@ preference page is supplied:</p>
<P><IMG border="0" src="logPreferences.gif"></P>
<h2>Using The Common RSE Log File</h2>
<p>To log your messages to the common RSE log file in <samp>.metadata\plugins\org.eclipse.rse.core</samp>,
<p>To log your messages to the common RSE log file in <samp>.metadata\plugins\org.eclipse.rse.ui</samp>,
either base your plugin class on the <samp>org.eclipse.rse.core.SystemBasePlugin</samp> class and use
the inherited logging methods, or instead of instantiating your own <samp>Logging</samp> object, re-use the
RSE-supplied logging object by calling <samp>getDefault().getLog()</samp> in the <samp>org.eclipse.core.SystemBasePlugin</samp>
RSE-supplied logging object by calling <samp>getDefault().getLog()</samp> in the <samp>org.eclipse.rse.ui.RSEUIPlugin</samp>
class.
</p>

View file

@ -39,18 +39,18 @@ from the same <samp><a href="../plugin/uiPluginAPI.html">SystemBasePlugin</a></s
<h3><A name="SystemMessageFile"></A>The <samp>SystemMessageFile</samp> Class</h3>
<p>The <samp><A href="../../../reference/api/org/eclipse/rse/core/SystemBasePlugin.html#loadMessageFile(org.eclipse.core.runtime.IPluginDescriptor, java.lang.String)">loadMessageFile</a></samp> method in <samp>SystemBasePlugin</samp>, returns an instance of
<samp><A href="../../../reference/api/org/eclipse/rse/ui/messages/SystemMessageFile.html">SystemMessageFile</a></samp>,
<samp><A href="../../../reference/api/org/eclipse/rse/services/clientserver/messages/SystemMessageFile.html">SystemMessageFile</a></samp>,
representing the parsed message file. It is methods in this which return individual messages.
<h3><A name="SystemMessage"></A>The <samp>SystemMessage</samp> Class</h3>
The <samp><A href="../../../reference/api/org/eclipse/rse/core/SystemBasePlugin.html#getMessage(org.eclipse.rse.ui.messages.SystemMessageFile, java.lang.String)">getMessage</a></samp> method in <samp>SystemBasePlugin</samp> returns an instance of
<samp><A href="../../../reference/api/org/eclipse/rse/ui/messages/SystemMessage.html">SystemMessage</a></samp>,
<samp><A href="../../../reference/api/org/eclipse/rse/services/clientserver/messages/SystemMessage.html">SystemMessage</a></samp>,
representing an individual message from the message file.
</p>
<p>To do message <i>variable substitution</i>, call the appropriate overload of the <samp>makeSubstitution</samp> method in
the <A href="../../../reference/api/org/eclipse/rse/ui/messages/SystemMessage.html">message</A> object, passing as many parameters as there are unique substitution variables in the message.
the <A href="../../../reference/api/org/eclipse/rse/services/clientserver/messages/SystemMessage.html">message</A> object, passing as many parameters as there are unique substitution variables in the message.
</p>
<p>To get the first level message text, call <samp><A href="../../../reference/api/org/eclipse/rse/ui/messages/SystemMessage.html#getLevelOneText()">getLevelOneText</a></samp> on the message object. To get
the second level help, call <samp><A href="../../../reference/api/org/eclipse/rse/ui/messages/SystemMessage.html#getLevelTwoText()">getLevelTwoText</a></samp>.
<p>To get the first level message text, call <samp><A href="../../../reference/api/org/eclipse/rse/services/clientserver/messages/SystemMessage.html#getLevelOneText()">getLevelOneText</a></samp> on the message object. To get
the second level help, call <samp><A href="../../../reference/api/org/eclipse/rse/services/clientserver/messages/SystemMessage.html#getLevelTwoText()">getLevelTwoText</a></samp>.
</p>
<h3><A name="SystemMessageDialog"></A>The <samp>SystemMessageDialog</samp> Class</h3>

View file

@ -10,8 +10,7 @@
<body bgcolor="#ffffff">
<h1>RSE Model API</h1>
<p>The front door to accessing the elements of the RSE model is the
<A href="../../reference/api/org/eclipse/rse/model/SystemRegistry.html">SystemRegistry</A>, which is a
<p>The front door to accessing the elements of the RSE model is the <A href="../../reference/api/org/eclipse/rse/model/ISystemRegistry.html">ISystemRegistry</A>, which is a
singleton object accessible via <A href="../../reference/api/org/eclipse/rse/model/SystemStartHere.html#getSystemRegistry()">SystemStartHere.getSystemRegistry()</A>.
</p>
<p>The system registry will get you access to profiles, connections and subsystem factories.

View file

@ -65,7 +65,7 @@ point, you need to know the class or, preferably, interface that the objects imp
<h2>Property Pages for RSE Remote Resources</h2>
<p>Remote resources have no underlying eclipse resource, and typically all are instances of the same class,
meaning insufficient fidelity in scoping property pages to a remote resource of a particular type. Because of this,
the RSE supplies its <a href="../../../doc/org_eclipse_rse_ui_propertyPages.html">propertyPages extension point</a>, for remote resources, which allows for
the RSE supplies its <a href="../../../reference/extension-points/org_eclipse_rse_ui_propertyPages.html">propertyPages</a> extension point, for remote resources, which allows for
very explicit scoping of the property page to very specific types of remote resources.
</p>

View file

@ -60,7 +60,7 @@ package contains some specialized widgets you may find a use for:
<TD>Uses the InheritableEntryField to prompt for a TCP/IP port, where toggling to the left means port 0, or let the &quot;first available port&quot;.</TD>
</TR>
<TR>
<TD><samp><A href="../../../reference/api/org/eclipse/rse/ui/widgets/SystemConnectionCombo.html">SystemConnectionCombo</A></samp></TD>
<TD><samp><A href="../../../reference/api/org/eclipse/rse/ui/widgets/SystemHostCombo.html">SystemHostCombo</A></samp></TD>
<TD>This is a combo box that displays the currently defined RSE system connections. The list can be subset by system type or types. Further, you can optionally display a New button beside the combo that allows the user to create a new connection.</TD>
</TR>
</TBODY>

View file

@ -10,37 +10,5 @@
</head>
<body bgcolor="#ffffff">
<h1>Remote System Explorer Overview</h1>
<p>
The perspective for managing connections is the <A href="rse.gif"><B>Remote
System Explorer</B></A> (<b>RSE</b>), and the primary tree-view within it is the
<A href="view_RS.gif"><B>Remote Systems</B></A> view. We assume you are already familiar with the RSE perspective, or will familiarize
yourself with it, and you are now interested in learning how to extend it. We also assume that you
already understand the concepts of plug-ins, extension points, and the workbench UI. You do not need
to be familiar with workspace resources, as the RSE does not use these to realize the artifacts it
shows to the user.
</p>
<p>A user can extend the Remote System Explorer by adding their own <A
href="Artifacts.html#filters">filters</A>, <A
href="Artifacts.html#useractions">user actions</A>, and <A
href="Artifacts.html#compilecmds">compile commands</A>.
They may also customize the RSE by setting <A
href="Artifacts.html#preferences">preferences</A>.</p>
<p>
As a programmer, you can extend the Remote System Explorer by using <A
href="plugin.html">RSE-unique extension points</A> to
add property pages to remote objects, add actions to the pop-up menus for remote objects, and
even create your own subsystems that appear when a connection is expanded. The full Eclipse application
programming interface (API) set is
at your disposal for these, as well as the API set supplied by the Remote System Explorer. Furthermore,
you can use existing Eclipse extension points to author menu items, tool bar actions, pop-up menu actions,
and more for non-remote objects in the Remote System Explorer.
</p>
<p>
This guide explains all underlying
artifacts and model of the Remote System Explorer, the RSE extension points, and highlights the
important APIs available for your use.
</p>
</body>
</html>

View file

@ -11,7 +11,7 @@
<body bgcolor="#ffffff">
<h1>Plugging In Popup Menu Actions</h1>
<p>The <samp><A href="../../doc/org_eclipse_rse_ui_popupMenus.html">org.eclipse.rse.ui.popupMenus</a></samp> extension point is defined in the
<p>The <samp><A href="../../reference/extension-points/org_eclipse_rse_ui_popupMenus.html">org.eclipse.rse.ui.popupMenus</a></samp> extension point is defined in the
plugin <samp>org.eclipse.rse.ui</samp>, and it is patterned
after Eclipse's <samp>org.eclipse.ui.popupMenus</samp> extension point. However, it is
both simplified and extended specifically for remote objects.
@ -22,7 +22,7 @@ which scopes the remote objects to which the child elements apply:
<ul>
<li><b>id</b>.A unique ID for this extension point. Not used, but required by Eclipse.
<li><b><i>filtering attributes</i></b>.To scope which remote objects these actions should show up for.
Described in the <samp><A href="../../doc/org_eclipse_rse_ui_popupMenus.html">documentation</a></samp>
Described in the <samp><A href="../../reference/extension-points/org_eclipse_rse_ui_popupMenus.html">documentation</a></samp>
of this element.
</ul>
<p>Within each <samp>&lt;objectContribution&gt;</samp> element are zero or more <B><samp>&lt;menu&gt;</samp></B> elements for
@ -137,16 +137,6 @@ as shown here:
in <samp>org.eclipse.rse.files.ui</samp> plugin</TD>
<TD>Specialized base class offering specific support for any remote file object pop-up menu action, for any system type.</TD>
</TR>
<TR>
<TD><samp><A href="../../../com.ibm.etools.iseries.core/com/ibm/etools/iseries/core/ui/actions/isv/ISeriesAbstractIFSPopupMenuExtensionAction.html">ISeriesAbstractIFSPopupMenuExtensionAction</A></samp>
in <samp>com.ibm.etools.iseries.core</samp> plugin</TD>
<TD>Specialized base class offering specific support for iSeries IFS file or folder pop-up menu actions.</TD>
</TR>
<TR>
<TD><samp><A href="../../../com.ibm.etools.iseries.core/com/ibm/etools/iseries/core/ui/actions/isv/ISeriesAbstractQSYSPopupMenuExtensionAction.html">ISeriesAbstractQSYSPopupMenuExtensionAction</A></samp>
in <samp>com.ibm.etools.iseries.core</samp> plugin</TD>
<TD>Specialized base class offering specific support for pop-up menu actions for iSeries objects in the QSYS file system.</TD>
</TR>
</TBODY>
</TABLE>

View file

@ -11,7 +11,7 @@
<body bgcolor="#ffffff">
<h1>Plugging In Property Pages</h1>
<p>The <samp><A href="../../doc/org_eclipse_rse_ui_propertyPages.html">org.eclipse.rse.ui.propertyPages</a></samp> extension point is defined in the
<p>The <samp><A href="../../reference/extension-points/org_eclipse_rse_ui_propertyPages.html">org.eclipse.rse.ui.propertyPages</a></samp> extension point is defined in the
plugin <samp>org.eclipse.rse.ui</samp>, and it is patterned after Eclipse's <samp>org.eclipse.ui.propertyPages</samp> extension point, but both
simplified and extended specifically for remote objects. <BR>
What is a property page?
@ -66,16 +66,6 @@ selected on the left side. The supplied classes are listed here:
in <samp>org.eclipse.rse.files.ui</samp> plugin.</TD>
<TD>Specialized base class offering specific support for any remote file object property page.</TD>
</TR>
<TR>
<TD><samp><A href="../../../com.ibm.etools.iseries.core/com/ibm/etools/iseries/core/ui/actions/isv/ISeriesAbstractIFSPropertyPageExtensionAction.html">ISeriesAbstractIFSPropertyPageExtensionAction</A></samp>
in <samp>com.ibm.etools.iseries.core</samp> plugin.</TD>
<TD>Specialized base class offering specific support for iSeries IFS file or folder property pages.</TD>
</TR>
<TR>
<TD><samp><A href="../../../com.ibm.etools.iseries.core/com/ibm/etools/iseries/core/ui/actions/isv/ISeriesAbstractQSYSPropertyPageExtensionAction.html">ISeriesAbstractQSYSPropertyPageExtensionAction</A></samp>
in <samp>com.ibm.etools.iseries.core</samp> plugin.</TD>
<TD>Specialized base class offering specific support for property pages for iSeries objects in the QSYS file system.</TD>
</TR>
</TBODY>
</TABLE>
<p>

View file

@ -11,7 +11,7 @@
<body bgcolor="#ffffff">
<h1>Plugging In SubSystems</h1>
<p>The <samp><A href="../../doc/org_eclipse_rse_ui_subsystemConfiguration.html">org.eclipse.rse.ui.subsystemConfiguration</a></samp>
<p>The <samp><A href="../../reference/extension-points/org_eclipse_rse_ui_subsystemConfiguration.html">org.eclipse.rse.ui.subsystemConfiguration</a></samp>
extension point is defined in the plugin <samp>org.eclipse.rse.ui</samp>.
This is the most complex extension point to use, but also the most powerful. It enables
tool providers to register a class that creates subsystem objects, which appear under
@ -19,7 +19,7 @@ a connection when a connection is expanded in the Remote Systems view.
For example, <A href="RSView_iSeries.gif">here is an iSeries connection</A> with four subsystems,
each created by a subsystem configuration registered with this extension point.
</p>
<p>The <A href="../../doc/org_eclipse_rse_ui_subsystemConfiguration.html">extension markup</A> is quite simple for this extension point,
<p>The <A href="../../reference/extension-points/org_eclipse_rse_ui_subsystemConfiguration.html">extension markup</A> is quite simple for this extension point,
as it has only one element, <b><samp>&lt;configuration&gt;</samp></b>, with only a few simple attributes to supply:
</p>
<ul>
@ -45,7 +45,7 @@ interface, as described in the following programming details section.
<p>It is important to remember what the purpose of a subsystem is, and how it fits in the overall RSE <A
href="../Model.html">model</A>, so as to understand the programming details for supporting
subsystems via this subsystem configuration extension point. Minimally speaking, this extension point requires a class that implements the interface
<samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/ISubSystemFactory.html"><B>ISubSystemFactory</B></A></samp>.
<samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/ISubSystemConfiguration.html"><B>ISubSystemFactory</B></A></samp>.
Ultimately, the intent of a subsystem <I>configuration</I> is to provide individual
subsystem <I>instances</I> to each connection, and the intent of a subsystem instance is to present remote resources for display or manipulation purposes. Thus, you must also create a class implementing the interface <samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/ISubSystem.html"><B>ISubSystem</B></A></samp>.
<BR>
@ -61,8 +61,8 @@ are expanded, which results in a call to
in the subsystem object. <BR>
Furthermore, you will want to supply your own
<B><A
href="../../reference/api/org/eclipse/rse/filters/ui/actions/SystemNewFilterAction.html">new-filter</A></B> and
<A href="../../reference/api/org/eclipse/rse/filters/ui/actions/SystemChangeFilterAction.html"><B>change-filter</B></A> actions.
href="../../reference/api/org/eclipse/rse/ui/filters/actions/SystemNewFilterAction.html">new-filter</A></B> and
<A href="../../reference/api/org/eclipse/rse/ui/filters/actions/SystemChangeFilterAction.html"><B>change-filter</B></A> actions.
If filters are not supported, then these remote resources are shown immediately when the subsystem itself is expanded, via a call to
<samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/ISubSystem.html#getChildren()">getChildren</A></samp>.
Either way the resulting resources are displayed to the user. To facilitate the displaying of these objects in the RSE views, the objects
@ -123,7 +123,7 @@ following summarizes the minimum set of classes you will be creating in order to
</TR>
<TR>
<TD>remote resource</TD>
<TD><samp><A href="../../reference/api/org/eclipse/rse/ui/subsystems/impl/AbstractResource.html">AbstractResource</A></samp></TD>
<TD><samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/AbstractResource.html">AbstractResource</A></samp></TD>
<TD>Can be used as a base class for the objects representing remote resources.</TD>
</TR>
<TR>
@ -164,7 +164,7 @@ following summarizes the minimum set of classes you will be creating in order to
<li>Designing the classes to represent the remote resources (your <i>model</i>) that you will show from your subsystem.
Each must implement the <samp>org.eclipse.core.runtime.IAdaptable</samp> interface from Eclipse.
It is also very helpful if they also maintain a reference to the subsystem which created them. The base class
<A href="../../reference/api/org/eclipse/rse/ui/subsystems/impl/AbstractResource.html">AbstractResource</A> is offered to help with this.</li>
<A href="../../reference/api/org/eclipse/rse/core/subsystems/AbstractResource.html">AbstractResource</A> is offered to help with this.</li>
<li>Designing the syntax of the <i>filter string</i> that will be used as a pattern to tell your subsystem what resources to show. For example, for files this might be of the
form "path/generic-name /options". It is the job of your subsystem to interpret these strings and return a list of remote resources matching the
criteria capturing in the string. You will eventually design a user interface to prompt the user for one the
@ -177,8 +177,8 @@ following summarizes the minimum set of classes you will be creating in order to
<ul>
<li>return a singleton instance of the system manager from step 3 in its <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html#getSystemManager()">getSystemManager</A> method,
<li>manage persistent properties via calls to the inherited <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html#setVendorAttribute(java.lang.String, java.lang.String, java.lang.String)">setVendorAttribute</A>
and <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.htmll#getVendorAttribute(java.lang.String, java.lang.String)">getVendorAttribute</A> methods,
<li>use your communications layer to return instances of your model objects in its <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html.html#internalResolveFilterString(org.eclipse.core.runtime.IProgressMonitor, java.lang.String)">internalResolveFilterString</A> method.
and <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html#getVendorAttribute(java.lang.String, java.lang.String)">getVendorAttribute</A> methods,
<li>use your communications layer to return instances of your model objects in its <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html#internalResolveFilterString(org.eclipse.core.runtime.IProgressMonitor, java.lang.String)">internalResolveFilterString</A> method.
The input to this is one or more strings such as you designed in step 5. It will return all remote resources matching the criteria captured in the input filter string.
You may also find the <A href="../../reference/api/org/eclipse/rse/services/clientserver/NamePatternMatcher.html">org.eclipse.rse.services.clientserver.NamePatternMatcher</a>
class to be handy in comparing a generic pattern to a particular input. This class is in the <samp>runtime/clientserver.jar</samp> file,
@ -186,7 +186,7 @@ following summarizes the minimum set of classes you will be creating in order to
</ul>
</li>
<li>Creating a subclass of <A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystemConfiguration.html">DefaultSubSystemFactoryImpl.</A></li>
<li>Defining your <A href="../../doc/org_eclipse_rse_ui_subsystemConfiguration.html">subsystemConfiguration extension</a> in your <samp>plugin.xml</samp> file.</li>
<li>Defining your <A href="../../reference/extension-points/org_eclipse_rse_ui_subsystemConfiguration.html">subsystemConfiguration extension</a> in your <samp>plugin.xml</samp> file.</li>
<li>For each remote resource class you created in step 4, you need to create an adapter class, which extends
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html">AbstractSystemViewAdapter</A> and which
implements <A href="../../reference/api/org/eclipse/rse/ui/view/ISystemRemoteElementAdapter.html">ISystemRemoteElementAdapter</A>.
@ -225,11 +225,11 @@ following summarizes the minimum set of classes you will be creating in order to
<samp><a href="../../reference/api/org/eclipse/rse/ui/filters/actions/SystemChangeFilterAction.html#configureFilterDialog(org.eclipse.rse.ui.filters.dialogs.SystemChangeFilterDialog)">configureFilterDialog</a></samp>
and in it calling <samp><a href="../../reference/api/org/eclipse/rse/ui/filters/dialogs/SystemChangeFilterDialog.html#setFilterStringEditPane(org.eclipse.rse.ui.filters.SystemFilterStringEditPane)">setFilterStringEditPane</a></samp>
on the given dialog.
<li type="i">Override the <samp><a href="../../reference/api/org/eclipse/rse/ui/view/SubSystemFactoryAdapter.html#getNewFilterPoolFilterAction(org.eclipse.rse.filters.ISystemFilterPool, org.eclipse.swt.widgets.Shell)">getNewFilterPoolFilterAction(SystemFilterPool, Shell)</a></samp>
<li type="i">Override the <samp><a href="../../reference/api/org/eclipse/rse/core/subsystems/util/ISubsystemConfigurationAdapter.html#getNewFilterPoolFilterAction(org.eclipse.rse.filters.ISystemFilterPool, org.eclipse.swt.widgets.Shell)">getNewFilterPoolFilterAction(SystemFilterPool, Shell)</a></samp>
method in your subsystem factory, to return an instance of your new-filter action.
You can actually avoid creating an action subclass if you choose, by calling the configuration methods
in the RSE-supplied <a href="../../reference/api/org/eclipse/rse/ui/filters/actions/SystemNewFilterAction.html">new-filter action class</a>.
<li type="i">Override the <samp><a href="../../reference/api/org/eclipse/rse/ui/view/SubSystemFactoryAdapter.html#getChangeFilterAction(org.eclipse.rse.filters.ISystemFilter, org.eclipse.swt.widgets.Shell)">getChangeFilterAction(SystemFilter, Shell)</a></samp>
<li type="i">Override the <samp><a href="../../reference/api/org/eclipse/rse/core/subsystems/util/ISubsystemConfigurationAdapter.html#getChangeFilterAction(org.eclipse.rse.filters.ISystemFilter, org.eclipse.swt.widgets.Shell)">getChangeFilterAction(SystemFilter, Shell)</a></samp>
method in your subsystem factory, to return an instance of your change-filter action.
You can actually avoid creating an action subclass if you choose, by calling the configuration methods
in the RSE-supplied <a href="../../reference/api/org/eclipse/rse/ui/filters/actions/SystemChangeFilterAction.html">change-filter action class</a>.

View file

@ -11,7 +11,7 @@
<body bgcolor="#ffffff">
<h1>Plugging In System Types</h1>
<p>The <samp><A href="../../doc/org_eclipse_rse_ui_systemtype.html">org.eclipse.rse.ui.systemType</a></samp> extension point is defined in the
<p>The <samp><A href="../../reference/extension-points/org_eclipse_rse_core_systemTypes.html">org.eclipse.rse.ui.systemType</a></samp> extension point is defined in the
plugin <samp>org.eclipse.rse.ui</samp>. It enables new system types to be
defined in the Remote System Explorer's <A href="NewConnection.gif">New
Connection wizard</A>, such that users can define connections to systems of that type. For example,

View file

@ -25,22 +25,20 @@
This is the headless, barebones API layer that is used to interact with different protocols to
provide remote services that can be integrated into RSE. By default, RSE defines the following
types of services:
<ul>
<ul>
<li>File Service - for listing, modifying, copying, and transfering remote file and folders</li>
<li>Shell Service - for launching remote shells and interacting with the associated IO</li>
<li>Process Services - for listing remote processes</li>
</ul>
</p>
<p>
<p>
New service types can be added as needed, either in core RSE, or extensions to the base. The service
interfaces are defined loosely so that different implementations of the same service can be made using
different protocols. For example, the IFileService could be implemented locally with java.io, FTP, DataStore or some
other protocol. Similarly, the IShellService could be implemented locally via DataStore, telnet, SSH or something
else.
</p>
<h2><A name="SubSystems">RSE Subsystem Layer</A></h2>
<h2><A name="SubSystems">RSE Subsystem Layer</A></h2>
<p>
RSE subsystems integrate the services of the service layer with connection information, model artifacts and persistence.
Each subsystem is associated with a single service type. For example, the file service subsystem is associated with the

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2005, 2006. 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>RSE UI</title>
<link rel="stylesheet" type="text/css" href="../book.css">
</head>
<body>
<h1>RSE Files</h1>
</body>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2005, 2006. 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>RSE Hosts</title>
<link rel="stylesheet" type="text/css" href="../book.css">
</head>
<body>
<h1>RSE Filters</h1>
</body>
</html>

View file

@ -10,6 +10,35 @@
</head>
<body>
<h1>RSE Overview</h1>
<p>
The perspective for managing connections is the <A href="rse.gif"><B>Remote
System Explorer</B></A> (<b>RSE</b>), and the primary tree-view within it is the
<A href="view_RS.gif"><B>Remote Systems</B></A> view. We assume you are already familiar with the RSE perspective,
or will familiarize yourself with it, and you are now interested in learning how to extend it. We also assume that you
already understand the concepts of plug-ins, extension points, and the workbench UI. You do not need
to be familiar with workspace resources, as the RSE does not use these to realize the artifacts it
shows to the user.
</p>
<p>A user can extend the Remote System Explorer by adding their own
<A href="Artifacts.html#filters">filters</A>,
<A href="Artifacts.html#useractions">user actions</A>, and
<A href="Artifacts.html#compilecmds">compile commands</A>.
They may also customize the RSE by setting
<A href="Artifacts.html#preferences">preferences</A>.</p>
<p>
As a programmer, you can extend the Remote System Explorer by using
<A href="../reference/extension-points/index.html">RSE-unique extension points</A> to
add property pages to remote objects, add actions to the pop-up menus for remote objects, and
even create your own subsystems that appear when a connection is expanded. The full Eclipse application
programming interface (API) set is
at your disposal for these, as well as the API set supplied by the Remote System Explorer. Furthermore,
you can use existing Eclipse extension points to author menu items, tool bar actions, pop-up menu actions,
and more for non-remote objects in the Remote System Explorer.
</p>
<p>
This guide explains all underlying
artifacts and model of the Remote System Explorer, the RSE extension points, and highlights the
important APIs available for your use.
</p>
</body>
</html>
</html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2005, 2006. 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>RSE UI</title>
<link rel="stylesheet" type="text/css" href="../book.css">
</head>
<body>
<h1>RSE Processes</h1>
</body>
</html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2005, 2006. 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>RSE UI</title>
<link rel="stylesheet" type="text/css" href="../book.css">
</head>
<body>
<h1>RSE Shells</h1>
</body>
</html>

View file

@ -16,8 +16,9 @@
package samples.model;
import org.eclipse.core.runtime.IAdapterFactory;
import <b>com.ibm.etools.systems.core.ui.view.*;</b>
<b>import org.eclipse.ui.views.properties.IPropertySource;</b>
import org.eclipse.rse.ui.view.AbstractSystemRemoteAdapterFactory;
import org.eclipse.rse.ui.view.ISystemViewElementAdapter;
import org.eclipse.ui.views.properties.IPropertySource;
/**
* <i>This factory maps requests for an adapter object from a given remote object.</i>

View file

@ -5,13 +5,12 @@
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="../../book.css" TYPE="text/css">
<title>Creating a Subsystem Factory</title>
<title>Creating a Subsystem Configuration</title>
</head>
<body bgcolor="#ffffff">
<h1>Creating a Subsystem Factory</h1>
<p>In this tutorial, you will use the RSE <A href="../plugin/subsystem.html">subsystemfactory
extension point</A> to show new subsystems within connections, when they are expanded. Effectively,
<h1>Creating a Subsystem Configuration</h1>
<p>In this tutorial, you will use the RSE <A href="../../reference/extension-points/org_eclipse_rse_ui_subsystemConfiguration.html">subsystemConfiguration extension point</A> to show new subsystems within connections, when they are expanded. Effectively,
you will add a new <i>remote-accessing tool</i> to the Remote System Explorer.</p>
<p>
A full-blown tutorial to illustrate this extension point is a bit difficult without inventing
@ -40,46 +39,41 @@ decide what resources to expose and what actions on those resources.</i></p>
<hr>
<h2>Step By Step: Creating a Subsystem Factory</h2>
<p>If you have not already, first <a href="pdeProject.html">create or prepare a plugin project</a>
We will follow the steps listed in the <A href="../plugin/subsystem.html#steps">Overview of Steps</A> section in the description of the plugin.</p>.
<ol>
<h2>Step By Step: Creating a Subsystem Configuration</h2>
<p>If you have not already, first <a href="pdeProject.html">create or prepare a plugin project</a>
We will follow the steps listed in the <A href="../plugin/subsystem.html#steps">Overview of Steps</A> section in the description of the plugin.</p>
<ol>
<li>Create a package named <samp><b>samples.subsystems</b></samp>, by right-clicking on the <samp>src</samp> folder
and using the <b>New-&gt;Package</b> wizard. In the new package, create an empty interface
named <A href="IDeveloperSubSystem.html">IDeveloperSubSystem</A>,
by right-clicking on the package and selecting <b>New-&gt;Interface</b>.
and using the <b>New-&gt;Package</b> wizard. In the new package, create an empty interface named <A href="IDeveloperSubSystem.html"><samp>IDeveloperSubSystem</samp></A>, by right-clicking on the package and selecting <b>New-&gt;Interface</b>.
</li>
<li>Also in package <samp>samples.subsystems</samp>, use <b>New-&gt;Class</b> to
create a class named <samp><b>DeveloperSystem</b></samp> that extends <b>superclass</b>
<samp><A href="../../com/ibm/etools/systems/subsystems/impl/AbstractSystem.html">AbstractSystem</A></samp>,
create a class named <samp><b>DeveloperConnectorService</b></samp> that extends <b>superclass</b>
<samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/AbstractConnectorService.html">AbstractConnectorService</A></samp>,
selecting the option to include <b>Constructors from superclass</b>. Edit the result to add
a <samp>connected</samp> instance variable that is used in the methods, as shown in bold <a href="DeveloperSystem.html">here</a>.
</li>
<li>Again in package <samp>samples.subsystems</samp>, use <b>New-&gt;Class</b> to
create a class named <samp><b>DeveloperSystemManager</b></samp> that extends <b>superclass</b>
<samp><A href="../../com/ibm/etools/systems/subsystems/impl/AbstractSystemManager.html">AbstractSystemManager</A></samp>,
<samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/AbstractConnectorServiceManager.html">AbstractSystemManager</A></samp>,
selecting the option to include <b>Constructors from superclass</b>. Edit the result to add
a factory method, and flesh out the methods, as highlighted <a href="DeveloperSystemManager.html">here</a>.
</li>
<li>Create a package named <samp><b>samples.model</b></samp>. Create two classes in it:
<b><samp>TeamResource</samp></b> and <b><samp>DeveloperResource</samp></b>, each of which extend
<A href="../../reference/api/org/eclipse/rse/ui/subsystems/impl/AbstractResource.html">AbstractResource</A>.
<A href="../../reference/api/org/eclipse/rse/core/subsystems/AbstractResource.html">AbstractResource</A>.
<ol>
<li type="i">Edit <samp>DeveloperResource</samp> to add <samp>name</samp>, <samp>id</samp>, and <samp>deptNbr</samp> properties,
as shown in bold <a href="DeveloperResource.html"><samp>here</samp></a>.
<li type="i">Edit <samp>TeamResource</samp> to add <samp>name</samp> and <samp>developers</samp> (array) properties,
as shown in bold <a href="TeamResource.html"><samp>here</samp></a>.
<li type="i">Edit <samp>DeveloperResource</samp> to add <samp>name</samp>, <samp>id</samp>, and <samp>deptNbr</samp> properties, as shown in bold <a href="DeveloperResource.html">here</a>.<li type="i">Edit <samp>TeamResource</samp> to add <samp>name</samp> and <samp>developers</samp> (array) properties,
as shown in bold <a href="TeamResource.html">here</a>.
</ol>
<li>You need to think about filter support. For now, you can keep it simple: users can only create filters that list teams,
by specifying a single string that is either a scalar or a generic team name. If scalar, one team will be shown when the filter is expanded.
If generic, all teams matching the generic pattern will be listed. Given the simplicity, you will not need to create a filter string class to perform
parsing. As a result, you have nothing to do for this step.</li>
<li>Return to package <samp>samples.subsystems</samp>, and create class <b><samp>DeveloperSubSystem</samp></b>
that extends <samp><A href="../../com/ibm/etools/systems/dftsubsystem/impl/DefaultSubSystemImpl.html">DefaultSubSystemImpl</A></samp>.
that extends <samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystem.html">SubSystem</A></samp>.
Edit the generated class to add code highlighted <a href="DeveloperSubSystem.html">here</a>.</li>
<li>Again in package <samp>samples.subsystems</samp>, create class <b><samp>DeveloperSubSystemFactory</samp></b>
that extends <samp><A href="../../com/ibm/etools/systems/dftsubsystem/impl/DefaultSubSystemFactoryImpl.html">DefaultSubSystemFactoryImpl</A></samp>.
that extends <samp><A href="../../reference/api/org/eclipse/rse/core/subsystems/SubSystemConfiguration.html">SubSystemConfiguration</A></samp>.
Edit the generated class to add code highlighted <a href="DeveloperSubSystemFactory.html">here</a>.
</li>
<li>In the project's root folder, find and edit file <samp>rseSamplesResources.properties</samp> and
@ -88,25 +82,25 @@ add the line highlighted <a href="rseSamplesResources3.html">here</a>.
<li>Update your <samp>plugin.xml</samp> file to include the following lines:
<pre><samp>
&lt;!-- ======================================= --&gt;
&lt;!-- SubSystem Factory --&gt;
&lt;!-- SubSystem Configuration --&gt;
&lt;!-- ======================================= --&gt;
&lt;extension point=&quot;com.ibm.etools.systems.core.subsystemfactory&quot;&gt;
&lt;factory
&lt;extension point=&quot;org.eclipse.rse.ui.subsystemConfiguration&quot;&gt;
&lt;configuration
id=&quot;samples.subsystems.factory&quot;
systemtypes=&quot;Linux;Unix;Windows&quot;
name=&quot;Teams&quot;
class=&quot;samples.subsystems.DeveloperSubSystemFactory&quot;
class=&quot;samples.subsystems.DeveloperSubSystemConfiguration&quot;
category=&quot;users&quot;
vendor=&quot;ACME&quot;
&gt;
&lt;/factory&gt;
&lt;/configuration&gt;
&lt;/extension&gt;
</samp></pre>
<b>Note:</b> You would normal use the <samp>icon</samp> and <samp>iconLive</samp> attributes to specify
a unique icon for your subsystem, but to keep it simple here, just use the default icon.
</li>
</ol>
<p>Now you are far enough along that you can try our what you have, before proceeding. Select
<p>Now you are far enough along that you can try our what you have, before proceeding. Select
<b>Run-&gt;Run As-&gt;Run-time workbench</b>. Create a new Linux connection in the RSE, and
expand it. You'll now see your <A href="runIt1.gif">new subsystem</A>, which you can expand
to see its default filter, which in turn you can expand to see your hardcoded list of teams:<br>
@ -120,29 +114,25 @@ by creating adapters for the resources:</p>
<ol start="10">
<li>Select the <samp>samples.model</samp> package, and:
<ol>
<li type="i">Create a new class named <b><samp>TeamResourceAdapter</samp></b>
that extends <a href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html"><samp>com.ibm.etools.systems.core.ui.view.AbstractSystemViewAdapter</samp></A> and implements
<a href="../../reference/api/org/eclipse/rse/ui/view/ISystemRemoteElementAdapter.html"><samp>com.ibm.etools.systems.core.ui.view.ISystemRemoteElementAdapter</samp></A>.
<li type="i">Create a new class named <samp>TeamResourceAdapter</samp> that extends <a href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html"><samp>AbstractSystemViewAdapter</samp></A> and implements
<a href="../../reference/api/org/eclipse/rse/ui/view/ISystemRemoteElementAdapter.html"><samp>ISystemRemoteElementAdapter</samp></A>.
Edit the generated class and add the code highlighted <a href="TeamResourceAdapter.html"><b>here</b></a>.
</li>
<li type="i">Create a new class named <b><samp>DeveloperResourceAdapter</samp></b>
that extends <a href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html"><samp>com.ibm.etools.systems.core.ui.view.AbstractSystemViewAdapter</samp></A> and implements
<a href="../../reference/api/org/eclipse/rse/ui/view/ISystemRemoteElementAdapter.html"><samp>com.ibm.etools.systems.core.ui.view.ISystemRemoteElementAdapter</samp></A>.
that extends <a href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html"><samp>AbstractSystemViewAdapter</samp></a> and implements
<a href="../../reference/api/org/eclipse/rse/ui/view/ISystemRemoteElementAdapter.html"><samp>ISystemRemoteElementAdapter</samp></A>.
Edit the generated class and add the code highlighted <a href="DeveloperResourceAdapter.html"><b>here</b></a>.
</li>
<li type="i">Next, you need the icons for your remote resources, which you referred to in your adapters. Edit the <samp>RSESamplesPlugin</samp> file and edit the <samp>initializeImageRegistry</samp>
to add the lines of code highlighted <a href="InitializeImageRegistry.html"><b>here</b></a>. Now, you need the icons. Select the RSESamplesPlugin project,
right-click and select <b>New-&gt;Folder</b> and create a folder named <b>icons</b>. Select the new folder, and use <b>File-&gt;Import</b> to
import the <samp>team.gif</samp> and <samp>developer.gif</samp> files from the <samp>plugins\com.ibm.etools.systems.doc.isv\icons</samp> folder,
typically found <samp>c:\wdsc\iseries</samp> where c:\wdsc is where you installed this product.
</li>
to add the lines of code highlighted <a href="InitializeImageRegistry.html"><b>here</b></a>. Now, you need the icons. Select the <samp>RSESamplesPlugin</samp> project, right-click and select <b>New-&gt;Folder</b> and create a folder named <b>icons</b>. Select the new folder, and use <b>File-&gt;Import</b> to
import the <samp>team.gif</samp> and <samp>developer.gif</samp> files from the <samp>org.eclipse.rse.examples.tutorial/icons</samp> folder.</li>
</ol>
</li>
<li>Creating the adapters does nothing until you register them with the platform. To do that, you need
an adapter factory class and you need to register it with the platform:
<ol>
<li type="i">Select the <samp>samples.model</samp> package and in it create a class named
<b>DeveloperAdapterFactory</b> that extends <samp><a href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemRemoteAdapterFactory.html">AbstracSystemRemoteAdapterFactory</a></samp>
<b>DeveloperAdapterFactory</b> that extends <samp><a href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemRemoteAdapterFactory.html">AbstractSystemRemoteAdapterFactory</a></samp>
and implements interface <samp><b>org.eclipse.core.runtime.IAdapterFactory</b></samp>.
Edit the generate class as per the highlighted code <a href="DeveloperAdapterFactory.html"><b>here</b></a>.
</li>
@ -190,22 +180,22 @@ evolve the functions via your adapter, should you want to:</p>
<ul>
<li>To not show the rename and delete actions at all, or to enable them,
override appropriate methods in the adapter class. For details see the methods
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#showRename(java.lang.Object)">showRename</A>,
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#showDelete(java.lang.Object)">showDelete</A>,
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#doRename(org.eclipse.swt.widgets.Shell, java.lang.Object, java.lang.String)">doRename</A>
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#showRename(java.lang.Object)">showRename</A>,
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#showDelete(java.lang.Object)">showDelete</A>,
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#doRename(org.eclipse.swt.widgets.Shell, java.lang.Object, java.lang.String)">doRename</A>
and
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#doDelete(org.eclipse.swt.widgets.Shell, java.lang.Object)">doDelete</A> in the parent
<samp><A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html">AbstractSystemViewAdapter</A></samp> class.
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#doDelete(org.eclipse.swt.widgets.Shell, java.lang.Object)">doDelete</A> in the parent
<samp><A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html">AbstractSystemViewAdapter</A></samp> class.
<li>To supply your own validator for syntax checking of new names on the rename dialogs,
override <A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#getNameValidator(java.lang.Object)">getNameValidator</A>.
<li>To add additional actions to the pop-up menus, implement the <A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#addActions(com.ibm.etools.systems.core.ui.SystemMenuManager, org.eclipse.jface.viewers.IStructuredSelection, org.eclipse.swt.widgets.Shell, java.lang.String)">addActions</a>
override <A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#getNameValidator(java.lang.Object)">getNameValidator</A>.
<li>To add additional actions to the pop-up menus, implement the <A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#addActions(com.ibm.etools.systems.core.ui.SystemMenuManager, org.eclipse.jface.viewers.IStructuredSelection, org.eclipse.swt.widgets.Shell, java.lang.String)">addActions</a>
method in your adapter class.
<li>To support dragging and dropping, override the
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#canDrag(java.lang.Object)">canDrag</a> and
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#canDrop(java.lang.Object)">canDrop</a> parent methods in your adapter class.
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#canDrag(java.lang.Object)">canDrag</a> and
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#canDrop(java.lang.Object)">canDrop</a> parent methods in your adapter class.
<li>To add additional properties to the property sheet, implement the
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#internalGetPropertyDescriptors()">internalGetPropertyDescriptors</a> and
<A href="../../com/ibm/etools/systems/core/ui/view/AbstractSystemViewAdapter.html#internalGetPropertyValue()">internalGetPropertyValue</a> methods
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#internalGetPropertyDescriptors()">internalGetPropertyDescriptors</a> and
<A href="../../reference/api/org/eclipse/rse/ui/view/AbstractSystemViewAdapter.html#internalGetPropertyValue()">internalGetPropertyValue</a> methods
in your adapter class.
<li>To add property pages to your remote objects (the Properties popup menu item will then appear) use
the RSE <A href="../plugin/propertypage.html">propertyPages</a> extension point.

View file

@ -11,13 +11,12 @@
<body bgcolor="#ffffff">
<h1>Tutorials</h1>
<p>This section walks through the tutorials that demonstrate how to use the RSE <a href="Extensions.html">extension points</a> to
extend the RSE:</p>
extend the RSE:
<ul>
<li><a href="tutorial/popup.html">Creating a remote resource pop-up menu action</a> using the <a href="plugin/popup.html">org.eclipse.rse.core.popupMenus</a> extension point.
<li><a href="tutorial/propertypage.html">Creating a remote resource property page</a> using the <a href="plugin/propertypage.html">org.eclipse.rse.core.propertyPages</a> extension point.
<li><a href="tutorial/subsystem.html">Creating a subsystem configuration</a> for working with remote resources, using the <a href="plugin/subsystem.html">org.eclipse.rse.core.subsystemconfiguration</a> extension point.
</ul>
</p>
<p>Each tutorial requires you to have an Eclipse plug-in project, and starts out by showing
you how to <A href="tutorial/pdeProject.html">create an Eclipse plug-in
project</A>, using the Plug-in Development Environment. While any Eclipse plug-in

View file

@ -11,27 +11,27 @@
<h1>RSE Questions Index</h1>
<h2> RSE Services Layer</h2>
<ul>
<li><a href="../guide/rse_int_services.htm">What is available in the RSE Services Layer
<li><a href="../guide/rse_int_services.html">What is available in the RSE Services Layer
API Packages?</a> </li>
</ul>
<h2> RSE Subsystems Layer</h2>
<ul>
<li><a href="../guide/rse_int_subsystems.htm">What is available in the RSE Subsystems Layer
<li><a href="../guide/rse_int_subsystems.html">What is available in the RSE Subsystems Layer
API Packages?</a> </li>
</ul>
<h2> RSE Files</h2>
<ul>
<li><a href="../guide/rse_int_files.htm">What is available in the RSE Files packages?</a>
<li><a href="../guide/rse_int_files.html">What is available in the RSE Files packages?</a>
</li>
</ul>
<h2> RSE Shells</h2>
<ul>
<li><a href="../guide/rse_int_shells.htm">What is available in the RSE Shells packages?</a>
<li><a href="../guide/rse_int_shells.html">What is available in the RSE Shells packages?</a>
</li>
</ul>
<h2> RSE Processes</h2>
<ul>
<li><a href="../guide/rse_int_processes.htm">What is available in the RSE Processes packages?</a>
<li><a href="../guide/rse_int_processes.html">What is available in the RSE Processes packages?</a>
</li>
</ul>

View file

@ -5,23 +5,15 @@
<!-- ============================================================================= -->
<toc label="RSE Developer Guide">
<topic label="Overview (old)" href="guide/overview.html"/>
<topic label="Artifacts (old)" href="guide/Artifacts.html"/>
<topic label="Extensions (old)" href="guide/Extensions.html"/>
<topic label="APIs (old)" href="guide/usingAPIs.html"/>
<topic label="Tutorials (old)" href="guide/tutorials.html"/>
<topic label="Model (in progress)" href="guide/Model.html"/>
<topic label="Programmer&apos;s Guide (in progress)" href="guide/rse_int.html">
<topic label="Guide" href="guide/rse_int.html">
<link toc="topics_Guide.xml" />
<anchor id="guide_additions"/>
</topic>
<topic label="Reference (in progress)">
<topic label="Reference">
<link toc="topics_Reference.xml" />
<anchor id="reference_additions"/>
</topic>
<topic label="Questions Index (in progress)" href="questions/index.html">
<topic label="Questions Index" href="questions/index.html">
<link toc="topics_Questions.xml" />
<anchor id="questions_additions"/>
</topic>

View file

@ -6,11 +6,13 @@
<toc label="Guide">
<topic label="RSE Architecture" href="guide/rse_int_architecture.html">
<topic label="Overview" href="guide/rse_int_overview.html"/>
<topic label="Artifacts" href="guide/Artifacts.html"/>
<topic label="Model" href="guide/Model.html"/>
<topic label="Services" href="guide/rse_int_services.html"/>
<topic label="Subsystems" href="guide/rse_int_subsystems.html"/>
<topic label="Connector Services" href="guide/rse_int_connectorservices.html"/>
<topic label="Hosts" href="guide/rse_int_hosts.html"/>
<topic label="UI" href="guide/rse_int_ui.html"/>
<topic label="User Interface" href="guide/rse_int_ui.html"/>
</topic>
<topic label="Using the RSE API" href="guide/usingAPIs.html">
<topic label="RSE User Interface API" href="guide/api/uiAPI.html" />
@ -18,6 +20,7 @@
<topic label="RSE Model API" href="guide/api/modelAPI.html" />
</topic>
<topic label="Plugging into the RSE" href="guide/plugin.html">
<topic label="Extensions" href="guide/Extensions.html"/>
<topic label="Plugging in a Popup Menu" href="guide/plugin/popup.html" />
<topic label="Plugging in a Property Page" href="guide/plugin/propertypage.html" />
<topic label="Plugging in a System Type" href="guide/plugin/systemtype.html" />

View file

@ -46,7 +46,7 @@
<topic label="org.eclipse.rse.core.ui.widgets" href="reference/api/org/eclipse/rse/ui/widgets/package-summary.html" />
<topic label="org.eclipse.rse.core.ui.wizards" href="reference/api/org/eclipse/rse/ui/wizards/package-summary.html" />
</topic>
<topic label="Profiles and Connections">
<topic label="Profiles and Hosts">
<topic label="org.eclipse.rse.model" href="reference/api/com/ibm/etools/systems/model/package-summary.html" />
<topic label="org.eclipse.rse.model.impl" href="reference/api/com/ibm/etools/systems/model/impl/package-summary.html" />
<topic label="org.eclipse.rse.model.util" href="reference/api/com/ibm/etools/systems/model/util/package-summary.html" />