Виджеты в ячейках JFace TableViewer? - PullRequest
3 голосов
/ 27 мая 2011

Я занимаюсь разработкой приложения с использованием JFace на Eclipse 3.6, и я хотел бы иметь реальные виджеты - в основном флажки и кнопки - в TableViewer.Все, что я обнаружил, похоже, на данный момент говорит о том, что это невозможно.

Мой текущий обходной путь включает использование MouseListener для обернутого элемента управления Table, где координаты события mouseDown транслируются в ячейки с помощью getCell() метод и действовал по.Затем я использую контент-провайдер для предоставления изображений и форматированного текста, которые в некоторой степени приближаются к внешнему виду соответствующих виджетов.

Проблема в том, что результат совсем не выглядит нативно.Есть несколько обходных путей, связанных с созданием скриншотов реальных нативных виджетов, но у этого есть несколько проблем:

  • Это взлом
  • Захваченные виджеты иногда становятся видимыми, создавая мерцающий артефакт наэкран
  • Требуются приемы обработки изображений, чтобы сделать захваченное изображение смешанным с цветами таблицы
  • Не очень хорошо масштабируется, когда, например, требуются кнопки с различным содержимым

Есть ли способ встроить виджеты в ячейки TableViewer без использования таких громоздких методов?Базовая таблица SWT, безусловно, может это сделать, но интерфейс TableViewer, похоже, не поддерживает это ...

1 Ответ

0 голосов
/ 27 мая 2011

Для этого вы можете использовать celleditors. Это не совсем то, что вы хотите, так как виджеты отображаются только во время редактирования, но я думаю, это довольно близко.

См. http://wiki.eclipse.org/JFaceSnippets#Snippet027ComboBoxCellEditors или другие примеры CellEditor на вики-странице.

...