/// <summary> /// Singletonパターンにて実装 /// </summary> /// <returns></returns> internal static StateInvoker GetInstance() { if (stateInvoker == null) { stateInvoker = new KeyInputStateInvoker(); } return(stateInvoker); }
/// <summary> /// コンストラクタ /// MemoTreeの起動を行う /// </summary> public Context() { // MemoTreeディレクトリの存在チェック var strInitPath = Directory.GetCurrentDirectory() + "/MemoTree"; if (!Directory.Exists(strInitPath)) { Directory.CreateDirectory(strInitPath); } this.m_componentMain = new DirComponent(strInitPath); // 全ディレクトリ、ファイルを再帰的に取得 DirComponent.SetComponent(this.m_componentMain); this.m_currentComponent = this.m_componentMain; // 起動時はキー入力モードを設定 this.m_stateInvoker = KeyInputStateInvoker.GetInstance(); // 起動時はEnterコマンドを直接実行 var enterCommand = new EnterCommand(); enterCommand.CallExecute(this, this.m_componentMain, false); }
/// <summary> /// StateInvokerを設定する /// 各StateInvokerにて動的に入れ替える /// </summary> /// <param name="stateInvoker"></param> internal void SetState(StateInvoker stateInvoker) { this.m_stateInvoker = stateInvoker; }