2013-10-11 144 views
0

celltable当我使用这样的,如何删除空格单击GWT celltable上的行选择?

dgrid.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED); 

编辑领域空间点击选择行,所以我用这样的

dgrid.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION); 

但在此行中得到单选择单击本身..

我只想要checkbox进行选择,列点击不应该选择该行,任何人都可以帮助我实现这一目标吗?

回答

0
protected DefaultSelectionEventManager.EventTranslator<ProductProxy> eventTranslator = new DefaultSelectionEventManager.EventTranslator<ProductProxy>() { 

    @Override 
    public boolean clearCurrentSelection(CellPreviewEvent<ProductProxy> event) { 
     NativeEvent nativeEvent = event.getNativeEvent(); 
     String type = nativeEvent.getType(); 
     if (BrowserEvents.CLICK.equals(type)) { 
      int index = event.getContext().getColumn(); 
      if (index == getDeleteColumnIndex()) 
       return true; 
     } 

     return false; 
    } 

    @Override 
    public SelectAction translateSelectionEvent(CellPreviewEvent<ProductProxy> event) { 
     NativeEvent nativeEvent = event.getNativeEvent(); 
     String type = nativeEvent.getType(); 
     if (BrowserEvents.CLICK.equals(type)) { 
      if (event.getColumn() == getDeleteColumnIndex()) { 
       ProductTable.this.productTableManager.deleteProduct(event.getValue()); 
       return SelectAction.IGNORE; 
      } 
     } 
     return SelectAction.DEFAULT; 
    } 
}; 

然后在你的CellTable使用选择:

class MyTable extends CellTable { 
    void myInit() { 
     setSelectionModel(selectionModel, DefaultSelectionEventManager.createCustomManager(eventTranslator)); 
}} 

因此,对于你的情况下,只需更换getDeleteColumnIndex()由getCheckoxColumnIndex(),并返回你的列索引(如果它更改),并处理空格键而不是点击

相关问题