Package | jp.co.fujitsu.reffi.client.flex.action |
Class | public class BaseAction |
Inheritance | BaseAction ![]() ![]() |
Subclasses | DispatchAction |
[概 要]
イベント発生時、コントローラによって起動されるActionの基底クラスです.[詳 細]
BaseController#bind(EventBinder)によって登録したイベントに対応して このクラスの継承アクションクラスが起動されます。 実行される具象アクションクラスには、テンプレートコールされる以下の処理を実装します。[備 考]
上記のようにこの基底クラスは、処理フローを実装して開発手順の型決めを行っています。 全てのモデル処理結果をsucessForward、failureForwardでハンドリングするのでは無い場合はDispatchActionを、 reserveModel、nextModelによるモデル実行制御を行わない場合は、FlexibleActionを基底クラスとして選択して下さい。Method | Defined By | ||
---|---|---|---|
complete():void
[概 要]
reserveModelsで登録されたモデル群が全て終了した契機でコールされます. | BaseAction | ||
failureForward(index:int, model:BaseModel, faultEvent:Event):Event
[概 要]
登録した機能モデルの異常終了処理を記述するメソッドです. | BaseAction | ||
[概 要]
予約モデルがコントローラによって実行される直前にコールバックされるメソッドです. | BaseAction | ||
[override]
[概 要]
コントローラにコールされるアクションの主幹メソッドです. | 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 | |
![]() | getComponentByNameParentTrace(namePattern:String):DisplayObject
[概 要]
第一引数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 | ||
waitModelsMessage():String
[概 要]
モデル終了までのモーダル状態時にプログレスバーに表示するメッセージを取得します。
[詳 細]
このメソッドをオーバーライドしなかった場合はプログレスバーのデフォルトメッセージが
表示されます。
[備 考]
| BaseAction |
complete | () | method |
public function complete():void
[概 要]
reserveModelsで登録されたモデル群が全て終了した契機でコールされます.[詳 細]
reserveModelsで登録された全モデルがModelProcessEvent.FINISHEDイベントを発行 した契機でコントローラによってコールバックされます。[備 考]
failureForward | () | method |
public function failureForward(index:int, model:BaseModel, faultEvent:Event):Event
[概 要]
登録した機能モデルの異常終了処理を記述するメソッドです.[詳 細]
reserveModelsによって予約されたどれか一つのモデルが失敗した場合にコールバックされます。 機能モデルがModelProcessEvent.FAILUREイベントを発行し、コントローラにハンドリング された時点でコールバックされます。[備 考]
Parameters
index:int — 結果を返却したモデルの実行インデックス
| |
model:BaseModel — 結果を返却したモデルインスタンス
| |
faultEvent:Event — モデル異常終了時のイベント
|
Event — 引数faultEvent、若しくはオーバーライドメソッドで変換されたイベント
|
isRunModelsAndNoWait | () | method |
protected function isRunModelsAndNoWait():Boolean
[概 要]
モデル群実行を非シーケンシャルに行うかどうかを設定するメソッドです.[詳 細]
デフォルトではfalseを返却します。 BaseAction#reserveModels(Arrray)によって予約されたモデル群を コントローラが実行する時、1モデルの結果取得を待ってから次モデルを 実行するかどうかの設定値として解釈されます。[備 考]
ReturnsBoolean — true : モデルの処理結果取得を待たずに次モデル実行
|
isWaitModelsDone | () | method |
protected function isWaitModelsDone():Boolean
[概 要]
reserveModelsによって登録された全モデルが終了するまでモーダル状態にするかどうかのフラグを返却します.[詳 細]
このメソッドをオーバーライドしてtrueを返却することで、登録された 全ての機能モデルがModelProcessEvent.FINISHEDイベントを発行するまで、 プログレスバー付きのモーダルダイアログが表示されます。[備 考]
ReturnsBoolean — reserveModelsで予約された全モデルが実行終了するまで画面をモーダルにするかどうかのフラグ
|
nextModel | () | method |
public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean
[概 要]
予約モデルがコントローラによって実行される直前にコールバックされるメソッドです.[詳 細]
reserveModelsで登録したモデル数+1回、コントローラによって呼び出されます。 (1モデル登録の場合でも、実行前、実行後と2回呼び出されます。) 引数prevには前回モデルの処理結果(初回null)が、 引数nextには次回モデルインスタンス(最終回null)が渡されます。 前回モデルインスタンスを取得する場合はprev.targetで取得することが出来ます。 BaseAction#isRunModelsAndNoWait()がfalseの場合、次回モデルの実行が 前回モデルの終了後であることが確約される為、prevの結果を元にnextの動作設定をすることが出来ます。[備 考]
BaseAction#isRunModelsAndNoWait()がtrueの場合、コントローラはモデルの実行を シーケンシャルには行いません。 この場合、引数prevにはnullが渡されます。Parameters
index:int — 実行インデックス(0 ~ reserveModelsによるモデル登録数)
| |
prev:ModelProcessEvent — 前インデックスで実行されたモデル処理結果イベント
| |
next:BaseModel — 次インデックスで実行される予定のモデルインスタンス
|
Boolean — 次のモデルを実行するかどうかのフラグ
|
prepare | () | method |
protected function prepare(parameterMapping:ParameterMapping):Boolean
[概 要]
BaseAction内で最初にテンプレートコールされるメソッドです.[詳 細]
単純なDOM操作等、クライアント内で完結するようなイベント処理や、 条件を判断して以降の処理を実行しない、 等の処理を実装する場合は、このメソッドをオーバーライドして処理を記述して下さい。 オーバーライド先でfalseを返却すると、それ以降のアクション処理は行われません。[備 考]
Parameters
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)); } } }
Parameters
models:Array — 実行するモデルクラスを格納するリストオブジェクト
|
run | () | method |
override public function run(parameterMapping:ParameterMapping):ParameterMapping
[概 要]
コントローラにコールされるアクションの主幹メソッドです.[詳 細]
継承クラスから情報を収集してコントローラに返却します。 以下の順にテンプレートメソッドがコールされます。上記のコールフロー終了後、ParameterMappingオブジェクトがコントローラに返却されます。
prepare実装メソッドでfalseを返却した場合、又はvalidateメソッドが一つでも ValidateErrorオブジェクトを返却した場合、 コントローラに返却されるParameterMappingオブジェクトはnullになります。 nullのParameterMappingを受け取ったコントローラは以降の処理を中止します。[備 考]
このメソッドを実装する必要は有りません。Parameters
parameterMapping:ParameterMapping — MVC各レイヤを伝播するパラメータオブジェクト
|
ParameterMapping — 継承Actionから収集した、コントローラに返却される制御情報
|
successForward | () | method |
public function successForward(index:int, model:BaseModel, resultEvent:Event):void
[概 要]
登録した機能モデルの正常終了処理を記述するメソッドです.[詳 細]
reserveModelsによって予約された1モデル処理成功時にコントローラにコールバックされます。 機能モデルがModelProcessEvent.SUCCESSイベントを発行し、コントローラにハンドリング された時点でコールバックされます。 実行された機能モデルの種類によって第三引数resultEventの型が変化します。 (HTTPServiceCoreの場合はResultEvent、ConsumerCoreの場合はMessageEvent等)[備 考]
Parameters
index:int — 結果を返却したモデルの実行インデックス
| |
model:BaseModel — 結果を返却したモデルインスタンス
| |
resultEvent:Event — モデル処理結果オブジェクト
|
trap | () | method |
protected function trap(e:Error):Error
[概 要]
Action内で発生した同期エラーをハンドリングします.[詳 細]
デフォルト処理は有りません。[備 考]
Parameters
e:Error — アクション内で発生した例外
|
Error — 引数e、若しくはオーバーライド先で生成した例外
|
validationFault | () | method |
public function validationFault(faults:ValidateErrors):void
[概 要]
validatorsで指定したValidatorがエラー検出した場合、テンプレートコールされます.[詳 細]
通常のバリデータのエラー処理の他、独自のエラー通知表現を実装する場合にオーバーライドします。 validateメソッドによるValidateErrors返却後、BaseAction#run(ParameterMapping)は BaseAction#validationFault(ValidateErrors)メソッドをテンプレートコールします。 ValidateErrorをハンドリングする場合は、validationFaultメソッドをオーバーライドして下さい。[備 考]
Parameters
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イベントで逐次バリデーションを行いますが、 このメソッドで登録したValidatorはアクションが稼動した契機でのみ、 バリデーションが行われます。Parameters
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); }
waitModelsMessage | () | method |
protected function waitModelsMessage():String
[概 要]
モデル終了までのモーダル状態時にプログレスバーに表示するメッセージを取得します。[詳 細]
このメソッドをオーバーライドしなかった場合はプログレスバーのデフォルトメッセージが 表示されます。[備 考]
ReturnsString — プログレスバーに表示するメッセージ
|
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.