如何将事件与Eclipse中页面中打开的所有编辑器相关联

时间:2014-11-21 21:14:02

标签: events eclipse-plugin abstract-syntax-tree

使用以下代码,我能够捕获eclipse中当前活动编辑器(First.java)中的所有关键事件

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor = page.getActiveEditor();
((StyledText)editor.getAdapter(org.eclipse.swt.widgets.Control.class)).addKeyListener(new KeyListener() {
        //code here 
   });

但是一旦我打开(激活)另一个编辑器(Second.java),就不会捕获关键事件。

enter image description here

如何在我在workbenchPage中打开的所有编辑器上捕获关键事件。

1 个答案:

答案 0 :(得分:1)

您可以使用IPartListener侦听对活动声部的更改,以便在声部变化时添加和删除您的侦听器:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

page.addPartListener(listener);

告知听众有关打开,关闭,激活和停用的部件。部分可能是视图或编辑。

注意:并非所有编辑都使用StyledText,因此您需要检查getAdapter返回的对象的类型。