Могу ли я использовать перечисляемые значения в качестве значений полей внутри шаблона UiBinder? - PullRequest
10 голосов
/ 29 февраля 2012

Могу ли я использовать перечисляемые значения в качестве значений полей внутри шаблона UiBinder? Я использую GWT 2.4

Примерно так

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

выглядит многообещающе, где

public enum PayerType
{
    Sender,
    Recipient
}

но я не могу сослаться на значения перечисления по en.Sender.

Это вообще возможно?

Ответы [ 2 ]

13 голосов
/ 29 февраля 2012
<ui:import field='com.mine.courierApp.shared.PayerType.Sender' />

или

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

И тогда вы можете использовать его как payerType='{Sender}'.

Но UiBinder должен автоматически попытаться преобразовать имена констант enum в значения, поэтому следующее должно работать без ui:with:

<my:MyWidget payerType='Sender' />

Если виджет MyWidget имеет метод public void setPayerType(PayerType type), UiBinder должен искать значение перечисления с именем Sender (из файла *.ui.xml) в перечислении PayerType (из типа аргумента метода).

0 голосов
/ 21 мая 2014

Если вы не пользуетесь пользовательским интерфейсом: импортируйте перечислимый класс следующим образом:

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

, тогда вы не получите контент-ассистент, в чем смысл всего этого.

Но затем вы сталкиваетесь с другой проблемой ...

Хотя вы можете просто набрать {ctrl-space}, чтобы получить всплывающее меню со значением enum, если вы используете, скажем, bootstrap3, естьразличные перечисления, каждое из которых имеет свое собственное значение "DEFAULT".Редактор шаблонов пользовательского интерфейса будет жаловаться на это;т. е. если вы начнете широко использовать эту функцию поддержки содержимого, вам необходимо убедиться, что импортированные перечисления имеют уникальные имена значений.

...