gpt4 book ai didi

java - GMF - 以编程方式扩展/折叠隔间

转载 作者:行者123 更新时间:2023-12-01 12:23:09 26 4
gpt4 key购买 nike

我有一个名为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com