Bug 124569 [projection] expose projection model updater on JavaEditor
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java
ASTNode currentNode= (ASTNode)each.next();
			positions[i++]= new Position(currentNode.getStartPosition(), currentNode.getLength());
		}
		fOccurrencesFinderJob= new OccurrencesFinderJob(document, positions, selection);
		
		
		
		fOccurrencesFinderJob.run(new NullProgressMonitor());
	}
	protected void installOccurrencesFinder(boolean forceUpdate) {
		fMarkOccurrenceAnnotations= true;
		fPostSelectionListenerWithAST= new ISelectionListenerWithAST() {
			public void selectionChanged(IEditorPart part, ITextSelection selection, CompilationUnit astRoot) {
				updateOccurrenceAnnotations(selection, astRoot);
			}
		};
		SelectionListenerWithASTManager.getDefault().addListener(this, fPostSelectionListenerWithAST);
		if (forceUpdate && getSelectionProvider() != null) {
			fForcedMarkOccurrencesSelection= getSelectionProvider().getSelection();
			updateOccurrenceAnnotations((ITextSelection)fForcedMarkOccurrencesSelection, JavaPlugin.getDefault().getASTProvider().getAST(getInputJavaElement(), ASTProvider.WAIT_NO, getProgressMonitor()));
		}
		if (fOccurrencesFinderJobCanceler == null) {
			fOccurrencesFinderJobCanceler= new OccurrencesFinderJobCanceler();
			fOccurrencesFinderJobCanceler.install();
		}
	}
	protected void uninstallOccurrencesFinder() {
		fMarkOccurrenceAnnotations= false;
		if (fOccurrencesFinderJob != null) {
			fOccurrencesFinderJob.cancel();