2012-08-15 77 views
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,而是从其他地方获取 - 但我不知道从哪里开始寻找。

任何想法?

回答

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(); 
相关问题