es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambiar el valor de un Layout anidado en Vaadin.

Uso Vaadin 14 y me gustaría saber si es posible informar cambios en la lista anidada a los objetos en la vista principal.

Se muestra un ejemplo aproximado en la imagen. Arriba puedes ver la suma como tamaño (aquí 2), si presiono “Eliminar” debería cambiar a 1.
¿Es posible hacer esto y cómo?

Concepto: link a la imagen

Aún no tengo ningún código, es solo una idea de lo que me gustaría que fuera posible, por ejemplo, el patrón observador u algo así, pero el código podría verse así:

“`
@Rout("")
public class MainView extends VerticalLayout {

private List<customdetails> customDetails = new ArrayList<>();

public MainView(){
final var form = new FormLayout();
customDetails.forEach(form::add);
add(H1("Encabezado"), form)
}
}

public class CustomDetails extends Details{
private CustomForm customForm;
private final Service service;
public CustomDetails(){
customForm = new CustomForm(service.getListOfObjects());
this.setContent(customForm)
}
}

public class CustomForm extends FormLayout{

private FormLayout formLayout = new FormLayout();
private List<object> objects = new LinkedList<>();
public CustomForm(List<object> list){

this.objects = list;
setUp();
add(new Paragraph("SUMA: "+ list.size()), layout);
}

private void setUp(){
objects.forEach(o->{
….
layout.add(…)
})
}
}
“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Vaadin 14 ofrece varias formas de informar cambios en listas anidadas a objetos en la vista principal. Una forma posible de lograr esto es mediante el uso de event listeners.

    El patrón observador también se puede aplicar a este escenario. Cuando se realizan cambios en la lista anidada, el observador puede activar una actualización en la vista principal.

    Además, Vaadin 14 proporciona opciones de enlace de datos para componentes, como el proveedor de datos, que se puede utilizar para sincronizar los cambios entre la lista anidada y la vista principal.

    En general, el enfoque para informar cambios en la lista anidada a objetos en la vista principal dependerá de los requisitos específicos del proyecto y los patrones de diseño que se estén utilizando.

Comments are closed.