| <!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>Contains the team synchronization presentation framework and support |
| for the Synchronize View.<br> |
| </p> |
| <h2>Package Specification</h2> |
| <p>Contains the team synchronization presentation framework and support |
| for the Synchronize View. A synchronization framework is a unified |
| architecture for presenting and manipulating resource synchronization |
| state. Consider the |
| synchronization model described by the classes in |
| <code>org.eclipse.team.core.synchronize</code> as the physical |
| representation of synchronization state then the classes in this |
| package allow you to control |
| how the model is presented to the user. This framework doesn't attempt |
| to provide common operations for manipulating synchronization state. |
| Instead it is left up to the framework user to add their own domain |
| specific operations to the presentation.<br> |
| </p> |
| <p>The primary advantages of this synchronization presentation |
| framework are that it:<br> |
| </p> |
| <ul> |
| <li><span style="font-weight: bold;">Provides a unified |
| synchronization experience</span> in the workbench. It makes it easier |
| to present one synchronization story to the user across multiple tools |
| that synchronize resources. This includes access to the Synchronize |
| View, the Team Synchronizing Perspective, the global Synchronize |
| Action, Synchronize dialogs, and compare editors.<br> |
| </li> |
| <li><span style="font-weight: bold;">Reduces the effort required to |
| learn other APIs</span> by eliminating the need to learn many workbench |
| APIs to enable this rich support.<br> |
| </li> |
| <li><span style="font-weight: bold;">Fosters software re-use</span> |
| by allowing multiple repository providers and other tools to enable |
| rich integration without the initial cost of learning how to integrate |
| into Eclipse.<br> |
| </li> |
| </ul> |
| <p>The synchronization presentation framework consists of:<br> |
| </p> |
| <ul> |
| <li><span style="font-weight: bold;">Synchronize View Interfaces</span> |
| - Represents a set of classes and interfaces |
| to support a generic synchronize view that can show multiple |
| synchronize participants.<br> |
| </li> |
| <li><span style="font-weight: bold;">SubscriberParticipants</span> - |
| Concrete implementation of the synchronize view interfaces for |
| synchronizations that are SyncInfo based. Subclasses get the well-known |
| synchronize page that supports 4 modes (e.g. |
| incomming/outgoing/conficting/both) and the standard resource layouts |
| (compressed folder and hierarchical). This is the easy entry point into |
| the Synchronize View since all a client would have to provide is a |
| Subscriber class that generates SyncInfo instances for resources and a |
| set of operations that run on the sync nodes.<br> |
| </li> |
| <li><span style="font-weight: bold;">Compare Inputs</span> - These |
| are helpers for allowing users to display and edit the resources being |
| synchronized.</li> |
| <li><span style="font-weight: bold;">Synchronize action and operation |
| utilities</span> - Represent helpers for writing actions that are |
| performed on elements shown in synchronization viewers.<br> |
| </li> |
| </ul> |
| <hr style="width: 100%; height: 2px;"> |
| <h3>Synchronize View Interfaces<br> |
| </h3> |
| <p>These interfaces and classes support a generic Synchronize View that |
| can show multiple |
| synchronize participants. The basic model for integrating into the |
| Synchronize View consists of:<br> |
| </p> |
| <ul> |
| <li>A ISynchronizeManager manages registered synchronize |
| participants. Every participant has a type and and instance identifier.</li> |
| <li>A ISynchronizeParticipant is a logical representation of a |
| connection between workspace resources and a remote location used to |
| shared those resources. A participant creates a page in that shows the |
| synchronization for the participant.<br> |
| </li> |
| <li>A ISynchronizeView is a page book view of participants. The |
| synchronize view has support for showing multiple synchronizations. As |
| described above, you will see merges, 2 way-compares, and basic |
| synchronizations. Synchronizations are categorized into types, for |
| example the CVS plugin defines three types: CVS, CVS Merge, and CVS |
| Compare. You can switch between synchronizations using the drop-down |
| menu in the sync view. When you create a new synchronization it will |
| replace the first existing synchronization of the same type unless it |
| is pinned. Pinning allows you to manage the synchronizations that are |
| of interest to you and ensure that they remain easily accessible. This |
| should provide for easy management of multiple synchronizations.<br> |
| </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 creates a configuration which is used |
| to configure the presentation of the participant by clients. For |
| example, clients using a ISynchronizeParticipant instances can decide |
| to show the participant page with a set of customized menus or toolbar |
| actions.<br> |
| </li> |
| </ul> |
| <p>Synchronize participants are declared by extending the <strong>synchronizeParticipants |
| </strong>extension point. A synchronize manager |
| 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, 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.<br> |
| </p> |
| <hr style="width: 100%; height: 2px;"> |
| <h3>SubscriberParticipants<br> |
| </h3> |
| SubscriberParticipant is an abstract class that is intented to |
| support a common synchronization workflow. It is the easy way to get |
| into the Synchronize View and essentially inherit the default |
| synchronize experience. The requirement for using a |
| SubscriberParticipant is to create a subscriber that can produce |
| SyncInfo (e.g. objects that describe the synchronization between local |
| and remote resources). |
| <hr style="width: 100%; height: 2px;"> |
| <h3>Compare Inputs</h3> |
| These are helpers for allowing users to display and edit resources |
| being synchronized by integrating with the compare support available in |
| Eclipse. <br> |
| <hr style="width: 100%; height: 2px;"> |
| <h3>Synchronize action and operation utilities</h3> |
| These are helpers for writing actions that are performed on elements |
| shown in synchronize viewers.<br> |
| <hr style="width: 100%; height: 2px;"> |
| <h3>Related Documentation</h3> |
| <ul> |
| <li>For examples of these APIs in action please see the <a |
| href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.examples.filesystem/">org.eclipse.team.examples.filesystem</a> |
| plug-in example and also refer to the <span style="font-weight: bold;">Platform |
| Plug-in Developer Guide > Programmer's Guide > Team Support</span> |
| documentation.<br> |
| </li> |
| </ul> |
| </body> |
| </html> |