当前位置:  开发笔记 > Android > 正文

在Eclipse中打开新编辑器时如何收到通知?

如何解决《在Eclipse中打开新编辑器时如何收到通知?》经验,为你挑选了1个好方法。

我有一个想要通知所有当前打开的编辑器的视图.我在哪里可以添加一个监听器来实现这一目标?

我期待WorkbenchPage或EditorManager有一些适当的监听器注册表,但我找不到它.



1> VonC..:

你的观点是否使用org.eclipse.ui.IPartListener2

这就是使用这个EditorListener的东西,它的工作是对给定的视图作出反应,以编辑事件(包括打开和关闭)

public class EditorListener implements ISelectionListener, IFileBufferListener,
IPartListener2 {
    protected BytecodeOutlineView view;

    EditorListener(BytecodeOutlineView view){
        this.view = view;
    }

[...] 

    /**
     * @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
     */
    public void partOpened(IWorkbenchPartReference partRef) {
        view.handlePartVisible(partRef.getPart(false));
    }

现在,如果你ViewPart直接实现了IPartListener2,它可以将自己注册到各种各样的Editors,就像这样BytecodeReferenceView

public class BytecodeReferenceView extends ViewPart implements IPartListener2, ISelectionListener {

    [...]

    public void createPartControl(Composite parent) {
        browser = new Browser(parent, SWT.BORDER);
        browser.setText(BytecodeOutlinePlugin.getResourceString(NLS_PREFIX
            + "empty.selection.text"));
        final IWorkbenchWindow workbenchWindow = getSite().getWorkbenchWindow();
        workbenchWindow.getPartService().addPartListener(this);
    [...]

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有