コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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();
        }