Esempio n. 1
0
 private void Go()
 {
     if (runner.ExecutionState == ExecutionState.Stopped)
     {
         // Need to start the program...
         ProgramInteraction.Reset();
         ProgramCode.SyncCodeToViewModel();
         runner.BeginRun(ProgramCode.Code);
         Properties.Settings.Default.Code = ProgramCode.Code; // Save for next time
     }
     else if (runner.ExecutionState == ExecutionState.Paused)
     {
         runner.ExecuteNextLine();
     }
 }
Esempio n. 2
0
        private void Runner_ExecutionStateChanged(object sender, ExecutionStateChangedEventArgs e)
        {
            App.Current.Dispatcher.Invoke(() =>
            {
                switch (e.ExecutionState)
                {
                case ExecutionState.Stopped:
                    ProgramCode.HighlightedLineNumber = 0;
                    ProgramInteraction.HideInputPrompt();
                    break;

                case ExecutionState.Paused:
                    if (SingleStepMode)
                    {
                        ProgramCode.HighlightedLineNumber = runner.LineNumber;
                        ProgramInteraction.HideInputPrompt();
                    }
                    else
                    {
                        // Want to run at full speed
                        runner.ExecuteNextLine();
                    }
                    break;

                case ExecutionState.Running:
                    if (SingleStepMode)
                    {
                        ProgramCode.HighlightedLineNumber = 0;
                        ProgramInteraction.HideInputPrompt();
                    }
                    break;

                case ExecutionState.WaitingForInput:
                    ProgramInteraction.ShowInputPrompt(!string.IsNullOrWhiteSpace(runner.Prompt) ? runner.Prompt : "Please enter your response:");
                    if (SingleStepMode)
                    {
                        ProgramCode.HighlightedLineNumber = runner.LineNumber;
                    }
                    break;
                }

                OnPropertyChanged(nameof(ExecutionState));
                GoCommand.RaiseCanExecuteChanged();
                StopCommand.RaiseCanExecuteChanged();
            });
        }
Esempio n. 3
0
        private void ProgramInteraction_Input(object sender, InputEventArgs e)
        {
            // The user has sumbitted an answer to the interactive input prompt
            // So hide the input box
            ProgramInteraction.HideInputPrompt();

            // Show the original prompt (if any)
            if (!string.IsNullOrWhiteSpace(runner.Prompt))
            {
                ProgramInteraction.OutputText(runner.Prompt.Trim() + " ");
            }

            // Show the user's response
            ProgramInteraction.OutputText(e.Answer + Environment.NewLine);

            // Submit the user's answer to the Python program, so it can continue
            runner.SubmitInput(e.Answer);
        }
Esempio n. 4
0
 private void Runner_ErrorReceived(object sender, RunnerErrorMessageEventArgs e)
 {
     App.Current.Dispatcher.Invoke(() => ProgramInteraction.OutputErrorMessage(e.ErrorMessage));
 }
Esempio n. 5
0
 private void Runner_OutputReceived(object sender, RunnerOutputEventArgs e)
 {
     App.Current.Dispatcher.Invoke(() => ProgramInteraction.OutputText(e.Text));
 }