Example #1
0
        private RUMoveProjectElement DoMove(IBProjectElement from)
        {
            int trgIndex, fromIndex;
            IBProjectElement preParent = from.Parent;

            fromIndex = from.Parent.Children.IndexOf(from);
            from.Parent.RemoveChild(from);

            switch (fromDropTo)
            {
                case DropTo.Child:
                    trgElement.AddChild(from);
                    break;

                case DropTo.Top:
                    trgIndex = trgElement.Parent.Children.IndexOf(trgElement);
                    from.Parent = trgElement.Parent;
                    trgElement.Parent.Children.Insert(trgElement.Parent.Children.IndexOf(trgElement), from);
                    break;

                case DropTo.Bottom:
                    trgIndex = trgElement.Parent.Children.IndexOf(trgElement);
                    from.Parent = trgElement.Parent;
                    trgElement.Parent.Children.Insert(trgElement.Parent.Children.IndexOf(trgElement) + 1, from);
                    break;

                default:
                    break;
            }

            from.IsSelected = true;

            return new RUMoveProjectElement(from, preParent, fromIndex);
        }
        /// <summary>
        /// IBProjectModel.ActiveTargetElementの子に新規フォルダを追加
        /// </summary>
        /// <param name="Parent">nullの場合、現在開かれているプロジェクトにフォルダを追加</param>
        public void AddNewFolder()
        {
            Folder newFolder = new Folder()
            {
                Name       = "Folder",
                IsSelected = true
            };

            if (ActiveTargetElement != null)
            {
                IBProjectElement parent = ActiveTargetElement;
                if (ActiveTargetElement.Type != IBProjectElementTypes.Folder && parent.Type != IBProjectElementTypes.Root)
                {
                    return;
                }

                parent.AddChild(newFolder);
                RedoUndoManager.Current.Record(new RUAddNewElement(parent, newFolder));
            }
            else
            {
                IBProject.Current.ElementsRoot.AddChild(newFolder);
                RedoUndoManager.Current.Record(new RUAddNewElement(IBProject.Current.ElementsRoot, newFolder));
            }

            RaisePropertyChanged("IBProject_Elements");
        }
            public override void Redo()
            {
                base.Redo();

                _parent.AddChild(_newElement);
            }
        /// <summary>
        /// IBProjectModel.ActiveTargetElementの子に新規セルソースを追加
        /// </summary>
        /// <param name="Parent">nullの場合、現在開かれているプロジェクトにセルソースを追加</param>
        public void AddNewCellSource()
        {
            CellSource newCellSource = new CellSource()
            {
                Name       = "CS1",
                IsSelected = true,
                Width      = 1920,
                Height     = 1080
            };

            //PixcelImage i2 = new PixcelImage(new Bitmap("test.png"));
            //i2.Rect.OffsetX = 0;
            //i2.Rect.OffsetY = 0;
            //i2.LayerName = "layer2";
            //newCellSource.Layers.Add(i2);
            //SingleColorImage BG = new SingleColorImage(255, 255, 255, 255);
            //BG.Rect = new IBRectangle(1920 + 300, 1080 + 300, -150, -150);
            //BG.LayerName = "BG";
            //newCellSource.Layers.Add(BG);
            newCellSource.AddNewLayer("BG", false, ImageTypes.SingleColor);
            newCellSource.AddNewLayer("下書き", false);
            newCellSource.AddNewLayer("線画", false);

            if (ActiveTargetElement != null)
            {
                if (ActiveTargetElement.Type == IBProjectElementTypes.CellSource)
                {
                    SetName(newCellSource);

                    if (ActiveTargetElement.Parent != null)
                    {
                        IBProjectElement parent = ActiveTargetElement.Parent;
                        if (parent.Type != IBProjectElementTypes.Folder && parent.Type != IBProjectElementTypes.Root)
                        {
                            return;
                        }

                        parent.AddChild(newCellSource);
                        RedoUndoManager.Current.Record(new RUAddNewElement(parent, newCellSource));
                    }
                    else
                    {
                        IBProject.Current.ElementsRoot.AddChild(newCellSource);
                        RedoUndoManager.Current.Record(new RUAddNewElement(IBProject.Current.ElementsRoot, newCellSource));
                    }
                }
                else
                {
                    IBProjectElement parent = ActiveTargetElement;

                    parent.AddChild(newCellSource);
                    RedoUndoManager.Current.Record(new RUAddNewElement(parent, newCellSource));
                }
            }
            else
            {
                IBProject.Current.ElementsRoot.AddChild(newCellSource);
                RedoUndoManager.Current.Record(new RUAddNewElement(IBProject.Current.ElementsRoot, newCellSource));
            }

            //Cell newc = new Cell(newCellSource, 1920, 1080);
            //newc.Name = "new Cell";
            //IBProject.Current.ElementsRoot.Children.Add(newc);

            RaisePropertyChanged("IBProject_Elements");
        }