java-如何添加透视侦听器
作者:互联网
在我们的应用程序中,我们有4个视图(视图1、2、3和4)和3个透视图(透视图1、2和3).
通过实现IPerspectivefactory来构建透视图,并通过扩展viewPart来构建视图.
我们面临的情况是,在选择任何透视图的情况下,我们都希望将焦点设置到特定视图.
例如,将“视图1”视为一个通用视图,该视图将显示在所有3个透视图下.每当选择任何透视图时,我们都希望将焦点设置为View1.
如何在视角中添加听众?
我们知道我们必须添加IPerspectiveListerner来侦听透视图更改,但是我们不确定在何处添加它,以便在IPerspectiveListener下实现的方法内获得执行控制.
解决方法:
您可以使用以下代码:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().addPerspectiveListener(new IPerspectiveListener() {
@Override
public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) {
try {
page.showView("...", null, IWorkbenchPage.VIEW_VISIBLE);
} catch (PartInitException ex) {
ex.printStackTrace();
}
}
@Override
public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
}
});
编辑:由于这是绑定到view1,您可以将此代码放置在activator中的view1插件.当然,只有从view1插件加载了一些代码后,它才会显示.就像是:
Job job = new UIJob("Add Perspective listener") {
public IStatus runInUIThread(IProgressMonitor monitor) {
addPerspectiveListener();
return Status.OK_STATUS;
}
};
job.setSystem(true);
job.schedule();
标签:eclipse-rcp,java 来源: https://codeday.me/bug/20191101/1985257.html