簡體   English   中英

如何在服務器上創建GEF圖的圖像

[英]how to create an image of a GEF diagram on a server

我想在服務器端創建Eclipse GEF圖的圖像,而不必加載整個編輯器環境。

該圖是使用設計蝕BPMN2-建模器 ,其基於蝕graphiti其基於GEF

這個想法是:

  1. 加載BPMN模型
  2. 生成圖表信息
  3. 將圖導出為圖像

該代碼段應該執行步驟1,加載BPMN模型:

    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
    這里的問題是,構造函數需要一個org.eclipse.graphiti.ui.editor.DiagramEditor並且在服務器上我沒有一個,沒有運行中的UI環境。
    還有其他一些util或handler可以為我生成圖表嗎?

  2. 我看了一下org.eclipse.graphiti.ui.features.DefaultSaveImageFeatureorg.eclipse.graphiti.ui.internal.util.ui.print.AbstractFigureSelectionDialog (initScaledImage())
    但是我需要先通過第2步問題,然后再對此進行深入研究。

也許我走錯路了,有更簡單的方法嗎?

您可以看看GMF如何在沒有編輯器的情況下生成圖表圖像。 但是,該生成仍然取決於UI,因為您需要SWT和Display線程(可以在無頭Eclipse模式下啟動Display線程)。

這個想法是使用EditPart工廠為模型元素創建editpart,然后在屏幕外的Shell所托管的Canvas上繪制根圖。 GC的圖形上下文是SWT圖像。 有多種方法可以生成圖表的圖像,而無需使用基於AWT的Eclipse UI或生成SVG。 但是,請記住,在涉及文本標簽時,圖形的布局取決於SWT,因此無論哪種方式都需要SWT和Display線程。 圖形的顏色,字體和其他屬性也是SWT對象。

GMF中要查看的類是org.eclipse.gmf.runtime.diagram.ui.OffscreenEditPartFactory

Graphiti最近獲得了一項增強功能 ,該功能允許您導出圖表而無需打開編輯器。 但是,您仍然需要蝕UI環境。 這里有一個使用下面列出的輔助方法的示例。

org.eclipse.graphiti.ui.internal.services.impl.ImageService.convertDiagramToBytes(Diagram, int)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM