NetBeans プラットフォーム 6.0 クイックスタートチュートリアル
このチュートリアルでは、Java コーディングを一切行なわずに HTML エディタを構築する方法を説明します。このチュートリアルの最後で、次のような HTML エディタができます。
非常に簡単なデモアプリケーションですが、おもちゃではありません。コード補完、妥当性検査、事前定義済みの HTML スニペットなどの機能を備えた、HTML ページの簡単な編集をサポートする実際のプログラムです。
このチュートリアルで作成する HTML エディタは、「NetBeans プラットフォーム上」に構築されるリッチクライアントアプリケーションです。これは IDE のコア、つまり NetBeans プラットフォームがアプリケーションのベースになることを意味しています。NetBeans プラットフォーム上で必要なモジュールを追加し、IDE には必要だがアプリケーションでは必要のないモジュールを除外します。ここでは、NetBeans プラットフォームに追加される、ベースである IDE モジュールの一部が表示されます。
この HTML エディタを作成するということは、アプリケーションスケルトンを生成するということです。必要ないモジュールとユーザーインタフェース項目を除外し、IDE の起動時にデフォルトで開くウィンドウとして「お気に入り」ウィンドウを設定します。これらのアクティビティーはすべて、IDE のユーザーインタフェース要素でサポートされています。
NetBeans プラットフォーム上に各種機能を備えたアプリケーションを構築する、より正確にはアセンブルすることが、いかに単純で簡単であるかを自分で体験できます。最後に、WebStart を使用して簡単にダウンロードおよび起動できる最終製品の作成方法が表示されます。
注: それが単体の製品であっても、このチュートリアルのために NetBeans プラットフォームを別途ダウンロードする必要はありません。IDE でリッチクライアントアプリケーションを開発したあとで、アプリケーションにとって不要な IDE 特有のモジュールを除外します。
目次
モジュールの操作についての詳細は、NetBeans の Web サイトにある NetBeans 開発プロジェクトのホームページを参照してください。質問がある場合は、NetBeans 開発者の FAQ を参照するか、フィードバック用のリンクを使用してください。
作業の開始
開始する前に、コンピュータに次のソフトウェアをインストールしておく必要があります。
スケルトンアプリケーションの生成
NetBeans プラットフォーム上にアプリケーションを作成するときは、まずモジュールスイートプロジェクトを作成します。デフォルトのモジュールスイートプロジェクトには、NetBeans IDE に含まれているすべてのモジュールだけでなく、NetBeans プラットフォームに含まれているすべてのモジュールも含まれます。これらのモジュールのすべてが必要ではないため、必要のないものを除外します。
- 「新規プロジェクト」(Ctrl-Shift-N) ウィザードを使用して、次に示すように、「NetBeans モジュール」カテゴリのテンプレートから「モジュールスイート」プロジェクトを作成します。
「次へ」をクリックしてモジュールスイートに「NetBeans HTML エディタ」という名前をつけます。「完了」をクリックします。
- プロジェクトノードを右クリックして「プロパティー」を選択し、モジュールスイートの「プロジェクトプロパティー」ダイアログでいくつかの変更を行います。
- 「構築」パネルで「スタンドアロンアプリケーションを作成」をクリックし、NetBeans プラットフォーム上のリッチクライアントアプリケーションにすることを指定します。
実行可能アプリケーションのブランド名およびタイトルバーのアプリケーションタイトルを、次のようにします。
- 「スプラッシュ画面」パネルには、次に示すように、アプリケーションのスプラッシュ画面が提供されます。
スプラッシュ画面がない場合は、これを使用してください。
- 「プロジェクトプロパティー」ダイアログの「ライブラリ」パネルに、「クラスタ」が一覧表示されます。クラスタとは、関連するモジュールの集合のことです。ここで選択する必要のあるクラスタは、ide8 と platform7 のみです。その他のクラスタをすべて選択解除します。
- platform7 クラスタでは、次のモジュールのみが必要です。
アクション API
ブートストラップ
コア
コア - 実行
コア - UI
コア - Windows
データシステム API
ダイアログ API
実行 API
エクスプローラとプロパティーシート API
お気に入り
ファイルシステム API
汎用クエリー API
入出力 API
JavaHelp 統合
キーマップオプション
Look & Feel カスタマイズライブラリ
MIME ルックアップ API
SystemFS の MIME ルックアップ
マスターファイルシステム
モジュールシステム API
ノード API
オプションダイアログおよび SPI
「出力」ウィンドウ
進捗 API
進捗 UI
設定 API
設定オプション API
起動
Swing レイアウト拡張統合
タブ制御
テキスト API
UI ユーティリティー API
ユーティリティー API
ウィンドウシステム API
- ide8 クラスタでは、次のモジュールのみが必要です。
共通パレット
相違
エディタ
エディタ中括弧の照合
エディタコード補完
エディタコード折り畳み
エディタで保護されたセクション
エディタのインデント
エディタライブラリ
エディタライブラリ 2
エディタの設定
エディタの設定記憶領域
エディタユーティリティー
エラーストライプ API
エラーストライプコア
一般的なオプションダイアログパネル
汎用言語フレームワーク
HTML
HTML エディタ
HTML エディタライブラリ
HTML 字句解析器
IDE のデフォルト
Image
字句解析器
字句解析器から NetBeans へのブリッジ
ナビゲータ API
プレーンエディタ
プレーンエディタライブラリ
プロジェクト API
検索 API
タグ対応エディタライブラリ
ユーザーインタフェースの調整
IDE のユーザーインタフェースを必要なだけ使用したり拒否したりできます。HTML エディタでは、「ツール」メニュー以下の項目の一部または全部はおそらく必要ありません。同様に、必要ないツールバーやツールバーボタンがある場合もあります。この節では、リッチクライアントアプリケーションに有用なものだけ残すように、IDE のユーザーインタフェースを削除します。
- モジュールスイートを展開し、次に示すように、「モジュール」ノードを右クリックして「新規を追加」を選択します。
「新規プロジェクト」(Ctrl-Shift-N) ウィザードが表示されます。プロジェクトに BrandingModule という名前を付け、「次へ」をクリックして「完了」をクリックします。
- ブランドモジュールの「重要なファイル」ノードで、「XML レイヤー」ノードを展開します。2 つのサブノードが展開されます。
- <コンテキスト内のこのレイヤー> ノードには、すべてのモジュールがレイヤーで登録する、すべてのフォルダおよびファイルがマージされた状態で表示されます。項目を除外するには、次に示すように、その項目を右クリックして「削除」を選択します。
次に、IDE ではモジュールの layer.xml ファイルにタグが追加されます。そのファイルにより、モジュールがインストールされるときに、削除した項目が非表示になります。たとえば、「Menu Bar/Edit」を右クリックすると、HTML エディタに必要のないメニュー項目を「編集」メニューから削除できます。これにより、layer.xml ファイルに次のようなスニペットを生成します。
<folder name="Menu">
<folder name="Edit">
<file name="org-netbeans-modules-editor-MainMenuAction$StartMacroRecordingAction.instance_hidden"/>
<file name="org-netbeans-modules-editor-MainMenuAction$StopMacroRecordingAction.instance_hidden"/>
</folder>
</folder>
前のスニペットの結果、ほかのモジュールによって提供された Start Macro Recording および Stop Macro Recording アクションが、ブランドモジュールによってメニューから削除されます。
- 前の手段で説明されている方式を使用して、必要な数のツールバー、ツールバーのボタン、メニュー、およびメニュー項目を非表示にします。
ウィンドウレイアウトの調整
<コンテキスト内のこのレイヤー> ノードを使用して、既存の項目を削除するだけではなく、それらの内容を変更することもできます。たとえば、HTML エディタは HTML ファイルを対象とします。したがって、Java ソースファイルやプロジェクトにも使用する通常の IDE とは異なり、初期レイアウトに「お気に入り」ウィンドウを表示することは理にかなっています。
ウィンドウレイアウトの定義も、このレイヤーにファイルとして記述され、Windows2 フォルダにすべて格納されます。Windows2 フォルダ内のファイルは、ウィンドウシステム API によって定義された、擬似的に読解可能な XML ファイルです。これらはかなり複雑です。ただし次に示すように、HTML エディタのためにはこれらを完全に理解する必要はありません。
- ブランドモジュールの <コンテキスト内のこのレイヤー> ノードで、次に示すように、Windows2 ノードを右クリックし、「検索」を選択します。
- Favorites という名前のオブジェクトを検索します。大文字小文字は無視します。2 つのファイルが見つかります。
最初のファイルはコンポーネントがどのように見えるか、またどのように作成されるかを定義します。これは変更する必要がないので、このファイルは編集する必要はありません。2 番目のファイルは目的に関わるファイルです。その内容は次のようになっています。
<tc-ref version="2.0">
<module name="org.netbeans.modules.favorites/1" spec="1.1" />
<tc-id id="favorites" />
<state opened="false" />
</tc-ref>
- この XML のほとんどの意味がわからないとしても、ほかのドキュメントを読まずに理解できる箇所が 1 行だけあります。false を true に変更すると、そのコンポーネントをデフォルトで開くことができます。これをやってみましょう。
-
同様に、「コンポーネントパレット」をデフォルトで開くように、また「ナビゲータ」を閉じるように変更できます。これら両方の手順を実行します。
これで、ブランディングモジュールに 3 つの新しいファイルが含まれていることが表示されます。変更したファイルそれぞれに 1 つです。実際には、これらのファイルは前の手順で検出したファイルをオーバーライドするため、ウィンドウのレイアウトをオーバーライドするのに必要な情報が提供されます。
「お気に入り」ウィンドウの調整
「ファイル」ウィンドウに表示される、モジュールスイートの branding フォルダのサブフォルダでは、NetBeans のソースで定義された文字列をオーバーライドできます。この節では、「お気に入り」ウィンドウで使用されるラベルを定義する文字列をオーバーライドします。たとえば、特に HTML ファイル用にそのウィンドウを使用するため、「お気に入り」ラベルを「HTML ファイル」に変更します。
- 「ファイル」ウィンドウを開き、モジュールスイートの branding フォルダを展開します。
- branding/modules 内に新しいフォルダ構造を作成します。新しいフォルダに org-netbeans-modules-favorites.jar という名前を付けます。そのフォルダ内に、org/netbeans/modules/favorites のフォルダ構造を作成します。最終フォルダ、つまり favorites 内に、新しい Bundle.properties ファイルを作成します。このフォルダ構造とプロパティーファイルは、「お気に入り」ウィンドウに関係する NetBeans のソースのフォルダ構造と一致します。
- 次のスクリーンショットに示す文字列を追加し、「お気に入り」ウィンドウのソース内の一致するプロパティーファイルで定義されている同じ文字列をオーバーライドします。
コピーおよびペーストを簡単に行うため、これらは前で定義した文字列です。
お気に入り=HTML ファイル
ACT_AddOnFavoritesNode=HTML ファイルを検索(&F)
ACT_Remove=HTML ファイルの一覧から削除(&R)
ACT_View=HTML ファイル
ACT_Select=HTML ファイル
ACT_Select_Main_Menu=HTML ファイルの一覧から選択
# JFileChooser
CTL_DialogTitle=HTML ファイルの一覧に追加
CTL_ApproveButtonText=追加
ERR_FileDoesNotExist={0} が存在しません。
ERR_FileDoesNotExistDlgTitle=HTML ファイルの一覧に追加
MSG_NodeNotFound=HTML ファイルの一覧にドキュメントノードは見つかりませんでした。
アプリケーションの実行
アプリケーションの実行は、プロジェクトノードを右クリックしてメニュー項目を選択するのと同じくらい簡単です。
- アプリケーションのプロジェクトノードを右クリックし、「すべてを削除して構築」を選択します。
- アプリケーションのプロジェクトノードを右クリックし、「実行」を選択します。
- アプリケーションが配備されたら、「お気に入り」ウィンドウ内を右クリックし、HTML ファイルを含むフォルダを選択します。次に、次に示すように、HTML ファイルを開くことができます。
更新機能の包含
アプリケーションを拡張可能にするには、ユーザーにアプリケーションの機能を拡張するためのモジュールをインストールさせる必要があります。これを行うには、HTML エディタにプラグインマネージャーをバンドルする、いくつかの追加モジュールを有効にする必要があるだけです。
- モジュールスイートプロジェクトを右クリックし、「プロパティー」を選択します。「プロジェクトプロパティー」ダイアログの「ライブラリ」パネルを使用し、次に強調表示されているチェックボックスを選択します。
- アプリケーションのプロジェクトノードを右クリックし、「すべてを削除して構築」を選択します。
- アプリケーションを再度実行すると、「ツール」メニューの下に「プラグイン」という名前の新しいメニュー項目が表示されます。
- 新しい「プラグイン」メニュー項目を選択し、HTML エディタで役立つプラグインをいくつかインストールします。プラグインポータルを参照し、適切なものをいくつか検索します。
アプリケーションの配布
IDE では、アプリケーションの起動ツールを含む ZIP ファイルと同様に、アプリケーションを Web で起動するための JNLP アプリケーションを作成できます。この節では、ZIP ファイルでのアプローチをテストします。
- アプリケーションのプロジェクトノードを右クリックし、次に示すように、「配布用 ZIP を構築」を選択します。
モジュールスイートの dist フォルダに ZIP ファイルが作成されます。これは「ファイル」ウィンドウで確認できます。
- アプリケーションを展開すると、次のようになります。
注: アプリケーションの起動ツールは、前に示すように、bin フォルダに作成されます。
共有の NetBeans JNLP リポジトリからの HTML エディタの配布
最後に、アプリケーションを最初に起動したときに生成される master.jnlp ファイルをチューニングします。作業を行なっていても、まだ配布の準備は整っていません。少なくとも、情報セクションを変更して、より良い説明やアイコンを提供する必要があります。
標準 JNLP インフラストラクチャーに対するほかの変更は、www.netbeans.org での共有 JNLP リポジトリの使用です。デフォルトでは、スイート用に生成される JNLP アプリケーションには、常に、そのすべてのモジュールと依存するすべてのモジュールが含まれます。これはイントラネットでの使用時に便利な場合もありますが、幅広くインターネットで使用する場合には、やや実用性に欠けることがあります。インターネットの場合、NetBeans プラットフォームに構築されたすべてのアプリケーションは、NetBeans モジュールの 1 つのリポジトリを参照するほうがよいでしょう。これは、そのようなモジュールは共有されるため、何度もダウンロードする必要がないからです。
NetBeans 6.0 にはこのようなリポジトリがあります。NetBeans IDE が提供しているモジュールをすべて含んでいるわけではありませんが、今回の HTML エディタのような IDE アプリケーション以外のアプリケーションを作成するには十分です (課題 112726 を参照)。
このリポジトリを使用するには、正しい URL を追加して、platform.properties を変更するだけです。
# netbeans.org の共通のリポジトリからライブラリを共有
# この URL は release60 JNLP ファイル専用:
jnlp.platform.codebase=http://www.netbeans.org/download/6_0/jnlp/
アプリケーションが JNLP アプリケーションとして起動されるとすぐに、すべての共有プラグインモジュールが netbeans.org から読み込まれ、同様のアプリケーション間で共有されます。
次の手順
このチュートリアルではたくさんの優れたトリックを勉強しました。NetBeans プラットフォーム上に動作アプリケーションを構築し、XML レイヤーノードのサブノードにも目を通しました。希望どおりの動作を正確に行う堅牢で合理的なアプリケーションになるまで変更や調整を行い、少ない労力で継続してチューニングできます。次に、独自のモジュールを、アプリケーションにいかに簡単に追加できるかを学習します。NetBeans プラグインモジュールとリッチクライアントアプリケーション開発のチュートリアルでは、HTML エディタを拡張するためのさまざまな使用例を説明しています。たとえば、メニューバーに独自のメニュー項目を追加したい場合があるかもしれません。または、コンポーネントパレットに、追加の HTML スニペットを提供したい場合があるかもしれません。この両方のシナリオおよびその他の概要は、モジュール開発者リソースのチュートリアルで説明されています。
また、独自のペイントアプリケーションの作成方法を示す NetBeans IDE 6.0 ペイントアプリケーションのチュートリアルも参照してください。最後に、さらに複雑なアプリケーションについては、NetBeans IDE 6.0 フィードリーダーのチュートリアルに説明があります。