Eclipse插件 - 在Eclipse中打开编辑器时的通知

3 java eclipse plugins editor

我希望在Eclipse中打开编辑器时收到通知.最好的方法是什么?

Von*_*onC 7

这个线程

让你的班级实施org.eclipse.ui.IPartListener2.
然后,当工作台部件(IEditorPart等等)刚刚打开/关闭时,您会收到通知.您实际上可以过滤掉您想要注意的部分.

(注意:从3.5开始,IPartListener2还可以实现IPageChangedListener通知任何实现IPageChangeProvider和发布的部分PageChangedEvents.)

棘手的部分(没有双关语)是将监听器注册到工作台.

所以,要做的第一件事是获得有效的,IWorkbenchPage以便你可以打电话IWorkbenchPage.addPartListener(<your class that implements IPartListener>).

以下是如何获取工作台页面.

IWorkbenchPage page = null;
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window != null)
{
    page = window.getActivePage();
}

if (page == null)
{
    // Look for a window and get the page off it!
    IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
    for (int i = 0; i < windows.length; i++)
    {
        if (windows[i] != null)
        {
            window = windows[i];
            page = windows[i].getActivePage();
            if (page != null)
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

另见这里.


此类为例

IPartListener2 partlistener = new IPartListener2(){
        public void partActivated( IWorkbenchPartReference partRef ) {
            if (partRef.getPart(false) == MapEditor.this){
                registerFeatureFlasher();
                ApplicationGIS.getToolManager().setCurrentEditor(editor);
            }
        }
 [...]
Run Code Online (Sandbox Code Playgroud)

或者这个通用的PartListener用于PartListener2的通用用法.

或者这个EditorTracker