如何获取Vaadin8组合框中的项目大小?

我试图显示一个弹出窗口,如果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);

}

});

回答:

Vaadin 8使用DataProvider S表示项目组件,如GridTreeGridComboBoxsetItems方法是一种方便的方法,将数组/集合的ListDataProvider设置为组合框。因此,您可以拨打getDataProvider,转换为ListDataProvider并致电getItems(请参阅java doc here)。

以上是 如何获取Vaadin8组合框中的项目大小? 的全部内容, 来源链接: utcz.com/qa/265047.html

回到顶部