Friday Aug 28, 2009

NetBeans の WidgetFX と JFXtras のパレットモジュールを作ってみた(ただし外枠だけ)

この前 WidgetFX のプロジェクトを作るプラグインを作ってみました。
また Java エディタ用のパレットモジュールのチュートリアルをやってみました。
ということなので、Java ではなく、JavaFX のパレットにも WidgetFX とそこで使っている JFXtras のコードスニペットを追加するモジュールを作ってみたいと思います。ただし、どのコードスニペットをパレットから使えたら便利なのかというのは私にはわからないので \^\^;) 今回はモジュールの部分だけいくつか作ってみます。

参考にしたコードスニペットのチュートリアルです。基本的はこのとおりに作って行きます。
手順はこのようになります。
  1. モジュールプロジェクトの作成
  2. 必要なライブラリの追加
  3. パレットカテゴリの作成 (レイヤーXMLに folder を追加)
  4. パレット項目の作成 (レイヤーXMLに file を追加, パレット項目の XML ファイルの作成)
  5. 実行
  6. 修正
NetBeans のモジュールプロジェクトを作成します。「NetBeans モジュール」>「モジュール」を選びます。

NetBeans Palette

「基本モジュール構成」のパネルでは「XML レイヤーを生成」にチェックを入れておいてください。

NetBeans Palette

作成されたプロジェクトは以下のようになります。resources フォルダはプロジェクトを作成した後に作りました。

NetBeans Palette

プロジェクトノードで右クリックして「プロパティー」を選びます。必要なライブラリを追加します。フィルタに「palette」などと入力してライブラリを絞り込みます。

NetBeans Palette

「共通パレット」と「テキスト API」を追加しました。

NetBeans Palette

ではパレット項目を追加していきます。「重要なファイル」の「XML レイヤー」>「コンテキスト内のこのレイヤー」ノードを展開していきます。

NetBeans Palette

すると「なんとかPalette」というノードが見つかります。JavaFX 用のパレットは「JavaFXPalette」以下に定義されています。新しいパレットカテゴリを作成するにはこの JavaFXPalette ノードでフォルダを作ります。

NetBeans Palette

3つ作りました。「JFXtras Layout」、「JFXtras Shape」、「WidgetFX」です。変更のあった状態のものは太字で表示されます。

NetBeans Palette

今度はプロジェクトにあるファイル layer.xml ノードを展開してみます。このレイヤー以下には作成されたフォルダのみが表示されていることがわかります。

NetBeans Palette

layer.xml をダブルクリックして XML ファイルを見てみます。作成されたフォルダが追加されていますよね。このようにレイヤーを編集する場合には、layer.xml の XML を直接編集してもよいし、プロジェクトウィンドウのツリーを編集してもどちらでもよいようです。慣れている人で layer.xml に何を書いたらいいかわかっているひとは layer.xml を直接編集したほうが早いですよね。私のように何を追加したらいいかわからない人は実際の GUI を見ながらツリーを見ながらのほうがいいでしょう。

NetBeans Palette

さてこの下にチュートリアルを参考してファイルを用意していきます。パレット項目の定義ファイルの1つです。resources 以下に置きます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE editor_palette_item PUBLIC "-//NetBeans//Editor Palette Item 1.0//EN"
  "http://www.netbeans.org/dtds/editor-palette-item-1_0.dtd">

<editor_palette_item version="1.0">
    <class name="org.netbeans.modules.widgetfx.palette.JFXtrasGrid" />
    <description localizing-bundle="org.netbeans.modules.widgetfx.palette.Bundle"
               display-name-key="NAME_widgetfx-JFXtrasGrid"
               tooltip-key="HINT_widgetfx-JFXtrasGrid" />
</editor_palette_item>
layer.xml ファイルはこのようになりました。folder (パレットカテゴリ) 以下に file (パレット項目) を定義しています。
<?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="JavaFXPalette">
        <folder name="JFXtras Layout">
            <file name="JFXtrasPaletteGrid.xml" url="resources/JFXtrasPaletteGrid.xml"/>
            <file name="JFXtrasPaletteMig.xml" url="resources/JFXtrasPaletteMig.xml"/>
        </folder>
        <folder name="JFXtras Shape">
            <file name="JFXtrasPaletteShapeAlmond.xml" url="resources/JFXtrasPaletteShapeAlmond.xml"/>
            <file name="JFXtrasPaletteShapeArrow.xml" url="resources/JFXtrasPaletteShapeArrow.xml"/>
            <file name="JFXtrasPaletteShapeAsterisk.xml" url="resources/JFXtrasPaletteShapeAsterisk.xml"/>
            <file name="JFXtrasPaletteShapeAstroid.xml" url="resources/JFXtrasPaletteShapeAstroid.xml"/>
            <file name="JFXtrasPaletteShapeBalloon.xml" url="resources/JFXtrasPaletteShapeBalloon.xml"/>
            <file name="JFXtrasPaletteShapeDonut.xml" url="resources/JFXtrasPaletteShapeDonut.xml"/>
        </folder>
        <folder name="WidgetFX">
            <file name="WidgetFXPaletteConfig.xml" url="resources/WidgetFXPaletteConfig.xml"/>
        </folder>
    </folder>
</filesystem>
実際に実行してみます。新しく起動した NetBeans で JavaFX のファイルを開いてみます。エディタに開いたパレットに「JFXtras Layout」、「JFXtras Shape」、「WidgetFX」が追加されていますね。ただ...アイコンがデフォルトのままですね。

NetBeans Palette

以下のようにアイコンを追加してみました。icon16 と icon32 を追加します。WidgetFX と JFXtras 用を作って定義してみました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE editor_palette_item PUBLIC "-//NetBeans//Editor Palette Item 1.0//EN"
  "http://www.netbeans.org/dtds/editor-palette-item-1_0.dtd">
<editor_palette_item version="1.0">
    <class name="org.netbeans.modules.widgetfx.palette.JFXtrasGrid" />

    <icon16 urlvalue="nbres:/org/netbeans/modules/widgetfx/palette/resources/jfxtras16.png" />
    <icon32 urlvalue="nbres:/org/netbeans/modules/widgetfx/palette/resources/jfxtras32.png" />

    <description localizing-bundle="org.netbeans.modules.widgetfx.palette.Bundle"
               display-name-key="NAME_widgetfx-JFXtrasGrid"
               tooltip-key="HINT_widgetfx-JFXtrasGrid" />
</editor_palette_item>

実際に実行するとこんな感じに。ほ〜なんとなくそれっぽくなってきました。ただ...パレットの順番をそろえたいですよね。

NetBeans Palette

もう一度レイヤーの中を覗いてみます。あ〜なるほど、この順番に表示されているのですね。

NetBeans Palette 

順番を合わせるように以下のようにノードをドラッグして変更しました。

NetBeans Palette

layer.xml は次のようになりました。position が追加されたことがわかります。

<?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="JavaFXPalette">
        <folder name="JFXtras Layout">
            <attr name="position" intvalue="1500"/>
            <file name="JFXtrasPaletteGrid.xml" url="resources/JFXtrasPaletteGrid.xml"/>
            <file name="JFXtrasPaletteMig.xml" url="resources/JFXtrasPaletteMig.xml"/>
        </folder>
        <folder name="JFXtras Shape">
            <attr name="position" intvalue="1600"/>
            <file name="JFXtrasPaletteShapeAlmond.xml" url="resources/JFXtrasPaletteShapeAlmond.xml"/>
            <file name="JFXtrasPaletteShapeArrow.xml" url="resources/JFXtrasPaletteShapeArrow.xml"/>
            <file name="JFXtrasPaletteShapeAsterisk.xml" url="resources/JFXtrasPaletteShapeAsterisk.xml"/>
            <file name="JFXtrasPaletteShapeAstroid.xml" url="resources/JFXtrasPaletteShapeAstroid.xml"/>
            <file name="JFXtrasPaletteShapeBalloon.xml" url="resources/JFXtrasPaletteShapeBalloon.xml"/>
            <file name="JFXtrasPaletteShapeDonut.xml" url="resources/JFXtrasPaletteShapeDonut.xml"/>
        </folder>
        <folder name="WidgetFX">
            <attr name="position" intvalue="1400"/>
            <file name="WidgetFXPaletteConfig.xml" url="resources/WidgetFXPaletteConfig.xml"/>
        </folder>
    </folder>
</filesystem>

さてこれでだいたいいいでしょうか、大きなアイコンで表示してみます。アイコンも順番もそろっていい感じになってきました。

NetBeans Palette

ということで、外枠だけ作ってみました。実際にどんなパレットが必要か、どんなコードを入れたらよいのかというのはアイディア募集ということにさせてください \^\^;
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today