Ejemplo n.º 1
0
 public Slide(int startIndex, int endIndex)
 {
     _cells = new ObservableCollection <SlideCell>();
     for (int i = startIndex; i <= endIndex; i++)
     {
         _cells.Add(new SlideCell {
             Number = i, Value = " "
         });
     }
     Controller = new SlideControl(Cells);
 }
Ejemplo n.º 2
0
 public Slide()
 {
     _cells = new ObservableCollection <SlideCell>();
     for (int i = -10; i <= 10; i++)
     {
         _cells.Add(new SlideCell {
             Number = i, Value = " "
         });
     }
     Controller = new SlideControl(Cells);
 }
Ejemplo n.º 3
0
        public void RunStep()
        {
            try
            {
                var currentSlideName = _slider.Cells.FirstOrDefault(z => z.IsActive == true).Value;
                if (_executableAlphabetCell == null)
                {
                    _executableAlphabetCell = _alphabetCells.FirstOrDefault(x =>
                                                                            x.Name == currentSlideName);
                    _executableAlphabetCell.IsExecute    = true;
                    _executableAlphabetCell.CurrentState = _executableAlphabetCell.States.FirstOrDefault(x => x.Name == "Q1");
                }
                _changeCommand._cells = _alphabetCells;
                if (!_changeCommand.IsValid(currentSlideName))
                {
                    throw new CannotExecuteException("На каретке имеется символ вне алфавита!", currentSlideName);
                }
                if (_executableAlphabetCell.CurrentState.Action == null)
                {
                    throw new CannotExecuteException("Ожидалось действие!",
                                                     $"Элемент алфавита: {_executableAlphabetCell.Name}\nСостояние: {_executableAlphabetCell.CurrentState.Name}");
                }
                var actionText = _executableAlphabetCell.CurrentState.Action;
                if (actionText == "end")
                {
                    _executableAlphabetCell = null;
                    IsEnd = true;
                }
                else
                {
                    SlideControl slideController = _slider.Controller;

                    _changeCommand.Execute(_executableAlphabetCell, _alphabetCells, _slider);

                    _moveCommand.Execute(_executableAlphabetCell, _slider);

                    _setStateCommand.Execute(ref _executableAlphabetCell, _alphabetCells, _slider);
                }
            }
            catch (CannotExecuteException ex)
            {
                MessageBox.Show(ex.WrongActionText, $"{ex.Message}, вызвано {ex.TargetSite}");
            }
        }