编程语言
首页 > 编程语言> > java-如何添加透视侦听器

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