Vaadin cadenas personalizadas de presentación 14 RadioButtonGroup como opciones

Cribber:

Estoy usando Vaadin 01/14/21 + Java JDK / JRE 1.8

Tengo una selección única RadioButtonGroup con un campo booleano detrás de él en la clase de datos.

No quiero para mostrar "true" / "falso" como opciones para el usuario, pero la costumbre Cuerdas, digamos "opción roja" para verdadero y "opción verde" para falso.

Veo en la API de que hay una función llamada setRenderer, pero no estoy seguro de cómo usarlo. Ya cuenta de cómo hacerlo en una cuadrícula, pero no en el cuadro de selección ...

Campo de selección (TODO):

rbgroup = new RadioButtonGroup<>();
rbgroup.setRequired(true);
rbgroup.setLabel("Title of radiobuttongroup");
rbgroup.setItems(true, false); // how to display them in the frontend as "Green option" / "Red option"?

....

binder.forField(gbgroup).bind("mybooleanField");

Grid: (terminado)

addColumn((mn) -> { // custom display
            final String displayAS;
            if (mn.getBoolValue()) {
                displayAS = "Option Red";
            } else {
                displayAS = "Option Green";
            }
            return displayAS;
        })
.setHeader("Columntitle")
.setFlexGrow(1)
.setSortable(true)
.setKey("Color Option");
kscherrer:

Como se muestra en los ejemplos de código de RadioButtonGroup , el establecimiento de un procesador que el texto que se puede hacer así (ejemplo mezcla entre el código y el código):

RadioButtonGroup<Boolean> rbgroup = new RadioButtonGroup<>();
rbgroup.setRequired(true);
rbgroup.setLabel("Title of radiobuttongroup");
rbgroup.setItems(true, false);
rbgroup.setRenderer(new TextRenderer<>((mn) -> {
    if (mn) {
        return "Option Red";
    } else {
        return "Option Green";
    }
}));

Si desea mostrar cualquier componente Vaadin en lugar de sólo el texto, se puede utilizar una ComponentRenderervez de una TextRenderer. Yo uso un simple Spancomo ejemplo, pero se podría construir diseños complejos y devolver aquellos en su lugar.

RadioButtonGroup<Boolean> rbgroup = new RadioButtonGroup<>();
rbgroup.setRequired(true);
rbgroup.setLabel("Title of radiobuttongroup");
rbgroup.setItems(true, false);
rbgroup.setRenderer(new ComponentRenderer<>((mn) -> {
    if (mn) {
        return new Span("Option Green");
    } else {
        return new Span("Option Red");
    }
}));

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=396972&siteId=1
Recomendado
Clasificación