プラグインのインストール方法
BEITELでは、プラグインにより機能拡張をおこなうことができます。配布されているプラグインをインストールする場合には、以下の操作を行ってください。
-
(BEITELをインストールしたフォルダ)\extにプラグインのファイルをコピーする
-
BEITELを起動する
既に起動している場合は、一度終了し再起動してください。
正しくプラグインがインストールされている場合、メニューに機能が追加されます。
具体的にどのような機能が追加されるか、その使用方法はプラグインのドキュメントを参照してください。
オリジナルプラグインの作成方法
BEITELのプラグインは、以下の手順で作成することができます。-
(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);
-
必要に応じて、Javaコード・画像などの外部ファイルを作成し、jarファイルにまとめてext以下に配置する
BEITELのJavaクラスを使用したい場合は、開発中はクラスパス内に(BEITELをインストールしたフォルダ)\lib\beitel.jarを含めるようにしてください。
-
BEITELを起動する
(すでにBEITELが起動している場合)
jarファイルの変更がなく、JavaScriptファイルの変更のみの場合は、[ウィンドウを再オープン]で再読み込みされます。
jarファイルの変更がある場合は、一度全ウィンドウを終了し再起動してください。
プラグインから呼び出し可能なAPI
グローバルオブジェクト
window
機能
現在スクリプトが実行されているウィンドウに対応するフレームを表現します。プロパティ
menu |
ウィンドウのメニューバーを表現するオブジェクトです。読み込みのみ可能です。 Menuタイプのオブジェクトです。 |
---|---|
popup |
ノードでの右クリック時メニューを表現するオブジェクトです。読み込みのみ可能です。 Menuタイプのオブジェクトです。 |
swingFrame |
フレームに対応するSwingオブジェクトです。読み込みのみ可能です。 javax.swing.JFrameのインスタンスです。 |
selectedNodes |
選択されているノードのリストです。読み込みのみ可能です。 ノードが選択されていない場合はnull、それ以外はNodeListタイプのオブジェクトです。 |
toplevelSelectedNodes |
選択されているノードのうち、トップレベル(これ以上選択されている親がない)ノードです。読み込みのみ可能です。 ノードが選択されていない場合はnull、それ以外はNodeListタイプのオブジェクトです。 |
document
機能
現在ウィンドウで開かれているドキュメントを表現します。プロパティ
rootNode |
ドキュメントのルートとなるノードです。読み込みのみ可能です。 TreeNodeタイプのオブジェクトです。 |
---|---|
nodeStyles |
ノードスタイル(文字色・背景色)を表現するノードです。 NodeStyleListタイプのオブジェクトです。 |
columnHeaders |
カラムヘッダの一覧を示す配列です。 読み込みのみ可能です。(カラムヘッダの追加などはできません。) Arrayタイプのオブジェクトです。要素にはColumnHeaderタイプのオブジェクトが格納されます。 |
filename |
現在開いているZTEファイルの名前を示す文字列です。読み込みのみ可能です。 ファイルを開いていない場合はnullが返されます。 |
filepath |
現在開いているZTEファイルが格納されているディレクトリのパスを示す文字列です。読み込みのみ可能です。 ファイルを開いていない場合はnullが返されます。 |
関数プロパティ
createTreeNode(String) | |
機能 |
ツリーノードを新規作成します。 |
---|---|
引数 |
|
戻り値 |
ツリーノードが返されます。 |
サンプル |
var treeNode = document.createTreeNode("ノード名"); document.rootNode.appendChild(treeNode); |
グローバル関数
alert(String) | |
機能 |
メッセージボックスを表示します。 |
---|---|
引数 |
|
戻り値 |
なし |
サンプル |
alert("テストです!"); |
importFile(String) | |
機能 |
外部jsファイルをインポートします。 |
引数 |
|
戻り値 |
なし |
createNewWindow() | |
機能 |
新しいウィンドウを開きます。 |
引数 |
なし |
戻り値 |
なし |
オブジェクトの型
Menu
機能
メニューを表現します。プロパティ
file |
ファイルメニューです。読み込みのみ可能です。 MenuContainerタイプのオブジェクトです。 |
---|---|
edit |
編集メニューです。読み込みのみ可能です。 MenuContainerタイプのオブジェクトです。 |
help |
ヘルプメニューです。読み込みのみ可能です。 MenuContainerタイプのオブジェクトです。 |
childNodes |
子ノードのリストです。読み込みのみ可能です。 NodeListタイプのオブジェクトです。 |
関数プロパティ
createMenuItem(String,Function) | |
機能 |
新規にメニューアイテムを作成します。 |
---|---|
引数 |
|
戻り値 |
メニューアイテムが返されます。 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) | |
機能 |
メニューバーにアイテムを追加します。 |
引数 |
|
戻り値 |
追加されたアイテムが返されます。 |
insertBefore(newNode, refNode) | |
機能 |
メニューバーの指定位置にアイテムを追加します。 |
引数 |
|
戻り値 |
追加されたアイテムが返されます。 |
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) | |
機能 |
ショートカットキーを指定します。 |
---|---|
引数 |
|
戻り値 |
なし |
サンプル |
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) | |
機能 |
メニューコンテナにアイテムを追加します。 |
---|---|
引数 |
|
戻り値 |
追加されたアイテムが返されます。 |
insertBefore(newNode, refNode) | |
機能 |
メニューコンテナの指定位置にアイテムを追加します。 |
引数 |
|
戻り値 |
追加されたアイテムが返されます。 |
removeChild(node) | |
機能 |
メニューコンテナから指定されたアイテムを削除します。 |
引数 |
|
戻り値 |
削除されたアイテムが返されます。 |
setKeyStroke(Number,Number) | |
機能 |
ショートカットキー(Alt+キーコード)を指定します。 |
引数 |
|
戻り値 |
なし |
サンプル |
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です。 |
nodeType |
ノードがトピックであるかどうかを示すString値です。 ノードがトピックであれば"topic"、それ以外は"text"です。 |
foreground |
文字色を示すjava.awt.Colorオブジェクトです。 このノードに文字色が指定されていれば文字色を示すjava.awt.Colorオブジェクト、指定されていない場合はnullです。 |
background |
背景色を示すjava.awt.Colorオブジェクトです。 このノードに背景色が指定されていれば背景色を示すjava.awt.Colorオブジェクト、指定されていない場合はnullです。 |
imageData |
画像データを取得するための入力ストリームを取得します。読み込みのみ可能です。 java.io.InputStreamのインスタンスです。このノードに画像が設定されていない場合はnullです。 |
imageFilename |
画像データのファイル名を取得します。読み込みのみ可能です。 このノードに画像が設定されていればファイル名を示す文字列、設定されていない場合はnullです。 |
childNodes |
子ノードのリストです。読み込みのみ可能です。 NodeListタイプのオブジェクトです。 |
関数プロパティ
appendChild(node) | |
機能 |
ノードに子ノードを追加します。 |
---|---|
引数 |
|
戻り値 |
追加されたノードが返されます。 |
insertBefore(newNode, refNode) | |
機能 |
ノードの指定位置に子ノードを追加します。 |
引数 |
|
戻り値 |
追加されたノードが返されます。 |
removeChild(node) | |
機能 |
このノードから指定されたノードを削除します。 |
引数 |
|
戻り値 |
削除されたノードが返されます。 |
setImage(String,InputStream) | |
機能 |
このノードに画像を設定します。 2つの引数にnullを指定することで、このノードに対する画像指定を解除することができます。 |
引数 |
|
戻り値 |
なし |
getColumn(int) | |
機能 |
このノードに付随するカラムを取得します。 |
引数 |
|
戻り値 |
カラムを表現するColumnオブジェクトが返されます。 |
ColumnHeader
機能
カラムのヘッダ部分を表現します。プロパティ
text |
カラムヘッダに表示する文字列です。 |
---|---|
visible |
カラムヘッダが表示状態であるかどうかを示すBoolean値です。 表示状態であればtrue、非表示状態であればfalseとなります。 |
width |
カラムヘッダの幅です。 |
Column
機能
ノードに付随するカラムを表現します。プロパティ
text |
カラムの文字列です。 |
---|
NodeList
機能
ドキュメントを構成するノード、メニューなどの構成要素のリストを表現します。プロパティ
length |
リストの長さです。読み込みのみ可能です。 |
---|
関数プロパティ
item(Number) | |
機能 |
ノードから要素を取得します。 Arrayと同様、[Number]によりアイテムを取得することも可能です。 |
---|---|
引数 |
|
戻り値 |
指定されたインデックスに対応する要素が返されます。 |
NodeStyleList
機能
ノードスタイルのリストを表現するオブジェクトです。プロパティ
length |
ノードスタイルの数を示すNumber値です。読み込みのみ。 |
---|
関数プロパティ
add(name, foreground, background) | |
機能 |
ノードスタイル定義を追加します。 |
---|---|
引数 |
|
戻り値 |
特にありません。 |
findByName(name) | |
機能 |
ノードスタイル定義を検索します。 |
引数 |
|
戻り値 |
検索結果のノードスタイル。見つからない場合はnullが返されます。 |
get(index) | |
機能 |
ノードスタイル定義を取得します。 |
引数 |
|
戻り値 |
インデックスに対応するノードスタイル。インデックスの値が定義されている個数以上の場合はエラーがスローされます。 |
remove(index) | |
機能 |
ノードスタイル定義を削除します。 |
引数 |
|
戻り値 |
特にありません。 |
set(index, name, foreground, background) | |
機能 |
ノードスタイル定義を更新します。 |
引数 |
|
戻り値 |
特にありません。 |
NodeStyle
機能
ノードスタイルを表現するオブジェクトです。プロパティ
name |
ノードスタイル名を示すString値です。読み込みのみ。 |
---|---|
foreground |
文字色を示すjava.awt.Colorオブジェクトです。読み込みのみ。 未指定の場合はnullです。 |
background |
背景色を示すjava.awt.Colorオブジェクトです。読み込みのみ。 未指定の場合はnullです。 |
Javaクラス
jp.carabiner.treeeditor.js.JSRunnerクラス
機能
プラグインの実行に必要な各種機能を提供します。取得方法
JSRunnerオブジェクトはwindowグローバルオブジェクトから取得できます。import jp.carabiner.treeeditor.js.JSRunner; ... // JSRunnerオブジェクトはwindowグローバルオブジェクトから取得できます。 JSRunner runner = window.getCore().getJSRunner();
メソッド
void invokeAndWait(jp.carabiner.treeeditor.js.JSRunnable) | |
機能 |
JavaScript実行コンテキストを新規作成し、処理を実行します。 モデルに変更を加える場合は、jp.carabiner.treeeditor.js.JSRunnableインタフェースを実装し、このメソッドを通じて非同期的に実行しなければなりません。 |
---|---|
引数 |
|
戻り値 |
なし |
サンプル |
JSRunnableの実装例import jp.carabiner.treeeditor.js.JSRunnable; import jp.carabiner.treeeditor.js.JSUtils; import jp.carabiner.treeeditor.js.JSWindow; import jp.carabiner.treeeditor.js.JSDocument; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; ... public class JSSampleTask implements JSRunnable { public void run(Context context, Scriptable scope) { JSDocument document = JSUtils.getJSDocument(scope); JSWindow window = JSUtils.getJSWindow(scope); // 処理 ... } }JSRunnerの取得、実行例 import jp.carabiner.treeeditor.js.JSRunner; ... // windowグローバルオブジェクトはあらかじめ保持しておく JSRunner runner = window.getCore().getJSRunner(); runner.invokeAndWait(new JSSampleTask()); |
jp.carabiner.treeeditor.js.JSRunnableインタフェース
機能
JavaScriptのタスクを表現するインタフェースです。非同期に実行したい処理がある場合はこのインタフェースを実装し、jp.carabiner.treeeditor.js.JSRunnerを通じて実行する必要があります。
メソッド
void run(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable) | |
機能 |
タスクを実行します。 |
---|---|
引数 |
|
戻り値 |
なし |
サンプル |
import jp.carabiner.treeeditor.js.JSRunnable; import jp.carabiner.treeeditor.js.JSUtils; import jp.carabiner.treeeditor.js.JSWindow; import jp.carabiner.treeeditor.js.JSDocument; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; ... public class JSSampleTask implements JSRunnable { public void run(Context context, Scriptable scope) { JSDocument document = JSUtils.getJSDocument(scope); JSWindow window = JSUtils.getJSWindow(scope); // 処理 ... } } |
jp.carabiner.treeeditor.js.JSUtilsクラス
機能
JavaScriptの処理に関するユーティリティクラスです。メソッド
static jp.carabiner.treeeditor.js.JSWindow getJSWindow(org.mozilla.javascript.Scriptable) | |
機能 |
スコープにひもづけられたwindowグローバルオブジェクトを取得します。 |
---|---|
引数 |
|
戻り値 |
windowグローバルオブジェクト。 |
static jp.carabiner.treeeditor.js.JSDocument getJSDocument(org.mozilla.javascript.Scriptable) | |
機能 |
スコープにひもづけられたdocumentグローバルオブジェクトを取得します。 |
引数 |
|
戻り値 |
documentグローバルオブジェクト。 |