ねこび〜ん ボタンの
パレットプラグインの作成方法です。早く書いておかないと自分でも忘れてしまいそうです。なかなか資料が見つからなかったのですが
Tim
のブログを参考にしました。Bean であれば同じ方法で簡単に作ることが可能なはずです。
簡単に説明すると、コンポーネントのライブラリを作成し、NetBeans モジュールプロジェクトの Java SE
ライブラリ記述子として指定します。最後に layer.xml にパレット項目の設定を記述します。
1.「ファイル」>「新規プロジェクト」、「Java」>「Java クラスライブラリ」プロジェクトを作成しコンポーネントを作成する
2.「ツール」>「ライブラリ」でそのライブラリプロジェクトを IDE のライブラリとして登録する
3.「ファイル」>「新規プロジェクト」、「NetBeans モジュール」>「モジュール」プロジェクトを作成する
4.「ファイル」>「新規ファイル」、「モジュールの開発」>「Java SE ライブラリ記述子」を選び、登録したライブラリを選択する
5.「ファイル」>「新規ファイル」、「XML」>「XML ドキュメント」を選び適用な XML ファイルを作成する
ここでは ZzzButtonPaletteItem.xml というファイルを作成しました。そして以下のようにパレットに表示するクラスとクラスパスを palette_item に書きます。ここでは org.netbeans.ja.nekobean.button.ZzzButton のみの記述を行います。同様にコンポーネントごとに xml ファイルを用意します。
component でコンポーネントのクラスパスを指定します。
<?xml version="1.0" encoding="UTF-8"?>
<palette_item version="1.0">
<component classname="org.netbeans.ja.nekobean.button.ZzzButton" />
<classpath>
<resource type="library" name="NekoBeanButtonLib" />
</classpath>
</palette_item>
6. layar.xml の FormDesignerPalette に XML の記述を追加する
FormDesignerPalette を追加します。またその下にフォルダを作って NekoBeanButton
というフォルダを作成しています。これでパレットには「NekoBeanButton」というカテゴリが追加されます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
<filesystem>
<folder name="org-netbeans-api-project-libraries">
<folder name="Libraries">
<file name="NekoBeanButtonLib.xml" url="NekoBeanButtonLib.xml"/>
</folder>
</folder>
<folder name="FormDesignerPalette">
<folder name="NekoBeanButton">
<file name="Smile.palette_item" url="SmileButtonPaletteItem.xml"/>
<file name="Zzz.palette_item" url="ZzzButtonPaletteItem.xml"/>
</folder>
</folder>
</filesystem>
ここまででもよいのですがせっかくなので一言語だけではなく英語、日本語対応にしてみましょう。
直接日本語を書いてしまうと日本語用にしか使えないのでここは Bundle.properties を使って英語用と日本語用のリソースを分けてみます。
localizing-bundle でリソースバンドルを指定します。
display-name-key で表示名を指定します。
またアイコンも指定しています。
<?xml version="1.0" encoding="UTF-8"?>
<palette_item version="1.0">
<component classname="org.netbeans.ja.nekobean.button.ZzzButton" type="visual" />
<icon16 urlvalue="nbres:/org/netbeans/ja/nekobean/nekobeanbuttonpalette/nekobean16.gif" />
<icon32 urlvalue="nbres:/org/netbeans/ja/nekobean/nekobeanbuttonpalette/nekobean32.png" />
<description localizing-bundle="org.netbeans.ja.nekobean.nekobeanbuttonpalette.Bundle"
display-name-key="NAME_ZzzButton"
tooltip-key="HINT_ZzzButton" />
<classpath>
<resource type="library" name="NekoBeanButtonLib" />
</classpath>
</palette_item>
上記で指定した
org/netbeans/ja/nekobean/nekobeanbuttonpalette/Bundle.properties
ファイルには以下のように表示名を記述します。
NAME_ZzzButton=Zzz...
HINT_ZzzButton=Zzz Nekobean
日本語のバンドルファイルには以下のようにそれに対応する日本語を書きます。
NAME_ZzzButton=Zzz...
HINT_ZzzButton=Zzz なねこび~ん
layer.xml でも SystemFileSystem.localizingBundle でリソースバンドルを指定します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
<filesystem>
<folder name="org-netbeans-api-project-libraries">
<folder name="Libraries">
<file name="NekoBeanButtonLib.xml" url="NekoBeanButtonLib.xml"/>
</folder>
</folder>
<folder name="FormDesignerPalette">
<attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.ja.nekobean.nekobeanbuttonpalette.Bundle" />
<folder name="NekoBeanButton">
<attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.ja.nekobean.nekobeanbuttonpalette.Bundle" />
<file name="NekoBean.palette_item" url="NormalButtonPaletteItem.xml"/>
<file name="Orz.palette_item" url="OrzButtonPaletteItem.xml"/>
<file name="Smile.palette_item" url="SmileButtonPaletteItem.xml"/>
<file name="Sad.palette_item" url="SadButtonPaletteItem.xml"/>
<file name="Zzz.palette_item" url="ZzzButtonPaletteItem.xml"/>
<file name="Happy.palette_item" url="HappyButtonPaletteItem.xml"/>
<file name="WithCat.palette_item" url="CatButtonPaletteItem.xml"/>
</folder>
</folder>
</filesystem>
日本語のリソースバンドルでは以下のようにパレットカテゴリの表示名を日本語で記述します。
FormDesignerPalette/NekoBeanButton=ねこび~んボタン