| <!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><viewerContribution id="org.eclipse.myteamplugin.syncparticipant.actions" |
| targetID="org.eclipse.myteamplugin.syncparticipant"</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> |