(10)【ViewHelper】役割と実装例
com.adobe.cairngorm.view.ViewHelper;の説明です。(Cairngorm 2.1)
役割
Viewからコマンドクラスを切り離すためのクラスです。
具体的には、mxmlにはUI部品のみを記述し、イベントリスナーはViewHelperに記述することで、それぞれ役割分担しましょうということだと思います。
■
com.adobe.cairngorm.view.ViewHelperは、mx.core.IMXMLObjectを実装しており、initialized()メソッドによってMXMLドキュメント(及びid)を取得します。
initialized()メソッドは、実装オブジェクトが作成され、MXML タグに指定されたすべてのコンポーネントプロパティが初期化された後に呼び出されます。
MXMLドキュメントは、クラス変数である、protected view : Objectに格納されますので、ViewHelperを継承したクラスはこのクラス変数(view)を使用してMXMLドキュメントにアクセスすることが可能になります。
また、initialized()メソッド内で、Event.ADDED, Event.REMOVEDそれぞれのイベントリスナーを登録し、イベント発生時に、privateメソッドによって、ViewLocatorに自身を登録または削除しています。
ViewHelperが作成されるとき、idは、特定のViewの(TabNavigatorの特定のタブ、またはViewStackの特定のスクリーンなどの)部品に対して登録するのに使用されます。
実装例
ログインアプリケーションにおけるViewHelperの実装例
ログインボタンの記述(mxmlファイル)
<mx:Application xmlns:view="sample.view.*" ・・・> <view:LoginViewhelper id="loginViewhelper" /> ・・・ <mx:Button label="ログイン" id="login_btn" click="loginViewhelper.onLoginBtn()"/> ・・・
ViewHelperクラスの作成
package sample.view{ import sample.control.LoginControl; import sample.vo.AccountVO; import com.adobe.cairngorm.view.ViewHelper; import com.adobe.cairngorm.control.CairngormEventDispatcher; import sample.event.*; public class LoginViewhelper extends ViewHelper{ /** * ログインボタン押下の処理メソッド */ public function onLoginBtn():void{ var dto : AccountVO = new AccountVO(); dto.userid = view.userid_txt.text; dto.passwd = view.passwd_txt.text; CairngormEventDispatcher.getInstance().dispatchEvent( new LoginEvent(dto) ); } }
かなりこのシリーズ飽きてきましたね。。
次回は【ViewLocator】役割と実装例です