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"); }