2011-11-15 2 views
1

저는 Vaadin과 함께 일하고 있는데 ComboBox에서 선택을 반복하는 데 어려움이 있습니다. 나는이 같은 상자에 추가Vaadin에서 ComboBox를 반복하는 방법은 무엇입니까?

class MyObject{ 
    private String text; 
    private Integer i; 
    public MyObject(String text,Integer i){ 
     this.text = text; 
     this.i = i; 
    } 
    public String toString(){ 
     return text; 
    } 
    //Getters and setters omitted 
} 

:이 위대한 작품을

MyObject o1 = new MyObject("o1",23); 
MyObject o2 = new MyObject("o2",44); 
ComboBox box=new ComboBox(); 
box.addItem(o1); 
box.addItem(o2); 

내가 선택한 데이터 취득 할 때처럼 내 개체를 찾고 있습니다

MyObject o3 = (MyObject)box.getValue(); 

을하지만, 이제 ComboBox에서 선택을 반복해야하고 어떻게해야할지 모르겠다. 나는 어떤 종류의 신분증이 필요해 보이지만 그것을 사용하는 방법을 모른다. 나는 아무 성공 다음 시도했지만 작동하지 않습니다 (정말 추악한) :

Collection IDs = box.getItemIds(); 
Iterator it = IDs.iterator(); 
while(it.hasNext()){ 
    Object id = it.next(); 
    Item item = IDs.getItem(id); 
    //What to do now? 
} 

내 오브젝트의 간단한 유지하고 콩 복잡한 컨테이너를 사용하지 않도록하고 싶습니다. Vaadins 예제는 대부분 String을위한 것이므로 그다지 도움이되지 않습니다. 나는 정말 어떤 도움을 주셔서 감사합니다.

답변

4

javadoc for ComboBox을 보면 addItem 메서드가 실제로 AbstractSelect class에 정의되어 있고 실제로 itemId가 매개 변수로 사용된다는 것을 알 수 있습니다. (이것은 Select 컨테이너에 위임됩니다.이 기본 케이스는 IndexedContainer입니다.

따라서 Collection IDs=box.getItemIds();은 MyObject 컬렉션을 반환합니다 - 즉 실제로 무엇을했는지.

관련 문제