public abstract class RefreshProvider
extends org.eclipse.core.internal.refresh.InternalRefreshProvider
org.eclipse.core.resources.refreshProviders
standard extension point.
All auto-refresh providers must subclass this class. A
RefreshProvider
is responsible for creating
IRefreshMonitor
objects. The provider must decide if
it is capable of monitoring the file, or folder and subtree under the path that is provided.
Note: since 3.12, all subclasses should override installMonitor(IResource, IRefreshResult, IProgressMonitor)
instead of installMonitor(IResource, IRefreshResult)
.
Constructor and Description |
---|
RefreshProvider() |
Modifier and Type | Method and Description |
---|---|
protected IRefreshMonitor |
createPollingMonitor(IResource resource)
Creates a new refresh monitor that performs naive polling of the resource
in the file system to detect changes.
|
IRefreshMonitor |
installMonitor(IResource resource,
IRefreshResult result)
Deprecated.
Subclasses should override and clients should call
installMonitor(IResource, IRefreshResult, IProgressMonitor) instead. |
IRefreshMonitor |
installMonitor(IResource resource,
IRefreshResult result,
IProgressMonitor progressMonitor)
Returns an
IRefreshMonitor that will monitor a resource. |
void |
resetMonitors(IResource resource)
Deprecated.
Subclasses should override and clients should call
resetMonitors(IResource, IProgressMonitor) instead. |
void |
resetMonitors(IResource resource,
IProgressMonitor progressMonitor)
Resets the installed monitors for the given resource.
|
protected IRefreshMonitor createPollingMonitor(IResource resource)
This default monitor can be returned by subclasses when
installMonitor
is called.
If the returned monitor is not immediately returned from the installMonitor
method, then clients are responsible for telling the returned monitor to
stop polling when it is no longer needed. The returned monitor can be told to
stop working by invoking IRefreshMonitor.unmonitor(IResource)
.
createPollingMonitor
in class org.eclipse.core.internal.refresh.InternalRefreshProvider
resource
- The resource to begin monitoringinstallMonitor(IResource, IRefreshResult)
@Deprecated public IRefreshMonitor installMonitor(IResource resource, IRefreshResult result)
installMonitor(IResource, IRefreshResult, IProgressMonitor)
instead.public IRefreshMonitor installMonitor(IResource resource, IRefreshResult result, IProgressMonitor progressMonitor)
IRefreshMonitor
that will monitor a resource. If
the resource is an IContainer
the monitor will also
monitor the subtree under the container. Returns null
if
this provider cannot create a monitor for the given resource. The
provider may return the same monitor instance that has been provided for
other resources.
The monitor should send results and failures to the provided refresh result.
resource
- the resource to monitorresult
- the result callback for notifying of failure or of resources that need
refreshingprogressMonitor
- the progress monitor to use for reporting progress to the user.
It is the caller's responsibility to call done() on the given monitor. Accepts null,
indicating that no progress should be reported and that the operation cannot be cancelled.null
if the resource cannot be monitoredcreatePollingMonitor(IResource)
@Deprecated public void resetMonitors(IResource resource)
resetMonitors(IResource, IProgressMonitor)
instead.public void resetMonitors(IResource resource, IProgressMonitor progressMonitor)
This method is intended to be used by refresh providers that need to change the refresh monitor that they previously used to monitor a resource.
resetMonitors
in class org.eclipse.core.internal.refresh.InternalRefreshProvider
resource
- The resource to reset the monitors forprogressMonitor
- the progress monitor to use for reporting progress to the user.
It is the caller's responsibility to call done() on the given monitor. Accepts null,
indicating that no progress should be reported and that the operation cannot be cancelled.
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.