【问题标题】:How to always show Sirius Label in foreground如何始终在前台显示天狼星标签
【发布时间】:2021-03-03 23:02:59
【问题描述】:

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

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

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

任何线索将不胜感激。

【问题讨论】:

    标签: draw2d eclipse-sirius sirius


    【解决方案1】:

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

    这已在 Bug 564239 中处理 Sirius 6.3.2(用于 Capella 1.4.1)。 您可以在 bugzilla 中找到一些提示(Gerrit 和提交可以从 See also 部分中检索)。

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

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

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

    问候

    马克西姆

    【讨论】:

    • 感谢您的详细解答。我对你提到的每一个提交都感到有点困惑。最后,你有什么建议,为这个观点扩展 .odesign 文件,或者创建一个 CustomStyle 和/或自定义编辑部分?遗憾的是,我正在使用 Capella 121/131,所以我还不能使用 1.4.1 的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多