【问题标题】:How to set size of FolderLayout as absolute value not ratio如何将 FolderLayout 的大小设置为绝对值而不是比率
【发布时间】:2011-07-09 18:43:45
【问题描述】:

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

谢谢,

【问题讨论】:

    标签: eclipse eclipse-rcp


    【解决方案1】:

    您需要在 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)]

    干杯, 最大

    【讨论】:

    • 仅适用于 Eclipse 3.x。在 Eclipse 4 中,永远不会使用 ISizeProvider.class 作为参数调用 getAdapter()。
    猜你喜欢
    • 2018-06-12
    • 2020-12-06
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多