GWT: выбор модели не работает должным образом - PullRequest
0 голосов
/ 21 января 2012

У меня есть таблица ячеек в GWT, в которой есть флажки, чтобы выбрать несколько флажков, я использую selectionModel, как только я отмечаю любой флажок, его значения сохраняются в selectionModel, но затем, когда я снимаю флажок, они никогда не получат удалить, я хочу чтобы удалить предыдущий выбор, как это возможно

ниже указан код

        List<Categories> selected;


        display.getListWidget().getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {

            selected = new ArrayList<Categories>(
                    ((MultiSelectionModel<Categories>) display.getListWidget().getSelectionModel()).getSelectedSet());

        }
    });

Что я пытаюсь сделать, это

        display.getListWidget().getSelectionModel().setSelected(categories, false);

но это не работает, потому что я думаю, категории не те, которые уже добавлены ..

Любые предложения

Спасибо

1 Ответ

1 голос
/ 21 января 2012

Если бы вы могли уточнить свой вопрос с помощью некоторого кода или более конкретно, мы могли бы дать лучший ответ. От вашего вопроса, я предполагаю, что ваши категории равно и хэш-код не перезаписываются таким образом, что "категории", которые вы пытаетесь установить, находят.

Я думаю, здесь немного, но я думаю, что KeyProvider поможет вам отменить выбор правильного объекта Categories.

вид:

SelectionModel<Categories> selectionModel;

ProvidesKey<Categories> keyProvider = new ProvidesKey<Categories>() {
    public Object getKey(Categories categories) {
      return item == null ? null : categories.id() // or some unique identifier
    }
};

CellTable cellTable = new CellTable<Categories>(keyProvider);

// Omitted..Add columns..

selectionModel = new MultiSelectionModel<Categories>(keyProvider);
cellTable.setSelectionModel(selectionModel);

ведущий:

List<Categories> selected;

display.getListWidget().getSelectionMode().addSelectionChangeHandler(
    new SelectionChangeHandler() {
      public void onSelectionChange() {
        MultiSelectionModel selectionModel = 
            (MultiSelectionModel) display.getListWidget().getSelectionModel();
        selected = Lists.newArrayList(selectionModel.getSelectedSet());
      }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...