メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年12月25日木曜日

[work][OpenOffice][SDK][java] FirstStepメモ中(1)

UNOのすべてのオブジェクトはinterfaceで操作するとのこと。

で、オブジェクトのメソッドを呼びたい場合には、事前に適切な型にCastすると。

うげ。

実行時にチェックしないと、ClassCastExceptionですか。。
ここはとっても面倒そう。。


と思いきや、JavaのUNOにはqueryInterface()というメソッドが用意されていると。

いい感じにオブジェクトを取得して、いい感じにCastしたりしてくれると。

ほほー。

で、以下queryInterfaceメソッドを利用して、
DesktopオブジェクトからXComponentLoaderオブジェクトを取得する例。


Object desktop = xRemoteServiceManager.createInstanceWithContext(
"com.sun.star.frame.Desktop", xRemoteContext);

XComponentLoader xComponentLoader = (XComponentLoader)
UnoRuntime.queryInterface(XComponentLoader.class, desktop);
 

ほほー。
タイプ量が多いっす。。

で、XMultiComponentFactory.createInstanceWithContext()
を使用して、com.sum.star.frame.Desktopサービスを生成。
createInstanceWithContextは、

Object createInstanceWithContext(String serviceName, XComponentContext context)
 

と定義されている。
で、返されたObjectをqueryInterfaceを使用してCastやらなにやらして、XComponentLoaderを取得と。

すぐに慣れるらしい。

.

0 コメント: