(4)【FrontController】役割と実装例

com.adobe.cairngorm.control.FrontController;の説明です。(Cairngorm2.1)

役割

アプリケーションのすべてのコマンドを登録する。また、その都度必要なコマンドを実行する。



どのイベントが発生したときに、どのコマンドを実行するのかを定義するためのクラスです。
実際には、(アプリケーション起動時に)CairngormEventDispatcherにイベントリスナーを追加することで決定しています。

イベントを送出するのはCairngormEventDispatcherの役割です。
イベントが送出されたら、CairngormEventDispatcherによってFrontControllerのコールバック関数であるexecuteCommand()メソッドが実行され、
FrontControllerが実際にコマンドを実行します。

実装例

com.adobe.cairngorm.control.FrontControllerを継承してクラスを作成しましょう。
定数を作成し、コンストラクタ内で、ユーザージェスチャの数だけaddCommand()を行いましょう。


ログインとログアウトの2つのユーザジェスチャーを持っているLoginアプリケーションをサンプルとします。
アプリケーションは「ログインする」「ログアウトする」の2個のボタンを持っています。

LoginControllerには、2つのイベントを登録します。

package sample.control
{
    import com.adobe.cairngorm.control.FrontController;
    import sample.command.LoginCommand;
    import sample.command.LogoutCommand;

    public class LoginController extends FrontController
    {
        public static const EVENT_LOGIN : String = "login";
        public static const EVENT_LOGOUT : String = "logout";

        public function LoginController()
        {
            addCommand( EVENT_LOGIN, LoginCommand );
            addCommand( EVENT_LOGOUT, LogoutCommand );
        }
    }
}

また、
アプリケーションmxmlファイルに以下のタグを記述することで、アプリケーションロード時(アプリケーションmxmlロード時)にインスタンス化されます。
従って、アプリケーション起動時に一度だけLoginControllerのコンストラクタでコマンドが登録されます。

<mx:Application  xmlns:control="sample.control.LoginController"   ... >

     <control:LoginController id="controller" />
            ...

次回は、【CairngormEventDispatcher】役割と実装例です。