2010-04-12 1 views
1

У меня есть JView TableViewer с SWT-таблицей, и я бы хотел, чтобы пользователь отображал содержимое некоторых ячеек. Я хотел бы использовать SWT Control для отображения содержимого ячейки.Как использовать SWT-элемент управления для отображения содержимого таблицы SWT/JFace?

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

Далее решение должно быть совместимо с подходом ContentProvider/LabelProvider (я использую EMF). Это означает, что я не могу использовать решение, описанное в Sniplet 126 (http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets).

Далее, я, хотя об использовании custom drawing. Но здесь уловка заключается в том, что мне приходится отправлять отдельные операции рисования в графический контекст. Я пытался, чтобы элемент управления отображал содержимое для меня, вызывая redraw() или print (GC) на SWT.PaintItem, но это просто приводит к неконтролируемому мерцанию.

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

Любая помощь приветствуется!

ответ

1

Хорошо, после нескольких ударов головой о стену я сделал некоторый прогресс. В частности, я нашел эту запись Formu:

http://www.eclipsezone.com/eclipse/forums/t115489.html

Он фактически предлагает два решения: Первое решение на самом деле использует виджеты (не рекомендуется из-за работы, но я знал, что раньше). Я попробую это и могу опубликовать здесь, как это происходит.

Второе решение предполагает использование StyledCellLabelProvider. Я изучал это раньше, но это недостаточно эффективно для моих целей. По крайней мере, это то, что я думаю прямо сейчас.