gwt - usar - recorrer enum java
¿Puedo usar valores de enum como valores de campo dentro de la plantilla de UiBinder? (2)
¿Puedo usar valores de enum como valores de campo dentro de la plantilla de UiBinder? Estoy usando GWT 2.4
Algo como esto
<ui:with field="en" type="com.mine.courierApp.shared.PayerType" />
parece prometedor, donde
public enum PayerType
{
Sender,
Recipient
}
pero no puedo referirme a los valores de la enumeración por en.Sender
.
¿Es posible?
<ui:import field=''com.mine.courierApp.shared.PayerType.Sender'' />
o
<ui:import field=''com.mine.courierApp.shared.PayerType.*'' />
Y luego puede usarlo como payerType=''{Sender}''
.
Pero UiBinder debería intentar traducir automáticamente los nombres constantes enum en valores, por lo que lo siguiente debería funcionar sin necesidad de una ui:with
:
<my:MyWidget payerType=''Sender'' />
Si el widget MyWidget
tiene un método public void setPayerType(PayerType type)
, UiBinder debe buscar un valor enum denominado Sender
(del archivo *.ui.xml
) en PayerType
enum (del tipo de argumento del método).
Si no lo haces ui: importa la clase enum de esta manera:
<ui:import field=''com.mine.courierApp.shared.PayerType.*'' />
entonces no obtienes contenido asistido, que es el objetivo principal de esto en primer lugar.
Pero luego te encuentras con otro problema ...
Aunque puede simplemente escribir {ctrl-space} para obtener un menú emergente del valor enum, si está usando, por ejemplo, bootstrap3, hay varias enumeraciones que tienen cada una su propio valor "DEFAULT". El editor de plantillas de la interfaz de usuario se quejará de eso; es decir, si comienza a hacer un uso extenso de esta función de asistencia de contenido, deberá asegurarse de que las enumeraciones importadas tengan nombres de valores únicos.