FeaturesPluginsDocs & SupportCommunityPartners

NetBeans IDE 5.0 HTML エディタモジュールのチュートリアル

フィードバック

このチュートリアルでは Java コーディングをいっさいせずに HTML エディタを構築する手順を説明します。これから作る HTML エディタは NetBeans Platform 上に構築されるリッチクライアントアプリケーションです。IDE の中心部分、すなわち NetBeans Platform アプリケーションの土台になります。NetBeans Platform 上で IDE が必要なプラグインモジュールを追加したり除外したりしますがこのアプリケーションはそのようなことはしません。ここでは IDE の以下のいくつかのプラグインモジュールを NetBeans Platform に追加します:

HTML エディタ

NetBeans Platform 上で高機能なアプリケーションを組み立てる方法がいかに単純で簡単なものか理解することができます。最終的にはどのように製品を作成しアプリケーションを WebStart をして配布、起動できるようにします。

注意: NetBeans Platform は別プロダクトですが、このチュートリアル用に NetBeans Platform を別にダウンロードする必要はありません。不必要な IDE 特有のプラグインモジュールを除外することにより IDE 上でリッチクライアントアプリケーションを作成することができます。

このチュートリアルでは以下のことを説明します:

このチュートリアルはソフトウェアがインストールできれば 20 分程度で完了します。

モジュール開発に関する詳細は NetBeans サイトの NetBeans 開発プロジェクトホーム を参照してください。わからないところがあれば NetBeans 開発者 FAQ を参照してください。またこのページの「フィードバック」リンクを使ってください。


はじめに

まずはじめにコンピュータにソフトウェアをインストールします:


サンプルの実行

非常に簡単なアプリケーションですがおもちゃではないですよ!!これは実際に動くプログラムで簡単に HTML ページを編集することができます。コード補完や妥当性検査、HTML スニペットを備えています。エディタを起動する前に Java と WebStart が有効になっている必要があります。次のリンクをクリックしてください:

HTML エディタの起動

WebStart が起動した後スプラッシュス画面が表示され、HTML エディタが起動します:

HTML エディタ

ソースの取得

エンドユーザーの機能についてはここまでにしましょう。このデモプログラムを実行するコードを見ていくことにします。ソースコードは NetBeans CVS リポジトリ から取得できます。また オンラインで参照 することができます。ソースコードの一番の勉強方法は:

    cvs -d :pserver:anoncvs@cvs.netbeans.org:/cvs login
    cvs -d :pserver:anoncvs@cvs.netbeans.org:/cvs co contrib/sampleapps/htmleditor

ソースを取得すれば NetBeans IDE 5.0 でプロジェクトとして開くことができます。プロジェクトを開いたあとプロジェクトプロパティーのダイアログボックスでプロジェクトが動作するように NetBeans IDE の正確な場所を設定する必要があるかもしれません。

全体のソースはおおよそ30ファイルです。これは構築スクリプト、プロパティーファイル、イメージファイルが含まれています。これらは NetBeans IDE 5.0 プラグインモジュール開発サポートによって自動的に作成されます。この HTML エディタを作成するにはたいした作業は必要ありません。スクラッチから書くわけではありません。NetBeans IDE 5.0 の提供している既存のコンポーネントをほとんど再利用しています。結果として非常に複雑で強力なアプリケーションをコードの編集なしに作成することができます。

最終的な結果がどのようになるかわかったので、スクラッチから HTML エディタを組み立てる 方法と WebStart 化する方法を勉強してみましょう。


HTML エディタの組み立て

HTML エディタを作成するといことはアプリケーションスケルトンを生成するということです。必要のないモジュールとユーザーインタフェースを除外し「お気に入り」ウィンドウをウィンドウとして IDE 起動時にデフォルトで開くようにします。これらの作業は NetBeans IDE 5.0 でのユーザーインタフェースを使って行うことができます。

スケルトンアプリケーションの生成

  1. 「新規 プロジェクト」(Ctrl-Shift-N) ウィザードを使ってテンプレートから「NetBeans プラグインモジュール」カテゴリから「モジュールスイート」プロジェクトを作成します。

  2. このモジュールスイートプロジェクトのプロパティーダイアログでいくつかの変更をします:

    • 「アプリケーション」パネルでは「スタンドアロンアプリケーション」として設定します。「IDE モジュールを除外しますか」と聞かれた場合にはスキップします。HTML エディタはいくつかの IDE のモジュールを必要とします。必要のないモジュールは次のステップで除外します。実行可能なアプリケーションのタイトルバーのタイトル、ブランド名は次のようにします:

      アプリケーションパネル

    • 「スプラッシュ画面」パネルではアプリケーションのスプラッシュ画面を提供します:

      スプラッシュ画面:

      適当なスプラッシュ画面がないときにはこれを使ってください。

    • 必要なモジュールのサブセットをモジュールスイートの「ライブラリ」パネルで設定します。ここでは必要なサブセットのクラスタは ide6platform6 です。platform6 クラスタでは この スクリーンショットが選択されている必要があります。ide6 では この スクリーンショットと この スクリーンショットのモジュールが必須です。

      選択されているモジュールは platform6 では次のようになります:

      アクション API
      ブートストラップ
      コア
      コア - 実行
      コア - UI
      コア - Windows
      データシステム API
      ダイアログ API
      実行 API
      エクスプローラとプロパティーシート API
      お気に入り
      ファイルシステム API
      汎用クエリー API
      入出力 API
      JavaHelp 統合
      Look & Feel カスタマイズライブラリ
      マスターファイルシステム
      モジュールシステム API
      ノード API
      出力ウィンドウ
      進捗 API および UI
      設定 API
      設定オプション API
      起動
      タブ制御
      テキスト API
      UI ユーティリティー API
      ユーティリティー API
      ウィンドウシステム API

      また ide6 では次のモジュールが選択されていることを確認してください:

      コア - コンポーネントパレット
      エディタ
      エディタコード補完
      エディタコード折り畳み
      エディタコードテンプレート
      エディタヒント
      エディタライブラリ
      エディタ MIME 検索
      エディタの設定
      エディタ設定記憶領域
      エディタユーティリティー
      エラーストライプ API
      エラーストライプコア
      試験的な検索 API
      HTML
      HTML エディタ
      HTML エディタライブラリ
      イメージ
      プレーンエディタ
      プレーンエディタライブラリ
      プロジェクト API
      プロジェクト UI API
      タグ対応エディタライブラリ
      ユーザーユーティリティー

  3. この作業を終えるとアプリケーションはスタンドアロンアプリケーションとして、かつ WebStart のアプリケーションとして起動できるようになります。リッチクライアントを実行させるには「プロジェクト」ウィンドウで右クリックし「実行」とするか、WebStart のアプリケーションとして実行させるには「JNLP アプリケーションを実行」を選択します。

    ユーザーインタフェースのせんてい

    IDE のユーザーインタフェースを必要なだけ有効にするか削除するかを決めることができます。HTML エディタではおそらく「ツール」メニュー以下のすべての項目、あるいはほとんどの項目は必要ないでしょう。同様にツールバーやツールバーボタンも除外することができます。このセクションではリッチアプリケーションで必要なものだけ残すように IDE のユーザーインタフェースを削除していきます。

    1. 「新規 プロジェクト」(Ctrl-Shift-N) ウィザードを使ってテンプレートから「NetBeans プラグインモジュール」カテゴリから「モジュール」プロジェクトを作成します。「名前と場所」パネルではこのモジュールプロジェクトを前のセクションで作成したモジュールスイートプロジェクトに追加します。

    2. 「重要なファイル」ノードで「XML レイヤー」ノードを展開します。2つのサブノードが展開されます:

      展開された XML レイヤー

      <コンテキスト内のこのレイヤー> ノードではすべての仮想ファイル、すなわちすべての登録されたモジュールのレイヤーがマージされた状態で表示されます。項目を除外するには項目を右クリックして「削除」を選択します:

      <コンテキスト内のこのレイヤー>

      IDE はプラグインモジュールの layer.xml ファイルにタグを追加します。プラグインモジュールがインストールされると削除した項目は表示されません。たとえば、Menu Bar/Edit で右クリックして HTML エディタでは必要のないメニュー項目を削除することができます。このようにして次のように layer.xml ファイルを変更することができます:

      <folder name="Menu">
          <folder name="Edit">
              <file name="org-netbeans-core-actions-JumpNextAction.shadow_hidden"/>
              <file name="org-netbeans-core-actions-JumpPrevAction.shadow_hidden"/>
          </folder>
      </folder>

      このコードにより他のプラグインモジュールによって提供された JumpPrevActionJumpNextAction アクションを自らのプラグインモジュールによってメニューから削除することができます。

    3. 上記の手段で多くのツールバー、ツールバーのボタン、メニュー、メニュー項目を削除することができます。

    ウィンドウレイアウトの再構成

    <コンテキスト内のこのレイヤー> ノードを使うと削除するだけではなく、コンテキストを変更できます。たとえば、HTML エディタは HTML ファイルを対象とします。通常の IDE のように Java ソースファイルやプロジェクトを扱うのではないので「お気に入り」 ウィンドウを起動時のレイアウトとしたほうが便利です。

    ウィンドウのレイアウトの定義もこのレイヤーで Windows2 フォルダで定義します。Windows2 フォルダ内のすべてのファイルは ウィンドウシステム API で擬似的に読んで理解できるような XML になっています。これらはとても複雑ですがすべて理解する必要はまったくありません。

    1. Windows2 ノードで右クリックし「検索」を選びます。

    2. Favoritesと付くオブジェクトを探します。大文字小文字は無視してください。

      2つ見つかります:

      Windows2/Components/favorites.settings
      Windows2/Modes/explorer/favorites.wstcref
      

      最初のファイルはコンポーネントがどのように見えるか、またどのように作成されるかを定義しています。ここは変更する必要がありませんのでこのファイルは編集する必要がありません。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>

    3. この XML はほとんど意味がわかりませんが1行だけ他のドキュメントを読まなくても理解できる箇所があります。falsetrue に変更することでデフォルトの状態でそのコンポーネントを表示させておくことができます。この変更によってアプリケーションを再起動するとデフォルトで「お気に入り」タブが表示されます。

    4. 同様にしてコンポーネントパレットもデフォルトで開くように変更できます。

    5. 次に、「コア - コンポーネントパレット」 モジュールと 「お気に入り」 モジュールを上書きしているのでこれらのモジュールの実行時依存関係を作成する必要があります。プロジェクトウィンドウのモジュールプロジェクトで右ボタンを押して「プロパティー」を選びます。「ライブラリ」パネルで2つのモジュールを上書きする必要があります:

      deps

      「重要なファイル」ノードで「プロジェクトメタデータ」 ファイルを開きます。2つのモジュールの依存関係が次のように宣言されていることがわかります:

      <dependency>
        <compile-dependency/>
        <build-prerequisite/>
        <run-dependency>
        ...
        </run-dependency>
      <dependency>

      このプロジェクトには Java クラスは含んでいないのでコンパイル依存関係と構築条件がある場合は構築でエラーになります。この問題を解決するために <compile-dependency><build-prerequisite> タグを削除します。しかし、実行時にはこの2つのモジュールを上書きしているので <run-dependency> タグはそのままにします。


共有の NetBeans JNLP リポジトリからの HTML エディタの配布

最後にアプリケーションを最初に起動したときに生成される master.jnlp ファイルをチューニングします。HTML エディタとしては完成ですが、まだ配布できる形にはなっていません。すくなくとも情報項目のアイコンや説明は変更する必要があります。

他の変更は標準 JNLP インフラストラクチャーに www.netbeans.org の共有 JNLP リポジトリを使用するように変更します。デフォルトではスイート用の JNLP アプリケーションは依存するモジュールをすべて含むように生成されます。この方法はイントラネットには便利な方法です、しかしインターネットでの使用にあまり実用的ではありません。インターネット上では NetBeans Platform 上で作成されたすべてのアプリケーションが NetBeans モジュールの1つのリポジトリを参照することが望ましいです。なぜなら、それらのモジュールは共有され、他の場所からダウンロードする必要がありません。

NetBeans 5.0 にはこのようなリポジトリがあります。そのリポジトリには NetBeans IDE が提供しているすべてのモジュールを含んでいるわけではありません。たとえば ant モジュールはまだ JNLP として利用できません。しかし今回の HTML エディタのような IDE アプリケーション以外のアプリケーションを作成するにはじゅうぶんです。このリポジトリを使うには platform.properties に正確な URL を追加するだけです:

# share the libraries from common repository on netbeans.org
# this URL is for release50 JNLP files:
jnlp.platform.codebase=http://www.netbeans.org/download/5_0/jnlp/

アプリケーションが JNLP アプリケーションとして起動されると、すべての共有モジュールが netbeans.org から読み込まれ、同様のアプリケーション間で共有されます。


次のステップ

このチュートリアルではたくさんのトリックを勉強しました。NetBeans Platform でアプリケーションを構築し、XML レイヤーノードのサブノードにも目を通しました。多くの労力なしにアプリケーションが正確に希望通りの形になるまでせんていしたりレイアウトの再構成をしながらアプリケーションをチューニングできます。次に、プラグインモジュールをアプリケーションに如何に簡単に追加できるかを理解しましょう。「NetBeans プラグインモジュールとリッチクライアントアプリケーション開発のチュートリアル」 では HTML エディタを拡張するためのさまざまな使用例を説明しています。たとえば、メニューバーに独自のメニュー項目を付け足したい場合があるかもしれません。あるいはコンポーネントパレットにより多くの HTML のスニペットを追加したい場合があるかもしれません。モジュール開発者リソースのチュートリアルではそれらの実装方法が述べられています。

また NetBeans IDE 5.0 リッチクライアントアプリケーションクイックスタートガイド を参照してください。これにはペイントアプリケーションの作成方法が載っています。さらに複雑なアプリケーションは NetBeans IDE 5.0 フィードリーダーのチュートリアル で述べられています。

バージョン

詳細な更新履歴は 原文の英文 をご覧下さい。 このファイルはリビジョン 1.24 を翻訳しています。


Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by