簡體   English   中英

Vaadin 從嵌套布局更改值

[英]Vaadin change value from nested Layout

我使用 Vaadin 14 並且知道是否可以將嵌套列表中的更改報告給主視圖中的對象。

圖片中顯示了一個粗略的示例。 上面您可以看到總和為大小(此處為 2),如果我按 Delete 它應該更改為 1。這可能嗎?怎么做?

概念

我還沒有任何代碼,這是一個想法,我想暗示一下可能發生的事情,例如觀察者模式或其他東西,但代碼可能看起來像這樣的代碼:

@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("Header"), form)
 }
}

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

public class CustomForm extend FormLayout{

 private FormLayout formLayout = new FormLayout();
 private List<Object> objects = new LinkedList<>();
 public CustomForm(List<Object> list){
 
  this.objects = list;
  setUp();
  add(new Paragraph("SUM: "+ list.size()), layout);
 }

 private void setUp(){
  objects.forEarch(o->{
   ....
   layout.add(...)
  })
 }
}

觀察者模式什么的...

是的,這是一個解決方案。 這是很多工作,而且以前已經做過。

一個這樣的庫是Beanbag

注意:我寫了這個(或者更確切地說,我是一天前開始寫的)。

在 Vaadin 中有一個實用程序 class Binder ,用於將數據綁定到 forms。 如果您的用例與此相關,即您所謂的嵌套布局實際上是一個表單,而您引用的對象是您希望綁定到該表單的數據 bean。 我建議先研究一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM