如何将FolderLayout的大小设置为绝对值而不是比率

时间:2011-07-09 18:43:45

标签: eclipse eclipse-rcp

我正在开发RCP应用程序,我有一个在透视中定义FolderLayout大小的问题。由于API要求我将大小设置为比率,因此当我手动调整工作台大小时,文件夹的大小会不断变化。 有没有办法设置文件夹布局的绝对大小或最大大小?它就像Eclipse中的Java浏览器视图一样,当我们扩展或缩短主工作台大小时,它的宽度不会改变。

谢谢,

1 个答案:

答案 0 :(得分:3)

您需要在ViewPart中响应ISizeProvider适配器,如下面的代码所示:

public Object getAdapter(Class adapter) {
    if (ISizeProvider.class == adapter) {
        return new ISizeProvider() {
            public int getSizeFlags(boolean width) {
                return SWT.MIN | SWT.MAX | SWT.FILL;
            }

            public int computePreferredSize(boolean width, int availableParallel, int availablePerpendicular, int preferredResult) {
                return width ? 600 : preferredResult;
            }
        };
    }
    return super.getAdapter(adapter);
}

这样可以通过宽度固定视图,让高度变得灵活。对于固定高度,将preferedResult替换为所需值。

另请注意,将该部分移动到已包含其他视图部分的另一个视图堆栈文件夹可能会消除固定大小效果,因此使视图部分也不可移动是有意义的[IViewLayout.setMoveable(boolean)]

干杯, 最大