我有一个带有SWT表的JFace TableViewer,我想自定义渲染一些单元格的内容。我想使用SWT控件来渲染单元格内容。
我宁愿只有一个Control实例进行渲染,但如果我必须为每一行实例化一个,那就可以了。
接下来,解决方案必须与ContentProvider / LabelProvider方法兼容(我正在使用EMF)。这意味着我无法使用Sniplet 126(http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets)中描述的解决方案。
接下来,我会讨论使用custom drawing。但问题是,我必须将各个绘图操作发送到图形上下文。我试图让Control通过在SWT.PaintItem上调用redraw()或print(GC)来为我呈现内容,但这只会导致无法控制的闪烁。
此时,我最好的猜测是使用SWT.PaintItem进行绘图。这将导致重复的代码,因为我已经有一个可以按照我喜欢的方式呈现内容的Control。我想防止这种冗余。
感谢任何帮助!
答案 0 :(得分:1)
好吧,在我的头撞墙几次后,我取得了一些进展。具体来说,我找到了这个formu条目:
http://www.eclipsezone.com/eclipse/forums/t115489.html
它实际上提供了两种解决方案:第一种解决方案实际上使用小部件(由于性能不推荐,但之前我知道)。我会尝试一下,也可以在这里发布它是怎么回事。
第二个解决方案建议使用StyledCellLabelProvider。我之前看过这个,但它对我的目的来说还不够强大。至少这就是我现在的想法。