2017-12-27 219 views
1

我試圖顯示一個彈出窗口,如果Vaadin8組合框中沒有任何項目。但是沒有getItems()或size()方法。如何獲取Vaadin8組合框中的項目大小?

這是我的代碼,如果分支大小= 0我想推送一個通知給用戶。

 cbxBranch = new ComboBox<>(); 
     cbxBranch.setPlaceholder("Select a branch"); 
     cbxBranch.setItemCaptionGenerator(Branch::getBranchName); 
     cbxBranch.setEmptySelectionAllowed(false); 
     cbxBranch.setItems(getBranches()); 
     cbxBranch.addFocusListener(e -> { 
      //this line just a sample.. 
      System.out.println(cbxBranch.getDataProvider().size()); 
     }); 

UPDATE:

cbxBranch.addFocusListener(e -> { 
    if (((ListDataProvider<Branch>) cbxBranch.getDataProvider()).getItems().isEmpty()) { 
     Notification.show("You don't have a branch!", Type.WARNING_MESSAGE); 
    } 
}); 

回答

0

Vaadin 8使用DataProvider S表示項目組件,如GridTreeGridComboBoxsetItems方法是一種方便的方法,將數組/集合的ListDataProvider設置爲組合框。因此,您可以撥打getDataProvider,轉換爲ListDataProvider並致電getItems(請參閱java doc here)。

+0

非常感謝你,它工作正常! –

相關問題