2015-06-26 26 views
0

我有一個由7列和23行復選框組成的單元格表格。我需要以某種方式添加處理程序,以便當單元格被控制並單擊時,列中的所有單元格將在其框被選中時切換。我看到了一些類似的帖子,但沒有描述如何處理控制+點擊。 (如:Adding clickHandler to row in CellTable in GWT?)。這個方法的問題在於它使用了一個BrowserEvents類,它沒有與CTRL匹配的東西。我celltable一些相關的代碼如下:JAVA GWT單元格表控制點擊操作

cellTable = new CellTable<TaskSchedule>(); 
TextColumn<TaskSchedule> taskNameColumn = new TextColumn<TaskSchedule>() { 
     @Override 
     public void render(Cell.Context context, 
          TaskSchedule object, 
          SafeHtmlBuilder sb) { 
      String taskName = getValue(object); 


     @Override 
     public String getValue(TaskSchedule object) { 
      return object.getTaskKey(); 
     } 
    }; 
cellTable.addColumn(taskNameColumn, "Task Name"); 
    cellTable.addColumn(createCheckBoxColumn(0), "Monday"); 
    cellTable.addColumn(createCheckBoxColumn(1), "Tuesday"); 
    cellTable.addColumn(createCheckBoxColumn(2), "Wednesday"); 
    cellTable.addColumn(createCheckBoxColumn(3), "Thursday"); 
    cellTable.addColumn(createCheckBoxColumn(4), "Friday"); 
    cellTable.addColumn(createCheckBoxColumn(5), "Saturday"); 
    cellTable.addColumn(createCheckBoxColumn(6), "Sunday"); 

    cellTable.setColumnWidth(cellTable.getColumn(0), 36, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(1), 9, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(2), 9, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(3), 9, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(4), 9, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(5), 9, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(6), 9, Style.Unit.PCT); 
    cellTable.setColumnWidth(cellTable.getColumn(7), 9, Style.Unit.PCT); 


    cellTable.setRowData(taskSchedules); 

回答

1

您可以使用此:

table.addCellPreviewHandler(new Handler<MyObject>() { 
    @Override 
    public void onCellPreview(CellPreviewEvent<MyObject> event) { 
     if ("click".equals(event.getNativeEvent().getType())) { 
      if (event.getNativeEvent().getCtrlKey()) { 
       // CTRL button was pressed during the click 
      } 
     } 
    } 
}); 
+0

那麼我怎麼知道哪個列指數點擊編輯:NVM沒有看到的event.getColumn方法在第一 – GregH