2011年8月24日水曜日

BIRTスタンドアロン利用とEMF

BIRTもEclipse RCP外のスタンドアロンで使用できます。
今回は、BIRTエンジンの初期化過程で、スタンドアロン時にどうするかを調べます。
なおこの例は、Eclipse.orgのサンプルから引用しています。

BIRT Report Engine APIの場合
Report Engineは、BIRTレポートデザイナでデザインされたレポートをレンダリングするエンジンで、典型的にはWebアプリとしてHTMLをレンダリングするのに使用できます。
Webアプリじゃなくても、スタンドアロンアプリケーションとして、HTMLやPDFなどをレンダリングすることができます。
EngineConfig config = new EngineConfig();
// WebAppの場合
IPlatformContext context = new PlatformServletContext(servletContext);
config.setPlatformContext(context);
// Eclipse RCP以外の場合(WebAppの場合を含む)
Platform.startup(config);

IReportEngineFactory factory =
(IReportEngineFactory) Platform.createFactoryObject(
IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
IReportEngine engine = factory.createReportEngine(config);
...

BIRT Chart Engine APIの場合
BIRTのReport Engineは、レンダリングの過程でチャートを描画する際、内部的にChart Engineを使用していますが、このChart Engineだけを個別に利用することができます。
Chart Engineは、Report Engineで使われる時のようにPNGなどの画像をレンダリングすることはもちろん、SwingやSWT上で直接チャートを描画することもできます。
PlatformConfig config = new PlatformConfig();
// Eclipse RCP以外の場合
config.setProperty("STANDALONE", true);

ChartEngine engine = ChartEngine.instance(config);
...

このように、BIRTもスタンドアロンで簡単に使用することができます。
今回の例では示しませんでしたが、BIRTレポートをデザインするDesign Engine APIも、スタンドアロンで使用できるようです。
Eclipse.orgでダウンロードできるサンプルには、これらのコードが含まれます。
http://eclipse.org/birt/phoenix/deploy/


EMF応用例としてのBIRT
BIRTを使ってみて面白いのは、BIRTのレポートデザインやチャートが、EMFモデルとして作られていることです。

BIRTのレポートデザイナは、レポートをグラフィカルにデザインし、それをレポートデザインファイルとして保存しますが、これはまさにEMFモデルをXMLリソースとしてシリアライズしたものです。
BIRTのレポートレンダリングエンジンは、このレポートデザインモデルをメディアにレンダリングします。
BIRTのチャートモデルも、レポートモデル同様にEMFモデルであり、BIRTのチャートレンダリングエンジンが、チャートモデルをメディアにレンダリングします。

このように見ると、BIRTのデザイナやレンダリングエンジンは、EMFの応用例としてとても参考になりますよね。

0 件のコメント:

コメントを投稿