|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectandroid.content.Context
android.content.ContextWrapper
android.app.Application
jp.co.fujitsu.reffi.client.android.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.
| フィールドの概要 | |
|---|---|
static AbstractController |
instance
|
| クラス android.content.Context から継承されたフィールド |
|---|
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, AUDIO_SERVICE, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_NOT_FOREGROUND, CLIPBOARD_SERVICE, CONNECTIVITY_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, DEVICE_POLICY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, INPUT_METHOD_SERVICE, KEYGUARD_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MODE_APPEND, MODE_MULTI_PROCESS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NFC_SERVICE, NOTIFICATION_SERVICE, POWER_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, STORAGE_SERVICE, TELEPHONY_SERVICE, UI_MODE_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_SERVICE, WINDOW_SERVICE |
| コンストラクタの概要 | |
|---|---|
AbstractController()
[概 要] デフォルトコンストラクタです。 |
|
| メソッドの概要 | |
|---|---|
void |
addListener(android.content.Context context,
java.lang.Object viewOrActivity,
java.lang.Class<? extends java.lang.Object> listenerType,
java.util.List<java.lang.String> eventTypes)
[概 要] 追加されたコンポーネントに対してイベントリスナを追加します。 |
protected void |
bind(EventBinder eventBinder)
[概 要] UIコンポーネントとアクションを紐付ける、EventBinderオブジェクトを作成するメソッドです。 |
void |
bindEvents(android.content.Context context,
java.lang.Object viewOrActivity)
[概 要] 追加されたコンポーネントに対して予約されているリスナ追加をaddListenerメソッドに委譲します。 |
protected ParameterMapping |
createParameterMapping(java.lang.Object eventSource,
java.lang.String eventSourceName,
java.lang.Object[] eventArgs,
java.lang.Class<? extends java.lang.Object> listenerType,
java.lang.String eventType,
java.lang.Object eventListenerProxy)
[概 要] MVC各レイヤを巡回するParameteraMappingオブジェクトを生成、初期化します。 |
ClientConfig |
getClientConfig()
[概 要] フレームワーク挙動情報を保持するオブジェクトを取得します。 |
EventBinder |
getEventBinder()
[概 要] イベント紐付けオブジェクトを取得します。 |
android.app.Activity |
getFrontActivity()
|
java.util.Map<java.lang.Object,java.lang.Object> |
getPermanent()
[概 要] アプリ起動~終了まで存在するデータ保存領域を取得します。 |
void |
handlerFacade(android.content.Context context,
java.lang.Object eventSource,
java.lang.Object[] eventArgs,
java.lang.Class<? extends java.lang.Object> listenerType,
java.lang.String eventType,
java.lang.Object eventListenerProxy)
[概 要] 全ユーザ定義イベントをハンドルする入り口になるメソッドです。 |
protected void |
initialize(ClientConfig config)
[概 要] 初期化処理が記述可能なメソッドです。 |
protected void |
postInitialize(ClientConfig config)
[概 要] ClientConfigの値に依存するクライアント初期化設定を行います。 |
void |
setClientConfig(ClientConfig clientConfig)
[概 要] フレームワーク挙動情報を保持するオブジェクトを設定します。 |
void |
setEventBinder(EventBinder eventBinder)
[概 要] イベント紐付けオブジェクトを設定します。 |
void |
setFrontActivity(android.app.Activity frontActivity)
|
void |
setPermanent(java.util.Map<java.lang.Object,java.lang.Object> Permanent)
[概 要] アプリ起動~終了まで存在するデータ保存領域を設定します。 |
protected void |
shutdown()
[概 要] JVMのシャットダウン時にコールされるフックハンドラです。 |
| クラス android.app.Application から継承されたメソッド |
|---|
onConfigurationChanged, onCreate, onLowMemory, onTerminate |
| クラス android.content.ContextWrapper から継承されたメソッド |
|---|
attachBaseContext, bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkUriPermission, checkUriPermission, clearWallpaper, createPackageContext, databaseList, deleteDatabase, deleteFile, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAssets, getBaseContext, getCacheDir, getClassLoader, getContentResolver, getDatabasePath, getDir, getExternalCacheDir, getExternalFilesDir, getFilesDir, getFileStreamPath, getMainLooper, getObbDir, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getResources, getSharedPreferences, getSystemService, getTheme, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isRestricted, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, removeStickyBroadcast, revokeUriPermission, sendBroadcast, sendBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendStickyBroadcast, sendStickyOrderedBroadcast, setTheme, setWallpaper, setWallpaper, startActivities, startActivity, startInstrumentation, startIntentSender, startService, stopService, unbindService, unregisterReceiver |
| クラス android.content.Context から継承されたメソッド |
|---|
getString, getString, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| インタフェース jp.co.fujitsu.reffi.client.android.controller.Controller から継承されたメソッド |
|---|
invoke |
| フィールドの詳細 |
|---|
public static AbstractController instance
| コンストラクタの詳細 |
|---|
public AbstractController()
[概 要]
デフォルトコンストラクタです。[詳 細]
コントローラの初期化を行います。
を行った後、イベント紐付け登録読込みの為、bind(EventBinder)メソッドを
テンプレートコールします。
イベント紐付け情報が正常に読み込まれた後、アプリケーション初期化の為のinitialize がコールされます。
[備 考]
| メソッドの詳細 |
|---|
public EventBinder getEventBinder()
[概 要]
イベント紐付けオブジェクトを取得します。[詳 細]
eventBinderフィールドオブジェクトを返却します。[備 考]
public void setEventBinder(EventBinder eventBinder)
[概 要]
イベント紐付けオブジェクトを設定します。[詳 細]
eventBinderフィールドオブジェクトを設定します。[備 考]
eventBinder - イベント紐付けオブジェクトpublic java.util.Map<java.lang.Object,java.lang.Object> getPermanent()
[概 要]
アプリ起動~終了まで存在するデータ保存領域を取得します。[詳 細]
permanentフィールドオブジェトを返却します。[備 考]
public void setPermanent(java.util.Map<java.lang.Object,java.lang.Object> Permanent)
[概 要]
アプリ起動~終了まで存在するデータ保存領域を設定します。[詳 細]
permanentフィールドオブジェクトを設定します。[備 考]
permanent - アプリ起動~終了まで存在するデータ保存領域public ClientConfig getClientConfig()
[概 要]
フレームワーク挙動情報を保持するオブジェクトを取得します。[詳 細]
clientConfigフィールドを返却します。[備 考]
public void setClientConfig(ClientConfig clientConfig)
[概 要]
フレームワーク挙動情報を保持するオブジェクトを設定します。[詳 細]
clientConfigフィールドを設定します。[備 考]
clientConfig - フレームワーク挙動情報を保持するオブジェクトpublic android.app.Activity getFrontActivity()
public void setFrontActivity(android.app.Activity frontActivity)
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(android.content.Context context,
java.lang.Object viewOrActivity)
[概 要]
追加されたコンポーネントに対して予約されているリスナ追加をaddListenerメソッドに委譲します。[詳 細]
ContainerListenerImplが検知したコンポーネント追加イベント時にコールされます。[備 考]
addedComponent - 画面に追加されたコンポーネント
public void addListener(android.content.Context context,
java.lang.Object viewOrActivity,
java.lang.Class<? extends java.lang.Object> listenerType,
java.util.List<java.lang.String> eventTypes)
throws java.lang.Exception
[概 要]
追加されたコンポーネントに対してイベントリスナを追加します。[詳 細]
引数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 - イベントハンドラメソッド名リスト
java.lang.Exception
public void handlerFacade(android.content.Context context,
java.lang.Object eventSource,
java.lang.Object[] eventArgs,
java.lang.Class<? extends java.lang.Object> listenerType,
java.lang.String eventType,
java.lang.Object eventListenerProxy)
[概 要]
全ユーザ定義イベントをハンドルする入り口になるメソッドです。[詳 細]
発生したイベントタイプ、イベントを起こしたコンポーネント名を元に、Controller.invoke(Class, ParameterMapping)に処理委譲します。
[備 考]
e - listenerType - eventType - eventListenerProxy -
protected ParameterMapping createParameterMapping(java.lang.Object eventSource,
java.lang.String eventSourceName,
java.lang.Object[] eventArgs,
java.lang.Class<? extends java.lang.Object> listenerType,
java.lang.String eventType,
java.lang.Object eventListenerProxy)
[概 要]
MVC各レイヤを巡回するParameteraMappingオブジェクトを生成、初期化します。[詳 細]
イベント発生の際、Controller、Action、Modelを流れるデータマップを作成します。
[備 考]
e - イベントオブジェクトlistenerType - イベントリスナクラス型eventType - イベントタイプ(イベントハンドラメソッド名)eventListenerProxy - イベントリスナインスタンス
protected void bind(EventBinder eventBinder)
[概 要]
UIコンポーネントとアクションを紐付ける、EventBinderオブジェクトを作成するメソッドです。[詳 細]
コントローラ実装クラスでこのメソッドをオーバーライドして、[備 考]
eventBinder - イベント紐付けオブジェクトprotected void shutdown()
[概 要]
JVMのシャットダウン時にコールされるフックハンドラです。[詳 細]
具象コントローラでこのメソッドをオーバーライドして、 アプリケーションの終末処理を記述します。[備 考]
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||