예제 #1
0
    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);
                }
            }
        }
    }
예제 #2
0
    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();
    }
예제 #3
0
    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);
    }