Как я могу установить заголовок в виджете ячейки GWT?

#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> )