Eclipse插件 – 在Eclipse中打开编辑器时的通知
我希望在Eclipse中打开编辑器时收到通知。 最好的方法是什么?
从这个线程
让你的类实现
org.eclipse.ui.IPartListener2
。
然后,当工作台部件(IEditorPart
等)刚刚打开/关闭时,您会收到通知。 您实际上可以过滤掉您想要注意的部分。
(注意:从3.5开始,IPartListener2还可以实现IPageChangedListener
,以通知有关实现IPageChangeProvider
和发布PageChangedEvents
任何部分。)
棘手的部分(没有双关语)是将监听器注册到工作台。
因此,首先要做的是获取一个有效的
IWorkbenchPage
以便可以调用IWorkbenchPage.addPartListener(
。)
以下是如何获取工作台页面。
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; } } }
另见这里 。
以此类为例
IPartListener2 partlistener = new IPartListener2(){ public void partActivated( IWorkbenchPartReference partRef ) { if (partRef.getPart(false) == MapEditor.this){ registerFeatureFlasher(); ApplicationGIS.getToolManager().setCurrentEditor(editor); } } [...]
或者这个通用的PartListener用于PartListener2的通用用法。
或者这个EditorTracker