1

エディター環境全体をロードすることなく、サーバー側で Eclipse GEF ダイアグラムのイメージを作成したいと考えています。

この図は、GEF に基づく Eclipse Graphiti に基づく Eclipse bpmn2-modeler を使用して設計さます

アイデアは次のようになります。

  1. BPMN モデルを読み込む
  2. ダイアグラム情報を生成する
  3. 図を画像としてエクスポート

このスニペットは、BPMN モデルをロードするステップ 1 を実行する必要があります。

    URI modelUri = URI.createFileURI("D:/temp/data.bpmn");
    ResourceSet resourceSet = new Bpmn2ModelerResourceSetImpl();
    resourceSet.setURIConverter(new ProxyURIConverterImplExtension(modelUri));
    Bpmn2ResourceImpl resource = (Bpmn2ResourceImpl) resourceSet.createResource(modelUri, Bpmn2ModelerResourceImpl.BPMN2_CONTENT_TYPE_ID);
    ModelHandler modelHandler = ModelHandlerLocator.createModelHandler(modelUri, resource);
  1. 見つけたダイアグラム情報を生成しますorg.eclipse.bpmn2.modeler.core.di.DIImport
    ここでの問題は、コンストラクターには and が必要でorg.eclipse.graphiti.ui.editor.DiagramEditorあり、サーバーにはありません。実行中の UI 環境はありません。
    ダイアグラムを生成できる他のユーティリティまたはハンドラーはありますか?

  2. org.eclipse.graphiti.ui.features.DefaultSaveImageFeatureとを見てみましたorg.eclipse.graphiti.ui.internal.util.ui.print.AbstractFigureSelectionDialog (initScaledImage())
    しかし、これを深く掘り下げる前に、まずステップ 2 の問題に合格する必要があります。

多分私は間違った方法で、もっと簡単なアプローチがありますか?

4

2 に答える 2

1

GMF がエディターなしでダイアグラム イメージを生成する方法を見ることができます。ただし、SWT と表示スレッドが必要になるため、その生成は依然として UI 依存です (表示スレッドはヘッドレス Eclipse モードで開始できます)。

アイデアは、EditPart ファクトリを使用してモデル要素の editpart を作成し、オフスクリーンで作成されたシェルによってホストされるキャンバスにルート フィギュアをペイントすることです。GC のグラフィック コンテキストは SWT イメージです。AWT に基づく Eclipse UI を使用せずに図のイメージを生成する方法や、SVG を生成する方法があります。ただし、図のレイアウトは、テキスト ラベルに関しては SWT に依存することに注意してください。そのため、いずれにしても SWT と表示スレッドが必要になります。図形の色、フォント、その他の属性も SWT オブジェクトです。

調べる GMF のクラスは次のようになります。org.eclipse.gmf.runtime.diagram.ui.OffscreenEditPartFactory

于 2015-01-23T14:43:46.210 に答える
1

Graphiti は最近、エディタを起動せずにダイアグラムをエクスポートできる機能強化を受けました。ただし、Eclipse UI 環境は引き続き必要です。ここに、以下にリストされているヘルパー メソッドを使用する例があります。

org.eclipse.graphiti.ui.internal.services.impl.ImageService.convertDiagramToBytes(Diagram, int)
于 2016-01-03T19:28:31.997 に答える