以编程方式重新排列图表

时间:2012-08-15 11:30:45

标签: eclipse eclipse-plugin eclipse-emf eclipse-gmf

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

1 个答案:

答案 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();