private void UpdateUiForAction(BoardAction action) { if (action is SetLedBoardAction) { SetLedAction.Checked = true; SetLedBoardAction a = (SetLedBoardAction)action; SetLedActionStateOption.Checked = a.SetToState; } else if (action is SetPinBoardAction) { SetPinAction.Checked = true; SetPinBoardAction a = (SetPinBoardAction)action; if (Board.OutputPins.Contains(a.Pin)) { SetPinActionPinOption.SelectedItem = a.Pin; } SetPinActionStateOption.Checked = a.SetToState; } else if (action is TogglePinBoardAction) { TogglePinAction.Checked = true; TogglePinBoardAction a = (TogglePinBoardAction)action; if (Board.OutputPins.Contains(a.Pin)) { TogglePinActionPinOption.SelectedItem = a.Pin; } } else if (action is RunScriptBoardAction) { RunScriptAction.Checked = true; RunScriptBoardAction a = (RunScriptBoardAction)action; RunScriptActionFileNameOption.Text = a.FileName; RunScriptActionArgumentsOption.Text = a.Arguments; } else if (action is SendTextBoardAction) { SendTextAction.Checked = true; SendTextBoardAction a = (SendTextBoardAction)action; SendTextActionTextOption.Text = a.Text; } else { NoAction.Checked = true; } }
private bool CreateActionFromUi(out BoardAction action) { if (NoAction.Checked) { action = null; return(true); } else if (SetLedAction.Checked) { bool setToState = SetLedActionStateOption.Checked; action = new SetLedBoardAction(setToState); return(true); } else if (SetPinAction.Checked) { if (SetPinActionPinOption.SelectedItem != null) { NamedPin pin = (NamedPin)SetPinActionPinOption.SelectedItem; bool setToState = SetPinActionStateOption.Checked; action = new SetPinBoardAction(pin, setToState); return(true); } else { ShowError("Must select pin."); } } else if (TogglePinAction.Checked) { if (TogglePinActionPinOption.SelectedItem != null) { NamedPin pin = (NamedPin)TogglePinActionPinOption.SelectedItem; action = new TogglePinBoardAction(pin); return(true); } else { ShowError("Must select pin."); } } else if (RunScriptAction.Checked) { String fileName = RunScriptActionFileNameOption.Text; String arguments = RunScriptActionArgumentsOption.Text; if (String.IsNullOrWhiteSpace(fileName)) { ShowError("File name cannot be blank."); } else { action = new RunScriptBoardAction(fileName, arguments); return(true); } } else if (SendTextAction.Checked) { String text = SendTextActionTextOption.Text; if (String.IsNullOrEmpty(text)) { ShowError("Text cannot be empty."); } else { action = new SendTextBoardAction(text); return(true); } } action = null; return(false); }