SWT / JFace最小化/最大化EditorArea

时间:2012-01-19 16:30:11

标签: swt jface rcp

我没有找到任何以编程方式最小化/最大化的功能。 当所有编辑都关闭时,我想最小化我的editorArea。 有什么建议吗?

提前致谢。

3 个答案:

答案 0 :(得分:3)

我找到了一种解决方法来最小化editorArea。这不是很好,但它正在做这项工作。

      WorkbenchPage page = (WorkbenchPage)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
  IEditorReference[] editorReferences = page.getEditorReferences();
  if(editorReferences.length==0){
     page.getActivePerspective().setEditorAreaState(IStackPresentationSite.STATE_MINIMIZED);    
  }

我真的不喜欢那个演员,但我不能得到具体的课程。 有任何改进建议吗?

答案 1 :(得分:2)

您可以使用IWorkbenchPage显示/隐藏编辑区。setEditorAreaVisible()。您可以通过向窗口添加IPerspectiveListener来执行此操作。

public void perspectiveChanged(IWorkbenchPage page,
        IPerspectiveDescriptor perspective, String changeId) {
    if (changeId == IWorkbenchPage.CHANGE_EDITOR_CLOSE) {
        if (page.isEditorAreaVisible() && page.getEditorReferences().length == 0)
            page.setEditorAreaVisible(false);
    }
}

虽然也可以使用页面的setPartState()方法最小化编辑器区域,但在关闭所有编辑器后无法完成此操作。即使最后一个编辑器引用在关闭编辑器事件处理程序中可用,对ILayoutContainer的引用也已被删除,因此不能用于更改状态。

答案 2 :(得分:0)

我在bugs.eclipse.com上发现了这个错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=29840但我找不到ZoomManagement。

相关问题