对于上下文,我使用Capella,这是一个基于天狼星的Eclipse RCP应用程序(因此,使用EMF、GMF和draw2d)。这个应用程序用于MBSE,这基本上意味着工业系统的图表表示。
我正在开发一个附加组件(视点),用于在图元素旁边显示自定义标签。简单地说,这些图元素就是盒子里的盒子。我的问题是,标签文本通常比盒子和它的容器之间的空间大,所以标签被隐藏了。我需要的是这些标签总是在前台。因为我更习惯于web开发,所以我想要的是等同于z-index CSS属性的东西。
目前我不知道如何实现这一点,我正在使用一个自定义的.odesign,它允许我控制一些渲染选项,如标签文本,一些元素的颜色或添加装饰,但我不认为这是解决我的问题的方法。也许我应该使用自定义的EditPart或自定义的StyleConfiguration (我已经在其他项目中使用了这些组件),但是我不知道从哪里开始解决这个问题。
任何线索都将非常感谢。
发布于 2020-11-20 23:48:09
我们最近做了这样的更改,以保持天狼星序列图中的一些标签始终在顶部:组合的片段被放置在生命线(z顺序)之后,但我们希望保持CombinedFragments可见事件的标签(它们的边界与生命线、执行或状态相交)。
这已经在Sirius 6.3.2的Bug 564239中得到了处理(在Capella 1.4.1中使用)。您可以在bugzilla中找到一些提示(Gerrits和commits可以从See also部分检索到)。
在天狼星序列图中,我们使用org.eclipse.sirius.diagram.sequence.ui.tool.internal.layout.SequenceZOrderingRefresher来控制CombinedFragments的z顺序:所有组成它们的图形都来自odesign中的一些表达式,并以卡佩拉模型为例进行同步。
但在您的情况下,您只想控制标签,因此它不能在编辑par级别上处理,而是在图1上处理。“叠加”层和图形引线可能是一个很好的选择。
不要忘记另外一件事:在GMF/GEF中,元素的标签会显示/显示/呈现/可见,如果它适合父容器的可见区域:在具有滚动条的容器中的节点的情况下,可见区域将影响子节点的可见性(扩展到它们的边界节点、边、标签,...)
问候
最大值
https://stackoverflow.com/questions/64931014
复制相似问题