После долгих усилий мы решили, что CellTable недостаточно расширяем, чтобы делать то, что нам нужно. В итоге мы расширили класс GWT Grid, взяв за основу дизайн CellTable, чтобы он работал достаточно хорошо для наших нужд.
В нашем случае использования 80% просмотров страниц будут отображать менее 10 строк, и у нас никогда не будет более 600 строк на 10 столбцов (<0,5% случаев имеют более 500 строк). Вместо полноценных шаблонов веса, мы использовали ленивый шаблон загрузки. Когда сетка изначально заполнена, виджеты только для отображения используются для отображения данных из базовых объектов значений. FocusHandler прикреплен к каждому виджету только для отображения. Когда пользователь щелкает или вкладывает вкладку в отображаемый виджет, FocusHander заменяет только отображаемые виджеты для этой строки на редактируемые виджеты. </p>
Виджеты только для отображения ограничены легкими виджетами, такими как TextBox и CheckBox, поэтому время рендеринга приемлемо. 100 строк x 5 столбцов отображаются менее чем за 2 секунды. SuggestBoxes, DateBoxes и другие композиты ограничены использованием только в качестве редактируемых виджетов.
Преимущества
- Гибкость использования любого из
стандартные виджеты
- Расширяемость - мы не ограничены
выбор реализации сделан в
CellTable
- Простота разработки - прототип в
менее 3 дней разработки
- Работает достаточно хорошо, чтобы соответствовать
необходимо
- Вкладки работают из коробки, как и следовало ожидать
Недостатки
- Не так масштабируемо, как CellTable. это
реализация не собирается оказывать
тысячи строк
- Мы должны поддерживать это сами