public virtual bool CanMoveTo(FileDataBase destination) { if (destination.TreeNode.NodeType == TreeNodeType.File) { if (destination.ParentFolder == this.ParentFolder) { return(false); } } else if (destination.TreeNode.NodeType == TreeNodeType.Folder) { FileDataBase ancestor = destination; while ((ancestor = ancestor.ParentFolder) != null) { if (ancestor == this) { return(false); } } if (destination == this.ParentFolder) { return(false); } } return(true); }
public override bool CanMoveTo(FileDataBase destination) { if (destination.TreeNode.NodeType == TreeNodeType.File) { if (destination.ParentFolder == this) { return(false); } } return(base.CanMoveTo(destination)); }
public void Remove(FileDataBase fileData) { if (fileData != null) { if (fileData.TreeNode.NodeType == TreeNodeType.File) { this.Remove(fileData as FileData); } else if (fileData.TreeNode.NodeType == TreeNodeType.Folder) { this.Remove(fileData as FolderData); } } }
public virtual void MoveTo(FileDataBase destination) { this.ParentFolder.Remove(this); if (destination.TreeNode.NodeType == TreeNodeType.File) { destination.ParentFolder.Add(this); } else if (destination.TreeNode.NodeType == TreeNodeType.Folder) { (destination as FolderData).Add(this); } else { throw new NotImplementedException(destination.TreeNode.NodeType.ToString()); } }
public TreeNodeModel(FileDataBase fileData) { if (fileData == null) { throw new ArgumentNullException("fileData in TreeNodeModel .ctor"); } if (fileData is FileData) { this.nodeType = TreeNodeType.File; } else if (fileData is FolderData) { this.nodeType = TreeNodeType.Folder; } else { throw new ArgumentException("does not support this type of fileData"); } this.fileData = fileData; }