我有一個相當復雜的 Vaadin 組件,有七個不同的輸入:
public class MyComponent extends VerticalLayout
implements HasValue<ValueChangeEvent<MyPojo>, MyPojo> {
private final ComboBox<String> _objectId = new ComboBox<>();
private final TextField _accountId = new TextField();
private final TextField _personId = new TextField();
private final DatePicker _startDate = new DatePicker();
private final DatePicker _endDate = new DatePicker();
private final IntegerField _age = new IntegerField();
private final NumberField _amount = new NumberField();
private final Binder<MyPojo> _binder = new Binder<>();
// more implementation ...
}
由于已實作的介面,我還需要實作Registration addValueChangeListener(ValueChangeListener<? super ValueChangeEvent<MyPojo>> listener)什么是實作它的最佳方法?是否有一些自動化或我需要手動執行此操作,例如將我的基本輸入欄位方法鏈接addValueChangeListener到復雜的 方法ValueChangeListener<? super ValueChangeEvent<MyPojo>>?或者我可以以某種方式使用_binder它嗎?
uj5u.com熱心網友回復:
HasValue我不會直接實作介面,而是推薦其中一個抽象類,它可以幫助您了解所有細節。
在您的情況下,這可能是AbstractCompositeField您想要完全控制視覺表示,或者CustomField您的 Vaadin 處理諸如輸入標簽之類的事情。
uj5u.com熱心網友回復:
是的,您可以在活頁夾上使用單個串列器。我處于類似的情況,為了避免宣告過多的聽眾,每個系結欄位一個,我只是在活頁夾上注冊。活頁夾上有兩個事件注冊可用。一個用于任何系結欄位更改,另一個用于觸發一堆情況。這里的javadoc:https : //vaadin.com/api/platform/21.0.8/com/vaadin/flow/data/binder/Binder.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/378734.html
