Eclipse:垂直标尺监听器从未调用过

时间:2012-06-19 16:09:44

标签: eclipse eclipse-plugin

我正在尝试在eclipse中实现垂直标尺监听器。我实现了IPartListener2接口,当打开java编辑器时,我注册了监听器。问题是当单击垂直标尺时,监听器永远不会被调用。如果我调用CompositeRuler.fireAnnotationSelected(),则会按预期调用侦听器。

我认为这可能是一个错误,但我想在填写bugzilla中的错误之前确定。有人能指出我做错了吗?

这是IPartListener2类:

public class EditorListener implements IPartListener2 {

    @Override
    public void partOpened(IWorkbenchPartReference partRef) {
        IWorkbenchPart part = partRef.getPart(true);
        if (part != null && part instanceof IEditorPart)
            configureJavaEditor((IEditorPart) part);
    }

    // other IPartListener2 methods...

    private void configureJavaEditor(IEditorPart editorPart) {
        Object obj = ((JavaEditor) editorPart).getAdapter(IVerticalRulerInfo.class);
        if (obj != null && obj instanceof IVerticalRulerInfoExtension) {
            ((IVerticalRulerInfoExtension) obj).addVerticalRulerListener(new VerticalRulerListener());
            if (obj instanceof CompositeRuler) 
                ((CompositeRuler) obj).fireAnnotationSelected(null); // -> listener called
        }
    }
}

垂直标尺监听器只打印正在调用的方法。

起初我以为这可能会发生,因为我使用JavaEditor来获取垂直标尺(不建议使用JavaEditor访问),所以我从JavaEditor更改为AbstractDecoratedTextEditor,这是编辑器类层次结构中的下一个类,但是问题仍然是一样的。我没有想法。什么是错的暗示?

0 个答案:

没有答案