2012-06-16 11 views
5

단일 선택을하고 세부 정보 패널에 일부 정보를 표시하기 위해 SingleSelectionModel과 함께 작동하는 CellTable이 있습니다. 또한이 CellTable에 다른 MultipleSelectionModel과 함께 작동하여 대량 삭제 작업을 수행하는 CheckBoxCell 열을 가져 왔습니다.GWT CellTable 선택 및 CheckBoxCell의 단일 클릭

CheckBoxCell 열의 확인란을 클릭하면 GWT가 행을 선택하고 두 번째로 확인란을 클릭하면 확인란 상태가 변경됩니다. 따라서 우리는 두 번의 클릭을해야하지만 한 번의 클릭으로 체크 박스 상태를 변경해야합니다.

내가 그것을 해결하기 위해 여러 가지 방법을 시도 :

    CheckboxCell에
  • 변경 dependsOnSelection 및 handlesSelection 매개 변수
  • CellTable에서
  • 변경 SelectionEventManager (DefaultSelectionEventManager.createCheckboxManager(), DefaultSelectionEventManager.createCustomManager)

그러나 작동하지 않습니다.

인터넷에서 비슷한 문제가 발견되었지만 모두 하나의 MultipleSelectionModel에서 작동합니다. 세부 정보 패널이 있으므로 (내가 단일 선택 만 할 수 있기 때문에) 원하는 것과 같지 않습니다.

해결 방법을 찾는 사람이 있습니까?

UPD : 방금 ​​SingleSelectionModel을 제거하고 UI를 MultipleSelectionModel로 다시 디자인했습니다. 체크 박스가 (모두 dependsOnSelectionhandlesSelection 세트 true에로) 예상대로 작동되도록 CellTable의 선택 모델로 MultiSelectionModel을 사용하고 마스터를 위해 : 그것은

답변

3

봅니다 선택 모델을 전환 .. GWT-지옥 합니다 (CellTable는 행을 렌더링 할 때 동적 스타일링을 업데이트 한 후, getRowElementRowStyles) 기능 -detail하는 CellPreviewEvent.Handler (또는 DefaultSelectionEventManager#createCustomManager) 및 RowStyles 및 + addStyleName/removeStyleNamegetRowElement 렌더링을 사용한다.

+0

사실 저는 이미이 방법을 시도했지만 필요한 행동을하지 않았습니다. 하지만 답장을 보내 주셔서 감사합니다. 월요일에 다시 시도해 보겠습니다. –

+0

MultiSelectionModel에서만 작동하도록 UI를 재 지정했습니다. –

+2

감사합니다. CellPreviewEvent를 사용하고 이벤트 유형을 테스트하는 것은 저에게 매우 효과적입니다. if (event.getColumn() == 1 && event.getNativeEvent(). getType(). equals ("click")) {}' –