jp.co.fujitsu.reffi.client.android.controller
クラス BaseController

java.lang.Object
  上位を拡張 android.content.Context
      上位を拡張 android.content.ContextWrapper
          上位を拡張 android.app.Application
              上位を拡張 jp.co.fujitsu.reffi.client.android.controller.AbstractController
                  上位を拡張 jp.co.fujitsu.reffi.client.android.controller.BaseController
すべての実装されたインタフェース:
android.content.ComponentCallbacks, Controller

public class BaseController
extends AbstractController

[概 要]

アクションとモデルを制御する基底コントローラクラスです。

[詳 細]

イベント発生時、BaseControllerのController.invoke(Class, ParameterMapping) 実装は、以下の処理フロー形成を行います。

実行順序 BaseAction BaseController BaseModel
1   invoke(Class, ParameterMapping)  
2    runAction(Class, ParameterMapping)  
3 run(ParameterMapping)    
4    runModels(List, ParameterMapping, int, ModelProcessEvent)  
   runModelsAndNoWait(List, ParameterMapping)  
5     run()
6    モデル処理管理リスナ(成功)  
7 successForward(int, Model, Object)    
   モデル処理管理リスナ(失敗)  
failureForward(int, Model, Exception)    
8    モデル処理管理リスナ(完了)  
9 complete()    
10    trap(Throwable)  
11    invokeFinalize(ParameterMapping)  
この過程で呼ばれるアクション(run)とモデル(run)の中では別途処理フローが作られ、 機能実装者にフックポイントを提供します。

[備 考]

使用例)
・典型的な具象コントローラ(BaseController継承クラス)
        package demo.controller;
        
        import java.awt.event.ActionListener;
        import java.awt.event.FocusListener;
        import java.awt.event.ItemListener;
        import java.awt.event.WindowListener;
        import java.util.Hashtable;
        
        import javax.naming.Context;
        import javax.swing.event.InternalFrameListener;
        import javax.swing.event.PopupMenuListener;
        
        import jp.co.fujitsu.reffi.client.swing.controller.BaseController;
        import jp.co.fujitsu.reffi.client.swing.controller.ClientConfig;
        import jp.co.fujitsu.reffi.client.swing.controller.EventBinder;
        import jp.co.fujitsu.reffi.client.swing.model.DatabaseCore;
        import jp.co.fujitsu.reffi.client.swing.model.HTTPRequestCore;
        import demo.chat.action.ChatFrameCloseAction;
        import demo.chat.action.EnterChannelAction;
        import demo.chat.action.RemarkSendAction;
        import demo.communication.action.AllCommunicateAction;
        import demo.communication.action.ClearResultAction;
        import demo.communication.action.EjbCommunicateAction;
        import demo.communication.action.HttpCommunicateAction;
        import demo.communication.action.SoapCommunicateAction;
        import demo.componentsearch.action.ComponentLocateAction;
        import demo.componentsearch.action.SearchAction;
        import demo.componentsearch.action.ShowSourceAction;
        import demo.componentsearch.action.WindowNamesFetchAction;
        import demo.correlation.action.CorrelationImageFrameInitAction;
        import demo.dbaccess.action.UsersFetchAction;
        import demo.form.action.AddressFocusLostAction;
        import demo.form.action.EmailFocusLostAction;
        import demo.form.action.FullNameFocusLostAction;
        import demo.form.action.InputFormInitAction;
        import demo.form.action.OpenPostalSearchAction;
        import demo.form.action.PasswordFocusLostAction;
        import demo.form.action.PostalFirstFocusLostAction;
        import demo.form.action.PostalLastFocusLostAction;
        import demo.form.action.UserIdFocusLostAction;
        import demo.form.action.UserRegistAction;
        import demo.functionlauncher.action.OpenChatAction;
        import demo.functionlauncher.action.OpenCommunicationAction;
        import demo.functionlauncher.action.OpenComponentSearchAction;
        import demo.functionlauncher.action.OpenCorrelationAction;
        import demo.functionlauncher.action.OpenDbAccessAction;
        import demo.functionlauncher.action.OpenInputFormAction;
        import demo.functionlauncher.action.OpenJFreeChartAction;
        import demo.functionlauncher.action.OpenMapViewerAction;
        import demo.functionlauncher.action.OpenWebServiceAction;
        import demo.jfreechart.action.OpenLineChartAction;
        import demo.jfreechart.action.OpenPieChartAction;
        import demo.jfreechart.action.PieChartInitAction;
        import demo.jfreechart.action.TimeSeriesChartCloseAction;
        import demo.jfreechart.action.TimeSeriesChartInitAction;
        import demo.login.action.LoginAction;
        import demo.postal.action.DecideAction;
        import demo.postal.action.NextPageAction;
        import demo.postal.action.NumPerPageChangeAction;
        import demo.postal.action.PostalSearchFacadeAction;
        import demo.postal.action.PrevPageAction;
        import demo.postal.action.WardsFetchAction;
        import demo.webservice.action.MtomSendAction;
        
        public class DemoController extends BaseController {
        
                @Override
                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);
                }
        
                @Override
                protected void bind(EventBinder eventBinder) {
                        // ログイン画面アクション
                        eventBinder.addEventBinding("loginFrame.jbLogin", ActionListener.class, "actionPerformed", LoginAction.class);
                        
                        // 起動画面アクション
                        eventBinder.addEventBinding("functionlauncher.jbOpenChat", ActionListener.class, "actionPerformed", OpenChatAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenComponentSearch", ActionListener.class, "actionPerformed", OpenComponentSearchAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenDesktop", ActionListener.class, "actionPerformed", OpenJFreeChartAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenInputForm", ActionListener.class, "actionPerformed", OpenInputFormAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenCommunication", ActionListener.class, "actionPerformed", OpenCommunicationAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenDbAccess", ActionListener.class, "actionPerformed", OpenDbAccessAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenCorrelation", ActionListener.class, "actionPerformed", OpenCorrelationAction.class);
                        eventBinder.addEventBinding("functionLauncher.jbOpenMapViewer", ActionListener.class, "actionPerformed", OpenMapViewerAction.class);
                        eventBinder.addEventBinding("functionlauncher.jbOpenWebService", ActionListener.class, "actionPerformed", OpenWebServiceAction.class);
                        
                        
                        // チャットデモ画面アクション
                        eventBinder.addEventBinding("chatFrame.jbEnterChannel", ActionListener.class, "actionPerformed", EnterChannelAction.class);
                        eventBinder.addEventBinding("chatFrame.jbRemarkSend", ActionListener.class, "actionPerformed", RemarkSendAction.class);
                        eventBinder.addEventBinding("chatFrame", WindowListener.class, "windowClosing", ChatFrameCloseAction.class);
        
                        // コンポーネント検索画面アクション
                        eventBinder.addEventBinding("componentSearchFrame.jbSearch", ActionListener.class, "actionPerformed", SearchAction.class);
                        eventBinder.addEventBinding("componentSearchFrame.jcbWindowName", PopupMenuListener.class, "popupMenuWillBecomeVisible", WindowNamesFetchAction.class);
                        eventBinder.addEventBinding("componentSearchFrame.jbLocate", ActionListener.class, "actionPerformed", ComponentLocateAction.class);
                        eventBinder.addEventBinding("componentSearchFrame.jbShowSource", ActionListener.class, "actionPerformed", ShowSourceAction.class);
                        
                        // JFreeChartデモ画面アクション
                        eventBinder.addEventBinding("desktopFrame.jmiPieChart", ActionListener.class, "actionPerformed", OpenPieChartAction.class);
                        eventBinder.addEventBinding("desktopFrame.jmiLineChart", ActionListener.class, "actionPerformed", OpenLineChartAction.class);
                        eventBinder.addEventBinding("jfreechart.jifPieChart", InternalFrameListener.class, "internalFrameOpened", PieChartInitAction.class);
                        eventBinder.addEventBinding("jfreechart.jifTimeSeriesChart", InternalFrameListener.class, "internalFrameOpened", TimeSeriesChartInitAction.class);
                        eventBinder.addEventBinding("jfreechart.jifTimeSeriesChart", InternalFrameListener.class, "internalFrameClosing", TimeSeriesChartCloseAction.class);
                        
                        // 入力フォームデモ画面アクション
                        eventBinder.addEventBinding("inputFormFrame", WindowListener.class, "windowOpened", InputFormInitAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jbOpenPostalSearch", ActionListener.class, "actionPerformed", OpenPostalSearchAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jtfFullName", FocusListener.class, "focusLost", FullNameFocusLostAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jtfPostalFirst", FocusListener.class, "focusLost", PostalFirstFocusLostAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jtfPostalLast", FocusListener.class, "focusLost", PostalLastFocusLostAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jtfAddress", FocusListener.class, "focusLost", AddressFocusLostAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jtfEmail", FocusListener.class, "focusLost", EmailFocusLostAction.class);           
                        eventBinder.addEventBinding("inputFormFrame.jtfUserId", FocusListener.class, "focusLost", UserIdFocusLostAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jpwPassword", FocusListener.class, "focusLost", PasswordFocusLostAction.class);
                        eventBinder.addEventBinding("inputFormFrame.jbRegist", ActionListener.class, "actionPerformed", UserRegistAction.class);                
        
                        // 郵便番号検索画面アクション
                        eventBinder.addEventBinding("postalSearchDialog", WindowListener.class, "windowOpened", WardsFetchAction.class);
                        eventBinder.addEventBinding("postalSearchDialog.jbSearch", ActionListener.class, "actionPerformed", PostalSearchFacadeAction.class);
                        eventBinder.addEventBinding("postalSearchDialog.jbDecide", ActionListener.class, "actionPerformed", DecideAction.class);
                        eventBinder.addEventBinding("postalSearchDialog.jcbNumPerPage", ItemListener.class, "itemStateChanged", NumPerPageChangeAction.class);
                        eventBinder.addEventBinding("postalSearchDialog.jbNextPage", ActionListener.class, "actionPerformed", NextPageAction.class);
                        eventBinder.addEventBinding("postalSearchDialog.jbPrevPage", ActionListener.class, "actionPerformed", PrevPageAction.class);
        
                        // 通信デモ画面アクション
                        eventBinder.addEventBinding("communicationFrame.jbEjb", ActionListener.class, "actionPerformed", EjbCommunicateAction.class);
                        eventBinder.addEventBinding("communicationFrame.jbHttp", ActionListener.class, "actionPerformed", HttpCommunicateAction.class);
                        eventBinder.addEventBinding("communicationFrame.jbSoap", ActionListener.class, "actionPerformed", SoapCommunicateAction.class);
                        eventBinder.addEventBinding("communicationFrame.jbAll", ActionListener.class, "actionPerformed", AllCommunicateAction.class);
                        eventBinder.addEventBinding("communicationFrame.jbClear", ActionListener.class, "actionPerformed", ClearResultAction.class);
        
                        eventBinder.addEventBinding("webServiceFrame.jbMtomSend", ActionListener.class, "actionPerformed", MtomSendAction.class);
        
                        // データベース直接アクセス画面アクション
                        eventBinder.addEventBinding("dbaccessFrame.jbLoad", ActionListener.class, "actionPerformed", UsersFetchAction.class);
                        
                        // コンポーネントイメージ相関画面アクション
                        eventBinder.addEventBinding("correlationImageFrame", WindowListener.class, "windowOpened", CorrelationImageFrameInitAction.class);
                        
                        
                }
        }
 
・具象コントローラの登録方法
        package demo;
        
        import javax.swing.SwingUtilities;
        import javax.swing.UIManager;
        
        import demo.controller.DemoController;
        import demo.login.LoginFrame;
        
        public class Main {
                public static void main(String[] args) {
                        try{ 
                                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                        }catch(Exception e) {
                                e.printStackTrace();
                        }
        
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                                DemoController controller = new DemoController();
                                LoginFrame loginFrame = new LoginFrame();
                                loginFrame.setVisible(true);
                    }
                });
                }
        }
 

[環 境] JDK 6.0 Update 11

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

作成者:
Project Reffi

フィールドの概要
 
クラス jp.co.fujitsu.reffi.client.android.controller.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
 
コンストラクタの概要
BaseController()
           
 
メソッドの概要
 android.os.Handler getHandler()
           
 java.lang.Object invoke(java.lang.Class<? extends Action> actionClass, ParameterMapping parameterMapping)
          [概 要] コントローラの主幹メソッドです。
protected  void invokeFinalize(ParameterMapping mapping)
          [概 要] 各ユーザ定義イベントハンドリングの最後にテンプレートコールされるメソッドです。
protected  void modelsDone(ParameterMapping mapping)
          [概 要] [詳 細] [備 考]
 ParameterMapping runAction(java.lang.Class<? extends Action> actionClass, ParameterMapping parameterMapping)
          [概 要] イベントに対応するアクションを実行します。
 void runModels(java.util.List<java.lang.Class<? extends Model>> modelClasses, ParameterMapping parameterMapping, int executeIndex, ModelProcessEvent modelProcessEvent)
          [概 要] アクションで予約されたモデル郡をインスタンス化して連続実行します。
 void runModelsAndNoWait(java.util.List<java.lang.Class<? extends Model>> modelClasses, ParameterMapping parameterMapping)
          [概 要] アクションで予約されたモデル郡をインスタンス化して連続実行します。
 void setHandler(android.os.Handler handler)
           
protected  void trap(java.lang.Throwable e)
          [概 要] MVC各レイヤで発生した例外が最終的にハンドリングされるメソッドです。
 
クラス jp.co.fujitsu.reffi.client.android.controller.AbstractController から継承されたメソッド
addListener, bind, bindEvents, createParameterMapping, getClientConfig, getEventBinder, getFrontActivity, getPermanent, handlerFacade, initialize, postInitialize, setClientConfig, setEventBinder, setFrontActivity, setPermanent, shutdown
 
クラス 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
 

コンストラクタの詳細

BaseController

public BaseController()
メソッドの詳細

getHandler

public android.os.Handler getHandler()

setHandler

public void setHandler(android.os.Handler handler)

invoke

public java.lang.Object invoke(java.lang.Class<? extends Action> actionClass,
                               ParameterMapping parameterMapping)

[概 要]

コントローラの主幹メソッドです。

[詳 細]

コントローラ処理フローの幹を形成します。 このメソッドのtryスコープで以下が行われます。
  1. #createParameterMapping() MVCレイヤを巡回するParameterMappingオブジェクトの生成
  2. runAction(Class, ParameterMapping) アクションの実行
  3. runModels(List, ParameterMapping, int, ModelProcessEvent) or
    runModelsAndNoWait(List, ParameterMapping) アクションで予約されたモデル群の実行
上記の処理中に例外が発生した場合、trapメソッドがテンプレートコールされます。 最終的にfinallyスコープに入るとhanderFinalizeメソッドがテンプレートコールされます。

[備 考]

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

runAction

public ParameterMapping runAction(java.lang.Class<? extends Action> actionClass,
                                  ParameterMapping parameterMapping)
                           throws java.lang.Exception

[概 要]

イベントに対応するアクションを実行します。

[詳 細]

引数で指定されたアクションクラス型をインスタンス化、 実行(BaseAction.run(ParameterMapping))します。
execute実行後、結果戻り値であるParameterMappingを返却します。

[備 考]

この結果がnullだった場合はコントローラの以降の処理は中止されます。 BaseAction.run(ParameterMapping)がnullを返却するのは、 prepareがfalseを返却、もしくはvalidate結果がエラーだった場合があります。

パラメータ:
actionClass - 実行するアクションクラスの型
parameterMapping - MVCを巡回するパラメータマッピング
戻り値:
アクション実行後のParameterMappingオブジェクト
例外:
java.lang.Exception

runModels

public void runModels(java.util.List<java.lang.Class<? extends Model>> modelClasses,
                      ParameterMapping parameterMapping,
                      int executeIndex,
                      ModelProcessEvent modelProcessEvent)
               throws java.lang.Exception

[概 要]

アクションで予約されたモデル郡をインスタンス化して連続実行します。

[詳 細]

BaseAction.reserveModels(List)で予約されたBaseModel実装モデル群を実行します。
登録モデルが複数有る場合、前回モデルの実行終了を待ってから次回モデルが実行されます。

モデル実行直前にBaseAction.nextModel(int, ModelProcessEvent, Model)がコールバックされます。
実行モデルへのパラメータ設定を上記メソッドで行うことが出来ます。

モデル実行後、成功時はBaseAction.successForward(int, Model, Object)が、 失敗時はBaseAction.failureForward(int, Model, Exception)がコールバックされます。
モデルの実行結果は上記メソッドで取得することが出来ます。

[備 考]

BaseAction.isRunModelsAndNoWait() がfalseの場合、同期モードで実行されます。
同メソッドはデフォルトでfalseを返却します。

パラメータ:
modelClasses - BaseAction.reserveModels(List) で予約されたモデルクラス群
parameterMapping - MVC各レイヤを伝播するパラメータ
executeIndex - モデル実行順序インデックス
modelProcessEvent - 直前に実行したモデルの処理結果イベントオブジェクト
例外:
java.lang.Exception - モデル内で発生し得る例外

runModelsAndNoWait

public void runModelsAndNoWait(java.util.List<java.lang.Class<? extends Model>> modelClasses,
                               ParameterMapping parameterMapping)
                        throws java.lang.Exception

[概 要]

アクションで予約されたモデル郡をインスタンス化して連続実行します。

[詳 細]

BaseAction.reserveModels(List)で予約されたBaseModel実装モデル群を実行します。
登録モデルが複数有る場合、前回モデルの実行終了を待たずに次回モデルが実行されます。
モデル実行直前にBaseAction.nextModel(int, ModelProcessEvent, Model)がコールバックされます。
実行モデルへのパラメータ設定を上記メソッドで行うことが出来ます。
非同期モードでモデル実行した場合は前回モデルの結果を待たずに次回モデルを実行する為、 第二引数prev:ModelProcessEventが常時nullになります。
前回モデルの結果を判断して、次回モデルのパラメータ設定をすることは出来ません。

モデル実行後、成功時はBaseAction.successForward(int, Model, Object)が、 失敗時はBaseAction.failureForward(int, Model, Exception)がコールバックされます。
モデルの実行結果は上記メソッドで取得することが出来ます。

[備 考]

BaseAction.isRunModelsAndNoWait() がtrueの場合、非同期モードで実行されます。
非同期モードで実行する場合は、BaseAction.isRunModelsAndNoWait()を オーバーライドしてtrueを返却して下さい。
          @Override
    protected boolean isRunModelsAndNoWait() {
       return true;
    }
 

パラメータ:
modelClasses - BaseAction.reserveModels(List) で予約されたモデルクラス群
parameterMapping - MVC各レイヤを伝播するパラメータオブジェクト
例外:
java.lang.Exception - モデル内で発生し得る例外

trap

protected void trap(java.lang.Throwable e)

[概 要]

MVC各レイヤで発生した例外が最終的にハンドリングされるメソッドです。

[詳 細]

ClientConfig.isShowErrorDialogOnExceptionTrap() がtrueの場合、キャッチした例外をダイアログ表示します。

[備 考]

自動ダイアログ表示を行いたくない場合、 ClientConfig.isShowErrorDialogOnExceptionTrap() がfalse返却するよう設定してください。
        public class DemoController extends BaseController {

                @Override
                protected void initialize(ClientConfig config) {
                        config.setShowErrorDialogOnExceptionTrap(false);
                }
 

パラメータ:
e - MVC各レイヤで発生したスロー可能オブジェクト

invokeFinalize

protected void invokeFinalize(ParameterMapping mapping)

[概 要]

各ユーザ定義イベントハンドリングの最後にテンプレートコールされるメソッドです。

[詳 細]

デフォルト処理は有りません。

[備 考]

このメソッドを具象コントローラでオーバーライドすると、全イベントアクションの 共通最終処理を実装出来ます。

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

modelsDone

protected void modelsDone(ParameterMapping mapping)
                   throws java.lang.Exception

[概 要]

[詳 細]

[備 考]

パラメータ:
mapping -
例外:
java.lang.Exception


Copyright © 2008-2011. All Rights Reserved.