Beispiel #1
0
        public AssetFolder FindParentFolder(INamedAsset asset)
        {
            if (Children.Contains(asset))
            {
                return(this);
            }

            foreach (AssetFolder f in Folders)
            {
                AssetFolder parent = f.FindParentFolder(asset);

                if (parent != null)
                {
                    return(parent);
                }
            }

            return(null);
        }
Beispiel #2
0
        private INamedAsset FindSibling(INamedAsset asset, bool prev)
        {
            if (Children.Contains(asset))
            {
                INamedAsset[] array = Children.ToArray();
                int           index = Array.IndexOf(array, asset);

                if (prev)
                {
                    if (index == 0)
                    {
                        return(null);
                    }

                    return(array[index - 1]);
                }
                if (index + 1 == array.Length)
                {
                    return(null);
                }

                return(array[index + 1]);
            }

            foreach (AssetFolder f in Folders)
            {
                INamedAsset sibling = f.FindSibling(asset, prev);

                if (sibling != null)
                {
                    return(sibling);
                }
            }

            return(null);
        }
Beispiel #3
0
 public INamedAsset FindNextSibling(INamedAsset asset)
 {
     return(FindSibling(asset, false));
 }
Beispiel #4
0
 public INamedAsset FindPrevSibling(INamedAsset asset)
 {
     return(FindSibling(asset, true));
 }