示例#1
0
        private void MotionListView_ItemMoved(ITreeItem item, ITreeFolder oldParent, ITreeFolder newParent, int index)
        {
            MotionItemBase       itemData            = ((MotionItemBaseView)item).Data;
            MotionFolderItemView newParentFolderView = (MotionFolderItemView)newParent;

            if (oldParent != null)
            {
                MotionFolderItemView oldParentFolderView = (MotionFolderItemView)oldParent;
                oldParentFolderView.Data.RemoveChild(itemData);
            }
            newParentFolderView.Data.InsertChild(index, itemData);
        }
示例#2
0
        //Events
        internal void EditingFile_ItemCreated(MotionItemBase item, MotionFolderItem parentFolder)
        {
            if (item == null)
            {
                return;
            }

            MotionItemBaseView view = null;

            switch (item.Type)
            {
            case MotionItemType.Motion:
                MotionItemView motionView = new MotionItemView(EditorContext, (MotionItem)item);
                view = motionView;

                motionView.UpdatePreviewGraph();
                break;

            case MotionItemType.Folder:
                MotionFolderItemView folderView = new MotionFolderItemView(EditorContext, (MotionFolderItem)item);
                view = folderView;

                if (parentFolder == null)
                {
                    //Create root
                    folderView.SetRootFolder();
                    RootFolderView = folderView;

                    MotionTreeView.ChildItemCollection.Add(folderView);
                    MotionTreeView.ManualRootFolder = folderView;
                }

                //Register events
                MotionFolderItem folderItem = (MotionFolderItem)item;

                folderItem.ChildInserted += Data_ChildInserted;
                folderItem.ChildRemoved  += Data_ChildRemoved;

                void Data_ChildInserted(int index, MotionItemBase childItem)
                {
                    MotionItemBaseView childItemView = DataToViewDict[childItem];

                    folderView.ChildItemCollection.Insert(index, childItemView);
                }

                void Data_ChildRemoved(MotionItemBase childItem)
                {
                    MotionItemBaseView childItemView = DataToViewDict[childItem];

                    folderView.ChildItemCollection.Remove(childItemView);
                }

                break;
            }
            if (parentFolder != null)
            {
                view.ParentItem = (MotionFolderItemView)DataToViewDict[parentFolder];
            }

            //Register events
            item.NameChanged += view.Data_NameChanged;

            //Add to collection
            itemList.Add(item);
            DataToViewDict.Add(item, view);

            EditorContext.MarkUnsaved();
        }