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 }