监听被点击的文件 - Eclipse 插件
Listening for a file being clicked to - Eclipse Plugin
我正在尝试编写一个 Eclipse 插件,其中一个功能需要监听用户何时通过单击在编辑器中切换到另一个文件。
例如,考虑下面的屏幕截图。
我想知道当用户通过在 Project Explorer 中双击它或单击编辑器中的选项卡切换到 FakeClass.java
时如何监听。此外,我想获得有关被单击元素的信息。 请注意,我具体询问的是通过我上面询问的两种方式更改文件。
我是插件开发的初学者。考虑到这一点进行解释会很有帮助。谢谢
您可以使用 IPartListener
来监听部件的变化,包括正在激活的部件:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.addPartListener(listener);
监听器的partActivated
方法大概就是你想要的:
@Override
public void partActivated(final IWorkbenchPart part)
{
if (part instanceof IEditorPart) {
IEditorPart editor = (IEditorPart)part;
IEditorInput input = editor.getEditorInput();
IFile file = input.getAdapter(IFile.class);
if (file != null) {
// TODO handle file
}
}
}
我不知道有什么方法可以说明部件被激活的原因。
我正在尝试编写一个 Eclipse 插件,其中一个功能需要监听用户何时通过单击在编辑器中切换到另一个文件。
例如,考虑下面的屏幕截图。
我想知道当用户通过在 Project Explorer 中双击它或单击编辑器中的选项卡切换到 FakeClass.java
时如何监听。此外,我想获得有关被单击元素的信息。 请注意,我具体询问的是通过我上面询问的两种方式更改文件。
我是插件开发的初学者。考虑到这一点进行解释会很有帮助。谢谢
您可以使用 IPartListener
来监听部件的变化,包括正在激活的部件:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.addPartListener(listener);
监听器的partActivated
方法大概就是你想要的:
@Override
public void partActivated(final IWorkbenchPart part)
{
if (part instanceof IEditorPart) {
IEditorPart editor = (IEditorPart)part;
IEditorInput input = editor.getEditorInput();
IFile file = input.getAdapter(IFile.class);
if (file != null) {
// TODO handle file
}
}
}
我不知道有什么方法可以说明部件被激活的原因。