Exemplo n.º 1
0
        public void Move(ProjectItem item, ProjectItem parent, ProjectEventHandler callback)
        {
            string srcPath = item.ToString();

            parent.AddChild(item);
            item.Name = ProjectItem.GetUniqueName(item.Name, item, item.Parent);
            string dstPath = item.ToString();

            Move(item, callback, srcPath, dstPath);
        }
Exemplo n.º 2
0
        public void Move(ProjectItem[] items, ProjectItem parent, ProjectEventHandler callback)
        {
            items = ProjectItem.GetRootItems(items);
            string[] folderSrcPath = items.Where(item => item.IsFolder).Select(item => item.ToString()).ToArray();

            ProjectItem[] files       = items.Where(item => !item.IsFolder).ToArray();
            string[]      fileSrcPath = files.Select(item => item.ToString()).Union(files.Select(item => item.ToString() + "." + FileMetaExt)).ToArray();
            foreach (ProjectItem item in items)
            {
                parent.AddChild(item);
                item.Name = ProjectItem.GetUniqueName(item.Name, item, item.Parent);
            }

            string[] folderDstPath = items.Where(item => item.IsFolder).Select(item => item.ToString()).ToArray();
            string[] fileDstPath   = files.Select(item => item.ToString()).Union(files.Select(item => item.ToString() + "." + FileMetaExt)).ToArray();

            GroupOperation(folderSrcPath, fileSrcPath, folderDstPath, fileDstPath,
                           m_storage.MoveFolders, m_storage.MoveFiles, callback);
        }
Exemplo n.º 3
0
        public void Rename(ProjectItem item, string name, ProjectEventHandler callback)
        {
            string srcPath = item.ToString();
            string srcName = item.Name;

            item.Name = ProjectItem.GetUniqueName(name, item, item.Parent);
            string dstPath = item.ToString();

            if (!item.IsFolder && !item.IsScene)
            {
                m_storage.LoadFile(srcPath, loadFilesResult =>
                {
                    byte[] dataRaw = loadFilesResult.Data;
                    if (dataRaw != null)
                    {
                        ProjectItemData data = m_serializer.Deserialize <ProjectItemData>(dataRaw);
                        item.Internal_Data   = data;
                        item.Rename(name);
                    }

                    Save(item, srcPath, false, saveCompleted =>
                    {
                        UnloadData(item);
                        Move(item, callback, srcPath, dstPath);
                    });
                });
            }
            else
            {
                if (!item.IsFolder)
                {
                    Save(item, srcPath, true, saveCompleted =>
                    {
                        Move(item, callback, srcPath, dstPath);
                    });
                }
                else
                {
                    Move(item, callback, srcPath, dstPath);
                }
            }
        }