2012-08-15 2 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를 수동으로 생성해서 오히려 다른 곳에서 가져 오지 말아야한다고 생각합니다. 그러나 어디서부터 시작해야할지 모르겠습니다.

아이디어가 있으십니까? EditPart을 만들 OffscreenEditPartFactory.createDiagramEditPart를 사용

답변

0

작동하는 것 같다 :

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