} catch (JavaModelException e) {  JavaPlugin.log(e.getStatus()); return -1; }
return offset;
		public int getOffset() {			try {				IJavaElement newElement= getElement();				if (newElement == null)					return -1;								IDocument document= getSourceViewer().getDocument();				int newElementLine= -1;				if (newElement instanceof IMember) {					ISourceRange range= ((IMember) newElement).getNameRange();					if (range != null)						newElementLine= document.getLineOfOffset(range.getOffset());				}				if (newElementLine == -1)					newElementLine= document.getLineOfOffset(getOffset(newElement));				if (newElementLine == -1)					return -1;				int newLine= fLine + newElementLine - fElementLine;				if (newLine < 0 || newLine >= document.getNumberOfLines())					return -1;				int maxColumn= document.getLineLength(newLine);				String lineDelimiter= document.getLineDelimiter(newLine);				if (lineDelimiter != null)					maxColumn= maxColumn - lineDelimiter.length();				int offset;				if (fColumn > maxColumn)					offset= document.getLineOffset(newLine) + maxColumn;				else					offset= document.getLineOffset(newLine) + fColumn;				if (!containsOffset(newElement, offset) && (offset == 0 || !containsOffset(newElement, offset - 1)))					return -1;								return offset;			} catch (BadLocationException e) {				// should not happen				JavaPlugin.log(e);				return -1;			} catch (JavaModelException e) {				// should not happen				JavaPlugin.log(e.getStatus());				return -1;			}		}