如何通过注释代替接口标记来使用GWT生成器?
例如:我有一个带有一些ui字段的视图,如Buttons和TextBoxes。现在我希望带有注释@Hide(“true”)的字段被“setVisible(false)”方法隐藏。
我应该在GWT模块xml文件中使用注释类型代替接口吗?或者我必须生成我的所有View类,解析它,检查注释并在构造函数中使用invoke setVisible(true)生成新的View?或者也许有其他方法可以做到这一点?
答案 0 :(得分:1)
期待GWT 3.0,我建议你写一个注释处理器而不是生成器来完成这项工作。
为了让您了解它的工作原理,您可以在这里查看:
https://github.com/FrankHossfeld/gwt-editor-apt
这是一个很小的,尚未准备好的概念证明,用编辑处理器替换编辑器生成器。
答案 1 :(得分:1)
GWT生成器由类型(传递给GWT.create()
)触发,因此虽然它可以由匹配的注释调用,但该注释必须在类型本身上,而不是在字段上。此外,更重要的是,这不会发生:https://github.com/gwtproject/gwt/issues/9172
IMO,你应该使用一个注释处理器生成一个在适当的字段上调用setVisible
的辅助类,类似于调用其generateAndBindUi
方法时生成的UiBinder设置字段的方式。因此,您调用UiBinder(如果使用它),然后调用生成的帮助程序类(或者可能让帮助程序类为您处理UiBinder位)。