我有一個應用程序,它有各種數據庫記錄的編輯器。這些記錄是相互引用的。我正在開發一個基於組合框一個新的自定義數據感知組件:Vaadin 7組合框 - 如何填充和下拉文本輸入?
public abstract class CustomDbLookupField<T> extends CustomField<T> implements Field<T>
下面是我想:
- 組件看起來像一個組合框(我可以很容易地做到這一點)
- 當對應字段值的行ID,那麼組件顯示引用記錄的文字表述(我也能做到這一點)
- 當用戶開始在組合框中鍵入文本,然後我要搜索數據庫中的關鍵字,並填充組合與這些項目框,讓再
- 下拉他的組合框,等他從結果
我似乎無法做最後的兩個部分進行選擇。我想要將偵聽器綁定到「鍵入組合框的文本」事件中,但我找不到任何方法。此外,我不知道如何獲取剛輸入的文字,我想這一點:
cmb.addListener(com.vaadin.event.FieldEvents.TextChangeEvent.class,target, method);
,但我不知道該怎麼傳遞的參數指標和方法。
我接受這個答案,因爲這是唯一的答案,至少這解釋了爲什麼它不起作用。我發現特別令人不安的是,任何人都可以註冊任何事件,即使它對組件無效。我不會編寫自定義的Javascript模塊。我最終使用PopupButton和TextField + ListSelect的組合。看起來不太好,但至少可以開箱即用。 – nagylzs
我通過指向代碼示例的鏈接更新了我的答案。 –