public abstract class WorkingCopyReconciler
extends org.eclipse.jface.text.reconciler.AbstractReconciler
Constructor and Description |
---|
WorkingCopyReconciler(IWorkingCopyManager workingCopyManager)
Creates a new working copy reconciler with the given working copy manager.
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
addElementChangeListener(IElementChangeListener listener)
Registers the given element change listener with the underlying model.
|
protected void |
elementChanged(IElementChangeEvent event)
Notifies that this reconciler is affected in some way
by the given element change event.
|
protected void |
forceReconciling() |
protected java.lang.Object |
getReconcilerLock()
Returns the mutex for this reconciler.
|
org.eclipse.jface.text.reconciler.IReconcilingStrategy |
getReconcilingStrategy(java.lang.String contentType) |
protected void |
initialProcess() |
void |
install(org.eclipse.jface.text.ITextViewer textViewer) |
protected boolean |
isActive()
Returns whether this reconciler is currently active.
|
protected boolean |
isAffectedBy(IElementChangeEvent event)
Returns whether this reconciler is affected in some way
by the given element change event.
|
protected boolean |
isAffectedBy(IElementDelta delta,
ISourceFile workingCopy)
Returns whether this reconciler is affected by the given element delta
with regard to the given working copy.
|
protected void |
process(org.eclipse.jface.text.reconciler.DirtyRegion dirtyRegion) |
protected void |
reconcilerDocumentChanged(org.eclipse.jface.text.IDocument newDocument) |
protected abstract void |
removeElementChangeListener(IElementChangeListener listener)
Removes the given element change listener from the underlying model.
|
protected void |
setActive(boolean active)
Indicates a change in the active state of this reconciler.
|
void |
setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor monitor) |
void |
setReconcilingStrategy(org.eclipse.jface.text.reconciler.IReconcilingStrategy strategy)
Sets the reconciling strategy that is to be used by this reconciler.
|
void |
uninstall() |
aboutToBeReconciled, getDocument, getProgressMonitor, getTextViewer, isIncrementalReconciler, isRunningInReconcilerThread, reconcilerReset, setDelay, setIsAllowedToModifyDocument, setIsIncrementalReconciler, startReconciling
public WorkingCopyReconciler(IWorkingCopyManager workingCopyManager)
WorkingCopyReconcilingStrategy
)
that is used irrespective of where a dirty region is located in the
reconciler's document.workingCopyManager
- not null
public void setReconcilingStrategy(org.eclipse.jface.text.reconciler.IReconcilingStrategy strategy)
strategy
- not null
public void setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor monitor)
setProgressMonitor
in class org.eclipse.jface.text.reconciler.AbstractReconciler
public void install(org.eclipse.jface.text.ITextViewer textViewer)
WorkingCopyReconciler
extends this method to register
an
element change listener that notifies
when a change in the underlying model affects
the reconciler in some way, and also
to register a shell listener that sets
the active state of the reconciler when the reconciler's text viewer
is activated or deactivated.
install
in interface org.eclipse.jface.text.reconciler.IReconciler
install
in class org.eclipse.jface.text.reconciler.AbstractReconciler
public void uninstall()
uninstall
in interface org.eclipse.jface.text.reconciler.IReconciler
uninstall
in class org.eclipse.jface.text.reconciler.AbstractReconciler
public org.eclipse.jface.text.reconciler.IReconcilingStrategy getReconcilingStrategy(java.lang.String contentType)
This implementation always returns the single strategy of this reconciler.
protected void initialProcess()
If the reconciling strategy of this reconciler supports
IReconcilingStrategyExtension
, this implementation
invokes initialReconcile()
on the strategy under the reconciler's
lock
.
initialProcess
in class org.eclipse.jface.text.reconciler.AbstractReconciler
protected void process(org.eclipse.jface.text.reconciler.DirtyRegion dirtyRegion)
process
in class org.eclipse.jface.text.reconciler.AbstractReconciler
protected void forceReconciling()
forceReconciling
in class org.eclipse.jface.text.reconciler.AbstractReconciler
protected void reconcilerDocumentChanged(org.eclipse.jface.text.IDocument newDocument)
reconcilerDocumentChanged
in class org.eclipse.jface.text.reconciler.AbstractReconciler
protected java.lang.Object getReconcilerLock()
Default implementation returns this
. Subclasses may override.
null
)protected abstract void addElementChangeListener(IElementChangeListener listener)
listener
- never null
protected abstract void removeElementChangeListener(IElementChangeListener listener)
listener
- never null
protected boolean isAffectedBy(IElementChangeEvent event)
This implementation delegates to isAffectedBy(IElementDelta,
ISourceFile)
, passing the working copy for the reconciler's document.
event
- never null
true
if the reconciler is affected
by the given element change event, and false
otherwiseprotected boolean isAffectedBy(IElementDelta delta, ISourceFile workingCopy)
delta
- never null
workingCopy
- may be null
true
if the reconciler is affected
by the given delta, and false
otherwiseprotected void elementChanged(IElementChangeEvent event)
Note: This method may be called in any thread. The event object (and the deltas within it) is valid only for the duration of the invocation of this method.
This implementation schedules a runnable to execute on the UI thread,
to synchronize with setActive(boolean)
. The runnable will force
reconciling if the reconciler is active at that time; it will also record
the fact that a significant change occurred in the underlying model.
event
- never null
protected boolean isActive()
true
if this reconciler is currently active,
and false
otherwiseprotected void setActive(boolean active)
This implementation sets the active state of the reconciler to the given value. Also, it forces reconciling if a significant model change occurred while the reconciler was not active.
active
- the boolean value to set for the reconciler active stateCopyright (c) 2014, 2018 1C-Soft LLC and others. Made available under the Eclipse Public License 2.0