Ejemplo n.º 1
0
        /// <summary>
        /// あるノードの子階層にノードを追加するメソッド
        /// </summary>
        /// <param name="parent">親となるノード</param>
        /// <param name="splitedValues">追加するノードのパス</param>
        /// <param name="depth">splitedValuesの添え字として使用します。デフォルトでは0が指定されます。</param>
        public static GUITree <T> Add(GUITree <T> parent, string[] splitedValues, int depth = 0)
        {
            // 不正なパラメータのチェック
            if (parent == null)
            {
                return(parent);
            }
            if (splitedValues == null)
            {
                return(parent);
            }
            if (depth >= splitedValues.Length)
            {
                return(parent);
            }
            if (depth < 0)
            {
                return(parent);
            }

            // 新しいノードを追加する
            var result = parent.Add(splitedValues[depth]);

            // 再起的にノードを追加する
            return(Add(result, splitedValues, depth + 1));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 再起的にノードのソートを行う
 /// </summary>
 /// <param name="root">ノードのルート</param>
 /// <param name="comparer">比較用のメソッド</param>
 public static void Sort(GUITree <T> root, System.Comparison <GUITree <T> > comparer)
 {
     root.mChildren.Sort(comparer);
     for (int i = 0; i < root.mChildren.Count; ++i)
     {
         Sort(root.Children[i], comparer);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="name">ノード名</param>
 /// <param name="parent">親ノードの参照</param>
 public GUITree(string name, GUITree <T> parent = null)
 {
     mName         = name;
     mParent       = parent;
     mGenericValue = new T();
     if (mParent != null)
     {
         mDepth = mParent.mDepth + 1;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 指定した名前のノードを追加します。すでにノードが存在する場合は追加されません。
        /// </summary>
        /// <param name="name">ノード名</param>
        /// <returns>新しく追加したノードを返します。既に存在する場合はそのノードを返します。</returns>
        private GUITree <T> Add(string name)
        {
            var node = FindChild(name);

            if (node == null)
            {
                node = new GUITree <T>(name, this);
                mChildren.Add(node);
            }
            return(node);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// あるノードの子階層にノードを追加するメソッド
        /// </summary>
        /// <param name="parent">親となるノード</param>
        /// <param name="path">ツリーのパス</param>
        /// <param name="depth">splitedValuesの添え字として使用します。デフォルトでは0が指定されます。</param>
        /// <param name="separator">パスのデリミタ</param>
        public static void Add(GUITree <T> parent, string path, int depth = 0, char separator = '/')
        {
            // 不正なパラメータのチェック
            if (parent == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(path))
            {
                return;
            }
            if (depth < 0)
            {
                return;
            }

            // 再起的にノードを追加する
            Add(parent, path.Split(separator), depth);
        }
Ejemplo n.º 6
0
        private void OnEnable()
        {
            mFoldoutTree = new GUITree <FoldoutTree>("Root");

            var lsit = GetFileList(Application.dataPath);

            string[] values = lsit.ToArray();
            for (int i = 0; i < values.Length; ++i)
            {
                GUITree <FoldoutTree> .Add(mFoldoutTree, values[i], separator : '\\');
            }

            string[] columns = new string[]
            {
                "番号",
                "パス",
                "更新日時",
                "作成日時",
                "読み書き",
                "サイズ",
            };

            mCells.SetCapacity(values.Length, columns.Length);
            mCells.SetColumnNames(columns);
            for (int i = 0; i < values.Length; ++i)
            {
                var fi    = new System.IO.FileInfo(values[i]);
                int index = 0;
                index = 0;
                mCells.SetCellValue(i, index++, i.ToString());
                mCells.SetCellValue(i, index++, fi.FullName);
                mCells.SetCellValue(i, index++, fi.LastWriteTime.ToString("yyyy/MM/dd hh:mm"));
                mCells.SetCellValue(i, index++, fi.CreationTime.ToString("yyyy/MM/dd hh:mm"));
                mCells.SetCellValue(i, index++, fi.IsReadOnly?"Read Only":"Read Write");
                mCells.SetCellValue(i, index++, fi.Length.ToString("#,0"));
            }
        }