プラグインの使い方・作り方

プラグインのインストール方法

BEITELでは、プラグインにより機能拡張をおこなうことができます。
配布されているプラグインをインストールする場合には、以下の操作を行ってください。
  1. (BEITELをインストールしたフォルダ)\extにプラグインのファイルをコピーする

  2. BEITELを起動する
    既に起動している場合は、一度終了し再起動してください。

正しくプラグインがインストールされている場合、メニューに機能が追加されます。
具体的にどのような機能が追加されるか、その使用方法はプラグインのドキュメントを参照してください。

オリジナルプラグインの作成方法

BEITELのプラグインは、以下の手順で作成することができます。
  1. (BEITELをインストールしたフォルダ)\extにプラグインのメインとなるJavaScriptファイルを作成する
    このファイルは、BEITELがウィンドウを開く際に実行されます。文字コードはUTF-8で作成してください。

    (サンプル)
    Hello Worldサンプル([編集]メニューに[Hello]メニューを追加します。クリックするとメッセージボックスで"Hello, World!"と出力します):
    var item = window.menu.createMenuItem("Hello",
                            function(ev){ alert("Hello, World!"); });
    window.menu.edit.appendChild(item);
    

  2. 必要に応じて、Javaコード・画像などの外部ファイルを作成し、jarファイルにまとめてext以下に配置する

  3. BEITELを起動する
    (すでにBEITELが起動している場合)
    jarファイルの変更がなく、JavaScriptファイルの変更のみの場合は、[ウィンドウを再オープン]で再読み込みされます。
    jarファイルの変更がある場合は、一度全ウィンドウを終了し再起動してください。

プラグインから呼び出し可能なAPI

グローバルオブジェクト

window

機能

現在スクリプトが実行されているウィンドウに対応するフレームを表現します。

プロパティ

menu ウィンドウのメニューバーを表現するオブジェクトです。読み込みのみ可能です。
Menuタイプのオブジェクトです。
popup ノードでの右クリック時メニューを表現するオブジェクトです。読み込みのみ可能です。
Menuタイプのオブジェクトです。
swingFrame フレームに対応するSwingオブジェクトです。読み込みのみ可能です。
javax.swing.JFrameのインスタンスです。
selectedNodes 選択されているノードのリストです。読み込みのみ可能です。
ノードが選択されていない場合はnull、それ以外はNodeListタイプのオブジェクトです。
toplevelSelectedNodes 選択されているノードのうち、トップレベル(これ以上選択されている親がない)ノードです。読み込みのみ可能です。
ノードが選択されていない場合はnull、それ以外はNodeListタイプのオブジェクトです。

document

機能

現在ウィンドウで開かれているドキュメントを表現します。

プロパティ

rootNodes ドキュメントのルートとなるノードです。読み込みのみ可能です。
TreeNodeタイプのオブジェクトです。

関数プロパティ

createTreeNode(String)
機能 ツリーノードを新規作成します。
引数
  • ノード文字列
    ノードに設定する文字列を指定します。
戻り値 ツリーノードが返されます。
サンプル
var treeNode = document.createTreeNode("ノード名");
document.rootNode.appendChild(treeNode);

グローバル関数

alert(String)
機能 メッセージボックスを表示します。
引数
  • メッセージ
    出力するメッセージを指定します。
戻り値 なし
サンプル
alert("テストです!");
importFile(String)
機能 外部jsファイルをインポートします。
引数
  • パス
    インポートしたい.jsファイルのパス。
    extディレクトリを起点とした相対パスで指定してください。
戻り値 なし
createNewWindow()
機能 新しいウィンドウを開きます。
引数 なし
戻り値 なし

オブジェクトの型

Menu

機能

メニューを表現します。

プロパティ

file ファイルメニューです。読み込みのみ可能です。
MenuContainerタイプのオブジェクトです。
edit 編集メニューです。読み込みのみ可能です。
MenuContainerタイプのオブジェクトです。
help ヘルプメニューです。読み込みのみ可能です。
MenuContainerタイプのオブジェクトです。
childNodes 子ノードのリストです。読み込みのみ可能です。
NodeListタイプのオブジェクトです。

関数プロパティ

createMenuItem(String,Function)
機能 新規にメニューアイテムを作成します。
引数
  • メニュー項目名
    メニュー項目として表示する名前を指定します。
  • ハンドラ
    メニュー選択時に実行する処理を指定します。
    このハンドラにはMenuEventタイプのオブジェクトが引数として渡されます。
戻り値 メニューアイテムが返されます。
MenuItemタイプのオブジェクトです。
サンプル
var comp = window.menu.createMenuItem("メニュー1",
                                           function(ev){alert("メニュー1");});
window.menu.file.appendChild(comp);
createMenuContainer(String)
機能 新規にメニューコンテナを作成します。
引数
  • メニュー項目名
    メニュー項目として表示する名前を指定します。
戻り値 メニューコンテナが返されます。
MenuContainerタイプのオブジェクトです。
サンプル
var container = window.menu.createMenuContainer("メニュー2");
window.menu.file.appendChild(container);
var comp = window.menu.createMenuItem("メニュー2アイテム",
                                 function(ev){alert("メニュー2");});
container.appendChild(comp);
createSeparator()
機能 新規に区切り線を作成します。
引数
戻り値 区切り線が返されます。
Componentタイプのオブジェクトです。
サンプル
var comp = window.menu.createSeparator();
window.menu.file.appendChild(comp);
appendChild(node)
機能 メニューバーにアイテムを追加します。
引数
  • 新規アイテム
    メニューバーに追加するアイテムを指定します。
    MenuContainerタイプのオブジェクトを指定することができます。
戻り値 追加されたアイテムが返されます。
insertBefore(newNode, refNode)
機能 メニューバーの指定位置にアイテムを追加します。
引数
  • 新規アイテム
    メニューバーに追加するアイテムを指定します。
    MenuContainerタイプのオブジェクトを指定することができます。
  • 追加先アイテム
    メニュー項目の追加先を指定します。
戻り値 追加されたアイテムが返されます。
removeChild(node)
機能 メニューバーから指定されたアイテムを削除します。
引数
  • 削除するアイテム
    メニューバーから削除するアイテムを指定します。
戻り値 削除されたアイテムが返されます。

MenuItem

機能

メニューアイテムを表現します。

プロパティ

icon アイコンとなるファイルを指定します。設定のみで取得はできません。
ファイルはjarファイル内に格納され、クラスパス(beitel.exeのあるディレクトリのlibもしくはext以下)内に存在する必要があります。
key ショートカットキーのキーコードを取得します。読み込みのみ。
java.awt.event.KeyEvent.VK_*で示されるキーコードが格納されます。ショートカットキーが指定されていない場合は0です。
modifier ショートカットキーのAlt,Ctrlなどの修飾子を取得します。読み込みのみ。
java.awt.event.InputEvent.SHIFT_DOWN_MASKなどの修飾子の論理和が格納されます。ショートカットキーが指定されていない場合は0です。
text メニューのテキストを設定・取得します。
tooltips メニューのツールチップを設定・取得します。

関数プロパティ

setKeyStroke(Number,Number)
機能 ショートカットキーを指定します。
引数
  • キーコード
    ショートカットのキーコードを指定します。
    keyプロパティに対応します。
  • 修飾子
    ショートカットの修飾子を指定します。
    modifierプロパティに対応します。
戻り値 なし
サンプル
var comp = window.menu.createMenuItem("メニュー3",
                                           function(ev){alert("メニュー3");});
comp.setKeyStroke(java.awt.event.KeyEvent.VK_H,
                java.awt.Event.SHIFT_MASK|java.awt.Event.CTRL_MASK);
window.menu.file.appendChild(comp);

MenuEvent

機能

メニュー選択時のイベントを表現します。

プロパティ

currentTarget イベントの発生元のノードを取得します。読み込みのみ。
TreeNodeタイプのオブジェクトです。

関数プロパティ

なし

MenuContainer

機能

メニューコンテナ(子メニューを持つことができるメニュー)を表現します。

プロパティ

icon アイコンとなるファイルを指定します。設定のみで取得はできません。
ファイルはjarファイル内に格納され、クラスパス(beitel.exeのあるディレクトリのlibもしくはext以下)内に存在する必要があります。
key ショートカットキーのキーコードを取得します。読み込みのみ。
java.awt.event.KeyEvent.VK_*で示されるキーコードが格納されます。ショートカットキーが指定されていない場合は0です。
modifier ショートカットキーのAlt,Ctrlなどの修飾子を取得します。読み込みのみ。
メニューコンテナの場合この値は常に0です。
text メニューのテキストを設定・取得します。
tooltips メニューのツールチップを設定・取得します。
childNodes 子ノードのリストです。読み込みのみ可能です。
NodeListタイプのオブジェクトです。

関数プロパティ

appendChild(node)
機能 メニューコンテナにアイテムを追加します。
引数
  • 新規アイテム
    メニューコンテナに追加するアイテムを指定します。
    MenuContainerタイプもしくはMenuItemタイプのオブジェクトを指定することができます。
戻り値 追加されたアイテムが返されます。
insertBefore(newNode, refNode)
機能 メニューコンテナの指定位置にアイテムを追加します。
引数
  • 新規アイテム
    メニューコンテナに追加するアイテムを指定します。
    MenuContainerタイプもしくはMenuItemタイプのオブジェクトを指定することができます。
  • 追加先アイテム
    メニュー項目の追加先を指定します。
戻り値 追加されたアイテムが返されます。
removeChild(node)
機能 メニューコンテナから指定されたアイテムを削除します。
引数
  • 削除するアイテム
    メニューコンテナから削除するアイテムを指定します。
戻り値 削除されたアイテムが返されます。
setKeyStroke(Number,Number)
機能 ショートカットキー(Alt+キーコード)を指定します。
引数
  • キーコード
    ショートカットのキーコードを指定します。
    keyプロパティに対応します。
  • 修飾子
    ショートカットの修飾子を指定します。
    MenuItemタイプとインタフェースを共通にするために用意してある引数です。この値には常に0を指定する必要があります。
戻り値 なし
サンプル
var container = window.menu.createMenuContainer("メニュー4(T)");
container.setKeyStroke(java.awt.event.KeyEvent.VK_T, 0);
window.menu.file.appendChild(container);
var comp = window.menu.createMenuItem("メニュー4アイテム",
                                 function(ev){alert("メニュー4");});
container.appendChild(comp);

TreeNode

機能

ドキュメントを構成するノードを表現します。

プロパティ

text ノードの文字列です。
number ノードの番号です。読み込みのみ可能です。
updateTime ノードの更新日時です。
1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数値です。
createTime ノードの作成日時です。
1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数値です。
expand ノードが展開されているかどうかを示すBoolean値です。
ノードが展開されていればtrue、それ以外はfalseです。
selected ノードが選択されているかどうかを示すBoolean値です。
ノードが選択されていればtrue、それ以外はfalseです。
imageData 画像データを取得するための入力ストリームを取得します。読み込みのみ可能です。
java.io.InputStreamのインスタンスです。このノードに画像が設定されていない場合はnullです。
imageFilename 画像データのファイル名を取得します。読み込みのみ可能です。
このノードに画像が設定されていればファイル名を示す文字列、設定されていない場合はnullです。
childNodes 子ノードのリストです。読み込みのみ可能です。
NodeListタイプのオブジェクトです。

関数プロパティ

appendChild(node)
機能 ノードに子ノードを追加します。
引数
  • 新規ノード
    このノードに追加するノードを指定します。
    TreeNodeタイプのオブジェクトを指定することができます。
戻り値 追加されたノードが返されます。
insertBefore(newNode, refNode)
機能 ノードの指定位置に子ノードを追加します。
引数
  • 新規ノード
    このノードに追加するノードを指定します。
    TreeNodeタイプのオブジェクトを指定することができます。
  • 追加先ノード
    ノードの追加先を示すノード指定します。
戻り値 追加されたノードが返されます。
removeChild(node)
機能 このノードから指定されたノードを削除します。
引数
  • 削除するノード
    ノードから削除するノードを指定します。
戻り値 削除されたノードが返されます。
setImage(String,InputStream)
機能 このノードに画像を設定します。
2つの引数にnullを指定することで、このノードに対する画像指定を解除することができます。
引数
  • ファイル名
    画像ファイル名を指定します。
    画像を解除する場合はnullを指定してください。
  • 画像データ
    画像データを供給する入力ストリームを指定してください。
    java.io.InputStreamのインスタンスを指定してください。
    画像を解除する場合はnullを指定してください。
戻り値 なし

NodeList

機能

ドキュメントを構成するノード、メニューなどの構成要素のリストを表現します。

プロパティ

length リストの長さです。読み込みのみ可能です。

関数プロパティ

item(Number)
機能 ノードから要素を取得します。
Arrayと同様、[Number]によりアイテムを取得することも可能です。
引数
  • インデックス
    取得したい要素のインデックスを指定します。
戻り値 指定されたインデックスに対応する要素が返されます。