2012-05-14 66 views
2

禁用選擇我有一個CellList與CellList

friendCellList = new CellList<PlayerDataEntity>(new PlayerCell()); 
friendCellList.setSelectionModel(new NoSelectionModel<PlayerDataEntity>()); 

我希望經過NoSelectionModel將防止反應用戶選擇小區列表中的項目的UI。但是,用戶可以正常選擇元素。我沒有正確應用選擇模型嗎?

+1

的http:// stackoverflow.com/questions/5456273/disable-selection-for-gwt-celllist – DTing

回答

3

從NoSelectionModel的Javadoc中:

的選擇模式,不允許選擇,但火災的選擇變化 事件。如果您想知道用戶何時選擇項目,請使用此模型,但 不希望視圖根據選擇進行更新。

這就是它的作用:在標準主題中,這將導致該行不再以藍色突出顯示(「cellListSelectedItem」風格類)。但是,它仍然會以黃色突出顯示(「cellListKeyboardSelectedItem」樣式類)。另外,SelectionChangeEvent仍然會被解僱。

要關閉SelectionChangeEvent,使用

cellList.setSelectionModel(new NoSelectionModel<String>(), 
    DefaultSelectionEventManager.<PlayerDataEntity>createWhitelistManager()); 

不帶參數的白名單管理意味着,你不能選擇任何列。

如果你也想關閉 「黃」 突出顯示,你應該實例CellList用不同的CellList.Resources實例:

public interface MyResources extends CellList.Resources { 
    @Override 
    @Source("com/mypackage/my.css") 
    Style cellListStyle(); 
} 
... 
friendCellList = new CellList<PlayerDataEntity>(new PlayerCell(), 
    (MyResources) GWT.create(MyResources.class); 

my.css:

.cellListEvenItem {} 
.cellListKeyboardSelectedItem {} 
.cellListOddItem {} 
.cellListSelectedItem {} 
.cellListWidget {} 
+0

我仍然希望選擇項目的子集顯示。 – Carl

+0

如果我想要某些項目可以選擇並且有些項目不可選,那麼這種方法會是什麼? – Carl