示例#1
0
 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);
 }
示例#2
0
 public override bool CanMoveTo(FileDataBase destination)
 {
     if (destination.TreeNode.NodeType == TreeNodeType.File)
     {
         if (destination.ParentFolder == this)
         {
             return(false);
         }
     }
     return(base.CanMoveTo(destination));
 }
示例#3
0
 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);
         }
     }
 }
示例#4
0
 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());
     }
 }
示例#5
0
        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;
        }