private void _Paste() { if (!(Selection is LayerData || Selection is GeometricObjectDataBase)) { return; } if (Clipboard == null) { return; } EnableUndoRedoStoring = false; GeometricObjectDataBase obj = Clipboard.DeepClone() as GeometricObjectDataBase; LayerData target = SelectedLayer; target.GeometricObjects.Add(obj); Action undo = () => { target.GeometricObjects.Remove(obj); }; Action redo = () => { target.GeometricObjects.Add(obj); }; UndoRedoPair urPair = new UndoRedoPair(new UndoRedoPairString(CurrentLanguage.StandardFunction.Paste + " : " + obj.Name, ""), undo, redo); EnableUndoRedoStoring = true; AddUndoRedoPair(urPair); ValidateProject(DoesUpdateShapeAuto); }
/// <summary>ジオメトリックオブジェクトを追加する。</summary> /// <param name="obj"></param> public GeometricObjectDataBase AddGeometricObject(GeometricObjectDataBase obj) { LogMethodStart(); _AddGeometricObject(obj); LogMethodEnd(); return(obj); }
private void _AddGeometricObject(GeometricObjectDataBase obj) { if (OpenedProject == null) { return; } if (SelectedLayer == null) { return; } SelectedLayer.GeometricObjects.Add(obj); ValidateProject(DoesUpdateShapeAuto); Selection = obj; }
private void DeleteGeometricObject(GeometricObjectDataBase obj) { string notice = CurrentLanguage.StandardFunction.Delete_UserNotice.Replace("%s", obj.Name); if (MessageBox.Show(notice, "", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) != DialogResult.OK) { return; } LayerData parent = obj.ParentLayer; int index = parent.GeometricObjects.IndexOf(obj); Action undo = () => { parent.GeometricObjects.Insert(index, obj); }; Action redo = () => { parent.GeometricObjects.Remove(obj); }; parent.GeometricObjects.Remove(obj); Selection = parent; UndoRedoPair urPair = new UndoRedoPair(new UndoRedoPairString(CurrentLanguage.StandardFunction.Delete + " : GeometricObject[" + obj.Name + "]", ""), undo, redo); AddUndoRedoPair(urPair); }
private void _Cut() { if (!SelectionIsStockable) { return; } Action undo, redo; GeometricObjectDataBase target = Selection as GeometricObjectDataBase; LayerData parent = target.Parent as LayerData; int index = parent.GeometricObjects.IndexOf(target); undo = () => { parent.GeometricObjects.Insert(index, target); }; redo = () => { parent.GeometricObjects.Remove(target); }; Clipboard = Selection as GeometricObjectDataBase; Clipboard.ParentLayer.GeometricObjects.Remove(Clipboard); Selection = parent; UndoRedoPair urPair = new UndoRedoPair(new UndoRedoPairString(CurrentLanguage.StandardFunction.Cut + " : " + Clipboard.ToString(), ""), undo, redo); AddUndoRedoPair(urPair); ValidateProject(DoesUpdateShapeAuto); }
public GeometricObjectInvalidEventArgs(GeometricObjectDataBase obj) { ErrordObject = obj; }
private void _AddGeometricObject(GeometricObjectDataBase obj) { if( OpenedProject == null ) return; if( SelectedLayer == null ) return; SelectedLayer.GeometricObjects.Add( obj ); ValidateProject( DoesUpdateShapeAuto ); Selection = obj; }
/// <summary>ジオメトリックオブジェクトを追加する。</summary> /// <param name="obj"></param> public GeometricObjectDataBase AddGeometricObject(GeometricObjectDataBase obj) { LogMethodStart(); _AddGeometricObject( obj ); LogMethodEnd(); return obj; }
private void DeleteGeometricObject(GeometricObjectDataBase obj) { string notice = CurrentLanguage.StandardFunction.Delete_UserNotice.Replace( "%s", obj.Name ); if( MessageBox.Show( notice, "", MessageBoxButtons.OKCancel, MessageBoxIcon.Information ) != DialogResult.OK ) return; LayerData parent = obj.ParentLayer; int index = parent.GeometricObjects.IndexOf( obj ); Action undo = () => { parent.GeometricObjects.Insert( index, obj ); }; Action redo = () => { parent.GeometricObjects.Remove( obj ); }; parent.GeometricObjects.Remove( obj ); Selection = parent; UndoRedoPair urPair = new UndoRedoPair( new UndoRedoPairString( CurrentLanguage.StandardFunction.Delete + " : GeometricObject[" + obj.Name + "]", "" ), undo, redo ); AddUndoRedoPair( urPair ); }