在我们的应用程序中,我们有 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 相关,因此您可以将此代码放置在 view1 插件的激活器中。当然,直到从 view1 插件加载一些代码后它才会显示。就像是:
Job job = new UIJob("Add Perspective listener") {
public IStatus runInUIThread(IProgressMonitor monitor) {
addPerspectiveListener();
return Status.OK_STATUS;
}
};
job.setSystem(true);
job.schedule();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)