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); }
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); }
public INamedAsset FindNextSibling(INamedAsset asset) { return(FindSibling(asset, false)); }
public INamedAsset FindPrevSibling(INamedAsset asset) { return(FindSibling(asset, true)); }