org.eclipse.jface.text.reconciler
Class AbstractReconciler
java.lang.Object
org.eclipse.jface.text.reconciler.AbstractReconciler
-
All Implemented Interfaces:
-
IReconciler
-
Direct Known Subclasses:
-
MonoReconciler,
Reconciler
-
public abstract class AbstractReconciler
- extends
Object
- implements
IReconciler
Abstract implementation of
IReconciler
. The reconciler
listens to input document changes as well as changes of
the input document of the text viewer it is installed on. Depending on
its configuration it manages the received change notifications in a
queue folding neighboring or overlapping changes together. The reconciler
processes the dirty regions as a background activity after having waited for further
changes for the configured duration of time. A reconciler is started using the
install(ITextViewer)
method. As a first step
initialProcess()
is
executed in the background. Then, the reconciling thread waits for changes that
need to be reconciled. A reconciler can be resumed by calling
forceReconciling()
independent from the existence of actual changes. This mechanism is for subclasses only.
It is the clients responsibility to stop a reconciler using its
uninstall()
method. Unstopped reconcilers do not free their resources.
It is subclass responsibility to specify how dirty regions are processed.
-
Since:
- 2.0
-
See Also:
-
IDocumentListener
,
ITextInputListener
,
DirtyRegion
Constructor Summary
|
protected
|
AbstractReconciler
()
Creates a new reconciler without configuring it. |
Method Summary
|
protected void
|
aboutToBeReconciled
()
Hook for subclasses which want to perform some
action as soon as reconciliation is needed. |
protected void
|
forceReconciling
()
Forces the reconciler to reconcile the structure of the whole document. |
protected
IDocument
|
getDocument
()
Returns the input document of the text viewer this reconciler is installed on. |
protected
IProgressMonitor
|
getProgressMonitor
()
Returns the progress monitor of this reconciler. |
protected
ITextViewer
|
getTextViewer
()
Returns the text viewer this reconciler is installed on. |
protected void
|
initialProcess
()
This method is called on startup of the background activity. |
void
|
install
(
ITextViewer textViewer)
Installs the reconciler on the given text viewer. |
protected boolean
|
isIncrementalReconciler
()
Returns whether any of the reconciling strategies is interested in
detailed dirty region information. |
protected boolean
|
isRunningInReconcilerThread
()
Tells whether the code is running in this reconciler's
background thread. |
protected abstract void
|
process
(
DirtyRegion dirtyRegion)
Processes a dirty region. |
protected abstract void
|
reconcilerDocumentChanged
(
IDocument newDocument)
Hook called when the document whose contents should be reconciled
has been changed, i.e., the input document of the text viewer this
reconciler is installed on. |
protected void
|
reconcilerReset
()
Hook that is called after the reconciler thread has been reset. |
void
|
setDelay
(int delay)
Tells the reconciler how long it should wait for further text changes before
activating the appropriate reconciling strategies. |
void
|
setIsAllowedToModifyDocument
(boolean isAllowedToModify)
Tells the reconciler whether it is allowed to change the document
inside its reconciler thread. |
void
|
setIsIncrementalReconciler
(boolean isIncremental)
Tells the reconciler whether any of the available reconciling strategies
is interested in getting detailed dirty region information or just in the
fact that the document has been changed. |
void
|
setProgressMonitor
(
IProgressMonitor monitor)
Sets the progress monitor of this reconciler. |
protected void
|
startReconciling
()
Starts the reconciler to reconcile the queued dirty-regions. |
void
|
uninstall
()
Removes the reconciler from the text viewer it has
previously been installed on. |
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
AbstractReconciler
protected AbstractReconciler()
- Creates a new reconciler without configuring it.
process
protected abstract void process(
DirtyRegion dirtyRegion)
- Processes a dirty region. If the dirty region is
null
the whole
document is consider being dirty. The dirty region is partitioned by the
document and each partition is handed over to a reconciling strategy registered
for the partition's content type.
-
-
-
Parameters:
-
dirtyRegion
- the dirty region to be processed
reconcilerDocumentChanged
protected abstract void reconcilerDocumentChanged(
IDocument newDocument)
- Hook called when the document whose contents should be reconciled
has been changed, i.e., the input document of the text viewer this
reconciler is installed on. Usually, subclasses use this hook to
inform all their reconciling strategies about the change.
-
-
-
Parameters:
-
newDocument
- the new reconciler document
setDelay
public void setDelay(int delay)
- Tells the reconciler how long it should wait for further text changes before
activating the appropriate reconciling strategies.
-
-
-
Parameters:
-
delay
- the duration in milliseconds of a change collection period.
setIsIncrementalReconciler
public void setIsIncrementalReconciler(boolean isIncremental)
- Tells the reconciler whether any of the available reconciling strategies
is interested in getting detailed dirty region information or just in the
fact that the document has been changed. In the second case, the reconciling
can not incrementally be pursued.
-
-
-
Parameters:
-
isIncremental
- indicates whether this reconciler will be configured with
incremental reconciling strategies -
See Also:
-
DirtyRegion
,
IReconcilingStrategy
setIsAllowedToModifyDocument
public void setIsAllowedToModifyDocument(boolean isAllowedToModify)
- Tells the reconciler whether it is allowed to change the document
inside its reconciler thread.
If this is set to false
an
UnsupportedOperationException
will be thrown when this restriction will be violated.
-
-
-
Parameters:
-
isAllowedToModify
- indicates whether this reconciler is allowed to modify the document -
Since:
- 3.2
setProgressMonitor
public void setProgressMonitor(
IProgressMonitor monitor)
- Sets the progress monitor of this reconciler.
-
-
-
Parameters:
-
monitor
- the monitor to be used
isIncrementalReconciler
protected boolean isIncrementalReconciler()
- Returns whether any of the reconciling strategies is interested in
detailed dirty region information.
-
-
-
Returns:
- whether this reconciler is incremental
-
See Also:
-
IReconcilingStrategy
getDocument
protected
IDocument getDocument()
- Returns the input document of the text viewer this reconciler is installed on.
-
-
-
Returns:
- the reconciler document
getTextViewer
protected
ITextViewer getTextViewer()
- Returns the text viewer this reconciler is installed on.
-
-
-
Returns:
- the text viewer this reconciler is installed on
getProgressMonitor
protected
IProgressMonitor getProgressMonitor()
- Returns the progress monitor of this reconciler.
-
-
-
Returns:
- the progress monitor of this reconciler
install
public void install(
ITextViewer textViewer)
-
Description copied from interface:
IReconciler
- Installs the reconciler on the given text viewer. After this method has been
finished, the reconciler is operational, i.e., it works without requesting
further client actions until
uninstall
is called.
-
-
Specified by:
-
install
in interface
IReconciler
-
-
Parameters:
-
textViewer
- the viewer on which the reconciler is installed
uninstall
public void uninstall()
-
Description copied from interface:
IReconciler
- Removes the reconciler from the text viewer it has
previously been installed on.
-
-
Specified by:
-
uninstall
in interface
IReconciler
-
aboutToBeReconciled
protected void aboutToBeReconciled()
- Hook for subclasses which want to perform some
action as soon as reconciliation is needed.
Default implementation is to do nothing.
-
-
-
Since:
- 3.0
initialProcess
protected void initialProcess()
- This method is called on startup of the background activity. It is called only
once during the life time of the reconciler. Clients may reimplement this method.
-
-
forceReconciling
protected void forceReconciling()
- Forces the reconciler to reconcile the structure of the whole document.
Clients may extend this method.
-
-
startReconciling
protected void startReconciling()
- Starts the reconciler to reconcile the queued dirty-regions.
Clients may extend this method.
-
-
reconcilerReset
protected void reconcilerReset()
- Hook that is called after the reconciler thread has been reset.
-
-
isRunningInReconcilerThread
protected boolean isRunningInReconcilerThread()
- Tells whether the code is running in this reconciler's
background thread.
-
-
-
Returns:
-
true
if running in this reconciler's background thread -
Since:
- 3.4
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.