使用@UiFactory在GWT中构建小部件有什么好处?

时间:2014-02-23 05:16:37

标签: gwt uibinder

使用@UiFactory构建小部件是否有任何优点(除了干净的代码之外),而不是在@UiField中声明它们,然后在initWidget()之后对代码进行添加/更改?

2 个答案:

答案 0 :(得分:3)

  • 您当然可以使用@UiField让UiBinder在createAndBindUi()期间为您实例化字段。然后你可以修改它们。
  • 您当然可以使用@UiField(provided=true),并在调用createAndBindUi()之前自己实例化字段。 (这样,你可以使用你喜欢的任何构造函数,它也允许依赖注入。)显然,你仍然可以在createAndBindUi()之后修改它们。

那么@UiFactory有什么意义呢?好吧,我有时会使用它,当我在同一个ui.xml文件中有许多类似的元素时。所以e。 G。我有一个页面显示数字0-9的键盘。我没有使用10个@UiFields,而是使用构建小部件的@UiFactory,并将它们放在java.util.Map中(并执行一些常见的设置)。

答案 1 :(得分:2)

您的UiBinder文件可能存在无法使用简单构造函数构建的参数(例如,CssResource用于在多个UiBinder文件之间共享样式)。 使用@UiFactory,您可以将这些资源注入UiBinder文件。