public override void OnTabSelected() { base.OnTabSelected(); SubscribeKeyInput(); GameContext.Window.LogTabButton.OwnerNote = null; List <string> filepathList = new List <string>(EditedLogTreeDict.Keys); foreach (string filepath in filepathList) { string filename = Path.GetFileName(filepath); LogTree logTree = logTrees_.Find((LogTree lt) => lt.File.Name == filename); if (logTree != null) { logTree.ReloadFile(); EditedLogTreeDict.Remove(logTree.File.FullName); } else { LogTitleText titleText = titleTextlist_.Find((LogTitleText tt) => tt.name == filename); if (titleText != null) { logTree = InsertLogTree(titleText, titleText.GetComponentInParent <DateUI>().Date, filepath); titleText.OnLoad(logTree); EditedLogTreeDict.Remove(titleText.FilePath); } } } }
public override void LoadMore() { DateTime date = endDate_; int loadCount = GameContext.Config.LogLoadUnit; while (loadCount > 0) { DateUI dateUI = Instantiate(DateUIPrefab.gameObject, this.transform).GetComponent <DateUI>(); dateUI.Set(date, ToColor(date)); dateUI.SetEnableAddDateButtton(false); dateUIlist_.Add(dateUI); Transform parent = dateUI.GetComponentInChildren <VerticalLayoutGroup>().transform; foreach (TreeNote treeNote in GameContext.Window.MainTabGroup.TreeNotes) { LogTitleText titleText = Instantiate(TitleTextPrefab.gameObject, dateUI.GetComponentInChildren <VerticalLayoutGroup>().transform).GetComponent <LogTitleText>(); titleTextlist_.Add(titleText); string filename = ToFileName(treeNote, date); LogTree logTree = null; if (File.Exists(filename)) { logTree = LoadLogTree(parent, date, filename); logTrees_.Add(logTree); } titleText.Intialize(this, filename, logTree, treeNote.Tree.TitleText); } date = date.AddDays(-1.0); --loadCount; } endDate_ = date; UpdateLayoutElement(); }
public LogTree InsertLogTree(LogTitleText titleText, DateTime date, string filename) { LogTree logTree = LoadLogTree(titleText.transform.parent, date, filename); logTree.gameObject.transform.SetSiblingIndex(titleText.transform.GetSiblingIndex() + 1); // search insert index int insertIndex = -1; bool find = false; // 同じDateUIの子供から探し始める for (int i = 0; i < titleText.transform.parent.childCount; ++i) { LogTree existLogTree = titleText.transform.parent.GetChild(i).GetComponent <LogTree>(); if (logTree == existLogTree) { find = true; if (insertIndex >= 0) { // 直前のLogTreeが見つかってるのでここでOK break; } } else if (existLogTree != null) { insertIndex = logTrees_.IndexOf(existLogTree) + 1; if (find) { // ここが直後のLogTreeになるのでその前に差し込む insertIndex -= 1; break; } } } // DateUIに他のTreeが無いようなので、logTrees_で探索する if (insertIndex < 0) { for (int i = 0; i < logTrees_.Count; ++i) { if (logTrees_[i].Date < logTree.Date) { insertIndex = i; break; } } } logTrees_.Insert(insertIndex, logTree); UpdateLayoutElement(); return(logTree); }