0

我正在尝试以编程方式重新排列(自动布局)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 而是从其他地方获取它 - 但我不知道从哪里开始寻找。

4

1 回答 1

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();
于 2012-08-15T13:02:24.527 回答