View Javadoc

    1   /*
    2    * "Peko" Visual Novel System
    3    *
    4    * All Rights Reserved.
    5    * Copyright (c) 1999-2003 Tsukuba Bunko.
    6    *
    7    * $Id: Coordinator.java,v 1.1 2005/07/11 12:49:18 ppoi Exp $
    8    */
    9   package tsukuba_bunko.peko.scenario;
    10
    11  import	tsukuba_bunko.peko.ActionControler;
    12  import	tsukuba_bunko.peko.PekoSystem;
    13
    14  import	tsukuba_bunko.peko.canvas.CanvasManager;
    15
    16
    17  /***
    18   * Canvas モジュールに対する操作を取り持つクラスの基本機能を提供します。
    19   * @author	$Author: ppoi $
    20   * @version	$Revision: 1.1 $
    21   */
    22  public abstract class Coordinator	{
    23
    24  	/***
    25  	 * シーンコンテクスト
    26  	 */
    27  	protected SceneContext	_context = null;
    28
    29  	/***
    30  	 * 現在アクティブなシーン処理スレッド
    31  	 */
    32  	protected Thread	_activeThread = null;
    33
    34
    35  	/***
    36  	 * <code>Coordinator</code> のインスタンスを生成します。
    37  	 */
    38  	protected Coordinator()
    39  	{
    40  		super();
    41  	}
    42
    43
    44  	/***
    45  	 * この Coordinator インスタンスを指定されたコンテクスト、シーン処理スレッドで動作するように設定します。
    46  	 * @param	context	シーンコンテクスト
    47  	 * @param	activeThread	アクティブなシーン処理スレッド
    48  	 */
    49  	public void prepare( SceneContext context, Thread activeThread )
    50  	{
    51  		_context = context;
    52  		_activeThread = activeThread;
    53  	}
    54
    55  	/***
    56  	 * Coordinator を非アクティブにします。
    57  	 */
    58  	public void dormantize()
    59  	{
    60  		_activeThread = null;
    61  	}
    62
    63  	public abstract void begin();
    64
    65  	public abstract void commit();
    66
    67  	/***
    68  	 * 現在のスレッドがアクティブなスレッドかどうかを判定します。
    69  	 * @return	現在のスレッドがアクティブな場合 <code>true</code>、それ以外の場合 <code>false</code>
    70  	 */
    71  	protected boolean isActiveThread()
    72  	{
    73  		return (_activeThread == Thread.currentThread());
    74  	}
    75
    76  	/***
    77  	 * 現在処理中のシーンコンテクストを取得します。
    78  	 * @return	シーンコンテクスト
    79  	 */
    80  	protected SceneContext getSceneContext()
    81  	{
    82  		return _context;
    83  	}
    84
    85  	/***
    86  	 * CanvasManager を取得します。
    87  	 * @return	CanvasManager
    88  	 */
    89  	protected CanvasManager getCanvasManager()
    90  	{
    91  		return PekoSystem.getInstance().getCanvasManager();
    92  	}
    93
    94  	/***
    95  	 * ActionControler を取得します。
    96  	 * @return	ActionControler
    97  	 */
    98  	protected ActionControler getActionControler()
    99  	{
    100 		return PekoSystem.getInstance().getActionControler();
    101 	}
    102 }