具有多种图像组合的自然细胞

时间:2018-02-28 05:05:09

标签: nattable

我们需要可视化细胞的状态。

每个单元格代表用户的DB CRUD访问权限,因此每个单元格都有四个布尔标志,用于创建,读取,更新和删除。为了可视化,每个单元格应显示四个图像,每个图像显示该标志的状态。

我们定义了8个标签(CREATE,NO_CREATE,READ,NO_READ等)并根据底层模型添加这些标签。因此,在任何时候,每个单元格将有4个标签。我们想在每个单元格中显示4个图像,每个图像显示相应标记的状态。

根据研究和Dirk的建议,CellDecoratorPainter是首选方法。但是每个带有标签的单元格都与一个单元格画家相关联(在本例中为CellDecoratorPainter),那么我们如何使用它来渲染这些图像的组合呢?

我能想到的一种方法是,不是为READ,NO_READ等创建单独的标签,而是创建4x4x2标签,如READ_CREATE_UPDATE_DELETE,NO_READ_CREATE_UPDATE_DELETE,并将每个标签与一个单元画家装饰器相关联,以相应地绘制一系列图像。

不确定这是否是唯一可行的方法。如果你们中的任何一个遇到过这种情况,请你分享一些想法吗?

PS:这是在https://www.eclipse.org/forums/index.php/m/1782700/#msg_1782700

的Eclipse论坛上发布的

2 个答案:

答案 0 :(得分:1)

建议我们使用自定义图片画家来实现此目标,如https://www.eclipse.org/forums/index.php/m/1782739/#msg_1782739所述。

回复片段

  

您可以实现检查单元格的自定义ImagePainter   标签并根据标签堆栈中的标签绘制图像。要么   堆叠CellPainterDecorators,以便每个装饰器都有一个图像   仅在细胞标签的情况下涂上的装饰,并且具有   另一位装饰师作为基础画家。

     

但老实说,编写一个自定义ImagePainter来检查标签并在标签出现时绘制图像似乎更多   直观。

我们实现了CombinedImagePainter来实现这一目标,如果您有兴趣,可以在https://gist.github.com/brsanthu/cd2f91da7777aa994e011f7acedd900a获得。

答案 1 :(得分:0)

我们有类似的要求,其中图像将在开始和结束时显示。几乎就是你展示的方式,我们扩展了AbstractTextPainter类并根据它编写了实现。