Можно ли ссылаться на перечисления в контексте GWT UiBinder? - PullRequest
4 голосов
/ 11 июля 2011

У меня есть перечисление, которое выглядит следующим образом

public enum MyEnum {
    A,
    B;
}

А затем у меня есть файл UiBinder с пользовательским компонентом, который имеет установщик и получатель, ожидающие перечисления выше. (Я лишил дополнительный код для

<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 ]

8 голосов
/ 05 октября 2011

Пройдя немного больше поиска, я понял, что вы можете сделать следующее:

<ui:import field="com.example.MyEnum.*" />
<g:HTMLPanel>
    ...
    <myNamespace:myComponent myAttribute="{A}" />
    ...
</g:HTMLPanel>
1 голос
/ 11 июля 2011

Это возможно.Вы должны иметь возможность передавать перечисление в атрибут напрямую, например,

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

Виджет MyComponent должен иметь uiConstructor, который принимает тип MyEnum.

@UiConstructor
public MyComponent(MyEnum myAttribute){
}
...