Esempio n. 1
0
        void Search(PreviewItem searchFromThis, string search, List <PreviewItem> result)
        {
            if (string.IsNullOrEmpty(search))
            {
                throw new ArgumentException("Invalid search: cannot be null or empty", "search");
            }

            const int kItemDepth = 0; // tree is flattened when searching

            Stack <PreviewItem> stack = new Stack <PreviewItem>();

            foreach (var element in searchFromThis.children)
            {
                stack.Push((PreviewItem)element);
            }
            while (stack.Count > 0)
            {
                PreviewItem current = stack.Pop();
                // Matches search?
                if (current.name.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    result.Add(new PreviewItem(current.id, kItemDepth, current.layer));
                }

                if (current.children != null && current.children.Count > 0)
                {
                    foreach (var element in current.children)
                    {
                        stack.Push((PreviewItem)element);
                    }
                }
            }
            result.Sort((x, y) => EditorUtility.NaturalCompare(x.displayName, y.displayName)); // sort by displayName by default, can be overriden for multicolumn solutions
        }
Esempio n. 2
0
        protected override TreeViewItem BuildRoot()
        {
            var root = new PreviewItem(id, -1, psd);

            GenerateRowsRecursive(root, 0);
            return(root);
        }
Esempio n. 3
0
 void GenerateRowsRecursive(PreviewItem parent, int depth)
 {
     if (parent.layer.Childs == null || parent.layer.Childs.Length == 0)
     {
         return;
     }
     else
     {
         foreach (var layer in parent.layer.Childs)
         {
             var item = new PreviewItem(++id, depth, layer);
             parent.AddChild(item);
             GenerateRowsRecursive(item, depth + 1);
         }
     }
 }
Esempio n. 4
0
 private void RetriveArtLayer(PreviewItem data, UnityAction <PreviewItem> onRetrive)
 {
     if (data.layerType != LayerType.Group && data.layerType != LayerType.Overflow)
     {
         onRetrive(data);
     }
     else
     {
         if (data.children != null)
         {
             foreach (var item in data.children)
             {
                 RetriveArtLayer((PreviewItem)item, onRetrive);
             }
         }
     }
 }
Esempio n. 5
0
        void AddChildrenRecursive(PreviewItem parent, int depth, IList <PreviewItem> newRows)
        {
            foreach (PreviewItem child in parent.children)
            {
                var item = new PreviewItem(child.id, depth, child.layer);
                newRows.Add(child);

                if (child.hasChildren)
                {
                    if (IsExpanded(child.id))
                    {
                        AddChildrenRecursive(child, depth + 1, newRows);
                    }
                    else
                    {
                        item.children = CreateChildListForCollapsedParent();
                    }
                }
            }
        }