SWT中不同大小的视图

时间:2012-09-10 15:57:04

标签: java swt eclipse-rcp

我正在努力在SWT中提出一个观点。为简单起见,它没有编辑器,只有一个或多个视图。默认视图应默认采用整个查看器区域(可以最大化但不必是),而不打开其他查看器。用户输入可以打开或不打开少量(2-3)个其他视图。当它们被打开时,默认视图应占用屏幕空间的约75%,其他堆叠占用约25%。

我的视图始终设置为隐藏的名为anchor。默认值与此锚点左侧相关。其他视图与此锚点相关联。

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

我的问题:

  1. 使用“锚”是一个好的模式还是有更好的东西?
  2. 如何在一个视图打开和多个视图之间进行此条件切换?
  3. 谢谢!

    中号

2 个答案:

答案 0 :(得分: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%等等。

也许您可以将此作为起点。

答案 1 :(得分:-1)

这是SWT还是RCP插件...如果您正在使用视图& perspectives ..然后是一个RCP插件。在RCP中,将始终为编辑器保留默认空间(“org.eclipse.ui.editorss”)。你能做的最好的事情就是尽量减少它..但它始终存在