Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
OptionGroup seleccion múltiple en grid editable
Hola!!!!
Quería plantearos un problemilla que tengo, y que no se por dónde seguir.... Tengo un grid y en el grid deseo poner un OptionGroup con selección múltiple.
Los datos del grid los cargo con en el datasource del Grid (se carga correctamente). El atributo de la clase que metemos en el grid se llama "cargo" y es un List<String>
Me he creado una lista de cargos:
List<String> lista = new ArrayList<>();
lista.add("a");
lista.add("b");
lista.add("c");
que meto en el grid:
OptionGroup group = new OptionGroup("kk");
group.setMultiSelect(true);
group.addItems(lista);
grid.getColumn("cargo").setEditorField(group);
Al ejecutar me da un error diciéndome que necesita un converter....
He intentado hacerlo de todas las maneras (ese converter)... como por ejemplo:
public class AbstractMultiSelectToEntityConverter implements Converter<Set<String>, List> {
public static final AbstractMultiSelectToEntityConverter instance = new AbstractMultiSelectToEntityConverter();
@Override
public List convertToModel(Set<String> value, Class<? extends List> targetType,
Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException {
// TODO Auto-generated method stub
return null;
}
@Override
public Set<String> convertToPresentation(List value, Class<? extends Set<String>> targetType,
Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException {
// TODO Auto-generated method stub
return null;
}
@Override
public Class<List> getModelType() {
// TODO Auto-generated method stub
return List.class;
}
@Override
public Class<Set<String>> getPresentationType() {
// TODO Auto-generated method stub
return (Class<Set<String>>) instance.getClass();
}
}
Y nada.....
¿Alguien me podría decir como se podría hacer esto?
Por otro lado, lo he intentado hacer con selección individual, y me carga correctamente en el grid el dato, pero al editar, me aparece bien el optiongroup pero no se me selecciona el valor seleccionado, y por otro lado, al dar al botón de grabar (en el editor del grid) me da una excepción de commit.
Lo he intentado añadiendolo así: grid.getColumn(field).setEditorField(group).setConverter(new StringToCollectionConvertter());
pero no me va....
Gracias por todo
Edu.