我可以在UiBinder模板中使用枚举值作为字段值吗?

时间:2012-02-29 02:12:26

标签: gwt gwt2 uibinder

我可以在UiBinder模板中使用枚举值作为字段值吗?我正在使用GWT 2.4

像这样的东西

<ui:with field="en" type="com.mine.courierApp.shared.PayerType" />

看起来很有希望,

public enum PayerType
{
    Sender,
    Recipient
}

但我无法通过en.Sender引用枚举值。

甚至可能吗?

2 个答案:

答案 0 :(得分:13)

<ui:import field='com.mine.courierApp.shared.PayerType.Sender' />

<ui:import field='com.mine.courierApp.shared.PayerType.*' />

然后您可以将其用作payerType='{Sender}'

但是UiBinder会自动尝试将枚举常量名称转换为值,因此以下内容应该无需ui:with即可:

<my:MyWidget payerType='Sender' />

如果MyWidget窗口小部件有public void setPayerType(PayerType type)方法,UiBinder应该在Sender中查找名为*.ui.xml的枚举值(来自PayerType文件)枚举(来自方法的参数类型)。

答案 1 :(得分:0)

如果你不这样做:导入这样的枚举类:

<ui:import field='com.mine.courierApp.shared.PayerType.*' />

那么你就不会得到内容辅助,这首先是这一点。

但是你遇到了另一个问题......

虽然您可以简单地键入{ctrl-space}来获取枚举值的弹出菜单,但如果您使用的是bootstrap3,则会有各种枚举,每个枚举都有自己的&#34; DEFAULT&#34;值。 ui模板编辑会抱怨这个;即如果您开始大量使用此内容辅助功能,则需要确保导入的枚举具有唯一的值名称。