blob: 6112f4106297b491e5fe011236425f68ba4a4dd2 [file] [log] [blame]
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="IBM">
<title>Package-level Javadoc</title>
</head>
<body>
<p>Application programming interfaces for interaction
with the Eclipse Synchronize View.</p>
<h2>Package Specification</h2>
<p>The Eclipse Team UI plug-in provides a set of classes and interfaces to support
a generic synchronize view that can show multiple synchronize participants.
This package contains a generic abstract synchronize participant that provides
the common functionality for synchronize participants. The basic model for the
Synchronize View APIs is the following:</p>
<ul>
<li>A ISynchronizeManager manages registered synchronize participants. There
can be several instances of the same participant type.</li>
<li>A ISynchronizeParticipant is a logical representation of a connection between
workspace resources and a remote location used to shared those resources.</li>
<li>A ISynchronizeView is a page book view of participants.</li>
<li>A ISynchronizeParticipant must create a page that will be displayed in the
ISynchronizeView page book view.</li>
<li>The ISynchronizeView shows a drop-down of all registered participants and
allows switching between them.</li>
<li>A ISynchronizeParticipant can contribute actions to the toolbar, menus,
and view menu.</li>
</ul>
<p>Synchronize participants are declared by extending the <strong>synchronizeParticipants
</strong>extension point. There are two classes of synchronize participants:
<em>static </em>participants will be created when the synchronize view is created,
and <em>dynamic</em> participants that are created by user code at some other
time. A synchronize manager (<b>ISynchronizeManager</b>) manages all active
synchronize participants, and provides notification of participants which are
added and removed. Participants are displayed in a page book view. Each participant
implementation is reponsible for creating its page (<b>IPageBookView</b>), which
provides freedom of presentation to the synchronize view implementation. A single
participant may be displayed simultaneously in multiple synchronize views, and
in different workbench windows.</p>
<p>The class <b>TeamSubscriberParticipant</b> provides an implementation of a
synchronize participant that enables synchronization for a <b>TeamSubscriber</b>.
For providers that implement a <strong>TeamSubscriber</strong>, this is the
easiest method of integrating into the Synchronize View. The TeamSubscriberParticipant
provides a view of changes (incoming, outgoing, conflicting), modes for showing
only a subset of the changes, decorations for identifying the changes, and working
sets. Here are the steps for creating a participant based on the TeamSubscriberParticipant
implementation:</p>
<ul>
<li>Implement a concrete subclass of <strong>TeamSubscriber</strong> that will
provide the physical connection between the workspace resources and the remote
location that is used to share the resources.</li>
<li>Subclass <strong>TeamSubscriberParticipant</strong> and provide concrete
implementations for init(QualifiedName), saveState(), and optionally createPage().</li>
<li>To add actions to the context menu of the participant page you must create
a viewerContribution in your plugin.xml with the targetID field equal to that
of the qualifier part of the participant's type id. For example:
<pre>&lt;viewerContribution id=&quot;org.eclipse.myteamplugin.syncparticipant.actions&quot;
targetID=&quot;org.eclipse.myteamplugin.syncparticipant&quot;</pre>
</li>
<li>To add participant specific actions to the view's action bar, subclass TeamSubscriberParticipantPage
and implement setActionBars().</li>
<li>To add participant specific decorations to the viewer, subclass TeamSubscriberParticipantPage
and implement getLabelProvider().</li>
</ul>
</body>
</html>