GWT celltable Как создать выделенную ячейку в edittextcell?
Я хочу создать редактируемую ячейку с логическим типом данных.
Я не хочу использовать selectioncell для логического типа данных
Ячейка моего столбца testBooleanColumn содержит строку со значением true,false..........
когда я нажму на ячейку, присутствующую в testBooleanColumn, тогда эта ячейка должна быть редактируемой, и в этой редактируемой ячейке я хочу показать ячейку выделения со значением (true, false). когда пользователь изменяет значение из selectioncell или true или false, это значение устанавливается в редактируемую ячейку в testBooleanColumn
Как это сделать? любой намек? или пример кода для этого варианта использования?
1 ответ
Есть три способа сделать это:
Используйте CompositeCell с ClickTextCell и SelectionCell и переопределите метод рендеринга CompositeCell для визуализации только ClickTextCell.
При щелчке ClickTextCell он автоматически вызывает ValueUpdater.
В функции обновления ValueUpdater вы должны установить некоторое логическое значение в ClickTextCell. Затем вы должны проверить в методе рендеринга вашего CompositeCell это логическое значение, и если оно установлено, тогда выполнить визуализацию SelectionCell вместо ClickTextCell.Например, создайте пользовательскую ячейку, расширяющую AbstractEditableCell (см. Это руководство), и реализуйте эту функцию самостоятельно. Вы можете проверить код для SelectionCell и EditTextCell и скопировать большую его часть. По сути, у вас должен быть какой-то флаг, который устанавливается, когда ячейка получает фокус. В методе рендеринга вы должны отобразить выпадающий список или просто текст.
Расширьте либо EditTextCell, либо SelectionCell и реализуйте отсутствующую функциональность. Преимущество состоит в том, что вы, вероятно, можете повторно использовать некоторые методы рендеринга, и вам не нужно писать полный код рендеринга самостоятельно.