2012-08-15 78 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(); 
相關問題