0

对于上下文,我正在使用 Capella,这是一个基于 Sirius 的 Eclipse RCP 应用程序(因此,EMF、GMF 和 draw2d)。此应用程序用于 MBSE,这基本上意味着工业系统的图表表示。

我正在开发一个附加组件(视点)来在图表元素旁边显示自定义标签。简单地说,这些图表元素就是盒子里面的盒子。我的问题是标签文本通常大于框与其容器之间的空间,因此标签被隐藏。我需要的是这些标签始终处于前台。由于我更习惯于 Web 开发,因此我正在寻找的将是z-indexCSS 属性的等价物。

目前我不知道如何实现这一点,我正在使用.odesign允许我控制一些渲染选项的自定义,如标签文本、某些元素的颜色或添加装饰,但我不认为这是要走的路我的问题。也许我应该使用自定义 EditPart 或自定义StyleConfiguration(我已经将这些组件用于其他项目),但我不知道从哪里开始解决这个问题。

任何线索将不胜感激。

4

1 回答 1

3

我们最近进行了此类更改,以使 Sirius 序列图中的一些标签始终位于顶部:组合片段位于生命线后面(z 顺序),但我们希望保持 CombinedFragments 的标签可见事件,它们的边界与生命线、执行或状态)。

这已在Sirius 6.3.2(在 Capella 1.4.1 中使用)的错误 564239中得到处理。您可以在 bugzilla 中找到一些提示(Gerrit 和提交可以从另请参阅部分中检索)。

在 Sirius 序列图中,我们使用 org.eclipse.sirius.diagram.sequence.ui.tool.internal.layout.SequenceZOrderingRefresher 来控制 CombinedFragments 的 z 顺序:组成它们的所有图形都来自 odesign 中的一些表达式,并且例如与 Capella 模型同步。

但是在您的情况下,您只想控制标签,因此不能在编辑标准级别上处理它,而是在图一上处理。“覆盖”层和图形引线可能是一个很好的。

不要忘记另一件事:在 GMF/GEF 中,如果元素的标签适合父容器的可见区域,则会显示/显示/渲染/可见:对于带有滚动条的容器中的节点,可见are 将影响子节点的可见性(扩展到它们的边界节点、边缘、标签……)

问候

马克西姆

于 2020-11-20T15:48:08.640 回答