Eclipse ui:检索编辑器的第一个可见行

时间:2014-08-07 12:14:13

标签: eclipse user-interface editor

在Eclipse UI中,我想在编辑器中设置可见区域。换句话说,如果我的文件的行数大于我的编辑器可以显示的行数,那么我想指定第一个显示的行。我的第一种方法是通过其垂直滚动条的选择值计算第一条可见线。以下链接指向我的初始问题。它的答案解释了如何在编辑器中设置第一个可见行。

eclipse ui: setting scrollbar but editor does not follow

现在的问题是我在编辑器中检索第一个可见行的初始方法在某些情况下失败:尽管我验证活动页面确实是编辑器,但焦点可能会分配给另一个页面。在这种情况下,以下代码生成不同页面的ScrollBar:

public static void update(final IWorkbenchWindow w)
    final Scrollable scrollable = 
        (Scrollable) w.getWorkbench().getDisplay().getFocusControl();
    final ScrollBar vScrollBar = scrollable.getVerticalBar();

所以,我的问题是:如果editor是活动编辑器(ITextEditorIReusableEditor)的引用,那么如何获得第一个可见行?

1 个答案:

答案 0 :(得分:0)

如果您可以访问编辑器ITextViewer或其扩展程序ISourceViewer(通常由SourceViewerTextViewer类实施),则可以调用ITextViewer.getTopIndex()方法得到顶线索引。

如果您的编辑器派生自AbstractTextEditor(或其子类之一,例如TextEditor),则会有一个返回此内容的受保护方法getSourceViewer()。如果要从编辑器外部访问此方法,则可能必须添加public方法。