/// <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からProjectBookmarkTable情報を取得する /// 例: /// <ProjectBookmarkTable> /// <ProjectPath>D:\src\krkr\game\abyss\trial\trunk\abyss.krkrproj</ProjectPath> /// <List> /// <BookmarkInfo> /// <LineNumber>11</LineNumber> /// <FilePath>D:\src\krkr\game\abyss\trial\trunk\data\main\debug_kagex.ks</FilePath> /// <Name>ブックマーク</Name> /// </BookmarkInfo> /// <BookmarkInfo> /// <LineNumber>19</LineNumber> /// <FilePath>D:\src\krkr\game\abyss\trial\trunk\data\main\debug_kagex.ks</FilePath> /// <Name>ブックマーク</Name> /// </BookmarkInfo> /// </List> /// </ProjectBookmarkTable> /// <ProjectBookmarkTable> /// <ProjectPath>C:\Users\mry\Desktop\AAA\AAA.krkrproj</ProjectPath> /// <List /> /// </ProjectBookmarkTable> /// </summary> /// <param name="tableElement"></param> /// <returns></returns> private static ProjectBookmarkTable getProjectBookmarkTableFromxmlElement(XmlElement tableElement) { ProjectBookmarkTable projectStringTable = new ProjectBookmarkTable(); foreach (XmlElement element in tableElement.ChildNodes) { switch (element.Name) { case "ProjectPath": projectStringTable.ProjectPath = element.InnerText; break; case "List": projectStringTable.List = getBookmarkInfoListFromXmlElement(element); break; } } return(projectStringTable); }
/// <summary> /// プロジェクトテーブルリストからキーに該当するテーブルを取得する /// キーが見つからないときは新規に作成する /// </summary> /// <param name="key">検索するキー</param> /// <param name="tableList">検索されるテーブルリスト</param> /// <returns>テーブル</returns> public ProjectBookmarkTable GetProjectBookmarkTable(string key) { ProjectBookmarkTable projectTable = null; foreach (ProjectBookmarkTable table in m_bookmarkList) { if (table.ProjectPath == key) { projectTable = table; break; } } if (projectTable == null) { //無いときは新たに作成する projectTable = new ProjectBookmarkTable(); projectTable.ProjectPath = key; m_bookmarkList.Add(projectTable); } return(projectTable); }