【问题标题】:SWT/JFace Minimize/Maximize EditorAreaSWT/JFace 最小化/最大化 EditorArea
【发布时间】:2012-01-19 16:30:10
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: swt jface rcp


    【解决方案1】:

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

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

    我真的不喜欢这种演员阵容,但我无法获得具体课程。 有什么改进的建议吗?

    【讨论】:

    • 这似乎是合理的,尽管我至少会在进行演员表之前检查从getActivePage() 返回的IWorkbenchPageWorkbenchPage 的一个实例。我意识到不太可能有人会费心实现IWorkbenchPage 而不扩展WorkbenchPage,但这是可能的。 (当然,除非您构建的 RCP 应用程序被限制在可以做出此保证的程度。)
    • setEditorAreaState() 是在Perspective 类中定义的,它也是internal,所以你无法绕过这个。
    【解决方案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 的引用已被删除,因此不能用于更改状态。

    【讨论】:

    • 首先感谢您的回答。当 EditorsReferences 长度为 0 时,我设法隐藏了编辑器区域。问题是我需要最小化它而不是隐藏它。
    • @Lori 是的,我明白了,但从可用性的角度来看,我看不出有什么不同。打开编辑器后,该区域将自动再次可见。
    • 我知道,我同意你的观点,但我的客户不同意我们中的任何一个:)。如果我找不到其他解决方案,我会使用这个。
    • 我想我将不得不采用这个解决方案。再次感谢
    • @Lori 您可以肯定地说,考虑到有合适的替代方案,这是不可行的。在我的回答中添加了评论。
    【解决方案3】:

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

    【讨论】:

    • 放大/缩小是最大化/恢复,而不是最小化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    相关资源
    最近更新 更多