1

我正在努力在 SWT 中布置一个视角。为简单起见,它没有编辑器,只有 1 个或多个视图。有一个默认视图应该在默认情况下占据整个查看器区域(可以最大化,但不是必须),没有其他查看器打开。有少量 (2-3) 个其他视图可能会或可能不会通过用户输入打开。当它们打开时,默认视图应占屏幕空间的约 75%,而其他堆叠的视图应占约 25%。

我有一个始终设置为不可见的视图,称为锚点。默认与此锚相关,如左。其他视图与此锚点相关作为堆栈。

这似乎工作正常,期待空间。默认情况下,我可以有 25% 的屏幕是空的,或者我几乎没有空间分配给辅助视图。

我的问题:

  1. 使用“锚”是一个好的模式还是有更好的模式?
  2. 我将如何在一个视图打开和多个视图之间进行这种有条件的切换?

谢谢!

4

2 回答 2

1

我不太确定我是否有你的问题,但这是我通常使用的:

public class PerspectiveExplore implements IPerspectiveFactory {

    public static final String ID = "UF.PerspectiveExplore";
    @Override
    public void createInitialLayout(IPageLayout layout) {
        String editorArea = layout.getEditorArea();
        layout.setEditorAreaVisible(false);

        IFolderLayout workflowSelection = layout.createFolder("Workflow Selection", IPageLayout.LEFT, 0.20f, editorArea);
        workflowSelection.addPlaceholder(WorkflowSelection.ID + ":*");
        workflowSelection.addView(WorkflowSelection.ID);

        IFolderLayout filter = layout.createFolder("Filter", IPageLayout.BOTTOM, 0.5f, WorkflowSelection.ID);
        filter.addPlaceholder(FilterView.ID + ":*");
        filter.addView(FilterView.ID);

        IFolderLayout resultSelection = layout.createFolder("Result Selection", IPageLayout.BOTTOM, 0.5f, editorArea);
        resultSelection.addPlaceholder(ResultSelection.ID + ":*");
        resultSelection.addView(ResultSelection.ID);

        IFolderLayout canvas = layout.createFolder("Plot", IPageLayout.TOP, 0.6f, ResultSelection.ID);
        canvas.addPlaceholder(Plot.ID + ":*");
        canvas.addView(Plot.ID);    
    }

}

这将创建一个具有相对大小的布局,即工作流选择位于左侧,占透视宽度的 20%。过滤器位于工作流选择下方,占高度的 50%,依此类推。

也许你可以以此为起点。

于 2012-09-10T18:07:24.957 回答
-1

这是 SWT 还是 RCP 插件……如果您使用的是视图和透视图……那么它是一个 RCP 插件。在 RCP 中,将始终为编辑器保留默认空间(“org.eclipse.ui.editorss”)。你能做的最好的就是最小化它..但它总是在那里

于 2012-09-10T16:03:32.527 回答