java - GWT - 将不同的 XML 模板应用于同一小部件

标签 java templates gwt uibinder

为了减少一些重复的代码/类,我尝试只为 1 个所有者类使用多个 XML 模板。 official GWT guide已经指出了如何做到这一点。

   public class FooPickerDisplay extends Composite{
     @UiTemplate("RedFooPicker.ui.xml")
     interface RedBinder extends UiBinder<Widget, FooPickerDisplay> {}
     private static RedBinder redBinder = GWT.create(RedBinder.class);

     @UiTemplate("BlueFooPicker.ui.xml")
     interface BlueBinder extends UiBinder<Widget, FooPickerDisplay> {}
     private static BlueBinder blueBinder = GWT.create(BlueBinder.class);

     @UiField Button button1;
   }

'@UiField' 会导致编译错误,它说“Field button1 在模板文件 BlueFooPicker.ui.xml 中没有对应的字段”

我的RedFooPicker.ui.xml和BlueFooPicker.ui.xml的内容完全不同,所以RedFooPicker.ui.xml中有UiField="button1",而BlueFooPicker.ui.xml中没有button1。

所以我的问题是,是否有任何方法可以为同一所有者类使用具有完全不同内容的多个 XML 模板而不会导致此类错误?

最佳答案

不,每个 UiBinder 必须作用于不同的所有者类。但是,您可以轻松地为其中一个 UiBinder 创建一个内部类。文档中的示例是关于使用一个或另一个,而不是同时使用两者。

顺便说一句,为了减少重复,您最好尝试将事物抽象为可重用的小部件。

关于java - GWT - 将不同的 XML 模板应用于同一小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12717454/

相关文章:

c++ - 为什么这个对数组进行零初始化的模板化函数不能编译?

c++ - 模板偏特化

java - VisualVM内存泄漏检测

java - 无法使用 Spring 和 JavaConfig 创建服务

c++ - 在赋值中折叠表达式

Java继承者数组构造和协变返回

php - 优化提示和技巧

GWT Acegi 替代品

java - 将所有子目录 JAR 添加到 IntelliJ IDEA 中的依赖项中

java - 当 “parent” 表具有复合 PK 时,如何在 JPA 中建模一对多关系?