ラベル Addon の投稿を表示しています。 すべての投稿を表示
ラベル Addon の投稿を表示しています。 すべての投稿を表示

2008年10月22日水曜日

NetBeans で OOo アドオン開発 (2)

NetBeans で OOo アドオン開発
今回は実際に NetBeans を使い、開発を行います
前回の環境設定編はコチラになります

まずはメニューより「File > New Project」と選択し、新規プロジェクト作成ウィザードを開きます
プロジェクト選択画面にて「OpenOffice.org > OpenOffice.org アドオン」を選択し、「Next」をクリックします


次にプロジェクト名やプロジェクトの保存場所などを設定します
今回の例ではプロジェクト名を"DialogExampleAddon"、パッケージ名は"com.example"としています


設定後、「Next」ボタンをクリックします

次はユーザーコマンド定義を行います
ここではAddOn名、プロパティ名、アイコン、表示名を設定できます。


また、「言語を追加」ボタンをクリックすると、英語(en)以外の言語(日本語など)を表示名として設定することができます

最後にUI構造を作成します
ここでは先のコマンドを含んだメニューツリーなどの設定を行います


すべてのUIの設定が終わったら、「Finish」ボタンをクリックし,プロジェクトを作成します


プロジェクト作成後、いくつかの雛形ファイルが生成されます
そのうち、"com.example"パッケージ内の"DialogExampleAddon.java"というファイルを開きます

まず、フィールドにXToolkit型の変数m_xToolkitを追加します
private XToolkit m_xToolkit;

次にコンストラクタに、以下のコードを追加します
(コメント間が追加コードです)
public DialogExampleAddOn(XComponentContext context) throws Exception {
m_xContext = context;
// ココから追加分
m_xToolkit = (XToolkit) UnoRuntime.queryInterface(
XToolkit.class,
m_xContext.getServiceManager().createInstanceWithContext("com.sun.star.awt.Toolkit", m_xContext));
// ココまで追加分
}

コマンドを実行された時に実行されるdispatchメソッドには以下のように、メッセージボックスを表示する、showMessageBoxメソッドの呼び出しを記述します
(コメント間が追加コードです)
// com.sun.star.frame.XDispatch:
public void dispatch(com.sun.star.util.URL aURL,
com.sun.star.beans.PropertyValue[] aArguments) {
if (aURL.Protocol.compareTo("com.example.dialogexampleaddon:") == 0) {
if (aURL.Path.compareTo("ShowDialogCommand") == 0) {
// add your own code here
// ココから追加分
showMessageBox("Addon Example", "Hello! OOo Addon!!");
// ココまで追加分

return;
}
}
}

最後に、そのメッセージボックスを表示するshowMessageBoxメソッドを実装します
public void showMessageBox(String sTitle, String sMessage) {
if (null != m_xFrame && null != m_xToolkit) {
try {
// describe window properties.
WindowDescriptor aDescriptor = new WindowDescriptor();
aDescriptor.Type = WindowClass.MODALTOP;
aDescriptor.WindowServiceName = new String("infobox");
aDescriptor.ParentIndex = -1;
aDescriptor.Parent = (XWindowPeer) UnoRuntime.queryInterface(
XWindowPeer.class, m_xFrame.getContainerWindow());
aDescriptor.Bounds = new Rectangle(0, 0, 300, 200);
aDescriptor.WindowAttributes = WindowAttribute.BORDER | WindowAttribute.MOVEABLE | WindowAttribute.CLOSEABLE;
XWindowPeer xPeer = m_xToolkit.createWindow(aDescriptor);
if (null != xPeer) {
XMessageBox xMsgBox = (XMessageBox) UnoRuntime.queryInterface(
XMessageBox.class, xPeer);
if (null != xMsgBox) {
xMsgBox.setCaptionText(sTitle);
xMsgBox.setMessageText(sMessage);
xMsgBox.execute();
}
}
} catch (IllegalArgumentException ex) {
Logger.getLogger(DialogExampleAddOn.class.getName()).log(Level.SEVERE, null, ex);
}
}

}

以上でコマンド実行時にダイアログボックスを表示する仕組みは実装できました
では、実際に動作させます
プロジェクトを右クリックし、表示されるメニューより「OpenOffice.orgで拡張を配備して実行」をクリックします


OpenOffice.orgが起動し、拡張機能マネージャウィンドウにて、先のAddOnをインストールしてよいかの確認ダイアログが表示されます


「はい」をクリックし、インストールを行います
無事インストールが完了すると以下のように表示されます


インストール後、適当な文書を作成し、メニューから作成したメニュー名を選択すると以下のようにダイアログが表示されます


ざっと、ダイアログを表示するだけのAddOnでしたが、NetBeans の OpenOffice API プラグインが面倒な部分をほぼ雛形として作ってくれるので、かなり楽に作成できたかと思います
(探し方が悪いのでしょうが)OOo SDK に関する資料が少なかったため、とっかかりが大変でした
(実際には SDK 同梱のドキュメントにて作成したのですが、日本語のドキュメントがやはりほしいところです)

OOo AddOn 開発する際には、是非 NetBeans と OpenOffice API プラグインをお試し下さい

2008年10月19日日曜日

NetBeans で OOo アドオン開発 (1)

先日10月14日(日本語版は15日)に OpenOffice.org 3.0.0 の正式版がリリースされました
3.0より、Mac OS X がサポートされ、X11ではなく、Aqua 環境ネイティブのアプリケーションとして動作するようになりました
(詳しくはコチラを参照)
これを記念して、NetBeans の OpenOffice API プラグインを利用したアドオン開発を紹介したいと思います
(ダイアログを出す程度ですが…)

今回は環境設定について説明します
(記述コード量がそれなりにあるので、内容を分割しました)
[08/10/23追記]
(開発編はコチラです)

まずは OpenOffice 本体SDK をダウンロードします
なお、10月19日現在では 3.0.0 に対応する正式版の SDK はリリースされていませんので、RC 版を使用します


ダウンロードイメージを展開後、"OpenOffice.org3.0_SDK"ディレクトリをホームディレクトリ($HOME)以下にコピーします
ディレクトリ内の"setsdkenv_unix"ファイルをダブルクリックすると、コンソールが開き、SDK用の環境設定が行われます

次に NetBeans の設定を行います
(今回は NetBeans 6.5 Beta 英語版を使用しています)
「Tools > Plugins」を選択し、Pluginsウィンドウを開きます
「Available Plugins」タブ内のプラグインカタログリストから「OpenOffice.org API Plugin」を選択し、インストールします


インストール後、「環境設定」にて、先にインストールした本体と SDK のパスを設定します


以上でアドオン開発のための設定は完了です
次回、実際に NetBeans を使用した開発を紹介したいと思います

2008年4月30日水曜日

NetBeans で Mozilla アドオン開発

NetBeans Wiki の Mozilla アドオン開発 ページを翻訳しましたが、日本語訳がおかしいのもさることながら、説明が不十分な点もあるようなので、フォローのエントリーを書きます
なお、今回の説明にあたり下記2点に注意して下さい
1. (08/04/30現在)公式のプラグインではないので、インストールされる場合は自己責任にて行って下さい
2. 品質的にベータ並みなので、操作時にIOExceptionが発生したりなど十分に動作しない、または未実装の機能が存在します
以上、ご理解お願い致します


Foxbeans というプラグインを使用することで、 NetBeans にて Mozilla 用アドオンの開発が効率的に行えるようになります
なお、Mozilla 用アドオン開発としていますが、下記アプリケーション用のアドオン開発をサポートしています

* Mozilla Firefox
* Mozilla Thunderbird
* Mozilla Suite 1.x
* Netscape
* SeaMonkey
* Flock
* Sunbird
* Nvu

今回は対象プラットフォームに Firefox を使用し、説明を行います
それではまず、プラグインポータルサイトよりプラグイン用ファイル(.nbs)をダウンロードします
プラグインに関する詳細、及びダウンロードページはコチラになります
ページ内「ダウンロード」ボタンをクリックし、ファイルのダウンロード、任意のローカルフォルダへ保存して下さい


次に NetBeans へダウンロードしたファイルを取り込みます
メニューより「ツール > プラグイン」と進み、プラグインウィンドウを開きます
初期表示では「更新」タブが選択されているので、「ダウンロード済み」タブをクリック、表示して下さい
画面上部の「プラグインの追加」ボタンをクリック、ファイル選択にて先ほどダウンロードしたファイルを指定するとインストール対象リストに Foxbeans が追加されます


インストールチェックボックスにチェックし、画面下部の「インストール」ボタンをクリックするとインストールが開始されます


「次へ」をクリックし、インストールを進めて行くと、「妥当性検査の報告」というウィンドウが表示されます


これは先述の通り、公式のプラグインとしての電子署名がされていない事が原因なので、「継続」をクリックし、インストールを継続します
※繰り返しとなりますが、インストールは自己責任にて行って下さい
インストールが終了すると IDE の再起動を求められるので、再起動を行って下さい

再起動したら、 Mozilla アドオン開発用プロジェクトを作成します
メニューの「ファイル > 新規プロジェクト...」と選択し、新規プロジェクトウィンドウを表示します


カテゴリは Mozilla Addons、プロジェクトは Mozilla Addon Project を選択し、「次へ」ボタンをクリックして下さい
次にプロジェクト名と保存場所の設定ウィンドウとなるので、任意のプロジェクト名、保存場所を指定して下さい


「次へ」ボタンをクリックすると、プロジェクトに関する設定ウィンドウが表示されます
ここでアドオンに関する各種設定、及びサポートするプラットフォーム、テスト用プラットフォームの選択を行います


各種設定は今回はデフォルトのままとしていますが、任意の情報を設定することができます
次に Supported Application にてサポートするプラットフォームを設定します
Application 列を選択するとプリセットにて設定されてあるプラットフォームのリストが表示されます


ここでは Firefox を選択します
最後にテスト用プラットフォームを選択するのですが、インストール直後はリスト中には何も表示されていないと思います
リスト横の「...」ボタンをクリックし、プラットフォーム設定ウィンドウを表示します
Application 列をクリックし、アプリケーションを選択後、ローカル環境のアプリケーションのパスを設定します
Mac はやや特殊なのですが、今回は以下のように設定しました

Application: Mozilla Firefox
Name: Mozilla Firefox
Application Folder: /Applications/Firefox.app
Execute Command: /Applications/Firefox.app/Contents/MacOS/firefox-bin

設定を行うと以下のように表示されます


「...」をクリックし、設定を反映させるとリストに登録したアプリケーション名が表示されます


それを選択し、「完了」ボタンをクリックするとプロジェクトが作成されます
※テスト用プラットフォームの設定は環境設定(オプション)からも設定することが可能です


プロジェクトの作成が完了すると以下のようにプロジェクトウィンドウ内にプロジェクトツリーが表示されます


現状のまま実行して、動作を確認する事ができます
プロジェクトを右クリックし、「実行」を選択します


ビルドが完了すると、先にテストプラットフォームとして設定した Firefox が起動します
メニューの「ツール」をクリックすると、先ほど作成したアドオン名が表示されているのがわかるかと思います


アドオン名をクリックすると以下のように、メッセージとウィンドウが表示されます




6.1 から Javascript 開発がサポート強化された事(結構バグがありそうなんですが)により、 Mozilla 系アドオン開発環境としても面白いものになっているかと思います