if (source == null) return false;
	protected boolean setInput(Object input) {		if (fViewer == null || !(input instanceof ISourceReference))			return false;		String source;		try {			source= ((ISourceReference)input).getSource();		} catch (JavaModelException ex) {			return false;		}				source= removeLeadingComments(source);		String delim= null;		try {			if (input instanceof IJavaElement)			delim= StubUtility.getLineDelimiterUsed((IJavaElement)input);		} catch (JavaModelException e) {			delim= System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$		}		String[] sourceLines= Strings.convertIntoLines(source);		String firstLine= sourceLines[0];		if (!Character.isWhitespace(firstLine.charAt(0)))			sourceLines[0]= ""; //$NON-NLS-1$		CodeFormatterUtil.removeIndentation(sourceLines);		if (!Character.isWhitespace(firstLine.charAt(0)))			sourceLines[0]= firstLine;		source= source= Strings.concatenate(sourceLines, delim);		IDocument doc= new Document(source);		IDocumentPartitioner dp= JavaPlugin.getDefault().getJavaTextTools().createDocumentPartitioner();		if (dp != null) {			doc.setDocumentPartitioner(dp);			dp.connect(doc);		}		fViewer.setInput(doc);				return true;	}