2012-05-14 3 views
2

У меня есть CellList:Отключение Выбор с CellList

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

Я надеюсь, что принятие NoSelectionModel будет препятствовать интерфейс от реакции на выбор пользователем элементов в списке элементов. Однако пользователь может выбирать элементы в обычном режиме. Не правильно ли я применяю модель выбора?

+1

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

ответ

3

От Javadoc из NoSelectionModel:

Модель выбора, которая не позволяет выбор, но выбор пожаров изменение событий. Используйте эту модель, если вы хотите знать, когда пользователь выбирает элемент, но не хотят, чтобы представление обновлялось на основе выбора.

Это то, что он делает: в стандартной теме это приведет к тому, что строка не будет выделена синим цветом (класс styleListSelectedItem). Тем не менее, он по-прежнему будет выделен желтым (класс класса 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