@Override public void inputDocumentChanged(IDocument oldInput, IDocument newInput) { fDocument= newInput; if (fDocument == null) return; reconcilerDocumentChanged(fDocument); fDocument.addDocumentListener(this); if (!fThread.isDirty()) aboutToBeReconciled(); startReconciling(); } }
/** * Reset the background thread as the text viewer has been changed, */ public void reset() { if (fDelay > 0) { synchronized (this) { fIsDirty= true; fReset= true; } } else { synchronized (this) { fIsDirty= true; } synchronized (fDirtyRegionQueue) { fDirtyRegionQueue.notifyAll(); } } reconcilerReset(); }
@Override public void setProgressMonitor(IProgressMonitor monitor) { super.setProgressMonitor(monitor); if (fStrategy instanceof IReconcilingStrategyExtension) { IReconcilingStrategyExtension extension= (IReconcilingStrategyExtension) fStrategy; extension.setProgressMonitor(monitor); } }
/** * Forces the reconciler to reconcile the structure of the whole document. * Clients may extend this method. */ protected void forceReconciling() { if (fDocument != null) { if (!fThread.isDirty()&& fThread.isAlive()) aboutToBeReconciled(); if (fThread.isActive()) fProgressMonitor.setCanceled(true); if (fIsIncrementalReconciler) { DocumentEvent e= new DocumentEvent(fDocument, 0, fDocument.getLength(), fDocument.get()); createDirtyRegion(e); } startReconciling(); } }
@Override public void documentChanged(DocumentEvent e) { if (fThread.isActive() || !fThread.isDirty() && fThread.isAlive()) { if (!fIsAllowedToModifyDocument && Thread.currentThread() == fThread) throw new UnsupportedOperationException("The reconciler thread is not allowed to modify the document"); //$NON-NLS-1$ aboutToBeReconciled(); } /* * The second OR condition handles the case when the document * gets changed while still inside initialProcess(). */ if (fThread.isActive() || fThread.isDirty() && fThread.isAlive()) fProgressMonitor.setCanceled(true); if (fIsIncrementalReconciler) createDirtyRegion(e); fThread.reset(); }
@Override public IReconciler getReconciler(ISourceViewer sourceViewer) { if (fSourcePage != null && fReconciler == null) { IBaseModel model = fSourcePage.getInputContext().getModel(); if (model instanceof IReconcilingParticipant) { ReconcilingStrategy strategy = new ReconcilingStrategy(); strategy.addParticipant((IReconcilingParticipant) model); ISortableContentOutlinePage outline = fSourcePage.getContentOutline(); if (outline instanceof IReconcilingParticipant) strategy.addParticipant((IReconcilingParticipant) outline); fReconciler = new MonoReconciler(strategy, false); fReconciler.setDelay(500); } } return fReconciler; }
/** * Forces the reconciler to reconcile the structure of the whole document. * Clients may extend this method. */ protected void forceReconciling() { if (fDocument != null) { if (!fThread.isDirty()&& fThread.isAlive()) aboutToBeReconciled(); if (fThread.isActive()) fProgressMonitor.setCanceled(true); if (fIsIncrementalReconciler) { DocumentEvent e= new DocumentEvent(fDocument, 0, fDocument.getLength(), fDocument.get()); createDirtyRegion(e); } startReconciling(); } }
@Override public void documentChanged(DocumentEvent e) { if (fThread.isActive() || !fThread.isDirty() && fThread.isAlive()) { if (!fIsAllowedToModifyDocument && Thread.currentThread() == fThread) throw new UnsupportedOperationException("The reconciler thread is not allowed to modify the document"); //$NON-NLS-1$ aboutToBeReconciled(); } /* * The second OR condition handles the case when the document * gets changed while still inside initialProcess(). */ if (fThread.isActive() || fThread.isDirty() && fThread.isAlive()) fProgressMonitor.setCanceled(true); if (fIsIncrementalReconciler) createDirtyRegion(e); fThread.reset(); }
@Override public void inputDocumentChanged(IDocument oldInput, IDocument newInput) { fDocument= newInput; if (fDocument == null) return; reconcilerDocumentChanged(fDocument); fDocument.addDocumentListener(this); if (!fThread.isDirty()) aboutToBeReconciled(); startReconciling(); } }
@Override public void setProgressMonitor(IProgressMonitor monitor) { super.setProgressMonitor(monitor); if (fStrategy instanceof IReconcilingStrategyExtension) { IReconcilingStrategyExtension extension= (IReconcilingStrategyExtension) fStrategy; extension.setProgressMonitor(monitor); } }
/** * Reset the background thread as the text viewer has been changed, */ public void reset() { if (fDelay > 0) { synchronized (this) { fIsDirty= true; fReset= true; } } else { synchronized (this) { fIsDirty= true; } synchronized (fDirtyRegionQueue) { fDirtyRegionQueue.notifyAll(); } } reconcilerReset(); }
@Override public void setProgressMonitor(IProgressMonitor monitor) { super.setProgressMonitor(monitor); if (fStrategies != null) { Iterator<IReconcilingStrategy> e= fStrategies.values().iterator(); while (e.hasNext()) { IReconcilingStrategy strategy= e.next(); if (strategy instanceof IReconcilingStrategyExtension) { IReconcilingStrategyExtension extension= (IReconcilingStrategyExtension) strategy; extension.setProgressMonitor(monitor); } } } }
@Override public void setProgressMonitor(IProgressMonitor monitor) { super.setProgressMonitor(monitor); if (fStrategies != null) { Iterator<IReconcilingStrategy> e= fStrategies.values().iterator(); while (e.hasNext()) { IReconcilingStrategy strategy= e.next(); if (strategy instanceof IReconcilingStrategyExtension) { IReconcilingStrategyExtension extension= (IReconcilingStrategyExtension) strategy; extension.setProgressMonitor(monitor); } } } }