2017-12-27 6 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

만약 angel 8 Grid, TreeGrid 또는 ComboBox 같은 항목 구성 요소에 대한 DataProvider의를 사용합니다. setItems 메서드는 배열/컬렉션과 함께 ListDataProvider을 콤보 상자로 설정하는 편리한 방법입니다. 따라서 ListDataProvider으로 전송하고 getItems으로 전화하면 getDataProvider으로 전화 할 수 있습니다 (java 문서 here 참조).

+0

정말 고마워요, 잘 작동합니다! –

관련 문제