org.eclipse.team.ui.synchronize
Class SubscriberParticipant
java.lang.Object
org.eclipse.core.runtime.PlatformObject
org.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant
org.eclipse.team.ui.synchronize.SubscriberParticipant
-
All Implemented Interfaces:
-
EventListener,
IAdaptable,
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
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. |
Object
|
getAdapter
(
Class adapter)
Returns an object which is an instance of the given class
associated with this object. |
protected
String
|
getLongTaskName
()
Deprecated. use getLongTaskName(IResource[]) instead
|
protected
String
|
getLongTaskName
(
IResource[] resources)
Returns the long task name 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
|
getShortName
()
Return the name of the participant as specified in the plugin manifest file. |
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
()
Return the SubscriberSyncInfoCollector for the participant. |
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 participant 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,
getHelpContextId,
getId,
getImageDescriptor,
getPreferencePages,
getSecondaryId,
hashCode,
isPinned,
isViewerContributionsSupported,
pinned,
prepareCompareInput,
removePropertyChangeListener,
setImageDescriptor,
setInitializationData,
setInitializationData,
setName,
setPinned,
setSecondaryId
|
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 participant whose resources
are to be scoped.
-
Parameters:
-
scope
- a synchronize scope
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:
-
shell
- -
resources
- -
jobName
- -
taskName
- -
configuration
- -
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. Either or both of the
shortTaskName
and longTaskName
can be null
in which case, the default values for these are returned by the methods getShortTaskName()
and
getLongTaskName(IResource[])
will be used.
-
-
-
Parameters:
-
resources
- the resources to be refreshed. -
shortTaskName
- the taskName of the background job that will run the synchronize or null
if the default job name is desired. -
longTaskName
- the taskName of the progress monitor running the synchronize or null
if the default job name is desired. -
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.
-
-
-
Parameters:
-
resources
- -
taskName
- -
monitor
-
-
Returns:
- a status
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 remove 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
-
-
Returns:
- the name of this synchronize participant
getShortName
protected final
String getShortName()
- Return the name of the participant as specified in the plugin manifest file.
This method is provided to give access to this name since it is masked by
the
getName()
method defined in this class.
-
-
-
Returns:
- the name of the participant as specified in the plugin manifest file
-
Since:
- 3.1
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
-
-
Parameters:
-
secondaryId
- the secondayId of this participant instance or null
if this participant doesn't support multiple instances. -
memento
- the participant state or null
if there
is no previous saved state
-
Throws:
-
PartInitException
- if this participant was not initialized
successfully -
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
-
-
Parameters:
-
memento
- a memento to receive the object state
reset
public void reset()
- Reset the sync set of the participant by repopulating it from scratch.
-
-
getSubscriberSyncInfoCollector
public org.eclipse.team.internal.core.subscribers.SubscriberSyncInfoCollector getSubscriberSyncInfoCollector()
- Return the
SubscriberSyncInfoCollector
for the participant.
This collector maintains the set of all out-of-sync resources for the
subscriber.
-
-
-
Returns:
- the
SubscriberSyncInfoCollector
for this participant -
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended
by clients.
setRefreshSchedule
public void setRefreshSchedule(org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule schedule)
-
-
-
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended by clients.
getRefreshSchedule
public org.eclipse.team.internal.ui.synchronize.SubscriberRefreshSchedule getRefreshSchedule()
-
-
-
Restriction:
- This method is not intended to be referenced by clients.
-
Restriction:
- This method is not intended to be re-implemented or extended by clients.
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 subscriber is refreshed
in the background. 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()
-
Deprecated. use
getLongTaskName(IResource[]) instead
- Returns the long task name to describe the behavior of the
refresh operation to the user. This is typically shown in the status line when this subscriber is refreshed
in the background.
-
-
-
Returns:
- the long task name
getLongTaskName
protected
String getLongTaskName(
IResource[] resources)
- Returns the long task name to describe the behavior of the
refresh operation to the user. This is typically shown in the status line when this subscriber is refreshed
in the background.
-
-
-
Parameters:
-
resources
-
-
Returns:
- the long task name
-
Since:
- 3.1
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 participant
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.
Subclasses 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.
getAdapter
public
Object getAdapter(
Class adapter)
-
Description copied from class:
PlatformObject
- Returns an object which is an instance of the given class
associated with this object. Returns
null
if
no such object can be found.
This implementation of the method declared by IAdaptable
passes the request along to the platform's adapter manager; roughly
Platform.getAdapterManager().getAdapter(this, adapter)
.
Subclasses may override this method (however, if they do so, they
should invoke the method on their superclass to ensure that the
Platform's adapter manager is consulted).
-
-
Specified by:
-
getAdapter
in interface
IAdaptable
-
Overrides:
-
getAdapter
in class
PlatformObject
-
-
Parameters:
-
adapter
- the class to adapt to
-
Returns:
- the adapted object or
null
-
See Also:
-
IAdaptable.getAdapter(Class)
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.