3

GWT CellTable에 대한 '사용자 지정 선택 모델'이 필요합니다. CellTable의 열 중 하나는 선택란 열입니다.GWT CellTable 사용자 지정 모델

기본 정리 (모두 아래 솔루션에서 작동) :
- 행을 클릭하면 확인란을 선택하지 않고 해당 행을 선택하고 다른 모든 행을 선택 취소합니다.
- 확인란을 선택하면 해당 행만 선택/선택 취소해야합니다.

다음 코드는 제가 사용하고 있지만 매우 느립니다. 모든 지침을 부탁드립니다.

final SelectionModel<T> selectionModel = new MultiSelectionModel<T>(); 
dataTable.setSelectionModel(selectionModel, 
      DefaultSelectionEventManager.createCustomManager(
       new DefaultSelectionEventManager.CheckboxEventTranslator<T>() { 
        @Override 
        public SelectAction translateSelectionEvent(CellPreviewEvent<T> event) { 
         SelectAction action = super.translateSelectionEvent(event); 
         if (action.equals(SelectAction.IGNORE)) { 
          selectionModel.clear(); 
          return SelectAction.TOGGLE; 
         } 
         return action; 
        } 
       } 
      ) 
     ); 

다음은 CheckColumn 콜백 용으로 코드를 잘라낸 코드입니다.

Column<T, Boolean> checkColumn = new Column<T, Boolean>(
    new CheckboxCell(true, false)) 
     { 
      @Override 
      public Boolean getValue(T t) 
      { 
       // Get the value from the selection model. 
       return selectionModel.isSelected(t); 
      } 
     }; 

답변

3

당신의 체크 박스를 화이트리스트 수 있습니다. :)

ProvidesKey<T> keyProvider = new ProvidesKey<T>() { 
    public Object getKey(T t) { 
     return tip == null? null : tip.getId(); 
    } 
}; 
dataTable = new CellTable<T>(PAGE_SIZE, keyProvider); 
+0

2015 년에 모든 작업 코드를 게시 할 수 있습니까? –

+0

불행히도 더 이상 해당 코드에 액세스 할 수 없습니다. 그것은 독점적 인 것이 었습니다. – AM01

0

당신은 내가 CellTable하고 더 이상 느려지지에 대한 KeyProvider에 넣어 가지고

int checkboxColumn = 0; 
DefaultSelectionEventManager.createCustomManager(new DefaultSelectionEventManager 
             .WhitelistEventTranslator(checkboxColumn)); 
+0

감사합니다. 이것은 문제를 해결하지 못합니다. 확인란을 선택해도 해당 행이 선택되지 않고 행을 클릭해도 효과가 없습니다. – AM01