要展开/折叠隔间,您需要创建 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)