2010年12月30日木曜日

JavaScriptのツールキット開発を始めました。

久しぶりの投稿です。
現在、VMLエディターをSVGでも利用できるように改造中です。この改造にあわせて、JavaScriptでのツールキット開発も行っています。
今まで、JavaScriptは、ブラウザ組み込みのスクリプト言語としてしか思っていませんでしたが、JavaScriptでのクラス定義が可能なので、使いやすいツールキットの開発をはじめてみました。
クラスを利用すると、ツールキットとして使いやすいインタフェースが提供できる点が大きなメリットですが、JavaScriptの欠点としては、ブラウザ毎で仕様が異なることにあります。
そこで、各ブラウザ毎の動作を自動的に判断するクラスとメソッドを用意する予定あり、大体次のようになります。

/* UnifiedBrowderクラス内で、ブラウザのタイプを調べ、各メソッド処理を決定します。作成しれたクラスインスタンスは、myUBに代入されます */
myUB = new UnifiedBrowser(); 

/* myUBインスタンスのメソッドであるgetMouseButtonを呼び出します。getMouseButtonでは、各ブラウザ毎に異なる処理により左ボタン・右ボタン(例えば、左ボタンなら'L', 右ボタンなら'R')を返却します。このようにすることで、ブラウザ間で異なる処理を一つのメソッドで処理します。*/
var button = myUB.getMouseButton(e);

これだけだと、クラスまで利用せずに、関数で処理すれば良いように思えますが、関数だと、その都度簡単に関数を沢山定義することになり、収集がつかなくなってしまいます。クラスを使うと、このようなブラウザ依存を解消する処理群をメソッドとして、一つのクラスの配下にまとめることができるのが一番のメリットです。

そこで、クラスを有効に活用したJavaScriptツールキットを開発することにしました。Yawdbaデータベースシステムも、このJavaScriptツールキットを利用して構築したいと思っています。