Packagejp.co.fujitsu.reffi.client.flex.action
Classpublic class AbstractAction
ImplementsIAction
SubclassesBaseAction, FlexibleAction

[概 要]

全アクションクラスの抽象基底アクションクラスです.

[詳 細]

アクションクラスとして動作する為の必要最低限機能と、 ウィンドウ操作やエレメント取得の為のAPIを提供します。

[備 考]

Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.



Public Properties
 PropertyDefined by
  controller : BaseController

[概 要]

このアクションを起動したコントローラオブジェクトです.
AbstractAction
  document : Object

[概 要]

このアクション(イベント)を起こしたUIComponentが所属するdocumentオブジェクトを設定します.
AbstractAction
  parameterMapping : ParameterMapping

[概 要]

MVC各レイヤを伝播するパラメータオブジェクトです.
AbstractAction
Public Methods
 MethodDefined by
  

[概 要]

コントローラにコールされるアクションの主幹メソッドです.
AbstractAction
Protected Methods
 MethodDefined 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
  

[概 要]

このアクションを起動したイベントのcurrentTargetを取得します.
AbstractAction
  
getEventSourceObject():DisplayObject

[概 要]

恒久的なイベントカレントターゲットです.
AbstractAction
  
getEventTarget():Object

[概 要]

このアクションを起動したイベントのtargetを取得します.
AbstractAction
  

[概 要]

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
  
removeAllPopUp():Boolean

[概 要]

全てのポップアップ画面を画面から消去します.
AbstractAction
  
removePermanent(key:Object):void

[概 要]

nSWF間で共有可能な恒久領域から、引数keyを削除します.
AbstractAction
  
removePopUp(name:String):Boolean

[概 要]

引数windowNameに対応するポップアップ画面を画面から消去します.
AbstractAction
  
validate(validators:Array):ValidateErrors

[概 要]

バリデーションを行うメソッドです.
AbstractAction
Property detail
controllerproperty
controller:BaseController  [read-write]

[概 要]

このアクションを起動したコントローラオブジェクトです.

[詳 細]

このアクションのインスタンスを生成して、アクションと機能モデルの やりとりを制御するコントローラです。

[備 考]

実装
    public function get controller():BaseController
    public function set controller(value:BaseController):void
documentproperty 
document:Object  [read-write]

[概 要]

このアクション(イベント)を起こしたUIComponentが所属するdocumentオブジェクトを設定します.

[詳 細]

以下のようなApplication構造の場合、
   <Application>
       <MXMLコンポーネント name="customComponent">
           <Button name="btnTest">
   
btnTestボタンから発生したアクション内に保持されるdocumentは customComponentになります。

[備 考]

documentオブジェクトは、Flex アプリケーション、MXML コンポーネント、 または ActionScript コンポーネント階層の最上位オブジェクトを表します。

実装
    public function get document():Object
    public function set document(value:Object):void
parameterMappingproperty 
parameterMapping:ParameterMapping  [read-write]

[概 要]

MVC各レイヤを伝播するパラメータオブジェクトです.

[詳 細]

1イベントハンドリングに付き、1ParameterMappingオブジェクト が生成されます。
アクションが並列的に動作する場合、それぞれのアクションは ユニークなParameterMappingオブジェクトを保持します。

[備 考]

実装
    public function get parameterMapping():ParameterMapping
    public function set parameterMapping(value:ParameterMapping):void
Method detail
addPermanent()method
protected function addPermanent(key:Object, value:Object):void

[概 要]

nSWF間で共有可能な恒久領域に、引数keyで値valueを設定します.

[詳 細]

クライアントサイドの恒久メモリ領域に値を保存します。

[備 考]

パラメータ
key:Object — nSWF間で共有可能な恒久領域のキー
 
value:Object — 引数keyに対応する値
addPopUp()method 
protected function addPopUp(name:String, displayObject:IFlexDisplayObject, modal:Boolean = false, centered:Boolean = false):void

[概 要]

ポップアップ画面を表示します.

[詳 細]

第一引数nameという名前で、第二引数displayObjectをポップアップさせます。

[備 考]

パラメータ
name:String — ポップアップ表示する画面の名前
 
displayObject:IFlexDisplayObject — ポップアップする画面オブジェクト
 
modal:Boolean (default = false) — true : モーダル、false : モードレス
 
centered:Boolean (default = false) — true : センタリング、false : センタリングなし
addSingletonPopUp()method 
protected function addSingletonPopUp(name:String, displayObject:IFlexDisplayObject, modal:Boolean = false, centered:Boolean = false):void

[概 要]

シングルトンポップアップ画面を表示します.

[詳 細]

第一引数nameという名前で、第二引数displayObjectをポップアップさせます。
既に同じ名前でポップアップが表示されている場合、表示されていたポップアップは消去されます。

[備 考]

パラメータ
name:String — ポップアップ表示する画面の名前
 
displayObject:IFlexDisplayObject — ポップアップする画面オブジェクト
 
modal:Boolean (default = false) — true : モーダル、false : モードレス
 
centered:Boolean (default = false) — true : センタリング、false : センタリングなし
getApplication()method 
protected function getApplication():Application

[概 要]

このアクションを起動したコンポーネントが所属するApplicationを取得します.

[詳 細]

イベントを発生させたオブジェクトのルートApplication要素を取得します。

[備 考]

戻り値
Application
getComponentById()method 
protected function getComponentById(id:String, searchRange:int = 0x03):DisplayObject

[概 要]

第一引数idをid属性として持つ画面コンポーネントを取得します.

[詳 細]

画面が複数のDocumentで構成されている場合、以下の順番で検索を行います。
  1. 自Document(このアクションを起こしたコンポーネントが所属するDocument)
  2. SystemManagerに所属する自Document以外のDocument

[備 考]

パラメータ
id:String — 取得するコンポーネントのid属性値
 
searchRange:int (default = 0x03) — コンポーネントを探す範囲(デフォルト:CompositionSearchUtil.ALL_RANGE)

戻り値
DisplayObject — idと合致したid属性を持つコンポーネント

関連項目

getComponentByIdFrom()method 
protected function getComponentByIdFrom(container:DisplayObjectContainer, id:String):DisplayObject

[概 要]

第一引数containerから、第二引数idをid属性として持つ画面コンポーネントを取得します.

[詳 細]

containerのプロパティとして存在する、引数idをid属性値として持つコンポーネントを取得して返却します。

[備 考]

パラメータ
container:DisplayObjectContainer — 取得するコンポーネントid属性値
 
id:String

戻り値
DisplayObject — idを基に取得した画面コンポーネント

関連項目

getComponentByName()method 
protected function getComponentByName(namePattern:String, searchRange:int = 0x03):DisplayObject

[概 要]

第一引数namePatternをname属性として持つ画面コンポーネントを取得します.

[詳 細]

画面が複数のDocumentで構成されている場合、以下の順番で検索を行います。
  1. 自Document(このアクションを起こしたコンポーネントが所属するDocument)
  2. SystemManagerに所属する自Document以外のDocument

[備 考]

パラメータ
namePattern:String — 取得するコンポーネントのname属性値
 
searchRange:int (default = 0x03) — コンポーネントを探す範囲(デフォルト:CompositionSearchUtil.ALL_RANGE)

戻り値
DisplayObject — namePatternと合致したname属性を持つコンポーネント

関連項目



「taLog」という名前のコンポーネントを取得する
   var taLog:TextArea = getComponentByName("taLog") as TextArea;
   

getComponentByNameFrom()method 
protected function getComponentByNameFrom(container:DisplayObjectContainer, namePattern:String):DisplayObject

[概 要]

第一引数containerから、第二引数namePatternをname属性として持つ画面コンポーネントを取得します.

[詳 細]

containerの子要素として存在する、namePatternをname属性として持つコンポーネントを取得して返却します。

[備 考]

getComponentByName、getComponentsByNameは自分のDocumentにコンポーネントが見つからなかった場合 別Documentを検索しますが、getComponentByNameFromは指定されたコンテナのみ検索対象にします。

パラメータ

container:DisplayObjectContainer — コンポーネント検索対象コンテナオブジェクト
 
namePattern:String — 取得するコンポーネントのname属性値

戻り値
DisplayObject

関連項目

getComponentsById()method 
protected function getComponentsById(id:String, searchRange:int = 0x03):Array

[概 要]

第一引数idをid属性として持つ画面コンポーネント配列を取得します.

[詳 細]

画面が複数のDocumentで構成されている場合、以下の順番で検索を行います。
  1. 自Document(このアクションを起こしたコンポーネントが所属するDocument)
  2. SystemManagerに所属する自Document以外のDocument

[備 考]

パラメータ
id:String — 取得するコンポーネントのid属性値
 
searchRange:int (default = 0x03) — コンポーネントを探す範囲(デフォルト:CompositionSearchUtil.ALL_RANGE)

戻り値
Array — idと合致したid属性を持つコンポーネント

関連項目

getComponentsByName()method 
protected function getComponentsByName(namePattern:String, searchRange:int = 0x03):Array

[概 要]

第一引数namePatternをname属性として持つ画面コンポーネント配列を取得します.

[詳 細]

画面が複数のDocumentで構成されている場合、以下の順番で検索を行います。
  1. 自Document(このアクションを起こしたコンポーネントが所属するDocument)
  2. SystemManagerに所属する自Document以外のDocument

[備 考]

パラメータ
namePattern:String — 取得するコンポーネントのname属性値
 
searchRange:int (default = 0x03) — コンポーネントを探す範囲(デフォルト:CompositionSearchUtil.ALL_RANGE)

戻り値
Array — namePatternと合致したname属性を持つコンポーネント配列

関連項目



AVM上のname属性の付いた全DisplayObjectを取得する
   var allNamedComponents:Array = getComponentsByName(".*");
   

「btn」という文字列を含むname属性値が付与されている全DisplayObjectを取得する
   var allNamedButtons:Array = getComponentsByName(".*btn.*");
   

getComponentsByNameFrom()method 
protected function getComponentsByNameFrom(container:DisplayObjectContainer, namePattern:String):Array

[概 要]

第一引数containerから、第二引数namePatternをname属性として持つ画面コンポーネント配列を取得します.

[詳 細]

containerの子要素として存在する、namePatternをname属性として持つコンポーネント群を取得して返却します。

[備 考]

getComponentByName、getComponentsByNameは自分のDocumentにコンポーネントが見つからなかった場合 別Documentを検索しますが、getComponentByNameFromは指定されたコンテナのみ検索対象にします。 パラメータ
container:DisplayObjectContainer — コンポーネント検索対象コンテナオブジェクト
 
namePattern:String — 取得するコンポーネントのname属性値

戻り値
Array

関連項目

getEventCurrentTarget()method 
protected function getEventCurrentTarget():Object

[概 要]

このアクションを起動したイベントのcurrentTargetを取得します.

[詳 細]

イベントフェーズのカレント対象オブジェクトを取得します。
イベントフェーズの変遷によって内容物が変化します。

[備 考]

paramterMapping.eventからcurrentTargetプロパティと同値です。

戻り値
Object — イベントカレントターゲット
getEventSourceObject()method 
protected function getEventSourceObject():DisplayObject

[概 要]

恒久的なイベントカレントターゲットです.

[詳 細]

アクション起動時にイベントカレントターゲットが入ります。
このメソッドで取得するオブジェクトは、イベントフェーズによって変化しません。

[備 考]

戻り値
DisplayObject
getEventTarget()method 
protected function getEventTarget():Object

[概 要]

このアクションを起動したイベントのtargetを取得します.

[詳 細]

イベント発行したオブジェクトを取得します。
ボタン押下時に発生したアクションであれば、Buttonインスタンスが取得出来ます。

[備 考]

paramterMapping.eventからtargetプロパティと同値です。

戻り値
Object — イベントターゲット
getLoadedController()method 
protected function getLoadedController(name:String):BaseController

[概 要]

AVM上にロードされているBaseControllerから、引数nameをnameとして持つものを取得します.

[詳 細]

コントローラが保持するコントローラ管理マップから、引数nameをnameを持つものを取得、 返却します。

[備 考]

パラメータ
name:String — コントローラの名前

戻り値
BaseController — 引数nameをnameプロパティとして持つコントローラ
getLoadedControllers()method 
protected function getLoadedControllers():Dictionary

[概 要]

AVM上にロードされているBaseControllerのマッピングを取得します.

[詳 細]

コントローラが保持する、コントローラ管理マップを取得して返却します。

[備 考]

戻り値
Dictionary — コントローラ管理マップ(BaseController.controllers)
getObjectById()method 
protected function getObjectById(id:String):Object

[概 要]

引数idをid属性として持つオブジェクトを取得します.

[詳 細]

自Documentから引数idをid属性値として持つオブジェクトを取得して返却します。

[備 考]

パラメータ
id:String — 取得するコンポーネントid属性値

戻り値
Object — idを基に取得したオブジェクト
getPermanent()method 
protected function getPermanent(key:Object):Object

[概 要]

nSWF間で共有可能な恒久領域から、引数keyに対応する値を取得します.

[詳 細]

クライアントサイドの恒久メモリ領域を取得します。

[備 考]

パラメータ
key:Object — nSWF間で共有可能な恒久領域のキー

戻り値
Object — 引数keyに対応する値
getPopUp()method 
protected function getPopUp(name:String):Array

[概 要]

既に表示されているポップアップ画面インスタンス配列を取得します.

[詳 細]

第一引数nameで表示されている全てのポップアップ画面を取得して返却します。

[備 考]

パラメータ
name:String — 取得するポップアップ画面の名前

戻り値
Array
getSingletonPopUp()method 
protected function getSingletonPopUp(name:String):IFlexDisplayObject

[概 要]

既に表示されている重複を許可しないポップアップ画面インスタンスを取得します.

[詳 細]

第一引数nameで表示されているポップアップ画面を取得します。

[備 考]

パラメータ
name:String — 取得するポップアップ画面の名前

戻り値
IFlexDisplayObject
isExistPopUp()method 
protected function isExistPopUp(name:String):Boolean

[概 要]

引数で指定した名前を持つポップアップ画面が既に画面表示されているかどうか調べます.

[詳 細]

第一引数nameとして表示されているポップアップ画面が有るか調べます。

[備 考]

パラメータ
name:String — 表示されているかどうか調べる画面の名前

戻り値
Boolean
removeAllPopUp()method 
protected function removeAllPopUp():Boolean

[概 要]

全てのポップアップ画面を画面から消去します.

[詳 細]

表示中の全ての名前のポップアップ画面を消去します。

[備 考]

戻り値
Boolean
removePermanent()method 
protected function removePermanent(key:Object):void

[概 要]

nSWF間で共有可能な恒久領域から、引数keyを削除します.

[詳 細]

クライアントサイドの恒久メモリ領域から値を削除します。

[備 考]

パラメータ
key:Object — nSWF間で共有可能な恒久領域のキー
removePopUp()method 
protected function removePopUp(name:String):Boolean

[概 要]

引数windowNameに対応するポップアップ画面を画面から消去します.

[詳 細]

第一引数nameとして表示されているポップアップ画面を消去します。

[備 考]

パラメータ
name:String — 画面から消去するポップアップ画面の名前

戻り値
Boolean
run()method 
public function run(parameterMapping:ParameterMapping):ParameterMapping

[概 要]

コントローラにコールされるアクションの主幹メソッドです.

[詳 細]

以下を行います。

[備 考]

パラメータ
parameterMapping:ParameterMapping — MVC各レイヤを伝播するパラメータオブジェクト

戻り値
ParameterMapping
validate()method 
protected function validate(validators:Array):ValidateErrors

[概 要]

バリデーションを行うメソッドです.

[詳 細]

引数validatorsの数分、バリデーションを行います。
バリデーションエラーが発生した場合、エラー情報がValidateErrorオブジェクトに設定され、 戻り値であるValidateErrorsオブジェクトに追加されます。

FlexのValidatorは一度source設定してvalidateメソッドを実行すると、 設定されたValidatorはvalueCommitイベント毎に動作するようになります。
valueCommitイベント毎では無く、アクション実行毎にバリデーションを行いたい場合は このメソッドが有効です。

[備 考]

パラメータ
validators:Array — validatorsメソッドで設定されたバリデータオブジェクト群

戻り値
ValidateErrors — バリデーションエラー保持リストオブジェクト


Validator#validateメソッドと、AbstractAction#validateメソッドの挙動
            public class AddNumberAction extends FlexibleAction {
                
                override public function execute(parameterMapping:ParameterMapping):void {
                    
                    var tiNum1:TextInput = TextInput(getComponentByName("panel.tiNum1"));
                    var tiNum2:TextInput = TextInput(getComponentByName("panel.tiNum2"));
        
                    // 実行後、アクション実行時以外(フォーカスアウトイベント等)でもバリデーションが実行されます
                    var tiNum1Validator:NumberValidator = new NumberValidator();
                    tiNum1Validator.source = tiNum1;
                    tiNum1Validator.property = "text";
                    tiNum1Validator.domain = "int";
                    tiNum1Validator.required = true;
                    tiNum1Validator.validate();
         
                    // アクション実行時のみバリデーションが実行されます
                    var tiNum2Validator:NumberValidator = new NumberValidator();
                    tiNum2Validator.source = tiNum2;
                    tiNum2Validator.property = "text";
                    tiNum2Validator.domain = "int";
                    tiNum2Validator.required = true;
                    var validators:Array = new Array();            
                    validators.push(tiNum2Validator);
                    validate(validators);
                }
            }