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 に答える