Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.team.ui.synchronize
Class SubscriberParticipant

    java.lang.Object
      org.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant
          org.eclipse.team.ui.synchronize.SubscriberParticipant

All Implemented Interfaces:
  EventListener, IExecutableExtension, IPropertyChangeListener, ISynchronizeParticipant

public abstract class SubscriberParticipant
extends AbstractSynchronizeParticipant
implements IPropertyChangeListener

A synchronize participant that displays synchronization information for local resources that are managed via a `Subscriber`. It maintains a dynamic collection of all out-of-sync resources by listening to workspace resource changes and remote changes thus creating a live view of changes in the workspace.

The subscriber can be configured to be synchronized in the background based on a schedule. This effectively refreshes the subscriber and updates the dynamic sync set.

Subclasses will typically want to override the following methods:

- initializeConfiguration: participants can add toolbar actions, configure the context menu, decorator.
- saveState and init: persist settings between sessions.

This class is intended to be subclassed.

Since:
  3.0

Field Summary

Fields inherited from class org.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant
`configElement, P_PINNED`

Constructor Summary
`SubscriberParticipant()` Constructor initializes the schedule.
`SubscriberParticipant(ISynchronizeScope scope)` Constructor which should be called when creating a particpant whose resources are to be scoped.

Method Summary
`IPageBookViewPage` | `createPage(ISynchronizePageConfiguration configuration)` Creates and returns a new page for this synchronize participant.
`void` | `dispose()` Disposes of this synchronize participant and is called to free the resources associated with a participant.
`protected String` | `getLongTaskName()` Returns the short task name (e.g. no more than 25 characters) to describe the behavior of the refresh operation to the user.
`static SubscriberParticipant` | `getMatchingParticipant(String ID, IResource[] resources)` Returns a participant that matches the given resource scoping
`String` | `getName()` Returns the name of this synchronize participant.
`org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule` | `getRefreshSchedule()`
`IResource[]` | `getResources()` Returns the resources supervised by this participant.
`ISynchronizeScope` | `getScope()` Return the scope that defines the resources displayed by this participant.
`protected String` | `getShortTaskName()` Returns the short task name (e.g. no more than 25 characters) to describe the behavior of the refresh operation to the user.
`Subscriber` | `getSubscriber()` Return the `Subscriber` associated with this this participant.
`org.eclipse.team.internal.core.subscribers.SubscriberSyncInfoCollector` | `getSubscriberSyncInfoCollector()`
`SyncInfoTree` | `getSyncInfoSet()` Returns the `SyncInfoTree` for this participant.
`void` | `init(String secondaryId, IMemento memento)` Classes that are persisted must override this method and perform the following initialization.
`protected void` | `initializeConfiguration(ISynchronizePageConfiguration configuration)` This method is invoked after a page configuration is created but before it is returned by the `createPageConfiguration` method.
`void` | `propertyChange(PropertyChangeEvent event)` Notification that a property has changed.
`void` | `refresh(IResource[] resources, String shortTaskName, String longTaskName, IWorkbenchSite site)` Refresh a participant in the background the result of the refresh are shown in the progress view.
`void` | `refreshInDialog(Shell shell, IResource[] resources, String jobName, String taskName, ISynchronizePageConfiguration configuration, IWorkbenchSite site)` Refresh this participants synchronization state and displays the result in a model dialog.
`IStatus` | `refreshNow(IResource[] resources, String taskName, IProgressMonitor monitor)` Refresh a participant.
`void` | `reset()` Reset the sync set of the particpant by repopulating it from scratch.
`void` | `run(IWorkbenchPart part)` Runs the participants action.
`void` | `saveState(IMemento memento)` Saves the participants object state within the memento.
`void` | `setRefreshSchedule(org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule schedule)`
`protected void` | `setSubscriber(Subscriber subscriber)` Subclasses must call this method to initialize the participant.
`protected void` | `setSyncInfoFilter(SyncInfoFilter filter)` Provide a filter that is used to filter the contents of the sync info set for the participant.
`protected void` | `validateConfiguration(ISynchronizePageConfiguration configuration)` This method is invoked before the given configuration is used to create the page (see `createPage(ISynchronizePageConfiguration)`).

Methods inherited from class org.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant
`addPropertyChangeListener, createPageConfiguration, doesSupportSynchronize, equals, firePropertyChange, getId, getImageDescriptor, getSecondaryId, hashCode, isPinned, pinned, removePropertyChangeListener, setImageDescriptor, setInitializationData, setInitializationData, setName, setPinned, setSecondaryId`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SubscriberParticipant

    public SubscriberParticipant()

  Constructor initializes the schedule. Subclasses must call this method.

### SubscriberParticipant

    public SubscriberParticipant(ISynchronizeScope scope)

  Constructor which should be called when creating a particpant whose resources are to be scoped.

Parameters:
  `scope` - a synchronize scope

Method Detail

### createPage

    public final IPageBookViewPage createPage(ISynchronizePageConfiguration configuration)

  Description copied from interface: `ISynchronizeParticipant`
  Creates and returns a new page for this synchronize participant. The page is displayed using the parameters from the configuration. For example, the configuration defines the context in which the page is shown, via the `ISynchronizePageSite`.

  Specified by:
    `createPage` in interface `ISynchronizeParticipant`
  Parameters:
    `configuration` - used to initialize the page
  Returns:
    a page book view page representation of this synchronize participant

### getResources

    public IResource[] getResources()

  Returns the resources supervised by this participant. It will either be the roots of the subscriber or the resource scope provided when the subscriber was set.

  Returns:
    the resources supervised by this participant.

### refreshInDialog

    public final void refreshInDialog(Shell shell,
                                      IResource[] resources,
                                      String jobName,
                                      String taskName,
                                      ISynchronizePageConfiguration configuration,
                                      IWorkbenchSite site)

  Refresh this participants synchronization state and displays the result in a model dialog.

  Parameters:
    `resources` -
    `taskName` -
    `site` -

### refresh

    public final void refresh(IResource[] resources,
                              String shortTaskName,
                              String longTaskName,
                              IWorkbenchSite site)

  Refresh a participant in the background the result of the refresh are shown in the progress view. Refreshing can also be considered synchronizing, or refreshing the synchronization state. Basically this is a long running operation that will update the participants sync info sets with new changes detected on the server.

  Parameters:
    `resources` - the resources to be refreshed.
    `shortTaskName` - the taskName of the background job that will run the synchronize.
    `longTaskName` - the taskName of the progress monitor running the synchronize
    `site` - the workbench site the synchronize is running from. This can be used to notify the site that a job is running.

### refreshNow

    public final IStatus refreshNow(IResource[] resources,
                                    String taskName,
                                    IProgressMonitor monitor)

  Refresh a participant. The returned status describes the result of the refresh.

### dispose

    public void dispose()

  Description copied from interface: `ISynchronizeParticipant`
  Disposes of this synchronize participant and is called to free the resources associated with a participant. When a participant is added to the `ISynchronizeManager` this method is called when the manager is shutdown or the participant is removed from the manager.

  Within this method a participant may release any resources, fonts, images, etc. held by this part. It is also very important to deregister all listeners.

  Clients should not call this method (the synchronize manager calls this method at appropriate times).

  Specified by:
    `dispose` in interface `ISynchronizeParticipant`

### getName

    public String getName()

  Description copied from interface: `ISynchronizeParticipant`
  Returns the name of this synchronize participant. This name is displayed to the user.

  Specified by:
    `getName` in interface `ISynchronizeParticipant`
  Overrides:
    `getName` in class `AbstractSynchronizeParticipant`

### getSyncInfoSet

    public SyncInfoTree getSyncInfoSet()

  Returns the `SyncInfoTree` for this participant. This set contains the out-of-sync resources supervised by this participant.

  Returns:
    the sync info set that contains the out-of-sync resources for this participant.

### getSubscriber

    public Subscriber getSubscriber()

  Return the `Subscriber` associated with this this participant. This method will only return `null` if the participant has not been initialized yet.

  Returns:
    the `Subscriber` associated with this this participant.

### getMatchingParticipant

    public static SubscriberParticipant getMatchingParticipant(String ID,
                                                               IResource[] resources)

  Returns a participant that matches the given resource scoping

  Parameters:
    `ID` - the type id of participants to match
    `resources` - the resources to match in the scope
  Returns:
    a participant that matches the given resource scoping

### propertyChange

    public void propertyChange(PropertyChangeEvent event)

  Description copied from interface: `IPropertyChangeListener`
  Notification that a property has changed.

  This method gets called when the observed object fires a property change event.

  Specified by:
    `propertyChange` in interface `IPropertyChangeListener`
  Parameters:
    `event` - the property change event object describing which property changed and how

### init

    public void init(String secondaryId,
                     IMemento memento)
              throws PartInitException

  Description copied from class: `AbstractSynchronizeParticipant`
  Classes that are persisted must override this method and perform the following initialization.

       		super.init(secondaryId, memento);
       		try {
      			ISynchronizeParticipantDescriptor descriptor = TeamUI.getSynchronizeManager().getParticipantDescriptor(PARTICIPANT_ID);
      			setInitializationData(descriptor);
      		} catch (CoreException e) {
      			TeamUIPlugin.log(e);
      		}

  where `PARTICIPANT_ID` is the id of the particant as defined in the plugin manifest.

  Specified by:
    `init` in interface `ISynchronizeParticipant`
  Overrides:
    `init` in class `AbstractSynchronizeParticipant`
  Throws:
    `PartInitException`
  See Also:
    `ISynchronizeParticipant.init(String, org.eclipse.ui.IMemento)`

### saveState

    public void saveState(IMemento memento)

  Description copied from interface: `ISynchronizeParticipant`
  Saves the participants object state within the memento. This state will be available when the participant is restored via `init`.

  This method can be called multiple times during the lifetime of the participant object.

  Specified by:
    `saveState` in interface `ISynchronizeParticipant`
  Overrides:
    `saveState` in class `AbstractSynchronizeParticipant`

### reset

    public void reset()

  Reset the sync set of the particpant by repopulating it from scratch.

### getSubscriberSyncInfoCollector

    public org.eclipse.team.internal.core.subscribers.SubscriberSyncInfoCollector getSubscriberSyncInfoCollector()

### setRefreshSchedule

    public void setRefreshSchedule(org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule schedule)

### getRefreshSchedule

    public org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule getRefreshSchedule()

### initializeConfiguration

    protected void initializeConfiguration(ISynchronizePageConfiguration configuration)

  Description copied from class: `AbstractSynchronizeParticipant`
  This method is invoked after a page configuration is created but before it is returned by the `createPageConfiguration` method. Subclasses can implement this method to tailor the configuration in ways appropriate to the participant.

  Specified by:
    `initializeConfiguration` in class `AbstractSynchronizeParticipant`
  Parameters:
    `configuration` - the newly create page configuration

### run

    public void run(IWorkbenchPart part)

  Description copied from interface: `ISynchronizeParticipant`
  Runs the participants action. Typically this would be some action to refresh the synchronization state of the participant. This action is run from the global synchronize drop-down.

  Specified by:
    `run` in interface `ISynchronizeParticipant`
  Parameters:
    `part` - the part in which the action is run or `null` if the action is not being run in a workbench part.

### getShortTaskName

    protected String getShortTaskName()

  Returns the short task name (e.g. no more than 25 characters) to describe the behavior of the refresh operation to the user. This is typically shown in the status line when this subcriber is refreshed in the backgroud. When refreshed in the foreground, only the long task name is shown.

  Returns:
    the short task name to show in the status line.

### getLongTaskName

    protected String getLongTaskName()

  Returns the short task name (e.g. no more than 25 characters) to describe the behavior of the refresh operation to the user. This is typically shown in the status line when this subcriber is refreshed in the backgroud. When refreshed in the foreground, only the long task name is shown.

  Returns:
    the short task name to show in the status line.

### validateConfiguration

    protected void validateConfiguration(ISynchronizePageConfiguration configuration)

  This method is invoked before the given configuration is used to create the page (see `createPage(ISynchronizePageConfiguration)`). The configuration would have been initialized by `initializeConfiguration(ISynchronizePageConfiguration)` but may have also been tailored further. This method gives the particpant a chance to validate those changes before the page is created.

  Parameters:
    `configuration` - the page configuration that is about to be used to create a page.

### setSubscriber

    protected void setSubscriber(Subscriber subscriber)

  Subclasses must call this method to initialize the participant. Typically this method is called in `init(String, IMemento)`. This method will initialize the sync info collector.

  Parameters:
    `subscriber` - the subscriber to associate with this participant.

### setSyncInfoFilter

    protected void setSyncInfoFilter(SyncInfoFilter filter)

  Provide a filter that is used to filter the contents of the sync info set for the participant. Normally, all out-of-sync resources from the subscriber will be included in the participant's set. However, a filter can be used to exclude some of these out-of-sync resources, if desired.

  Subsclasses can invoke this method any time after `setSubscriber` has been invoked.

  Parameters:
    `filter` - a sync info filter

### getScope

    public ISynchronizeScope getScope()

  Return the scope that defines the resources displayed by this participant.

  Returns:
    Returns the scope.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.