|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.co.fujitsu.reffi.client.swing.controller.AbstractController
public abstract class AbstractController
[概 要]
アプリケーションを制御する抽象コントローラです。[詳 細]
JVM上のウィンドウレベルコンポーネントの開閉を監視して、コンポーネントに対するイベントリスナ追加
EventBinderフィールドがコンポーネントとアクションをイベントタイプ毎に紐付け管理します。
この情報は具象コントローラを作成し、bind(EventBinder)メソッドをオーバーライド、
実装することで蓄積されます。
ウィンドウコンポーネントの画面表示イベントを監視して、包含するコンポーネントを走査、
EventBinderに登録されているコンポーネント名であれば
「handlerFacade(EventObject, Class, String, EventListener)
をコールするイベントリスナプロキシ」をそのコンポーネントに対して設定します。
イベント発生時のハンドラ集約
上記イベントリスナの自動追加により、Reffi使用アプリケーションのイベントハンドラは全て、
このクラスのhandlerFacadeメソッドになります。
Swingコーディングにおけるイベントハンドラ追加の常套手段である、
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
....
}
});
や、
JButton button = new JButton(new LoginAction());
といった画面クラスで行うイベント追加と、イベントリスナ処理の実装は不要です。
[備 考]
[環 境] JDK 6.0 Update 11
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
| コンストラクタの概要 | |
|---|---|
AbstractController()
[概 要] デフォルトコンストラクタです。 |
|
| メソッドの概要 | |
|---|---|
void |
addListener(Component component,
Class<? extends EventListener> listenerType,
List<String> eventTypes)
[概 要] 追加されたコンポーネントに対してイベントリスナを追加します。 |
protected void |
bind(EventBinder eventBinder)
[概 要] UIコンポーネントとアクションを紐付ける、EventBinderオブジェクトを作成するメソッドです。 |
void |
bindEvents(Component addedComponent)
[概 要] 追加されたコンポーネントに対して予約されているリスナ追加をaddListenerメソッドに委譲します。 |
protected ParameterMapping |
createParameterMapping(EventObject e,
Class<? extends EventListener> listenerType,
String eventType,
EventListener eventListenerProxy)
[概 要] MVC各レイヤを巡回するParameteraMappingオブジェクトを生成、初期化します。 |
ClientConfig |
getClientConfig()
[概 要] フレームワーク挙動情報を保持するオブジェクトを取得します。 |
Map<Integer,Map<Integer,Map<String,Object>>> |
getErrorComponentSnapshot()
[概 要] バリデーションエラーを起こしているコンポーネントの情報を管理するオブジェクトを返却します。 |
EventBinder |
getEventBinder()
[概 要] イベント紐付けオブジェクトを取得します。 |
Map<Object,Object> |
getPermanent()
[概 要] アプリ起動~終了まで存在するデータ保存領域を取得します。 |
WindowManager |
getWindowManager()
[概 要] JVM上のウィンドウコンポーネントを管理するオブジェクトを返却します。 |
void |
handlerFacade(EventObject e,
Class<? extends EventListener> listenerType,
String eventType,
EventListener eventListenerProxy)
[概 要] 全ユーザ定義イベントをハンドルする入り口になるメソッドです。 |
protected void |
initialize(ClientConfig config)
[概 要] 初期化処理が記述可能なメソッドです。 |
protected void |
postInitialize(ClientConfig config)
[概 要] ClientConfigの値に依存するクライアント初期化設定を行います。 |
void |
registWindow(Window window)
[概 要] ウィンドウコンポーネントをReffi管理画面にします。 |
void |
setClientConfig(ClientConfig clientConfig)
[概 要] フレームワーク挙動情報を保持するオブジェクトを設定します。 |
void |
setErrorComponentSnapshot(Map<Integer,Map<Integer,Map<String,Object>>> errorComponentSnapshot)
[概 要] バリデーションエラーを起こしているコンポーネントの情報を管理するオブジェクトを設定します。 |
void |
setEventBinder(EventBinder eventBinder)
[概 要] イベント紐付けオブジェクトを設定します。 |
void |
setPermanent(Map<Object,Object> Permanent)
[概 要] アプリ起動~終了まで存在するデータ保存領域を設定します。 |
void |
setWindowManager(WindowManager windowManager)
[概 要] JVM上のウィンドウコンポーネントを管理するオブジェクトを設定します。 |
protected void |
shutdown()
[概 要] JVMのシャットダウン時にコールされるフックハンドラです。 |
void |
windowOpen(AWTEvent evt)
[概 要] ウィンドウコンポーネント表示時にコールされるイベントハンドラです。 |
void |
windowShut(AWTEvent evt)
[概 要] ウィンドウコンポーネントクローズ時にコールされるイベントハンドラです。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| インタフェース jp.co.fujitsu.reffi.client.swing.controller.Controller から継承されたメソッド |
|---|
invoke |
| コンストラクタの詳細 |
|---|
public AbstractController()
[概 要]
デフォルトコンストラクタです。[詳 細]
コントローラの初期化を行います。
を行った後、イベント紐付け登録読込みの為、bind(EventBinder)メソッドを
テンプレートコールします。
イベント紐付け情報が正常に読み込まれた後、アプリケーション初期化の為のinitialize がコールされます。
[備 考]
| メソッドの詳細 |
|---|
public EventBinder getEventBinder()
[概 要]
イベント紐付けオブジェクトを取得します。[詳 細]
eventBinderフィールドオブジェクトを返却します。[備 考]
public void setEventBinder(EventBinder eventBinder)
[概 要]
イベント紐付けオブジェクトを設定します。[詳 細]
eventBinderフィールドオブジェクトを設定します。[備 考]
eventBinder - イベント紐付けオブジェクトpublic Map<Object,Object> getPermanent()
[概 要]
アプリ起動~終了まで存在するデータ保存領域を取得します。[詳 細]
permanentフィールドオブジェトを返却します。[備 考]
public void setPermanent(Map<Object,Object> Permanent)
[概 要]
アプリ起動~終了まで存在するデータ保存領域を設定します。[詳 細]
permanentフィールドオブジェクトを設定します。[備 考]
permanent - アプリ起動~終了まで存在するデータ保存領域public ClientConfig getClientConfig()
[概 要]
フレームワーク挙動情報を保持するオブジェクトを取得します。[詳 細]
clientConfigフィールドを返却します。[備 考]
public void setClientConfig(ClientConfig clientConfig)
[概 要]
フレームワーク挙動情報を保持するオブジェクトを設定します。[詳 細]
clientConfigフィールドを設定します。[備 考]
clientConfig - フレームワーク挙動情報を保持するオブジェクトpublic WindowManager getWindowManager()
[概 要]
JVM上のウィンドウコンポーネントを管理するオブジェクトを返却します。[詳 細]
windowManagerフィールドを返却します。[備 考]
public void setWindowManager(WindowManager windowManager)
[概 要]
JVM上のウィンドウコンポーネントを管理するオブジェクトを設定します。[詳 細]
windowManagerフィールドを設定します。[備 考]
windowManager - JVM上のウィンドウコンポーネントを管理するオブジェクトpublic Map<Integer,Map<Integer,Map<String,Object>>> getErrorComponentSnapshot()
[概 要]
バリデーションエラーを起こしているコンポーネントの情報を管理するオブジェクトを返却します。[詳 細]
errorComponentSnapshotフィールドを返却します。[備 考]
public void setErrorComponentSnapshot(Map<Integer,Map<Integer,Map<String,Object>>> errorComponentSnapshot)
[概 要]
バリデーションエラーを起こしているコンポーネントの情報を管理するオブジェクトを設定します。[詳 細]
errorComponentSnapshotフィールドを設定します。[備 考]
errorComponentSnapshot - バリデーションエラーを起こしているコンポーネントの情報を管理するオブジェクトprotected void initialize(ClientConfig config)
[概 要]
初期化処理が記述可能なメソッドです。[詳 細]
Document、ClientSessionが生成されるタイミングでテンプレートコールされます。 デフォルトの処理は有りません。[備 考]
業務固有の初期化処理が必要な場合は、具象コントローラ内でこのメソッドを オーバーライドして下さい。
使用例)
protected void initialize(ClientConfig config){
// デフォルトJMS接続環境を設定
Hashtable jmsEnvironment = new Hashtable();
jmsEnvironment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
jmsEnvironment.put(Context.PROVIDER_URL, "localhost:1099");
jmsEnvironment.put("java.naming.rmi.security.manager", "yes");
jmsEnvironment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
config.setDefaultJmsEnvironment(jmsEnvironment);
// デフォルトEJB接続環境を設定
Hashtable ejbEnvironment = new Hashtable();
ejbEnvironment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.NamingContextFactory");
ejbEnvironment.put(Context.PROVIDER_URL, "jnp://localhost:1099");
config.setDefaultEjbEnvironment(ejbEnvironment);
// デフォルトDatabase接続環境を設定
Hashtable dbEnvironment = new Hashtable();
dbEnvironment.put(DatabaseCore.DB_DRIVER_FQCN, "org.postgresql.Driver");
dbEnvironment.put(DatabaseCore.DB_URL, "jdbc:postgresql://localhost:5432/RFD");
dbEnvironment.put(DatabaseCore.DB_USER, "nakanishi");
dbEnvironment.put(DatabaseCore.DB_PASSWORD, "shingon");
dbEnvironment.put(DatabaseCore.DB_AUTO_COMMIT, "true");
config.setDefaultDatabaseEnvironment(dbEnvironment);
Hashtable httpEnvironment = new Hashtable();
httpEnvironment.put(HTTPRequestCore.HTTP_URL_PREFIX, "http://localhost:8080/RFDforSwingWeb/");
config.setDefaultHttpEnvironment(httpEnvironment);
}
config - フレームワーク挙動情報を保持するオブジェクトprotected void postInitialize(ClientConfig config)
[概 要]
ClientConfigの値に依存するクライアント初期化設定を行います。[詳 細]
[備 考]
config - フレームワーク挙動情報を保持するオブジェクトpublic void bindEvents(Component addedComponent)
[概 要]
追加されたコンポーネントに対して予約されているリスナ追加をaddListenerメソッドに委譲します。[詳 細]
ContainerListenerImplが検知したコンポーネント追加イベント時にコールされます。[備 考]
addedComponent - 画面に追加されたコンポーネント
public void addListener(Component component,
Class<? extends EventListener> listenerType,
List<String> eventTypes)
[概 要]
追加されたコンポーネントに対してイベントリスナを追加します。[詳 細]
引数listenerTypeのプロキシオブジェクトを生成して、 引数componentにイベントリスナとして追加します。
Swingコンポーネントはイベントタイプによってイベント追加メソッド名が異なります。
生成されたプロキシはJavaの命名規則「"add" + listenerTypeクラス名」に沿って
追加メソッド名を以下のように動的判別します。
String addMethodName = "add" + listenerType.getSimpleName();
Method addMethod = component.getClass().getMethod(addMethodName, listenerType);
addMethod.invoke(component, eventListener);
[備 考]
プロキシ内のハンドラでは発生したイベントタイプを引数eventTypesと比較、 eventTypesに含まれるハンドラメソッドが呼ばれる場合はhandlerFacade(EventObject, Class, String, EventListener)
をコールします。
component - イベントリスナプロキシを追加するコンポーネントlistenerType - プロキシの原型eventTypes - イベントハンドラメソッド名リスト
public void handlerFacade(EventObject e,
Class<? extends EventListener> listenerType,
String eventType,
EventListener eventListenerProxy)
[概 要]
全ユーザ定義イベントをハンドルする入り口になるメソッドです。[詳 細]
発生したイベントタイプ、イベントを起こしたコンポーネント名を元に、Controller.invoke(Class, ParameterMapping)に処理委譲します。
[備 考]
e - listenerType - eventType - eventListenerProxy -
protected ParameterMapping createParameterMapping(EventObject e,
Class<? extends EventListener> listenerType,
String eventType,
EventListener eventListenerProxy)
[概 要]
MVC各レイヤを巡回するParameteraMappingオブジェクトを生成、初期化します。[詳 細]
イベント発生の際、Controller、Action、Modelを流れるデータマップを作成します。
[備 考]
e - イベントオブジェクトlistenerType - イベントリスナクラス型eventType - イベントタイプ(イベントハンドラメソッド名)eventListenerProxy - イベントリスナインスタンス
protected void bind(EventBinder eventBinder)
[概 要]
UIコンポーネントとアクションを紐付ける、EventBinderオブジェクトを作成するメソッドです。[詳 細]
コントローラ実装クラスでこのメソッドをオーバーライドして、[備 考]
eventBinder - イベント紐付けオブジェクトpublic void windowOpen(AWTEvent evt)
[概 要]
ウィンドウコンポーネント表示時にコールされるイベントハンドラです。[詳 細]
WindowOpenShutListener.windowOpen(AWTEvent)を実装します。[備 考]
WindowOpenShutListener 内の windowOpenevt - ウィンドウオープンイベントオブジェクトpublic void windowShut(AWTEvent evt)
[概 要]
ウィンドウコンポーネントクローズ時にコールされるイベントハンドラです。[詳 細]
WindowOpenShutListener.windowShut(AWTEvent)を実装します。ClientConfig.isAutoWindowDispose()がtrueの場合、
閉じたウィンドウコンポーネントのdisposeを行います。
[備 考]
WindowOpenShutListener 内の windowShutevt - ウィンドウクローズイベントオブジェクトpublic void registWindow(Window window)
[概 要]
ウィンドウコンポーネントをReffi管理画面にします。[詳 細]
searchComponent(Component)に処理委譲します。
[備 考]
window - Reffi管理下に置くウィンドウコンポーネントprotected void shutdown()
[概 要]
JVMのシャットダウン時にコールされるフックハンドラです。[詳 細]
具象コントローラでこのメソッドをオーバーライドして、 アプリケーションの終末処理を記述します。[備 考]
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||