- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 EntitiesContainer 的类,它包含多个隔间。
我所做的基本上是,当您右键单击隔间或隔间名称时,通过应用于隔间XEditpart和隔间XNameEditpart的双击监听器来监听此事件。
现在,我想实现一些类似基于双击来展开或折叠此隔间的功能,但我还没有找到任何方法来做到这一点。我怎样才能通过这个隔间的EditPart来访问它?
另外,当一个隔间打开时,是否可以关闭所有其他隔间,如果是这样,则必须使用 AddSemanticListeners-listenerFilters 来完成?
任何线索将不胜感激。
最佳答案
要展开/折叠隔间,您需要创建 ChangePropertyValueRequest,从隔间 editpart 获取该请求的命令,然后在命令堆栈上执行该命令(expand 是 boolean 值):
ChangePropertyValueRequest request = new ChangePropertyValueRequest(
DiagramUIMessages.PropertyDescriptorFactory_CollapseCompartment,
Properties.ID_COLLAPSED, expand);
getDomain().getCommandStack().execute(command);
是的,您还可以打开/关闭其他隔间,购买创建相同的请求并为同级隔间编辑部分创建额外的命令(如上所示)。唯一的复杂之处是您必须在 editparts 树中找到那些同级隔间 editoarts。此外,一旦您拥有许多这样的命令,请将它们包装在 GEF 的CompoundCommand 或GMF 的CompositeCommand 中,以便将许多命令作为一个命令执行,并且撤消/重做操作将正确处理这种情况。(看看 org.eclipse.gmf.runtime.diagram.ui.internal.tools.CompartmentCollapseTracker)
关于java - GMF - 以编程方式扩展/折叠隔间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525321/
我是一名优秀的程序员,十分优秀!