我正在尝试以编程方式重新排列(自动布局)UML2图表
但是,我无法基于Diagram
实例执行此操作。
到目前为止我的代码看起来像:
Diagram diagram = /*...*/;
EditPart editPart = new DiagramEditPart(diagram);
List<EditPart> editParts = CollectionUtil.createNewSequence();
editParts.add(editPart);
ArrangeRequest request = new ArrangeRequest("");
request.setPartsToArrange(editParts);
editPart.getCommand(request).execute();
目前它完全没有效果。我想我不应该手动创建DiagramEditPart而是从其他地方获取它 - 但我不知道从哪里开始寻找。
答案 0 :(得分:0)
使用OffscreenEditPartFactory.createDiagramEditPart
创建EditPart
似乎有效:
EditPart editPart = OffscreenEditPartFactory.getInstance().createDiagramEditPart(diagram, getShell());
List<EditPart> editParts = CollectionUtil.createNewSequence();
editParts.add(editPart);
ArrangeRequest request = new ArrangeRequest(ActionIds.ACTION_ARRANGE_ALL, LayoutType.DEFAULT);
request.setPartsToArrange(editParts);
Command cmd = editPart.getCommand(request);
if (cmd != null)
cmd.execute();