2012-02-29 8 views

Odpowiedz

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

lub

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

a następnie można go używać jako payerType='{Sender}'.

Ale należy UiBinder automatycznie próbować tłumaczyć enum stałe nazwy na wartości, więc następujące powinien działać bez konieczności ui:with:

<my:MyWidget payerType='Sender' /> 

Jeżeli widget MyWidget ma metodę public void setPayerType(PayerType type), UiBinder należy szukać wartość wyliczeniowa o nazwie Sender (z pliku *.ui.xml) w wyliczeniu PayerType (z typu argumentu metody).

+0

Niestety, nie powiedzie się w środowisku wykonawczym, mówiąc: 'BŁĄD: zwraca klasę com.mine.courierApp.shared.PayerType, nie można używać jako klasy java.lang.String' – expert

+0

Thomas, czy mogę poprosić o sprawdzenie? [to pytanie] (http://stackoverflow.com/questions/9476341/)? Wiesz dużo o wewnętrznych GWT. – expert

+0

Niestety, powinno to być 'ui: import' zamiast' ui: with'. Właśnie sprawdziłem [testy jednostkowe dla funkcji] (http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/test/com/google/gwt/uibinder/ test/client/WidgetBasedUi.ui.xml # 83) (i możesz rzucić okiem na "EnumeratedLabel" tam dla przykładu automatycznego tłumaczenia łańcucha na wartość wyliczeniową –

0

jeśli nie ui: zaimportować klasę enum tak:

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

wtedy nie dostaniesz zawartość wspomagającą, która cały sens tego w pierwszej kolejności.

Ale potem napotkasz innego problemu ...

Chociaż można prosty typ {ctrl-space}, aby wyświetlić menu podręczne wartości enum, jeśli używasz, powiedzmy, bootstrap3, istnieją różne wylicza, że ​​każda z nich ma swoją wartość "DEFAULT". Edytor szablonów ui narzeka na to; np. jeśli zaczniesz intensywnie korzystać z tej funkcji wspomagania treści, musisz upewnić się, że importowane wyliczenia mają unikalne nazwy wartości.

Powiązane problemy