/// <summary> /// 現在開いているプロジェクト関連の情報を読み取りそれぞれにセットする /// </summary> private void loadOpenedProjectInfo() { if (GlobalStatus.Project.IsOpened == false) { return; //プロジェクトが開いていないと読み取れないので何もしない } //ブックマークリストを取得 ProjectBookmarkTable bookmarkTable = GlobalStatus.EnvOption.GetProjectBookmarkTable(GlobalStatus.Project.FilePath); GlobalStatus.FormManager.BookmarkListForm.SetBookmarkList(bookmarkTable.List.ToArray()); //開いているファイルリストを取得 if (GlobalStatus.EnvOption.ProjectOpenedLastFile) { ProjectStringTable table = GlobalStatus.EnvOption.GetProjectOpenedTable(GlobalStatus.Project.FilePath); foreach (string path in table.List) { if (File.Exists(path)) //ファイルがあるときだけファイルを開く { GlobalStatus.EditorManager.LoadFile(path); //エディタを開く } } } }
/// <summary> /// 現在開いているプロジェクト関連の情報を保存する /// </summary> private void saveOpenedProjectInfo() { if (GlobalStatus.Project.IsOpened == false) { return; //プロジェクトを開いていないときは何もしない } //ブックマークリスト ProjectBookmarkTable bookmarkTable = GlobalStatus.EnvOption.GetProjectBookmarkTable(GlobalStatus.Project.FilePath); bookmarkTable.List.Clear(); bookmarkTable.List.AddRange(GlobalStatus.FormManager.BookmarkListForm.GetBookmarkList()); //開いているファイルリスト ProjectStringTable table = GlobalStatus.EnvOption.GetProjectOpenedTable(GlobalStatus.Project.FilePath); table.List.Clear(); table.List.AddRange(GlobalStatus.EditorManager.GetOpenedFileList()); }
/// <summary> /// XmlElementからProjectStringTable情報を取得する /// element例: /// <ProjectStringTable> /// <ProjectPath>D:\src\krkr\game\abyss\trial\trunk\abyss.krkrproj</ProjectPath> /// <List> /// <string>D:\src\krkr\game\abyss\trial\trunk\data\main\debug_kagex.ks</string> /// </List> /// </ProjectStringTable> /// </summary> /// <param name="tableElement"></param> /// <returns></returns> private static ProjectStringTable getProjectStringTableFromxmlElement(XmlElement tableElement) { ProjectStringTable projectStringTable = new ProjectStringTable(); foreach (XmlElement element in tableElement.ChildNodes) { switch (element.Name) { case "ProjectPath": projectStringTable.ProjectPath = element.InnerText; break; case "List": projectStringTable.List = getStringListFromXmlElement(element); break; } } return(projectStringTable); }
/// <summary> /// プロジェクトテーブルリストからキーに該当するテーブルを取得する /// キーが見つからないときは新規に作成する /// </summary> /// <param name="key">検索するキー</param> /// <param name="tableList">検索されるテーブルリスト</param> /// <returns>テーブル</returns> public ProjectStringTable GetProjectOpenedTable(string key) { ProjectStringTable projectTable = null; foreach (ProjectStringTable table in m_openedList) { if (table.ProjectPath == key) { projectTable = table; break; } } if (projectTable == null) { //無いときは新たに作成する projectTable = new ProjectStringTable(); projectTable.ProjectPath = key; m_openedList.Add(projectTable); } return(projectTable); }