#gwt #gwt-2.2-celltable
#gwt #gwt-2.2-таблица ячеек
Вопрос:
У меня есть таблица ячеек, в которой есть несколько столбцов, данные которых иногда могут быть шире, чем ширина их столбца.
В моем css text-overflow установлено значение ellipsis, чтобы пользователю было очевидно, что значение ячейки больше, когда оно превышает ширину столбца.
С «обычным» виджетом я бы просто использовал setTitle () для автоматического отображения всего содержимого при наведении курсора мыши, но TextCell (и все другие виджеты ячеек) не расширяют UIObject, поэтому у них нет этого метода.
Текстовая ячейка реализуется с помощью div внутри тега td. Возможность установить заголовок для любого элемента дала бы мне поведение, которое я ищу, но, похоже, я не могу найти способ получить дескриптор для любого из элементов.
Каков наилучший способ заставить HTML-заголовок работать в виджете таблицы ячеек?
Спасибо,
Doug
Ответ №1:
вы можете написать свою собственную реализацию cell и самостоятельно задать заголовок в html-шаблоне.
Взгляните на реализацию ячейки. В основном они предоставляют HTML-строку для рендеринга.
Комментарии:
1. Я создал виджет, который расширяет текстовую ячейку и переопределяет метод рендеринга, чтобы добавить завершающий тег div, заголовок которого я мог бы задать. Не уверен, что это самое элегантное решение…
2. ‘code’ открытый класс TitledTextCell расширяет TextCell {общедоступный TitledTextCell() { super(); } @Переопределить общедоступный рендеринг void(контекст context, значение SafeHtml, SafeHtmlBuilder sb) { if (значение != null) { // создайте еще один div, чтобы мы могли установить его заголовок sb.appendHtmlConstant(«<div title= «» значение. asString() «»>»); sb.append(значение); sb.appendHtmlConstant(«</div>»); } } }
3. это не самый элегантный вариант, но все в порядке. Вы могли бы заглянуть внутрь TextCell и изменить шаблон, чтобы включить свой заголовок напрямую (вы бы сохранили один div)
4. Спасибо, это звучит как отличная идея. Где в пространстве имен мне искать шаблон?
5. Мне нужно то же самое, просто: <td title=»blabla»> bla</td> — Удивительно, что в com.google.gwt.cell.client нет такого метода. Cell (AbstractCell) API, я не понимаю, почему? (
Ответ №2:
Некоторые из проблем такого рода были «исправлены» в GWT 2.3. Но если вы застряли на использовании GWT 2.2, то можно написать собственную реализацию cell.
Комментарии:
1. Я использую 2.3, я просто n00b здесь, поэтому не смог создать свой собственный тег для 2.3
2. нет заголовка в ячейке таблицы 2.3 (например, com.google.gwt.cell.client. AbstractCell<C> )