从这个线程
让你的班级实施
org.eclipse.ui.IPartListener2
.
然后,当工作台部件(IEditorPart
等等)刚刚打开/关闭时,您会收到通知.您实际上可以过滤掉您想要注意的部分.
(注意:从3.5开始,IPartListener2还可以实现IPageChangedListener
通知任何实现IPageChangeProvider
和发布的部分PageChangedEvents
.)
棘手的部分(没有双关语)是将监听器注册到工作台.
所以,要做的第一件事是获得有效的,
IWorkbenchPage
以便你可以打电话IWorkbenchPage.addPartListener(<your class that implements IPartListener>)
.
以下是如何获取工作台页面.
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
另见这里.
以此类为例
IPartListener2 partlistener = new IPartListener2(){
public void partActivated( IWorkbenchPartReference partRef ) {
if (partRef.getPart(false) == MapEditor.this){
registerFeatureFlasher();
ApplicationGIS.getToolManager().setCurrentEditor(editor);
}
}
[...]
Run Code Online (Sandbox Code Playgroud)
或者这个通用的PartListener用于PartListener2的通用用法.
或者这个EditorTracker
归档时间: |
|
查看次数: |
1742 次 |
最近记录: |