是否可以在GWT UiBinder上下文中引用枚举

时间:2011-07-11 08:43:03

标签: java gwt enums uibinder

我的枚举类似于以下

public enum MyEnum {
    A,
    B;
}

然后我有一个带有自定义组件的UiBinder文件,该组件有一个setter和getter,期望上面的枚举。 (我已经删除了

的额外代码
<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

我可以引用我的枚举并以任何方式将该值放入myAttribute吗?我想要完成的是这样的事情

<ui:UiBinder ....>
    <ui:with field="myEnumField" type="com.example.MyEnum" />
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="{myEnumField.A}" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

然而,似乎我不能用ui执行此操作:with。我能以任何方式这样做吗?

2 个答案:

答案 0 :(得分:8)

在搜索了一下后,我意识到你实际上可以做到以下几点:

<ui:import field="com.example.MyEnum.*" />
<g:HTMLPanel>
    ...
    <myNamespace:myComponent myAttribute="{A}" />
    ...
</g:HTMLPanel>

答案 1 :(得分:1)

有可能。您应该能够直接将枚举传递给属性,如

<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="A" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>

MyComponent小部件应该有一个接受MyEnum类型的uiConstructor。

@UiConstructor
public MyComponent(MyEnum myAttribute){
}