IStatusLineManager statusLine= getStatusLineManager();
	public final  void run() {		ITextSelection ts= getTextSelection();		final CompilationUnit root= createAST();		IStatusLineManager statusLine= getStatusLineManager();		if (root == null) {			if (statusLine != null)				statusLine.setErrorMessage(SearchMessages.getString("SearchUsagesInFileAction.cannotParse.text")); //$NON-NLS-1$			return;		}		ASTNode node= NodeFinder.perform(root, ts.getOffset(), ts.getLength());				if (!(node instanceof Name)) {			if (statusLine != null)				statusLine.setErrorMessage(SearchMessages.getString("SearchUsagesInFileAction.noJavaElement.text")); //$NON-NLS-1$			return;		}				final Name name= (Name)node;		final IBinding target= name.resolveBinding();				if (target == null)			return;				final IWorkspaceRunnable runnable= new IWorkspaceRunnable() {			public void run(IProgressMonitor monitor) throws CoreException {				IJavaElement element= getInput();				ISearchResultView view= startSearch(element.getElementName(), name);				NameUsagesFinder finder= new NameUsagesFinder(target);				root.accept(finder);				List matches= finder.getUsages();				List writeMatches= finder.getWriteUsages();				IResource file= getResource(element);								for (Iterator each= matches.iterator(); each.hasNext();) {					ASTNode node= (ASTNode) each.next();					addMatch(						view, 						file, 						createMarker(file, node, writeMatches.contains(node), 						target instanceof IVariableBinding)					);				}				searchFinished(view);			}		};		run(runnable);	}