我正在编写一个eclipse插件,它通过几个按钮向用户公开了一个视图。在单击任何按钮时,我想将某个注释粘贴到用户当前正在工作的编辑器窗口以及他指向的光标位置。
用户单击该按钮后,编辑器窗口将不再具有焦点,并且以下代码不起作用。
workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()
如何在用户点击按钮之前检测用户工作的编辑器窗口和光标位置?
答案 0 :(得分:5)
使用IPartListener
收听部分激活事件。
在视图初始化中设置监听器:
getSite().getPage().addPartListener(partListener);
(并且不要忘记在视图dispose中删除侦听器。)
除此之外,这将为您提供部分激活事件:
public void partActivated(IWorkbenchPart part)
如果part
是IEditorPart
的实例,那么它就是一个被激活的编辑器。所以你只需要跟踪这个激活的编辑器。