使用GWT生成器进行自定义注释

时间:2016-07-01 13:30:41

标签: java gwt annotations

如何通过注释代替接口标记来使用GWT生成器?

例如:我有一个带有一些ui字段的视图,如Buttons和TextBoxes。现在我希望带有注释@Hide(“true”)的字段被“setVisible(false)”方法隐藏。

我应该在GWT模块xml文件中使用注释类型代替接口吗?或者我必须生成我的所有View类,解析它,检查注释并在构造函数中使用invoke setVisible(true)生成新的View?或者也许有其他方法可以做到这一点?

2 个答案:

答案 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位)。