0

我有一个名为 EntitiesContainer 的类,它包含多个隔间。

我所做的基本上是,当您右键单击隔间或隔间名称以通过应用于隔间XEditpart 和隔间XNameEditpart 的双击侦听器来收听此事件。

现在,我想通过双击来实现类似扩展或折叠这个隔间的功能,但我还没有找到任何方法来做到这一点。我怎样才能通过这个隔间的 EditPart 接近它?

当一个隔间打开时是否可以关闭所有其他隔间,如果是这样,这必须通过 AddSemanticListeners-listenerFilters 来完成?

任何线索将不胜感激。

4

1 回答 1

1

要展开/折叠隔间,您需要创建 ChangePropertyValueRequest,从隔间编辑部分获取该请求的命令,然后在命令堆栈上执行该命令(expand 是一个布尔值):

    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)

于 2014-10-24T13:46:45.783 回答