Loading...
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.

Product icon
TUTORIAL

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.

¿Cómo obtener el item seleccionado de una tabla?

César Viñas
7 years ago Aug 21, 2015 2:51pm
Alejandro Duarte
7 years ago Sep 02, 2015 3:14pm

Hola.

Podría ayudar un resumen del "Vaadin data model":

  • Property: Contiene sólo dos cosas, un valor y su tipo de dato.
  • Item: Colección de Properties. A cada Property se le asigna un Property ID (PID).
  • Container: Colección de Items. A cada Item se le asigna un Item ID (IID).

table.getValue() retorna el IID del Item seleccionado. Con este IID puedes obtener el Item completo del container respectivo (table o contenedor, en tu caso). Con el item y conociendo el PID, item.getItemProperty(PID) retornará el Property respectivo. Este Property lo puedes usar como data binding en cualquier componente que pueda ser enlazado (binded) a un Property (text fields, comoboxes, labels, etc.).

En tu caso particular, el problema es que estás llamando a getItemProperty(Object) usando un PID que no existe (un array).
Debes usar getItemProperty("nombre"). Acá está el código "refactorizado":

...
public void valueChange(ValueChangeEvent event){
    ...
    Object itemId = table.getValue();
    Item item = table.getItem(itemId);
    Property property = item.getItemProperty("nombre");
    nombre.setPropertyDataSource(property);
}
...

Espero te sirva.