2011-03-15 4 views
2

GWT MVP보기 내에 CellTable이 있고 행에 특정 동작이 수행 될 때 발표자에게 알려야합니다. 예를 들어 행에 대해 팝업 메뉴가 표시되고 작업 (삭제/편집/등)이 선택됩니다. 분명히 HasData를 통해 사용할 수있는 SelectionModel이 있지만이 방법을 사용하여 '액션'액션을 전달할 수 있습니다.MVP, 행 이벤트를 발표자에게 다시 전달하는 방법

발표자에게 다시 전달하는 데 사용할 수있는 표준 인터페이스 (예 : HasData)가 있습니까?

답변

0

일반적으로 MVP 뷰는 이벤트 처리기를 등록 할 수있는 객체를 노출합니다. 일반적으로 HasClickHandlers 또는 HasChangeHandlers과 같이 HasXyxHandlers의 형식이 사용됩니다.

CellTable의 경우 다른 이름이 SelectionModel입니다.

SelectionModel<YourClass> getSelectionModel(); 

다음 발표자가이 메소드를 호출 자체를 등록 : 그냥보기에 그것을 반환하는 방법을 구현

final SelectionModel<YourClass> selectionModel = view.getSelectionModel(); 
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { 
    @Override 
    public void onSelectionChange(SelectionChangeEvent event) { 
     YourClass selectedObject = selectionModel.getSelectedObject(); 
     // do something with selectedObject 
    } 
}); 
+0

감사합니다. 이벤트를 등록 할 hasData 인터페이스를 통해 SelectionModel에 액세스 할 수 있습니다. 그러나 사용자가 실제로 선택한 항목으로 무엇을하고 싶은지 알아야합니다. 예를 들어 사용자가 행을 클릭하면 팝업 메뉴가 나타납니다. 사용자는 옵션 (속성, 다운로드, 삭제 등) 중 하나를 선택합니다.이 시점에서 발표자에게 선택 사항에 대해 알려주고 싶습니다. – Dan

+0

getSelectedObject() 메서드는 SingleSelectionModel에만 정의되어 있으므로 예제의 코드는 컴파일되지 않습니다. – CoolMcGrrr

+0

그런 다음'MultiSelectionModel'을 사용하고'getSelectedSet()'을 호출하십시오. –

0

이 더에 대해 생각을, 나는 엔지니어링 위에있을 수 있습니다. 뷰에서 재사용하는 팝업 메뉴가 하나 있고 발표자가 CellList가 아닌 메뉴의 클릭 이벤트를 수신하게하면 단추 처리기를 통해 CellList 선택 모델을 쿼리 할 수 ​​있습니다.

관련 문제