1

如果我有以下课程com.mywebapp.client.ui.MyWidget

public class MyWidget extends Composite {
    interface MyWidgetUiBinder extends UiBinder<Widget, MyWidget>{}
    private static MyWidgetUiBinder uiBinder = GWT.create(MyWidgetUiBinder.class);

    ...
}

和它对应的UiBinder:

<!-- MyWidgetUiBinder.ui.xml -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'>
    <!-- ... -->
</ui:UiBinder>

然后:

  1. 去哪里(什么包或文件夹)MyWidgetUiBinder.ui.xml?GWT 是否允许您将其配置为可配置的,还是要求您将其放置在特定位置?
  2. UiBinder 片段应该有多精细?对于每个小部件?对于每个显示区域?每个“页面”/屏幕 1 个?

提前致谢!

4

2 回答 2

0
  1. MyWidgetUiBinder.ui.xml 去哪里(什么包或文件夹)?GWT 是否允许您将其配置为可配置的,还是要求您将其放置在特定位置?

GWT 要求 ui.xml 文件与 .java 文件位于同一文件夹(源文件夹)中。如果您使用 eclipse 的 GWT 插件,它会在文件不存在时警告您。如果您确实需要,您还可以使用@UiTemplate界面 ( ) 上的注释来指定不同的位置。MyWidgetUiBinder

  1. UiBinder 片段应该有多精细?对于每个小部件?对于每个显示区域?每个“页面”/屏幕 1 个?

这真的取决于。我喜欢从每页一个 UiBinder 开始,然后打破可重复使用的部分。

于 2012-11-07T01:44:51.270 回答
0

UiBinder 在与该类相同的包中查找以接口的封闭类(如果有,否则为接口名称)命名的文件。

在你的情况下,它会寻找一个com/mywebapp/client/ui/MyWidget.ui.xml.

这是默认设置,可以使用@UiTemplate. 请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder#Apply_different_xml

至于粒度,UiBinder 模板应该保留一个小部件的实现细节。

于 2012-11-07T01:46:29.290 回答