private void RunImageCapture(object sender, EventArgs e) { //get input control CommandItemControl inputBox = (CommandItemControl)sender; UIPictureBox targetPictureBox = (UIPictureBox)inputBox.Tag; string imageSource = targetPictureBox.EncodedImage; if (string.IsNullOrEmpty(imageSource)) { MessageBox.Show("Please capture an image before attempting to test!"); return; } //hide all HideAllForms(); try { //run image recognition SurfaceAutomationCommand surfaceAutomationCommand = new SurfaceAutomationCommand(); surfaceAutomationCommand.v_ImageCapture = imageSource; surfaceAutomationCommand.TestMode = true; surfaceAutomationCommand.RunCommand(null); } catch (Exception ex) { MessageBox.Show("Error: " + ex.ToString()); } //show all forms ShowAllForms(); }
public List <Control> CreateConditionActionParameterTable(IfrmCommandEditor editor, ICommandControls commandControls) { var noCSharpControls = new List <Control>(); RecorderControl = new CommandItemControl("guirecorder_helper", Resources.command_camera, "Element Recorder"); RecorderControl.Hide(); noCSharpControls.Add(commandControls.CreateDefaultLabelFor("v_ActionType", ConditionCommand)); ActionDropdown = commandControls.CreateDropdownFor("v_ActionType", ConditionCommand); noCSharpControls.AddRange(commandControls.CreateUIHelpersFor("v_ActionType", ConditionCommand, new Control[] { ActionDropdown }, editor)); ActionDropdown.SelectionChangeCommitted += Action_SelectionChangeCommitted; noCSharpControls.Add(ActionDropdown); noCSharpControls.Add(commandControls.CreateDefaultLabelFor("v_ActionParameterTable", ConditionCommand)); RecorderControl.Click += (sender, e) => ShowElementRecorder(sender, e, editor, commandControls); noCSharpControls.Add(RecorderControl); ActionGridViewHelper = commandControls.CreateDefaultDataGridViewFor("v_ActionParameterTable", ConditionCommand); ActionGridViewHelper.AllowUserToAddRows = false; ActionGridViewHelper.AllowUserToDeleteRows = false; ActionGridViewHelper.MouseEnter += ActionGridViewHelper_MouseEnter; noCSharpControls.AddRange(commandControls.CreateUIHelpersFor("v_ActionParameterTable", ConditionCommand, new Control[] { ActionGridViewHelper }, editor)); noCSharpControls.Add(ActionGridViewHelper); return(noCSharpControls); }
public void ShowElementSelector(object sender, EventArgs e) { //create element selector form frmElementSelector newElementSelector = new frmElementSelector(); //get copy of user element and append system elements, then load to combobox var elementList = _currentEditor.ScriptElements.Select(f => f.ElementName).ToList(); newElementSelector.lstElements.Items.AddRange(elementList.ToArray()); //if user pressed "OK" if (newElementSelector.ShowDialog() == DialogResult.OK) { //ensure that a element was actually selected if (newElementSelector.lstElements.SelectedItem == null) { //return out as nothing was selected MessageBox.Show("There were no elements selected!"); return; } //grab the referenced input assigned to the 'insert element' button instance CommandItemControl inputBox = (CommandItemControl)sender; if (inputBox.Tag is DataGridView) { DataGridView targetDGV = (DataGridView)inputBox.Tag; targetDGV.DataSource = _currentEditor.ScriptElements .Where(x => x.ElementName == newElementSelector.lstElements.SelectedItem.ToString().Replace("<", "").Replace(">", "")) .FirstOrDefault().ElementValue; } } }
public static CommandItemControl NativeChromeRecorderControl(DataTable NativeSearchParameters, IfrmCommandEditor editor) { CommandItemControl helperControl = new CommandItemControl("ChromeRecorder", Resources.command_nativechrome, "Chrome Element Recorder"); helperControl.Click += new EventHandler((s, e) => GetUIElement(s, e, NativeSearchParameters, editor)); return(helperControl); }
public BeginIfCommand_cn() { this.CommandName = "BeginIfCommand"; // this.SelectionName = "Begin If"; this.SelectionName = Settings.Default.Begin_If_cn; this.CommandEnabled = true; this.CustomRendering = true; //define parameter table this.v_IfActionParameterTable = new System.Data.DataTable { TableName = DateTime.Now.ToString("IfActionParamTable" + DateTime.Now.ToString("MMddyy.hhmmss")) }; this.v_IfActionParameterTable.Columns.Add("Parameter Name"); this.v_IfActionParameterTable.Columns.Add("Parameter Value"); IfGridViewHelper = new DataGridView(); IfGridViewHelper.AllowUserToAddRows = true; IfGridViewHelper.AllowUserToDeleteRows = true; IfGridViewHelper.Size = new Size(400, 250); IfGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; IfGridViewHelper.DataBindings.Add("DataSource", this, "v_IfActionParameterTable", false, DataSourceUpdateMode.OnPropertyChanged); IfGridViewHelper.AllowUserToAddRows = false; IfGridViewHelper.AllowUserToDeleteRows = false; IfGridViewHelper.MouseEnter += IfGridViewHelper_MouseEnter; RecorderControl = new taskt.UI.CustomControls.CommandItemControl(); RecorderControl.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); RecorderControl.ForeColor = Color.AliceBlue; RecorderControl.Name = "guirecorder_helper"; RecorderControl.CommandImage = UI.Images.GetUIImage("ClipboardGetTextCommand"); RecorderControl.CommandDisplay = "Element Recorder"; RecorderControl.Click += ShowIfElementRecorder; RecorderControl.Hide(); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); CommandItemControl buildConnectionStringControl = new CommandItemControl("connectionString", Resources.command_database, "Build Connection String"); buildConnectionStringControl.Click += (sender, e) => BuildConnectionString(sender, e); CommandItemControl testConnectionControl = new CommandItemControl("connectionTest", Resources.command_database, "Test Connection"); testConnectionControl.Click += async(sender, e) => await TestConnection(sender, e, editor); _connectionString = commandControls.CreateDefaultInputFor("v_ConnectionString", this); RenderedControls.Add(commandControls.CreateDefaultLabelFor("v_ConnectionString", this)); RenderedControls.Add(buildConnectionStringControl); RenderedControls.Add(testConnectionControl); RenderedControls.AddRange(commandControls.CreateUIHelpersFor("v_ConnectionString", this, new[] { _connectionString }, editor)); RenderedControls.Add(_connectionString); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_ConnectionStringPassword", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_TestConnection", this, editor)); return(RenderedControls); }
public BeginLoopCommand() { CommandName = "BeginLoopCommand"; SelectionName = "Begin Loop"; CommandEnabled = true; CommandIcon = Resources.command_startloop; ScopeStartCommand = true; //define parameter table v_ActionParameterTable = new DataTable { TableName = DateTime.Now.ToString("LoopActionParamTable" + DateTime.Now.ToString("MMddyy.hhmmss")) }; v_ActionParameterTable.Columns.Add("Parameter Name"); v_ActionParameterTable.Columns.Add("Parameter Value"); _recorderControl = new CommandItemControl(); _recorderControl.Padding = new Padding(10, 0, 0, 0); _recorderControl.ForeColor = Color.AliceBlue; _recorderControl.Font = new Font("Segoe UI Semilight", 10); _recorderControl.Name = "guirecorder_helper"; _recorderControl.CommandImage = Resources.command_camera; _recorderControl.CommandDisplay = "Element Recorder"; _recorderControl.Hide(); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_DataTable", this, editor)); CommandItemControl loadSchemaControl = new CommandItemControl("columnNameLoader", Resources.command_spreadsheet, "Load Column Names From Existing DataTable"); loadSchemaControl.Click += LoadSchemaControl_Click; var dataRowDataControls = new List <Control>(); dataRowDataControls.Add(commandControls.CreateDefaultLabelFor("v_DataRowDataTable", this)); var gridview = commandControls.CreateDefaultDataGridViewFor("v_DataRowDataTable", this); dataRowDataControls.AddRange(commandControls.CreateUIHelpersFor("v_DataRowDataTable", this, new Control[] { gridview }, editor)); dataRowDataControls.Add(loadSchemaControl); dataRowDataControls.Add(gridview); RenderedControls.AddRange(dataRowDataControls); _dataTableCreationCommands = editor.ConfiguredCommands.Where(f => f is CreateDataTableCommand) .Select(f => (CreateDataTableCommand)f) .ToList(); RenderedControls.AddRange(commandControls.CreateDefaultOutputGroupFor("v_OutputUserVariableName", this, editor)); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); _userInputGridViewHelper = commandControls.CreateDefaultDataGridViewFor("v_UserInputConfig", this); _userInputGridViewHelper.KeyDown += UserInputDataGridView_KeyDown; var typefield = new DataGridViewComboBoxColumn(); typefield.Items.Add("TextBox"); typefield.Items.Add("CheckBox"); typefield.Items.Add("ComboBox"); typefield.HeaderText = "Input Type"; typefield.DataPropertyName = "Type"; _userInputGridViewHelper.Columns.Add(typefield); var field = new DataGridViewTextBoxColumn(); field.HeaderText = "Input Label"; field.DataPropertyName = "Label"; _userInputGridViewHelper.Columns.Add(field); field = new DataGridViewTextBoxColumn(); field.HeaderText = "Input Size (X,Y)"; field.DataPropertyName = "Size"; _userInputGridViewHelper.Columns.Add(field); field = new DataGridViewTextBoxColumn(); field.HeaderText = "Default Value"; field.DataPropertyName = "DefaultValue"; _userInputGridViewHelper.Columns.Add(field); field = new DataGridViewTextBoxColumn(); field.HeaderText = "Assigned Variable"; field.DataPropertyName = "StoreInVariable"; _userInputGridViewHelper.Columns.Add(field); _userInputGridViewHelper.AllowUserToAddRows = false; _userInputGridViewHelper.AllowDrop = true; _userInputGridViewHelper.MouseDown += UserInputGridViewHelper_MouseDown; _userInputGridViewHelper.MouseUp += UserInputGridViewHelper_MouseUp; _userInputGridViewHelper.MouseMove += UserInputGridViewHelper_MouseMove; _userInputGridViewHelper.DragOver += UserInputGridViewHelper_DragOver; _userInputGridViewHelper.DragDrop += UserInputGridViewHelper_DragDrop; _addRowControl = new CommandItemControl("AddInput", Resources.command_input, "Add Input Parameter"); _addRowControl.Click += (sender, e) => AddInputParameter(sender, e, editor); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InputHeader", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InputDirections", this, editor)); RenderedControls.Add(commandControls.CreateDefaultLabelFor("v_UserInputConfig", this)); RenderedControls.Add(_addRowControl); RenderedControls.AddRange(commandControls.CreateUIHelpersFor("v_UserInputConfig", this, new Control[] { _userInputGridViewHelper }, editor)); RenderedControls.Add(_userInputGridViewHelper); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_QueryType", this, editor)); var queryControls = commandControls.CreateDefaultInputGroupFor("v_Query", this, editor); var queryBox = (TextBox)queryControls[2]; queryBox.Multiline = true; queryBox.Height = 150; RenderedControls.AddRange(queryControls); //set up query parameter controls _queryParametersGridView = commandControls.CreateDefaultDataGridViewFor("v_QueryParameters", this); _queryParametersGridView.AutoGenerateColumns = false; _queryParametersGridView.AllowUserToAddRows = false; var selectColumn = new DataGridViewComboBoxColumn(); selectColumn.HeaderText = "Type"; selectColumn.DataPropertyName = "Parameter Type"; selectColumn.DataSource = new string[] { "STRING", "BOOLEAN", "DECIMAL", "INT16", "INT32", "INT64", "DATETIME", "DOUBLE", "SINGLE", "GUID", "BYTE", "BYTE[]" }; _queryParametersGridView.Columns.Add(selectColumn); var paramNameColumn = new DataGridViewTextBoxColumn(); paramNameColumn.HeaderText = "Name"; paramNameColumn.DataPropertyName = "Parameter Name"; _queryParametersGridView.Columns.Add(paramNameColumn); var paramValueColumn = new DataGridViewTextBoxColumn(); paramValueColumn.HeaderText = "Value"; paramValueColumn.DataPropertyName = "Parameter Value"; _queryParametersGridView.Columns.Add(paramValueColumn); _queryParametersControls = new List <Control>(); _queryParametersControls.Add(commandControls.CreateDefaultLabelFor("v_QueryParameters", this)); _queryParametersControls.AddRange(commandControls.CreateUIHelpersFor("v_QueryParameters", this, new Control[] { _queryParametersGridView }, editor)); CommandItemControl helperControl = new CommandItemControl("add_param_helper", Resources.command_database, "Add Parameter"); helperControl.Click += (sender, e) => AddParameter(sender, e); _queryParametersControls.Add(helperControl); _queryParametersControls.Add(_queryParametersGridView); RenderedControls.AddRange(_queryParametersControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_QueryTimeout", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultOutputGroupFor("v_OutputUserVariableName", this, editor)); return(RenderedControls); }
private void ShowFolderSelector(object sender, EventArgs e, IfrmCommandEditor editor) { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { CommandItemControl inputBox = (CommandItemControl)sender; TextBox targetTextBox = (TextBox)inputBox.Tag; targetTextBox.Text = fbd.SelectedPath; } }
private void ShowFileSelector(object sender, EventArgs e, IfrmCommandEditor editor) { OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { CommandItemControl inputBox = (CommandItemControl)sender; //currently variable insertion is only available for simply textboxes TextBox targetTextbox = (TextBox)inputBox.Tag; //concat variable name with brackets [vVariable] as engine searches for the same targetTextbox.Text = ofd.FileName; } }
private void ShowCodeBuilder(object sender, EventArgs e, IfrmCommandEditor editor) { //get textbox text CommandItemControl commandItem = (CommandItemControl)sender; TextBox targetTextbox = (TextBox)commandItem.Tag; frmCodeBuilder codeBuilder = new frmCodeBuilder(targetTextbox.Text); if (codeBuilder.ShowDialog() == DialogResult.OK) { targetTextbox.Text = codeBuilder.rtbCode.Text; } }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); //create helper control CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.CommandImage = Resources.command_camera; helperControl.CommandDisplay = "Element Recorder"; helperControl.Click += new EventHandler((s, e) => ShowRecorder(s, e, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); if (v_SeleniumSearchParameters.Rows.Count == 0) { v_SeleniumSearchParameters.Rows.Add(true, "XPath", ""); v_SeleniumSearchParameters.Rows.Add(false, "ID", ""); v_SeleniumSearchParameters.Rows.Add(false, "Name", ""); v_SeleniumSearchParameters.Rows.Add(false, "Tag Name", ""); v_SeleniumSearchParameters.Rows.Add(false, "Class Name", ""); v_SeleniumSearchParameters.Rows.Add(false, "Link Text", ""); v_SeleniumSearchParameters.Rows.Add(false, "CSS Selector", ""); } //create search parameters RenderedControls.Add(commandControls.CreateDefaultLabelFor("v_SeleniumSearchParameters", this)); RenderedControls.Add(helperControl); RenderedControls.AddRange(commandControls.CreateUIHelpersFor("v_SeleniumSearchParameters", this, new Control[] { _searchParametersGridViewHelper }, editor)); RenderedControls.Add(_searchParametersGridViewHelper); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_SeleniumSearchOption", this, editor)); _elementActionDropdown = (ComboBox)commandControls.CreateDropdownFor("v_SeleniumElementAction", this); RenderedControls.Add(commandControls.CreateDefaultLabelFor("v_SeleniumElementAction", this)); RenderedControls.AddRange(commandControls.CreateUIHelpersFor("v_SeleniumElementAction", this, new Control[] { _elementActionDropdown }, editor)); _elementActionDropdown.SelectionChangeCommitted += SeleniumAction_SelectionChangeCommitted; RenderedControls.Add(_elementActionDropdown); _actionParametersControls = new List <Control>(); _actionParametersControls.Add(commandControls.CreateDefaultLabelFor("v_WebActionParameterTable", this)); _actionParametersControls.AddRange(commandControls.CreateUIHelpersFor("v_WebActionParameterTable", this, new Control[] { _actionParametersGridViewHelper }, editor)); _actionParametersControls.Add(_actionParametersGridViewHelper); RenderedControls.AddRange(_actionParametersControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Timeout", this, editor)); return(RenderedControls); }
private void EncryptPassword(CommandItemControl sender, EventArgs e) { if (string.IsNullOrEmpty(ConnectionStringPassword.Text)) { return; } var acknowledgement = MessageBox.Show("WARNING! This function will encrypt the password locally but is not extremely secure as the client knows the secret! Consider using a password management service instead. The encrypted password will be stored with a leading exclamation ('!') whch the automation engine will detect and know to decrypt the value automatically at run-time. Do not encrypt the password multiple times or the decryption will be invalid! Would you like to proceed?", "Encryption Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (acknowledgement == DialogResult.Yes) { ConnectionStringPassword.Text = string.Concat($"!{EncryptionServices.EncryptString(ConnectionStringPassword.Text, "taskt-database-automation")}"); } }
private void TogglePasswordChar(CommandItemControl sender, EventArgs e) { //if password is hidden if (ConnectionStringPassword.PasswordChar == '*') { //show password plain text sender.CommandDisplay = "Hide Password"; ConnectionStringPassword.PasswordChar = '\0'; } else { //mask password with chars sender.CommandDisplay = "Show Password"; ConnectionStringPassword.PasswordChar = '*'; } }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); CommandItemControl helperControl = new CommandItemControl("rdpManager", Resources.command_system, "RDP Display Manager"); helperControl.Click += new EventHandler((s, e) => LaunchRDPDisplayManager(s, e)); RenderedControls.Add(helperControl); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_MachineName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_UserName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Password", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_RDPWidth", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_RDPHeight", this, editor)); return(RenderedControls); }
private void EncryptText(object sender, EventArgs e, IfrmCommandEditor editor) { CommandItemControl inputBox = (CommandItemControl)sender; TextBox targetTextbox = (TextBox)inputBox.Tag; if (string.IsNullOrEmpty(targetTextbox.Text)) { return; } var encrypted = EncryptionServices.EncryptString(targetTextbox.Text, "OPENBOTS"); targetTextbox.Text = encrypted; ComboBox comboBoxControl = (ComboBox)((frmCommandEditor)editor).flw_InputVariables.Controls["v_EncryptionOption"]; comboBoxControl.Text = "Encrypted"; }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); CommandItemControl helperControl = new CommandItemControl("LaunchTerminal", Resources.command_system, "Launch Terminal Emulator"); helperControl.Click += new EventHandler((s, e) => LaunchTerminalSession(s, e)); RenderedControls.Add(helperControl); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Host", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Port", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_TerminalType", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_UseSsl", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_CloseAllInstances", this, editor)); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); NativeHelper.AddDefaultSearchRows(v_SeleniumSearchParameters); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); CommandItemControl obWebRecorderControl = new CommandItemControl("OBWebRecorder", Resources.command_camera, "OB Web Element Recorder"); obWebRecorderControl.Click += new EventHandler((s, e) => ShowRecorder(s, e, editor, commandControls)); //disabled native chrome recorder for 1.5.0 var searchParameterControls = commandControls.CreateDefaultWebElementDataGridViewGroupFor("v_SeleniumSearchParameters", this, editor, new Control[] { obWebRecorderControl, NativeHelper.NativeChromeRecorderControl(v_SeleniumSearchParameters, editor) }); searchParameterControls.Last().MouseEnter += ActionParametersGridViewHelper_MouseEnter; RenderedControls.AddRange(searchParameterControls); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_SeleniumSearchOption", this, editor)); _elementActionDropdown = commandControls.CreateDropdownFor("v_SeleniumElementAction", this); RenderedControls.Add(commandControls.CreateDefaultLabelFor("v_SeleniumElementAction", this)); RenderedControls.AddRange(commandControls.CreateUIHelpersFor("v_SeleniumElementAction", this, new Control[] { _elementActionDropdown }, editor)); _elementActionDropdown.SelectionChangeCommitted += SeleniumAction_SelectionChangeCommitted; RenderedControls.Add(_elementActionDropdown); _actionParametersControls = new List <Control>(); _actionParametersControls.Add(commandControls.CreateDefaultLabelFor("v_WebActionParameterTable", this)); _actionParametersGridViewHelper = commandControls.CreateDefaultDataGridViewFor("v_WebActionParameterTable", this); _actionParametersGridViewHelper.AllowUserToAddRows = false; _actionParametersGridViewHelper.AllowUserToDeleteRows = false; _actionParametersGridViewHelper.MouseEnter += ActionParametersGridViewHelper_MouseEnter; _actionParametersControls.AddRange(commandControls.CreateUIHelpersFor("v_WebActionParameterTable", this, new Control[] { _actionParametersGridViewHelper }, editor)); _actionParametersControls.Add(_actionParametersGridViewHelper); RenderedControls.AddRange(_actionParametersControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Timeout", this, editor)); return(RenderedControls); }
private void ShowImageCapture(object sender, EventArgs e) { ApplicationSettings settings = new ApplicationSettings().GetOrCreateApplicationSettings(); var minimizePreference = settings.ClientSettings.MinimizeToTray; if (minimizePreference) { settings.ClientSettings.MinimizeToTray = false; settings.Save(settings); } HideAllForms(); var userAcceptance = MessageBox.Show("The image capture process will now begin and display a screenshot of the" + " current desktop in a custom full-screen window. You may stop the capture process at any time by pressing" + " the 'ESC' key, or selecting 'Close' at the top left. Simply create the image by clicking once to start" + " the rectangle and clicking again to finish. The image will be cropped to the boundary within the red rectangle." + " Shall we proceed?", "Image Capture", MessageBoxButtons.YesNo); if (userAcceptance == DialogResult.Yes) { frmImageCapture imageCaptureForm = new frmImageCapture(); if (imageCaptureForm.ShowDialog() == DialogResult.OK) { CommandItemControl inputBox = (CommandItemControl)sender; UIPictureBox targetPictureBox = (UIPictureBox)inputBox.Tag; targetPictureBox.Image = imageCaptureForm.UserSelectedBitmap; var convertedImage = Common.ImageToBase64(imageCaptureForm.UserSelectedBitmap); targetPictureBox.EncodedImage = convertedImage; imageCaptureForm.Close(); } } ShowAllForms(); if (minimizePreference) { settings.ClientSettings.MinimizeToTray = true; settings.Save(settings); } }
public override List <Control> Render(IfrmCommandEditor editor) { base.Render(editor); RenderedControls.AddRange(CommandControls.CreateDefaultInputGroupFor("v_DataTable", this, editor)); RenderedControls.AddRange(CommandControls.CreateDataGridViewGroupFor("v_DataRowDataTable", this, editor)); CommandItemControl loadSchemaControl = new CommandItemControl(); loadSchemaControl.ForeColor = System.Drawing.Color.White; loadSchemaControl.Font = new Font("Segoe UI Semilight", 10); loadSchemaControl.CommandDisplay = "Load Column Names From Existing DataTable"; loadSchemaControl.Click += LoadSchemaControl_Click; RenderedControls.Add(loadSchemaControl); _dataTableCreationCommands = editor.ConfiguredCommands.Where(f => f is CreateDataTableCommand) .Select(f => (CreateDataTableCommand)f) .ToList(); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor) { base.Render(editor); //create helper control CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.CommandImage = Resources.command_camera; helperControl.CommandDisplay = "Element Recorder"; helperControl.Click += new EventHandler((s, e) => ShowRecorder(s, e, editor)); RenderedControls.AddRange(CommandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); RenderedControls.AddRange(CommandControls.CreateDefaultDropdownGroupFor("v_SeleniumSearchType", this, editor)); _searchParameterControls = new List <Control>(); _searchParameterControls.Add(CommandControls.CreateDefaultLabelFor("v_SeleniumSearchParameter", this)); _searchParameterControls.Add(helperControl); var searchParameterInput = CommandControls.CreateDefaultInputFor("v_SeleniumSearchParameter", this); _searchParameterControls.AddRange(CommandControls.CreateUIHelpersFor("v_SeleniumSearchParameter", this, new Control[] { searchParameterInput }, editor)); _searchParameterControls.Add(searchParameterInput); RenderedControls.AddRange(_searchParameterControls); _elementActionDropdown = (ComboBox)CommandControls.CreateDropdownFor("v_SeleniumElementAction", this); RenderedControls.Add(CommandControls.CreateDefaultLabelFor("v_SeleniumElementAction", this)); RenderedControls.AddRange(CommandControls.CreateUIHelpersFor("v_SeleniumElementAction", this, new Control[] { _elementActionDropdown }, editor)); _elementActionDropdown.SelectionChangeCommitted += SeleniumAction_SelectionChangeCommitted; RenderedControls.Add(_elementActionDropdown); _elementParameterControls = new List <Control>(); _elementParameterControls.Add(CommandControls.CreateDefaultLabelFor("v_WebActionParameterTable", this)); _elementParameterControls.AddRange(CommandControls.CreateUIHelpersFor("v_WebActionParameterTable", this, new Control[] { _elementsGridViewHelper }, editor)); _elementParameterControls.Add(_elementsGridViewHelper); RenderedControls.AddRange(_elementParameterControls); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.CommandImage = Resources.command_system; helperControl.CommandDisplay = "RDP Display Manager"; helperControl.Click += new EventHandler((s, e) => LaunchRDPDisplayManager(s, e)); RenderedControls.Add(helperControl); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_MachineName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_UserName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultPasswordInputGroupFor("v_Password", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_RDPWidth", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_RDPHeight", this, editor)); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.CommandImage = Resources.command_system; helperControl.CommandDisplay = "Launch Terminal Emulator"; helperControl.Click += new EventHandler((s, e) => LaunchTerminalSession(s, e)); RenderedControls.Add(helperControl); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Host", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_Port", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_TerminalType", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_UseSsl", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_CloseAllInstances", this, editor)); return(RenderedControls); }
public BeginIfCommand() { CommandName = "BeginIfCommand"; SelectionName = "Begin If"; CommandEnabled = true; CustomRendering = true; //define parameter table v_IfActionParameterTable = new DataTable { TableName = DateTime.Now.ToString("IfActionParamTable" + DateTime.Now.ToString("MMddyy.hhmmss")) }; v_IfActionParameterTable.Columns.Add("Parameter Name"); v_IfActionParameterTable.Columns.Add("Parameter Value"); _ifGridViewHelper = new DataGridView(); _ifGridViewHelper.AllowUserToAddRows = true; _ifGridViewHelper.AllowUserToDeleteRows = true; _ifGridViewHelper.Size = new Size(400, 250); _ifGridViewHelper.ColumnHeadersHeight = 30; _ifGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; _ifGridViewHelper.DataBindings.Add("DataSource", this, "v_IfActionParameterTable", false, DataSourceUpdateMode.OnPropertyChanged); _ifGridViewHelper.AllowUserToAddRows = false; _ifGridViewHelper.AllowUserToDeleteRows = false; _ifGridViewHelper.MouseEnter += IfGridViewHelper_MouseEnter; _recorderControl = new CommandItemControl(); _recorderControl.Padding = new Padding(10, 0, 0, 0); _recorderControl.ForeColor = Color.AliceBlue; _recorderControl.Font = new Font("Segoe UI Semilight", 10); _recorderControl.Name = "guirecorder_helper"; _recorderControl.CommandImage = Resources.command_camera; _recorderControl.CommandDisplay = "Element Recorder"; _recorderControl.Click += ShowIfElementRecorder; _recorderControl.Hide(); }
public override List <Control> Render(frmCommandEditor editor) { base.Render(editor); //create search param grid SearchParametersGridViewHelper = new DataGridView(); SearchParametersGridViewHelper.Width = 500; SearchParametersGridViewHelper.Height = 140; SearchParametersGridViewHelper.DataBindings.Add("DataSource", this, "v_UIASearchParameters", false, DataSourceUpdateMode.OnPropertyChanged); DataGridViewCheckBoxColumn enabled = new DataGridViewCheckBoxColumn(); enabled.HeaderText = "Enabled"; enabled.DataPropertyName = "Enabled"; SearchParametersGridViewHelper.Columns.Add(enabled); DataGridViewTextBoxColumn propertyName = new DataGridViewTextBoxColumn(); propertyName.HeaderText = "Parameter Name"; propertyName.DataPropertyName = "Parameter Name"; SearchParametersGridViewHelper.Columns.Add(propertyName); DataGridViewTextBoxColumn propertyValue = new DataGridViewTextBoxColumn(); propertyValue.HeaderText = "Parameter Value"; propertyValue.DataPropertyName = "Parameter Value"; SearchParametersGridViewHelper.Columns.Add(propertyValue); SearchParametersGridViewHelper.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; SearchParametersGridViewHelper.AllowUserToAddRows = false; SearchParametersGridViewHelper.AllowUserToDeleteRows = false; //create actions ActionParametersGridViewHelper = new DataGridView(); ActionParametersGridViewHelper.Width = 500; ActionParametersGridViewHelper.Height = 140; ActionParametersGridViewHelper.DataBindings.Add("DataSource", this, "v_UIAActionParameters", false, DataSourceUpdateMode.OnPropertyChanged); ActionParametersGridViewHelper.MouseEnter += ActionParametersGridViewHelper_MouseEnter; propertyName = new DataGridViewTextBoxColumn(); propertyName.HeaderText = "Parameter Name"; propertyName.DataPropertyName = "Parameter Name"; ActionParametersGridViewHelper.Columns.Add(propertyName); propertyValue = new DataGridViewTextBoxColumn(); propertyValue.HeaderText = "Parameter Value"; propertyValue.DataPropertyName = "Parameter Value"; ActionParametersGridViewHelper.Columns.Add(propertyValue); ActionParametersGridViewHelper.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; ActionParametersGridViewHelper.AllowUserToAddRows = false; ActionParametersGridViewHelper.AllowUserToDeleteRows = false; //create helper control CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.CommandImage = UI.Images.GetUIImage("ClipboardGetTextCommand"); helperControl.CommandDisplay = "Element Recorder"; helperControl.Click += ShowRecorder; //automation type var automationTypeGroup = CommandControls.CreateDefaultDropdownGroupFor("v_AutomationType", this, editor); AutomationTypeControl = (ComboBox)automationTypeGroup.Where(f => f is ComboBox).FirstOrDefault(); AutomationTypeControl.SelectionChangeCommitted += UIAType_SelectionChangeCommitted; RenderedControls.AddRange(automationTypeGroup); //window name RenderedControls.Add(UI.CustomControls.CommandControls.CreateDefaultLabelFor("v_WindowName", this)); WindowNameControl = UI.CustomControls.CommandControls.CreateStandardComboboxFor("v_WindowName", this).AddWindowNames(); RenderedControls.AddRange(UI.CustomControls.CommandControls.CreateUIHelpersFor("v_WindowName", this, new Control[] { WindowNameControl }, editor)); RenderedControls.Add(WindowNameControl); //create search parameters RenderedControls.Add(CommandControls.CreateDefaultLabelFor("v_UIASearchParameters", this)); RenderedControls.Add(helperControl); RenderedControls.Add(SearchParametersGridViewHelper); //create action parameters RenderedControls.Add(CommandControls.CreateDefaultLabelFor("v_UIAActionParameters", this)); RenderedControls.Add(ActionParametersGridViewHelper); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor) { base.Render(editor); UserInputGridViewHelper = new DataGridView(); UserInputGridViewHelper.KeyDown += UserInputDataGridView_KeyDown; UserInputGridViewHelper.DataBindings.Add("DataSource", this, "v_UserInputConfig", false, DataSourceUpdateMode.OnPropertyChanged); var typefield = new DataGridViewComboBoxColumn(); typefield.Items.Add("TextBox"); typefield.Items.Add("CheckBox"); typefield.Items.Add("ComboBox"); typefield.HeaderText = "Input Type"; typefield.DataPropertyName = "Type"; UserInputGridViewHelper.Columns.Add(typefield); var field = new DataGridViewTextBoxColumn(); field.HeaderText = "Input Label"; field.DataPropertyName = "Label"; UserInputGridViewHelper.Columns.Add(field); field = new DataGridViewTextBoxColumn(); field.HeaderText = "Input Size (X,Y)"; field.DataPropertyName = "Size"; UserInputGridViewHelper.Columns.Add(field); field = new DataGridViewTextBoxColumn(); field.HeaderText = "Default Value"; field.DataPropertyName = "DefaultValue"; UserInputGridViewHelper.Columns.Add(field); field = new DataGridViewTextBoxColumn(); field.HeaderText = "Assigned Variable"; field.DataPropertyName = "ApplyToVariable"; UserInputGridViewHelper.Columns.Add(field); UserInputGridViewHelper.ColumnHeadersHeight = 30; UserInputGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; UserInputGridViewHelper.AllowUserToAddRows = false; UserInputGridViewHelper.AllowUserToDeleteRows = false; AddRowControl = new CommandItemControl(); AddRowControl.Padding = new Padding(10, 0, 0, 0); AddRowControl.ForeColor = Color.AliceBlue; AddRowControl.Font = new Font("Segoe UI Semilight", 10); AddRowControl.CommandImage = Resources.command_input; AddRowControl.CommandDisplay = "Add Input Parameter"; AddRowControl.Click += (sender, e) => AddInputParameter(sender, e, editor); RenderedControls.AddRange(CommandControls.CreateDefaultInputGroupFor("v_InputHeader", this, editor)); RenderedControls.AddRange(CommandControls.CreateDefaultInputGroupFor("v_InputDirections", this, editor)); RenderedControls.Add(CommandControls.CreateDefaultLabelFor("v_UserInputConfig", this)); RenderedControls.Add(AddRowControl); RenderedControls.AddRange(CommandControls.CreateUIHelpersFor("v_UserInputConfig", this, new Control[] { UserInputGridViewHelper }, editor)); RenderedControls.Add(UserInputGridViewHelper); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor, ICommandControls commandControls) { base.Render(editor, commandControls); RenderedControls.AddRange(commandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); RenderedControls.AddRange(commandControls.CreateDefaultDropdownGroupFor("v_QueryType", this, editor)); var queryControls = commandControls.CreateDefaultInputGroupFor("v_Query", this, editor); var queryBox = (TextBox)queryControls[2]; queryBox.Multiline = true; queryBox.Height = 150; RenderedControls.AddRange(queryControls); //set up query parameter controls _queryParametersGridView = new DataGridView(); _queryParametersGridView.AllowUserToAddRows = true; _queryParametersGridView.AllowUserToDeleteRows = true; _queryParametersGridView.Size = new Size(400, 250); _queryParametersGridView.ColumnHeadersHeight = 30; _queryParametersGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; _queryParametersGridView.AutoGenerateColumns = false; var selectColumn = new DataGridViewComboBoxColumn(); selectColumn.HeaderText = "Type"; selectColumn.DataPropertyName = "Parameter Type"; selectColumn.DataSource = new string[] { "STRING", "BOOLEAN", "DECIMAL", "INT16", "INT32", "INT64", "DATETIME", "DOUBLE", "SINGLE", "GUID", "BYTE", "BYTE[]" }; _queryParametersGridView.Columns.Add(selectColumn); var paramNameColumn = new DataGridViewTextBoxColumn(); paramNameColumn.HeaderText = "Name"; paramNameColumn.DataPropertyName = "Parameter Name"; _queryParametersGridView.Columns.Add(paramNameColumn); var paramValueColumn = new DataGridViewTextBoxColumn(); paramValueColumn.HeaderText = "Value"; paramValueColumn.DataPropertyName = "Parameter Value"; _queryParametersGridView.Columns.Add(paramValueColumn); _queryParametersGridView.DataBindings.Add("DataSource", this, "v_QueryParameters", false, DataSourceUpdateMode.OnPropertyChanged); _queryParametersControls = new List <Control>(); _queryParametersControls.Add(commandControls.CreateDefaultLabelFor("v_QueryParameters", this)); _queryParametersControls.AddRange(commandControls.CreateUIHelpersFor("v_QueryParameters", this, new Control[] { _queryParametersGridView }, editor)); CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.Name = "add_param_helper"; helperControl.CommandImage = Resources.command_database2; helperControl.CommandDisplay = "Add Parameter"; helperControl.Click += (sender, e) => AddParameter(sender, e); _queryParametersControls.Add(helperControl); _queryParametersControls.Add(_queryParametersGridView); RenderedControls.AddRange(_queryParametersControls); RenderedControls.AddRange(commandControls.CreateDefaultOutputGroupFor("v_OutputUserVariableName", this, editor)); return(RenderedControls); }
public override List <Control> Render(IfrmCommandEditor editor) { base.Render(editor); RenderedControls.AddRange(CommandControls.CreateDefaultInputGroupFor("v_InstanceName", this, editor)); CommandItemControl helperControl = new CommandItemControl(); helperControl.Padding = new Padding(10, 0, 0, 0); helperControl.ForeColor = Color.AliceBlue; helperControl.Font = new Font("Segoe UI Semilight", 10); helperControl.Name = "connection_helper"; helperControl.CommandImage = Resources.command_database2; helperControl.CommandDisplay = "Build Connection String"; helperControl.Click += (sender, e) => Button_Click(sender, e); ConnectionString = (TextBox)CommandControls.CreateDefaultInputFor("v_ConnectionString", this); var connectionLabel = CommandControls.CreateDefaultLabelFor("v_ConnectionString", this); var connectionHelpers = CommandControls.CreateUIHelpersFor("v_ConnectionString", this, new[] { ConnectionString }, editor); CommandItemControl testConnectionControl = new CommandItemControl(); testConnectionControl.Padding = new Padding(10, 0, 0, 0); testConnectionControl.ForeColor = Color.AliceBlue; testConnectionControl.Font = new Font("Segoe UI Semilight", 10); testConnectionControl.Name = "connection_helper"; testConnectionControl.CommandImage = Resources.command_database2; testConnectionControl.CommandDisplay = "Test Connection"; testConnectionControl.Click += (sender, e) => TestConnection(sender, e); RenderedControls.Add(testConnectionControl); RenderedControls.Add(connectionLabel); RenderedControls.Add(helperControl); RenderedControls.AddRange(connectionHelpers); RenderedControls.Add(testConnectionControl); RenderedControls.Add(ConnectionString); ConnectionStringPassword = (TextBox)CommandControls.CreateDefaultInputFor("v_ConnectionStringPassword", this); var connectionPassLabel = CommandControls.CreateDefaultLabelFor("v_ConnectionStringPassword", this); var connectionPassHelpers = CommandControls.CreateUIHelpersFor("v_ConnectionStringPassword", this, new[] { ConnectionStringPassword }, editor); RenderedControls.Add(connectionPassLabel); RenderedControls.AddRange(connectionPassHelpers); CommandItemControl passwordHelperControl = new CommandItemControl(); passwordHelperControl.Padding = new Padding(10, 0, 0, 0); passwordHelperControl.ForeColor = Color.AliceBlue; passwordHelperControl.Font = new Font("Segoe UI Semilight", 10); passwordHelperControl.Name = "show_pass_helper"; passwordHelperControl.CommandImage = Resources.command_password; passwordHelperControl.CommandDisplay = "Show Password"; passwordHelperControl.Click += (sender, e) => TogglePasswordChar(passwordHelperControl, e); RenderedControls.Add(passwordHelperControl); CommandItemControl encryptHelperControl = new CommandItemControl(); encryptHelperControl.Padding = new Padding(10, 0, 0, 0); encryptHelperControl.ForeColor = Color.AliceBlue; encryptHelperControl.Font = new Font("Segoe UI Semilight", 10); encryptHelperControl.Name = "show_pass_helper"; encryptHelperControl.CommandImage = Resources.command_password; encryptHelperControl.CommandDisplay = "Encrypt Password"; encryptHelperControl.Click += (sender, e) => EncryptPassword(passwordHelperControl, e); RenderedControls.Add(encryptHelperControl); var label = new Label(); label.AutoSize = true; label.Font = new Font("Segoe UI", 10, FontStyle.Regular); label.ForeColor = Color.White; label.Text = "NOTE: If storing the password in the textbox below, please ensure the connection string above contains a database-specific placeholder with #pwd to be replaced at runtime. (;Password=#pwd)"; RenderedControls.Add(label); RenderedControls.Add(ConnectionStringPassword); ConnectionStringPassword.PasswordChar = '*'; RenderedControls.AddRange(CommandControls.CreateDefaultInputGroupFor("v_TestConnection", this, editor)); return(RenderedControls); }