Contains the team synchronization presentation framework and support
for the Synchronize View.
Package Specification
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
org.eclipse.team.core.synchronize
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.
The primary advantages of this synchronization presentation
framework are that it:
- Provides a unified
synchronization experience 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.
- Reduces the effort required to
learn other APIs by eliminating the need to learn many workbench
APIs to enable this rich support.
- Fosters software re-use
by allowing multiple repository providers and other tools to enable
rich integration without the initial cost of learning how to integrate
into Eclipse.
The synchronization presentation framework consists of:
- Synchronize View Interfaces
- Represents a set of classes and interfaces
to support a generic synchronize view that can show multiple
synchronize participants.
- Viewer Advisors - The
advisors allow decoupling viewer behavior from the viewers presentation
and basically provide the ability to show synchronization information
stored as
SyncInfo
or in a SyncInfoSet
to
be shown in a Viewer.
- Compare Inputs - These
are helpers for allowing users to display and edit the resources being
synchronized.
- Synchronize action and operation
utilities - Represent helpers for writing actions that are
performed on elements shown in synchronization viewers.
Synchronize View Interfaces
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:
- A ISynchronizeManager manages registered synchronize
participants. There can be several instances of the same participant
type.
- A ISynchronizeParticipant is a logical representation of a
connection between workspace resources and a remote location used to
shared those resources.
- A ISynchronizeView is a page book view of participants.
- A ISynchronizeParticipant must create a page that will be
displayed in the ISynchronizeView page book view.
- The ISynchronizeView shows a drop-down of all registered
participants and allows switching between them.
- A ISynchronizeParticipant can contribute actions to the toolbar,
menus, and view menu.
Synchronize participants are declared by extending the synchronizeParticipants
extension point. There are two classes of synchronize
participants: static participants will be created when the
synchronize view is created, and dynamic participants that
are created by user code at some other time. 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.
Viewer Advisors
- StructuredViewerAdvisor: are used to
display the logical structure to the user and define the basics such as
the SynchronizeModelProvider, label provider, and context menus.
- SyncInfoCompareInput: is used to show a comparison between a local
resource and a variant in a compare editor.
- SyncInfoSetCompareInput: is used to showing a set of variants in a
compare editor
Default implementations are provided and there are many levels of
customizations available.
Compare Inputs
These are helpers for allowing users to display and edit resources
being synchronized by integrating with the compare support available in
Eclipse.
Synchronize action and operation utilities
These are helpers for writing actions that are performed on elements
shown in synchronize viewers.
Related Documentation
- Pointer to the ISV docs?
- Tutorials?