2014-10-06 2 views
2

У меня есть TreeViewer, используемый в плагин Eclipse, который использует поставщика контента и поставщика меток, который реализует все (ITableLabelProvider, IFontProvider, IColorProvider).Java СВТ TreeViewer с одного столбца, который должен быть StyledText

Но мне нужен один из столбцов таблицы, который он создает, чтобы удерживать «ссылки» - подчеркнутый синий текст, который при нажатии вызывает всплывающее всплывающее окно. Я предполагаю, что я хочу, чтобы один столбец сохранял стилизованный текст, а не только текст, и прикреплял слушателя к элементам в этом столбце дерева, но я не мог понять, как это сделать.

+0

Вы можете использовать 'DelegatingStyledCellLabelProvider' в качестве поставщика меток столбцов, аналогичный http://stackoverflow.com/q/26173834/2670892 –

+0

Спасибо за быстрый ответ, Грег. Но я не понял, как применять стилизованный текст только к одному TreeColumn (этот индекс известен, очевидно). Oren –

+0

Добавлен ответ с более подробной информацией –

ответ

2

Используйте отдельный поставщик этикетки для каждой колонки с помощью TreeViewerColumn:

TreeViewer viewer = new TreeViewer(.....); 

TreeViewerColumn col1 = new TreeViewerColumn(viewer, SWT.LEAD); 

col1.setLabelProvider(col1 label provider); 

... repeat for other columns 

Для столбцов, которые требуют использования укладки DelegatingStyledCellLabelProvider в качестве поставщика этикетки колонки, как описано here

Примечание: Не называйте viewer.setLabelProvider при использовании колонки поставщиков этикеток.

+0

У меня нет TableViewer, у меня есть TreeViewer. Это все еще применимо? –

+0

Извините, недостаточно внимательно прочитав. Обновленный ответ на TreeViewerColumn –

+0

Извините за то, что я болен ... Я попробовал это, и затмение заставило меня заставлять нового поставщика ярлыков расширить CellLabelProvider в дополнение к реализации интерфейса (или я не могу использовать setLabelProvider). Но это не похоже на getStyledText на ячейки, и если я не использую его для всех столбцов, я просто получаю их представление объектов. Что мне не хватает? –

Смежные вопросы