Package | jp.co.fujitsu.reffi.client.flex.action |
Class | public class BaseAction |
Inheritance | BaseAction ![]() |
Subclasses | DispatchAction |
[概 要]
イベント発生時、コントローラによって起動されるActionの基底クラスです.[詳 細]
BaseController#bind(EventBinder)によって登録したイベントに対応して このクラスの継承アクションクラスが起動されます。[備 考]
上記のようにこの基底クラスは、処理フローを実装して開発手順の型決めを行っています。
package demo.client.pdf.action{ import flash.events.Event; import jp.co.fujitsu.reffi.client.flex.action.BaseAction; import jp.co.fujitsu.reffi.client.flex.model.BaseModel; import jp.co.fujitsu.reffi.client.flex.model.events.ModelProcessEvent; import jp.co.fujitsu.reffi.client.flex.model.rpc.RpcControllerClientCore; import mx.controls.Alert; import mx.controls.ComboBox; import mx.controls.DataGrid; import mx.rpc.events.ResultEvent; public class CreateTableAction extends BaseAction{ // ① RPC呼び出しモデルを予約します(このケースではサーバ側プログラムとしてRPCControllerを使用) override protected function reserveModels(models:Array):void{ models.push(Class(RPCControllerClientCore)); } // ② 生成されたRPCControllerClientCoreインスタンスにパラメータを設定 override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean { // index 0としてRPCControllerClientCoreインスタンスが引数nextに入っています if (index == 0) { var dataCount:String = ComboBox(getComponentById("dataCount")).text; // サーバ側実行モデルをFQCN指定 RpcControllerClientCore(next).modelFQCN = "demo.rpc.model.PDFTableModel"; RpcControllerClientCore(next).addRpcParameter("dataCount", dataCount); } return true; } // ③ RPC正常終了処理を記述します override public function successForward(index:int, model:BaseModel, resultEvent:Event):void{ var event:ResultEvent = resultEvent as ResultEvent; DataGrid(getComponentByName("pdfWindowTable")).dataProvider = event.result; } // ④ RPC異常終了処理を記述します override public function failureForward(index:int, model:BaseModel, faultEvent:Event):Event{ Alert.show("テーブル作成に失敗しました。"); return faultEvent; } } }
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
Method | Defined by | ||
---|---|---|---|
complete():void
[概 要] reserveModelsで登録されたモデル群が全て終了した契機でコールされます. | BaseAction | ||
failureForward(index:int, model:BaseModel, faultEvent:Event):Event
[概 要] 登録した機能モデルの異常終了処理を記述するメソッドです. | BaseAction | ||
[概 要] 予約モデルがコントローラによって実行される直前にコールバックされるメソッドです. | BaseAction | ||
[概 要] コントローラにコールされるアクションの主幹メソッドです. | BaseAction | ||
successForward(index:int, model:BaseModel, resultEvent:Event):void
[概 要] 登録した機能モデルの正常終了処理を記述するメソッドです. | BaseAction | ||
validationFault(faults:ValidateErrors):void
[概 要] validatorsで指定したValidatorがエラー検出した場合、テンプレートコールされます. | BaseAction |
Method | Defined by | ||
---|---|---|---|
![]() |
addPermanent(key:Object, value:Object):void
[概 要] nSWF間で共有可能な恒久領域に、引数keyで値valueを設定します. | AbstractAction | |
![]() |
addPopUp(name:String, displayObject:IFlexDisplayObject, modal:Boolean = false, centered:Boolean = false):void
[概 要] ポップアップ画面を表示します. | AbstractAction | |
![]() |
addSingletonPopUp(name:String, displayObject:IFlexDisplayObject, modal:Boolean = false, centered:Boolean = false):void
[概 要] シングルトンポップアップ画面を表示します. | AbstractAction | |
![]() |
getApplication():Application
[概 要] このアクションを起動したコンポーネントが所属するApplicationを取得します. | AbstractAction | |
![]() |
getComponentById(id:String, searchRange:int = 0x03):DisplayObject
[概 要] 第一引数idをid属性として持つ画面コンポーネントを取得します. | AbstractAction | |
![]() |
getComponentByIdFrom(container:DisplayObjectContainer, id:String):DisplayObject
[概 要] 第一引数containerから、第二引数idをid属性として持つ画面コンポーネントを取得します. | AbstractAction | |
![]() |
getComponentByName(namePattern:String, searchRange:int = 0x03):DisplayObject
[概 要] 第一引数namePatternをname属性として持つ画面コンポーネントを取得します. | AbstractAction | |
![]() |
getComponentByNameFrom(container:DisplayObjectContainer, namePattern:String):DisplayObject
[概 要] 第一引数containerから、第二引数namePatternをname属性として持つ画面コンポーネントを取得します. | AbstractAction | |
![]() |
getComponentsById(id:String, searchRange:int = 0x03):Array
[概 要] 第一引数idをid属性として持つ画面コンポーネント配列を取得します. | AbstractAction | |
![]() |
getComponentsByName(namePattern:String, searchRange:int = 0x03):Array
[概 要] 第一引数namePatternをname属性として持つ画面コンポーネント配列を取得します. | AbstractAction | |
![]() |
getComponentsByNameFrom(container:DisplayObjectContainer, namePattern:String):Array
[概 要] 第一引数containerから、第二引数namePatternをname属性として持つ画面コンポーネント配列を取得します. | AbstractAction | |
![]() |
getEventCurrentTarget():Object
[概 要] このアクションを起動したイベントのcurrentTargetを取得します. | AbstractAction | |
![]() |
getEventSourceObject():DisplayObject
[概 要] 恒久的なイベントカレントターゲットです. | AbstractAction | |
![]() |
getEventTarget():Object
[概 要] このアクションを起動したイベントのtargetを取得します. | AbstractAction | |
![]() |
getLoadedController(name:String):BaseController
[概 要] AVM上にロードされているBaseControllerから、引数nameをnameとして持つものを取得します. | AbstractAction | |
![]() |
getLoadedControllers():Dictionary
[概 要] AVM上にロードされているBaseControllerのマッピングを取得します. | AbstractAction | |
![]() |
getObjectById(id:String):Object
[概 要] 引数idをid属性として持つオブジェクトを取得します. | AbstractAction | |
![]() |
getPermanent(key:Object):Object
[概 要] nSWF間で共有可能な恒久領域から、引数keyに対応する値を取得します. | AbstractAction | |
![]() |
getPopUp(name:String):Array
[概 要] 既に表示されているポップアップ画面インスタンス配列を取得します. | AbstractAction | |
![]() |
getSingletonPopUp(name:String):IFlexDisplayObject
[概 要] 既に表示されている重複を許可しないポップアップ画面インスタンスを取得します. | AbstractAction | |
![]() |
isExistPopUp(name:String):Boolean
[概 要] 引数で指定した名前を持つポップアップ画面が既に画面表示されているかどうか調べます. | AbstractAction | |
isRunModelsAndNoWait():Boolean
[概 要] モデル群実行を非シーケンシャルに行うかどうかを設定するメソッドです. | BaseAction | ||
isWaitModelsDone():Boolean
[概 要] reserveModelsによって登録された全モデルが終了するまでモーダル状態にするかどうかのフラグを返却します. | BaseAction | ||
prepare(parameterMapping:ParameterMapping):Boolean
[概 要] BaseAction内で最初にテンプレートコールされるメソッドです. | BaseAction | ||
![]() |
removeAllPopUp():Boolean
[概 要] 全てのポップアップ画面を画面から消去します. | AbstractAction | |
![]() |
removePermanent(key:Object):void
[概 要] nSWF間で共有可能な恒久領域から、引数keyを削除します. | AbstractAction | |
![]() |
removePopUp(name:String):Boolean
[概 要] 引数windowNameに対応するポップアップ画面を画面から消去します. | AbstractAction | |
reserveModels(models:Array):void
[概 要] Action処理終了後、コントローラに実行させるモデルクラス群の予約を行います. | BaseAction | ||
trap(e:Error):Error
[概 要] Action内で発生した同期エラーをハンドリングします. | BaseAction | ||
![]() |
validate(validators:Array):ValidateErrors
[概 要] バリデーションを行うメソッドです. | AbstractAction | |
validators(validators:Array):void
[概 要] このイベントアクションフローで必要なバリデーション情報を指定追加します. | BaseAction |
complete | () | method |
public function complete():void
[概 要]
reserveModelsで登録されたモデル群が全て終了した契機でコールされます.[詳 細]
reserveModelsで登録された全モデルがModelProcessEvent.FINISHEDイベントを発行 した契機でコントローラによってコールバックされます。[備 考]
failureForward | () | method |
public function failureForward(index:int, model:BaseModel, faultEvent:Event):Event
[概 要]
登録した機能モデルの異常終了処理を記述するメソッドです.[詳 細]
reserveModelsによって予約されたどれか一つのモデルが失敗した場合にコールバックされます。[備 考]
パラメータindex:int — 結果を返却したモデルの実行インデックス
|
|
model:BaseModel — 結果を返却したモデルインスタンス
|
|
faultEvent:Event — モデル異常終了時のイベント
|
Event — 引数faultEvent、若しくはオーバーライドメソッドで変換されたイベント
|
isRunModelsAndNoWait | () | method |
protected function isRunModelsAndNoWait():Boolean
[概 要]
モデル群実行を非シーケンシャルに行うかどうかを設定するメソッドです.[詳 細]
デフォルトではfalseを返却します。[備 考]
戻り値Boolean — true : モデルの処理結果取得を待たずに次モデル実行
|
isWaitModelsDone | () | method |
protected function isWaitModelsDone():Boolean
[概 要]
reserveModelsによって登録された全モデルが終了するまでモーダル状態にするかどうかのフラグを返却します.[詳 細]
このメソッドをオーバーライドしてtrueを返却することで、登録された 全ての機能モデルがModelProcessEvent.FINISHEDイベントを発行するまで、 プログレスバー付きのモーダルダイアログが表示されます。[備 考]
戻り値Boolean — reserveModelsで予約された全モデルが実行終了するまで画面をモーダルにするかどうかのフラグ
|
nextModel | () | method |
public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean
[概 要]
予約モデルがコントローラによって実行される直前にコールバックされるメソッドです.[詳 細]
reserveModelsで登録したモデル数+1回、コントローラによって呼び出されます。
[備 考]
BaseAction#isRunModelsAndNoWait()がtrueの場合、コントローラはモデルの実行を シーケンシャルには行いません。パラメータ
index:int — 実行インデックス(0 ~ reserveModelsによるモデル登録数)
|
|
prev:ModelProcessEvent — 前インデックスで実行されたモデル処理結果イベント
|
|
next:BaseModel — 次インデックスで実行される予定のモデルインスタンス
|
Boolean — 次のモデルを実行するかどうかのフラグ
|
prepare | () | method |
protected function prepare(parameterMapping:ParameterMapping):Boolean
[概 要]
BaseAction内で最初にテンプレートコールされるメソッドです.[詳 細]
単純なDOM操作等、クライアント内で完結するようなイベント処理や、 条件を判断して以降の処理を実行しない、[備 考]
パラメータparameterMapping:ParameterMapping — MVC各レイヤを伝播するパラメータオブジェクト
|
Boolean — 以降の処理を継続するかどうかのフラグ
|
override protected prepare(parameterMapping:ParameterMapping):ParameterMapping { String chatRemark = TextInput(getComponentByName("chat.chatRemark")).text; if(chatRemark.length == 0){ return false; }else{ return true; } }
reserveModels | () | method |
protected function reserveModels(models:Array):void
[概 要]
Action処理終了後、コントローラに実行させるモデルクラス群の予約を行います.[詳 細]
BaseModel基底クラスを継承して自作モデルクラスを作成し、登録することが出来ますが、 HTTPリクエスト送信、Pub/Sub実装といった使用頻度の高い機能モデルについては Reffi F/Wでも提供しています。詳しくはmodelパッケージを参照して下さい。[備 考]
以下のように実行するモデルクラスを指定して下さい。package demo.client.action.login { import jp.co.fujitsu.reffi.client.flex.action.BaseAction; import demo.client.model.login.LoginLogic; public class LoginAction extends BaseAction { override protected function reserveModels(models:Array):void{ ma.push(Class(LoginLogic)); } } }
models:Array — 実行するモデルクラスを格納するリストオブジェクト
|
run | () | method |
public override function run(parameterMapping:ParameterMapping):ParameterMapping
[概 要]
コントローラにコールされるアクションの主幹メソッドです.[詳 細]
継承クラスから情報を収集してコントローラに返却します。 以下の順にテンプレートメソッドがコールされます。上記のコールフロー終了後、ParameterMappingオブジェクトがコントローラに返却されます。
prepare実装メソッドでfalseを返却した場合、又はvalidateメソッドが一つでも
ValidateErrorオブジェクトを返却した場合、
コントローラに返却されるParameterMappingオブジェクトはnullになります。
nullのParameterMappingを受け取ったコントローラは以降の処理を中止します。
[備 考]
このメソッドを実装する必要は有りません。パラメータ
parameterMapping:ParameterMapping — MVC各レイヤを伝播するパラメータオブジェクト
|
ParameterMapping —
継承Actionから収集した、コントローラに返却される制御情報
|
successForward | () | method |
public function successForward(index:int, model:BaseModel, resultEvent:Event):void
[概 要]
登録した機能モデルの正常終了処理を記述するメソッドです.[詳 細]
reserveModelsによって予約された1モデル処理成功時にコントローラにコールバックされます。[備 考]
パラメータindex:int — 結果を返却したモデルの実行インデックス
|
|
model:BaseModel — 結果を返却したモデルインスタンス
|
|
resultEvent:Event — モデル処理結果オブジェクト
|
trap | () | method |
protected function trap(e:Error):Error
[概 要]
Action内で発生した同期エラーをハンドリングします.[詳 細]
デフォルト処理は有りません。[備 考]
パラメータe:Error — アクション内で発生した例外
|
Error — 引数e、若しくはオーバーライド先で生成した例外
|
validationFault | () | method |
public function validationFault(faults:ValidateErrors):void
[概 要]
validatorsで指定したValidatorがエラー検出した場合、テンプレートコールされます.[詳 細]
通常のバリデータのエラー処理の他、独自のエラー通知表現を実装する場合にオーバーライドします。[備 考]
パラメータfaults:ValidateErrors — validatorsで予約されたValidator配列が出したエラーイベントが入ったリスト
|
override public function validationFault(errors:ValidateErrors):void { var error:ValidateError = errors.getError(0); Label(getComponentById("faxError")).text = error.message; }
validators | () | method |
protected function validators(validators:Array):void
[概 要]
このイベントアクションフローで必要なバリデーション情報を指定追加します.[詳 細]
具象アクションでこのメソッドをオーバーライドして、引数validatorsに Validatorインスタンスを追加することでアクションの処理フロー中に バリデーションが掛かるようになります。[備 考]
Flex、AIRのValidatorはsourceプロパティとしてコンポーネントが追加されると それ以降ValueCommitイベントで逐次バリデーションを行いますが、パラメータ
validators:Array — mx.validators.Validator継承オブジェクトを格納するリスト
|
override protected function validators(validators:Array):void { var rangeValidator:StringValidator = new StringValidator(); rangeValidator.source = getComponentById("fax1"); rangeValidator.property = "text"; rangeValidator.maxLength = 4; rangeValidator.minLength = 3; rangeValidator.tooLongError = "FAX番号は3~4桁の数字で入力してください。"; rangeValidator.tooShortError = "FAX番号は3~4桁の数字で入力してください。"; rangeValidator.required = true; rangeValidator.requiredFieldError = "FAX番号は必須です。"; rangeValidator.enabled = true; validators.push(rangeValidator); }