为什么带有UiBinder的GWT Designer搞砸了这个简单的对话框?

时间:2012-11-13 21:09:27

标签: gwt uibinder gwt-designer

我正在使用Eclipse 3.7,GWT 2.5,Java 1.6和最新的GPE。我已经使用了UiBinder,现在我们正在考虑将GWT Designer用于我们的应用程序的下一个版本。我创建了一个基本的Web应用程序项目,让它生成示例代码。然后做了New-> GWT Designer-> GWT UiBinder->对话框。然后我添加了一个按钮来生成弹出窗口,以及对话框的大小和标题。这是小部件代码:

public class TestPopup extends DialogBox {

    private static final Binder binder = GWT.create(Binder.class);
    @UiField FlowPanel flowPanel;

    interface Binder extends UiBinder<Widget, TestPopup> {
    }

    public TestPopup() {
        setWidget(binder.createAndBindUi(this));
        setTitle("Test Popup Title");
        setPixelSize(400, 300);
    }

}

和相应的* ui.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
    <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'>
        <ui:style>
            .panel {
                padding: 5px;
                border: 5px solid cornflowerblue;
                background-color: Menu;
            }
        </ui:style>

        <g:FlowPanel styleName="{style.panel}" ui:field="flowPanel" width="100%" height="100%"/>
    </ui:UiBinder>

这就是结果。任何人都可以解释这些工具如何破解这个简单的配置:

GWT Designer mess

1 个答案:

答案 0 :(得分:3)

这是一个众所周知的issue。当您尝试专门设置其大小时,DecoratorPanel和DecoratedPopupPanel小部件会出现类似这样的问题。不要指定DialogBox的大小。相反,请指定DialogBox的子Widget的大小,DialogBox应该匹配得很好。