我正在编写一个Eclipse插件,向用户展示一个带有多个按钮的视图。当用户点击任何按钮时,我想将某些注释粘贴到编辑器窗口中,该窗口是用户当前正在工作并且光标位置指向的位置。
一旦用户点击按钮,编辑器窗口就不再具有焦点,以下代码将无法正常工作。
workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()
我该如何检测用户单击按钮之前所在的编辑器窗口以及光标位置?
我正在编写一个Eclipse插件,向用户展示一个带有多个按钮的视图。当用户点击任何按钮时,我想将某些注释粘贴到编辑器窗口中,该窗口是用户当前正在工作并且光标位置指向的位置。
一旦用户点击按钮,编辑器窗口就不再具有焦点,以下代码将无法正常工作。
workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()
使用 IPartListener
监听部件激活事件。
在视图初始化中设置监听器:
getSite().getPage().addPartListener(partListener);
(不要忘记在视图销毁时删除侦听器)。
除其他事项外,这将为您提供部分激活事件:
public void partActivated(IWorkbenchPart part)
part
是IEditorPart
的一个实例,那么它就是正在激活的编辑器。因此,您只需要跟踪这个已激活的编辑器即可。