Eclipse插件 - 在Eclipse中打开编辑器的通知 [英] Eclipse Plugin - Notification of when an editor is opened in Eclipse
问题描述
我希望在Eclipse中打开编辑器时收到通知。
I want to get notified when an editor is opened in Eclipse. What is the best way to do that?
推荐答案
从这个线程
有你的课实现
org.eclipse.ui.IPartListener2
。
然后,当工作台部分(IEditorPart
等)刚刚打开/关闭。您可以实际过滤出您想要注意哪些部分。
Have your class implement
org.eclipse.ui.IPartListener2
.
Then you get notified when a workbench part (anIEditorPart
, etc.) just got opened/closed. You can actually filter out which parts you want to pay attention to.
(注意:从3.5开始,IPartListener2也可以实现 IPageChangedListener
被通知有关实现 IPageChangeProvider
和post PageChangedEvents
。)
(note: As of 3.5, the IPartListener2 can also implement IPageChangedListener
to be notified about any parts that implement IPageChangeProvider
and post PageChangedEvents
.)
棘手的部分(没有双关语)是将听众注册到工作台。
The tricky part (no pun intended) is to register the listener to workbench.
所以,首先要做的是获得一个有效的 IWorkbenchPage
,这样你可以调用$ code> IWorkbenchPage.addPartListener(<你的类实现IPartListener>)。
So, the first thing to do is get a valid IWorkbenchPage
so that you can call IWorkbenchPage.addPartListener(<your class that implements IPartListener>)
.
以下是如何获取工作台页面。
Here is how to get a workbench page.
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;
}
}
}
另请参见 here 。
请参阅此课程为一个例子
IPartListener2 partlistener = new IPartListener2(){
public void partActivated( IWorkbenchPartReference partRef ) {
if (partRef.getPart(false) == MapEditor.this){
registerFeatureFlasher();
ApplicationGIS.getToolManager().setCurrentEditor(editor);
}
}
[...]
或这个通用的 PartListener ,用于PartListener2的一般用法。
Or this generic PartListener for generic usage of a PartListener2.
这篇关于Eclipse插件 - 在Eclipse中打开编辑器的通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!