0

存在阻止设置 CellBrowser 小部件的第一列宽度的错误。还有一个解决方法,解释here

http://groups.google.com/group/google-web-toolkit/browse_thread/thread/4fc39b5805833ea2

显然它可以工作,但是任何人都可以解释如何对 CellBrowser 进行子类化以使其工作吗?请给我看一些代码。

4

1 回答 1

0
    CellBrowser cellBrowser = new CellBrowser(model, null) {

        // HACK: workaround for setDefaultColumnWidth not setting the width of the first column!
        // SEE: https://groups.google.com/forum/?pli=1#!topic/google-web-toolkit/T8Ob...

        public void setDefaultColumnWidth(int width) {
            super.setDefaultColumnWidth(width);
             SplitLayoutPanel splitPanel =  (SplitLayoutPanel) getWidget();
             splitPanel.setWidgetSize(splitPanel.getWidget(0), width);
        }
    };

    cellBrowser.setDefaultColumnWidth(300);   

如果您想要一个带有此修复的可重用类(这可能是一个好主意),将这个匿名子类转换为常规子类很简单:

    public class FixedCellBrowser<T> extends CellBrowser<T> {

        public FixedCellBrowser(TreeViewModel model, T root) {
            super(model, root);
        }

        public void setDefaultColumnWidth(int width) {
            super.setDefaultColumnWidth(width);
             SplitLayoutPanel splitPanel =  (SplitLayoutPanel) getWidget();
             splitPanel.setWidgetSize(splitPanel.getWidget(0), width);
        }
    }

(注意:我没有尝试编译此代码。)

于 2011-11-11T16:34:57.820 回答