GEF エディターで SVG 画像を表示する方法はありますか? SVG画像をSWT画像に変換できることがわかりましたが、拡大しても品質が低下しないように、ベクター形式にする必要があります。
2 に答える
わかりました、ようやく機能するものを見つけました。org.eclipse.gmf.runtime.draw2d.ui.render.figures.ScalableImageFigure を使用するのが答えのようです。ScalableImageFigure は Figure のサブクラスであるため、通常の GEF Figure のように機能します。これは、GMF のランタイム ライブラリ パックにあります。
ScalableImageFigure を使用すると、GEF で SVG 画像を表示できますが、ズームインすると品質が低下します。これを克服するには、ScalableImageFigure をサブクラス化し、org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode を実装する必要があります。ズームインすると、スケーラブルな図が再描画され、画像が再レンダリングされます。org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode.LPtoDP(Translatable) は、レンダリングされるイメージのスケールを返します。このインターフェイスを適切に実装するのに十分な時間がありませんでした。機能するかどうかを確認する必要があったので、LPtoDP が呼び出されるたびにインクリメントされるサブクラス (デフォルト値 1 の int という名前のスケール) にフィールドを作成しました。
public Translatable LPtoDP(Translatable t) {
t.performScale(scale++);
return t;
}
これは完全に実験的なものです。この機能をアプリケーションに実装するときは、この質問を再検討し、このインターフェイスとクラスの機能的で正確な実装を投稿します。それまでは、このようなものを検討している他の人に役立つことを願っています.