jp.co.fujitsu.reffi.client.nexaweb.controller
クラス EventBinder

java.lang.Object
  上位を拡張 jp.co.fujitsu.reffi.client.nexaweb.controller.EventBinder

public class EventBinder
extends Object

[概 要]

イベント紐付け情報保持クラスです。

[詳 細]

BaseController.bind(EventBinder)によるコンポーネント、イベントタイプ、アクションクラス の紐付け情報を、bindInfoフィールドMapに保持します。
bindInfoオブジェクトは以下のような構造を持ちます。
 [
 コンポーネント名1 = 
     [イベントタイプ1 = アクションクラス, 
      イベントタイプ2 = アクションクラス],
 コンポーネント名2 =
     [イベントタイプ1 = アクションクラス] 
 ]
 
 eventBinder.addEventBinding("menu.openChat", "onActiveGained", FocusChatAction.class);
 eventBinder.addEventBinding("menu.openChat", "onCommand", OpenChatAction.class);
 eventBinder.addEventBinding("menu.openWindowGroupParent", "onCommand", OpenWindowGroupParentAction.class);
 
上記の場合、以下のようになります。
 [
 "menu.openChat" = 
     ["onActiveGained" = FocusChatAction.class, 
      "onCommand" = OpenChatAction.class]
 "menu.openWindowGroupParent" =
     ["onCommand" = OpenWindowGroupParentAction.class] 
 ]
 
 

[備 考]

アプリケーション動作中に紐付け情報を追加する場合、以下のようにEventBinderオブジェクト を取得してaddEventBinding、又はaddEventBindingImmediatelyをコールします。
        getController().getEventBinder().addEventBinding("newdisplay.btnRegist", "onCommand", RegistAction.class);
 

[環 境] JDK 6.0 Update 11

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

作成者:
Project Reffi

コンストラクタの概要
EventBinder(BaseController controller)
          [概 要] デフォルトコンストラクタです。
 
メソッドの概要
 void addEventBinding(String componentName, String eventType, Class<? extends Action> actionClass)
          [概 要] イベント紐付け情報追加メソッドです。
 void addEventBindingImmediately(String componentName, String eventType, Class<? extends Action> actionClass)
          [概 要] イベント紐付け情報追加メソッドです。
 Class<? extends Action> getActionClass(String componentName, String eventType)
          [概 要] componentNameをname属性値として持つエレメントの、eventTypeイベント発動時の アクションクラス型を取得します。
 Map<String,Map<String,Class<? extends Action>>> getBindInfo()
          [概 要] イベント紐付け情報保持オブジェクトを取得します。
 BaseController getController()
          [概 要] コントローラオブジェクトを取得します。
 String[] getEventTypes(String componentName)
          [概 要] 引数指定された名前を持つエレメントに登録されているイベントタイプ群を返却します。
 void loadConfig(String fileName)
          [概 要] イベント紐付け情報XMLを読込み追加するメソッドです。
 void setBindInfo(Map<String,Map<String,Class<? extends Action>>> bindInfo)
          [概 要] イベント紐付け情報保持オブジェクトを設定します。
 void setController(BaseController controller)
          [概 要] コントローラオブジェクトを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

EventBinder

public EventBinder(BaseController controller)

[概 要]

デフォルトコンストラクタです。

[詳 細]

bindInfoフィールドインスタンスを生成します。

[備 考]

メソッドの詳細

getBindInfo

public Map<String,Map<String,Class<? extends Action>>> getBindInfo()

[概 要]

イベント紐付け情報保持オブジェクトを取得します。

[詳 細]

bindInfoフィールドを返却します。

[備 考]

戻り値:
イベント紐付け情報

setBindInfo

public void setBindInfo(Map<String,Map<String,Class<? extends Action>>> bindInfo)

[概 要]

イベント紐付け情報保持オブジェクトを設定します。

[詳 細]

bindInfoフィールドを、引数bindInfoで設定します。

[備 考]

パラメータ:
bindInfo - イベント紐付け情報

getController

public BaseController getController()

[概 要]

コントローラオブジェクトを取得します。

[詳 細]

controllerフィールドを返却します。

[備 考]

戻り値:
コントローラオブジェクト

setController

public void setController(BaseController controller)

[概 要]

コントローラオブジェクトを設定します。

[詳 細]

controllerフィールドを引数controllerで設定します。

[備 考]

パラメータ:
controller - コントローラオブジェクト

addEventBinding

public void addEventBinding(String componentName,
                            String eventType,
                            Class<? extends Action> actionClass)

[概 要]

イベント紐付け情報追加メソッドです。

[詳 細]

引数componentNameが既に登録されている場合、componentName用のMapを取り出し、 イベントタイプをキーにしてアクションを登録します。
componentNameが未登録の場合、componentName用のMapを新規に生成して、 イベントタイプをキーにしてアクションを登録します。
登録された情報はイベント紐付け情報保持オブジェクト(bindInfoフィールド)に保持され、 コントローラのエレメント挿抜リスナによって参照されます。

[備 考]

登録された紐付け情報が反映されるのは、componentNameをname属性値として持つ エレメントが、ui Documentに追加されたタイミングです。

パラメータ:
componentName - コンポーネント(エレメント)のname属性値
eventType - Nexawebイベントタイプ
actionClass - 起動するアクションのクラス型

addEventBindingImmediately

public void addEventBindingImmediately(String componentName,
                                       String eventType,
                                       Class<? extends Action> actionClass)

[概 要]

イベント紐付け情報追加メソッドです。

[詳 細]

addEventBinding(String, String, Class)オーバーロードメソッドを 呼び出して、イベント紐付け情報保持オブジェクト(bindInfo)に追加します。
追加後、ui Documentを取得して、追加された紐付け情報を即座に反映します。

[備 考]

addEventBinding(String, String, Class)と違い、登録された情報がui Documentに 反映されるのはこのメソッド呼び出し直後です。

パラメータ:
componentName - コンポーネント(エレメント)のname属性値
eventType - Nexawebイベントタイプ
actionClass - 起動するアクションのクラス型
関連項目:
addEventBinding(String, String, Class)

getEventTypes

public String[] getEventTypes(String componentName)

[概 要]

引数指定された名前を持つエレメントに登録されているイベントタイプ群を返却します。

[詳 細]

bindInfoフィールドから、引数componentNameで紐付け情報を取り出し、 登録されている全イベントタイプをString配列に変換して返却します。

[備 考]

パラメータ:
componentName - コンポーネント(エレメント)のname属性値
戻り値:
componentNameに登録されている全イベントタイプが入った配列

getActionClass

public Class<? extends Action> getActionClass(String componentName,
                                              String eventType)

[概 要]

componentNameをname属性値として持つエレメントの、eventTypeイベント発動時の アクションクラス型を取得します。

[詳 細]

bindInfoフィールドから、引数componentNameで紐付け情報を取り出し、 取り出した[イベントタイプ = アクションクラス]のマップから、eventTypeイベント のアクションクラスを取得、返却します。

[備 考]

パラメータ:
componentName - コンポーネント(エレメント)のname属性値
eventType - イベントタイプ
戻り値:
componentName、eventTypeに対応するアクションクラス型

loadConfig

public void loadConfig(String fileName)

[概 要]

イベント紐付け情報XMLを読込み追加するメソッドです。

[詳 細]

イベント紐付け情報XMLを読込み追加するメソッドです。 読込みXMLの例:
 <?xml version="1.0" encoding="UTF-8"?>
 <reffi-client-config xmlns="urn:jp.co.fujitsu.reffi.client.config">
     <import resource="reffi-client-config-window.xml" />
     <!--
         event mapping config.
         name: Name on element
         event: Set provided by the Nexaweb event name (ex. onCommand, onCreate, onContextMenu ...)
         type: Call action class
     -->
     <event-mappings>
         <!-- menuWindowAction -->
         <event
             name="menu.openChat"
             event="onCommand"
             type="demo.client.menu.action.OpenChatAction" />
     </event-mappings>
 </reffi-client-config>
 

[備 考]

パラメータ:
fileName - 設定ファイル名


Copyright(C) Fujitsu All Rights Reserved.