/*
?* Author: David Corbin
?*
?* Copyright (c) 2005 RubyPeople.
?*
?* This file is part of the Ruby Development Tools (RDT) plugin for eclipse.
* RDT is subject to the "Common Public License (CPL) v 1.0". You may not use
* RDT except in compliance with the License. For further information see
* org.rubypeople.rdt/rdt.license.
?*/
package org.rubypeople.rdt.internal.ui.util;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.ui.texteditor.ITextEditor;
public class LineBasedEditorOpener extends EditorOpener {
private final int lineNumber;
public LineBasedEditorOpener(String filename, int lineNumber) {
super(filename);
this.lineNumber = lineNumber;
}
protected void setEditorPosition(ITextEditor editor) {
try {
if (lineNumber > 0) {
IDocument document= editor.getDocumentProvider().getDocument(editor.getEditorInput());
int offset = document.getLineOffset(lineNumber-1);
int length = document.getLineLength(lineNumber-1);
editor.selectAndReveal(offset, length);
}
} catch (BadLocationException doNothing) {
}
}
}