我正在编写一个 RCP 应用程序并尝试使用数据绑定将 GUI 的控件与模型链接起来。这包括例如将数据绑定到表。
据我了解, org.eclipse.jface.databinding.viewers.ViewerSupport 是将模型绑定到表查看器的推荐方法。但是,这只允许我将数据作为文本放入表格中。我还想更改前景色和背景色以及某些单元格的字体,具体取决于其他可观察对象。如果我能以某种方式将 ITableFontProvider 或 ITableColorProvider 放入 ViewerSupport.bind(...) 产生的内容中,我也会很高兴。
到目前为止,我还没有找到一个很好的方法来做到这一点。我可以复制 ViewerSupport.bind() 的内容并用我自己的类覆盖 LabelProvider。这似乎有点乱。
我还可以在调用 ViewerSupport.bind 后检索 LabelProvider 并将其替换为也实现 ITableFontProvider 和 ITableColorProvider 的委托 LabelProvider。这让我创建了很多方法,这些方法除了将事情委托给另一个对象之外什么都不做。也不是很优雅。
这一切似乎都不是那么美好。知道如何以优雅的方式做到这一点吗?我是否忽略了一些工厂课程来做到这一点?