ども、小堤です。
まぁ、OmegaTrickをちょいちょい実装していってるんですが、あんまりこれに時間かけることのできない現状・・・orz
んで、どうせ後でマニュアル書くのめんどくさくなること必死なので、ブログにメモって、あとでコピペして修正とか。
続くのか?ってはなしだけども。
さて、GitHubにのっかっている、OmegaTrickはmasterでバージョン0.5.0を実装していっています。
ソース見る人は、gitでひっぱってくだしー。
んで、先に、この0.5.0から0.4.0までの構造とがらっと変わることは、さいさんピーピーいってたのですが、その詳細をここにメモします。
Omega Trickの方針
偉そうに書いてますが、前回のOmega Trickは、完全にExt JS向けでした。まぁ完成してないけどね。
んで、今回は、「Ext JS/Ext Core/Sencha Touch」をターゲットにしています。
まぁ、この時点で、ぽかぁ〜んって感じにすでになりつつあることは、別として。
んで、0.4.0まで、xFrameworkPX上で動くことを前提にサンプルとか作ってたんですが、GitHubの容量くうので、ライブラリ関連は一切削除しました。
README.mdownに、サンプルの前提ディレクトリ構成記載しておきました。
それぞれのライブラリ向けのOmega Trickのファイルは次の通りです。
- omegatrick-all.js : Omega Trick for Ext JS
- omegatrick-core-all.js : Omega Trick for Ext Core
- omegatrick-touch-all.js : Omega Trick for Sencha Touch
はい、ファイル名も大文字から、全部小文字に変更しました。
Ext JSにあわせただけなんですけどね。
それぞれの、Omega TrickはOmega Trick Coreという共通部分に、それぞれのライブラリ向けに拡張されてビルドされる仕組みになっています。
ビルドは、前にも書きましたが、JS Builder2が日本語だめなので、Google Closure Compilerを利用してシェルでビルドしています。
メソッドの補填
Ext.emptyFnの補填
Ext Coreには、Ext JSや、Sencha Touchで実装されているExt.emptyFnが実装されていません。
ただの空関数ですが、Omega Trick for Ext Coreを読み込めば、利用できるようになります。
Function.prototype.createCallbackの補填
Sencha Touchには、createCallbackが関数オブジェクトに実装されていません。
Omega Trick for Sencha Touchを読み込めば利用できるようになります。
Function.prototype.createSequenceの補填
Ext Core/Sencha TouchはcreateSequenseが実装されていません。
Omega Trick for Ext Coreまたは、Omega Trick for Sencha Touchを読み込めば利用できるようになります。
Extオブジェクトの拡張
Omega Trick(全てのエディション)を読み込むと、Ext オブジェクトが拡張されます。
isOmegaTrick
Omega Trickを読み込むとExt.isOmegaTrickがtrueになります。
isExtJS
Omega Trickを読み込むと、Ext JS利用時、Ext.isExtJSがtrueになります。
isExtCore
Omega Trickを読み込むと、Ext Core利用時、Ext.isExtJSがtrueになります。
isSenchaTouch
Omega Trickを読み込むと、Sencha Touch利用時、Ext.isSenchaTouchがtrueになります。
Trickオブジェクト
Omega Trickのクラスなどは、グローバルスコープに生成されるTrickオブジェクトに実装されます。
正確には、Trickは、Ext.trickのショートハンドです。
バージョン情報
Trick.versionを参照することで、Omega Trickのバージョンを参照できます。
Ext JS同様、Trick.versionDetailオブジェクトには、メジャー、マイナー、パッチのバージョンを個別に取得することできます。
メジャーバージョン
Trick.versionDetail.major
マイナーバージョン
Trick.versionDetail.minor
パッチバージョン
Trick.versionDetail.patch
アプリケーションオブジェクト
Omega Trick(全てのエディション)では、Applicationというオブジェクトがグローバルスコープに生成されます。
Sencha Touchなど、アプリケーションエントリーポイントの記述が異なる部分を吸収するとともに、アプリケーション状態遷移などを管理します。
1 2 3 4 5 6 |
Application.setup({ onReady : <span style="color:#000099;">function</span>() { } }); |
アプリケーションの開始は、Application.setupメソッドにオブジェクトリテラルを設定します。
内部的に、それぞれのExtライブラリを判定して、適切なエントリーポイントを作成します。
今日(2010/08/09)現在のOmega Trickは、まだ移植中なので、まだまだシンプルな状態ですが、今後0.4.0で実装されていたものや、テスティングフレームワークの対応(yui)、TrickPanelなどを移植していきますので、興味のある人は覗いてやってください。
ってことで、結構まじめにかいた。
では(手
Pingback: Tweets that mention 【解説&考察】Omega Trick - code:x -- Topsy.com