/// <summary> /// Обработчик события удаления фигур(ы) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _view_FiguresDeleted(object sender, EventArgs e) { if (_currentHandler.GetType() != typeof(CursorHandler)) { return; } var handler = _currentHandler as CursorHandler; var beforeState = new Dictionary <int, BaseFigure>(); if (handler == null) { return; } foreach (var figure in handler.SelectedFigures) { if (!_model.GetFigureList().ContainsKey(figure.Key)) { continue; } var index = figure.Key; beforeState.Add(index, figure.Value); } var cmd = new DeleteFigureCommand(_model, beforeState); _undoRedoStack.Do(cmd); handler.ClearSelectedFigures(); _view.Canvas.Refresh(); }
/// <summary> /// Обработчик очистки канвы /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _view_CanvasCleared(object sender, EventArgs e) { var beforeState = new Dictionary <int, BaseFigure>(); foreach (var figure in _model.GetFigureList()) { if (!_model.GetFigureList().ContainsKey(figure.Key)) { continue; } var index = figure.Key; beforeState.Add(index, figure.Value); } var cmd = new DeleteFigureCommand(_model, beforeState); _undoRedoStack.Do(cmd); _view.Canvas.Refresh(); }