public class ResourceChangeDispatcher
extends java.lang.Object
implements org.eclipse.core.resources.IResourceChangeListener
Modifier and Type | Class and Description |
---|---|
static class |
ResourceChangeDispatcher.ResourceChangeDispatchPhase
An enumeration phase to indicate the priority that the resource change event will be dispatched to the registered
listeners.
|
class |
ResourceChangeDispatcher.ResourceChangeListenerDescriptor
A resource change listener descriptor.
|
Modifier and Type | Field and Description |
---|---|
static ResourceChangeDispatcher |
INSTANCE
The singleton instance.
|
Modifier and Type | Method and Description |
---|---|
void |
addResourceChangeListener(org.eclipse.core.resources.IResourceChangeListener listener,
int eventMask,
ResourceChangeDispatcher.ResourceChangeDispatchPhase dispatchPhase)
Adds the given listener for resource change events to this dispatcher.
|
void |
addResourceChangeListener(org.eclipse.core.resources.IResourceChangeListener listener,
ResourceChangeDispatcher.ResourceChangeDispatchPhase dispatchPhase)
Adds the given listener for resource change events to this dispatcher.
|
protected void |
dispatchResourceChanged(org.eclipse.core.resources.IResourceChangeEvent event,
java.util.Collection<ResourceChangeDispatcher.ResourceChangeListenerDescriptor> listenerDescriptors)
Dispatches resource change event to the collection of listener
descriptors.
|
java.util.Map<ResourceChangeDispatcher.ResourceChangeDispatchPhase,java.util.Collection<ResourceChangeDispatcher.ResourceChangeListenerDescriptor>> |
getResourceChangeListeners() |
void |
removeResourceChangeListener(org.eclipse.core.resources.IResourceChangeListener listener)
Removes the given resource change listener from this dispatcher.
|
void |
resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event) |
public static final ResourceChangeDispatcher INSTANCE
public void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)
resourceChanged
in interface org.eclipse.core.resources.IResourceChangeListener
protected void dispatchResourceChanged(org.eclipse.core.resources.IResourceChangeEvent event, java.util.Collection<ResourceChangeDispatcher.ResourceChangeListenerDescriptor> listenerDescriptors)
event
- resource change eventlistenerDescriptors
- a collection of listener descriptorspublic void addResourceChangeListener(org.eclipse.core.resources.IResourceChangeListener listener, ResourceChangeDispatcher.ResourceChangeDispatchPhase dispatchPhase)
This method is equivalent to:
addResourceChangeListener(listener, IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.POST_CHANGE, dispatchPhase);
listener
- the listenerdispatchPhase
- the resource change dispatch phase that indicates the
dispatch priority wrt to other registered listenersIResourceChangeListener
,
IResourceChangeEvent
,
#addResourceChangeListener(IResourceChangeListener, int)
,
removeResourceChangeListener(IResourceChangeListener)
public void addResourceChangeListener(org.eclipse.core.resources.IResourceChangeListener listener, int eventMask, ResourceChangeDispatcher.ResourceChangeDispatchPhase dispatchPhase)
Once registered, a listener starts receiving notification of changes to resources in the workspace. The resource deltas in the resource change event are rooted at the workspace root. Most resource change notifications occur well after the fact; the exception is pre-notification of impending project closures and deletions. The listener continues to receive notifications until it is replaced or removed.
Listeners can listen for several types of event as defined in IResourceChangeEvent
. Clients are free
to register for any number of event types however if they register for more than one, it is their responsibility
to ensure they correctly handle the case where the same resource change shows up in multiple notifications.
Clients are guaranteed to receive only the events for which they are registered.
listener
- the listenereventMask
- the bit-wise OR of all event types of interest to the listenerdispatchPhase
- the resource change dispatch phase that indicates the
dispatch priority wrt to other registered listenersIResourceChangeListener
,
IResourceChangeEvent
,
removeResourceChangeListener(IResourceChangeListener)
public java.util.Map<ResourceChangeDispatcher.ResourceChangeDispatchPhase,java.util.Collection<ResourceChangeDispatcher.ResourceChangeListenerDescriptor>> getResourceChangeListeners()
public void removeResourceChangeListener(org.eclipse.core.resources.IResourceChangeListener listener)
listener
- the listenerIResourceChangeListener
,
#addResourceChangeListener(IResourceChangeListener)