Indexed Container

Hola. Necesito saber como obtener el objeto entero de un indexedContainer. ConditionedDevices es mi tabla.

Object itemId = conditionedDevices.getValue();
Item item = conditionedDevices.getItem(itemId);

ConditionedDevice cd = (ConditionedDevice) item; Error de casteo

No estoy seguro qué versión de Vaadin estás usando.

Pero si estás usando IndexedContainer entonces el contenedor solo va a tener las propiedades que agregues para los items.

Si lo que quieres es tener los objetos originales puedes usar un BeanItemContainer, es ese caso el Item va a ser in BeanItem y puedes hacer beanItem.getBean().

Estoy viendo porque necesito borrar un item de ese indexContainer… O sea eliminar de la tabla cuando lo selecciono y no quiero cambiar todo…

Conoces la forma de poder eliminar la fila seleccionada del indexedContainer

Gracias

Para eliminar un item de la tabla solo necesitas el itemId, si tienes un ItemClickListener el evento tiene la info del id

table.addItemClickListener(new ItemClickListener() {
    @Override
    public void itemClick(ItemClickEvent event) {
        table.removeItem(event.getItemId());
    }
});

Tengo un boton a parte para el eliminar? Como podria hacerlo??
O sea… seleccionar la fila y apretando el boton Eliminar

El botón está en la tabla en cada fila o fuera de la tabla?

Por fuera.

En ese caso deberías poder hacer table.removeItem(table.getValue())

Algo así

Button button = new Button("Delete selected");
button.addClickListener(new ClickListener() {
    @Override
    public void buttonClick(ClickEvent event) {
        if (table.getValue() != null) {
            table.removeItem(table.getValue());
        }
    }
});

Muchas gracias!!!