private void LoadDebugTab(TabPage debugTab) { if (InvokeRequired) { var d = new LoadDebugTabDelegate(LoadDebugTab); Invoke(d, new object[] { debugTab }); } else { DataTable variableValues = new DataTable(); variableValues.Columns.Add("Name"); variableValues.Columns.Add("Type"); variableValues.Columns.Add("Value"); variableValues.TableName = "VariableValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss"); DataGridView variablesGridViewHelper = new DataGridView(); variablesGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; variablesGridViewHelper.Dock = DockStyle.Fill; variablesGridViewHelper.ColumnHeadersHeight = 30; variablesGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; variablesGridViewHelper.AllowUserToAddRows = false; variablesGridViewHelper.AllowUserToDeleteRows = false; variablesGridViewHelper.ReadOnly = true; if (debugTab.Controls.Count != 0) { debugTab.Controls.RemoveAt(0); } debugTab.Controls.Add(variablesGridViewHelper); List <ScriptVariable> engineVariables = ((frmScriptEngine)CurrentEngine).EngineInstance.VariableList; foreach (var variable in engineVariables) { DataRow[] foundVariables = variableValues.Select("Name = '" + variable.VariableName + "'"); if (foundVariables.Length == 0) { string type = "null"; if (variable.VariableValue != null) { type = variable.VariableValue.GetType().FullName; } variableValues.Rows.Add(variable.VariableName, type, StringMethods.ConvertObjectToString(variable.VariableValue)); } } variablesGridViewHelper.DataSource = variableValues; uiPaneTabs.SelectedTab = debugTab; } }
private void LoadDebugTab(TabPage debugTab) { if (InvokeRequired) { var d = new LoadDebugTabDelegate(LoadDebugTab); Invoke(d, new object[] { debugTab }); } else { DataTable variableValues = new DataTable(); variableValues.Columns.Add("Name"); variableValues.Columns.Add("Type"); variableValues.Columns.Add("Value"); variableValues.TableName = "VariableValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss"); DataGridView variablesGridViewHelper = new DataGridView(); variablesGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; variablesGridViewHelper.Dock = DockStyle.Fill; variablesGridViewHelper.ColumnHeadersHeight = 30; variablesGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; variablesGridViewHelper.AllowUserToAddRows = false; variablesGridViewHelper.AllowUserToDeleteRows = false; if (debugTab.Controls.Count != 0) { debugTab.Controls.RemoveAt(0); } debugTab.Controls.Add(variablesGridViewHelper); List <ScriptVariable> engineVariables = ((frmScriptEngine)CurrentEngine).EngineInstance.VariableList; foreach (var variable in engineVariables) { DataRow[] foundVariables = variableValues.Select("Name = '" + variable.VariableName + "'"); if (foundVariables.Length == 0) { var type = variable.VariableValue.GetType().ToString(); switch (variable.VariableValue.GetType().ToString()) { case "System.String": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, variable.VariableValue); break; case "System.Security.SecureString": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, "*Secure String*"); break; case "System.Data.DataTable": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, ConvertDataTableToString((DataTable)variable.VariableValue)); break; case "System.Data.DataRow": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, ConvertDataRowToString((DataRow)variable.VariableValue)); break; case "System.__ComObject": variableValues.Rows.Add(variable.VariableName, "Microsoft.Office.Interop.Outlook.MailItem", ConvertMailItemToString((MailItem)variable.VariableValue)); break; case "MimeKit.MimeMessage": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, ConvertMimeMessageToString((MimeMessage)variable.VariableValue)); break; case "OpenQA.Selenium.Remote.RemoteWebElement": variableValues.Rows.Add(variable.VariableName, "OpenQA.Selenium.IWebElement", ConvertIWebElementToString((IWebElement)variable.VariableValue)); break; case "System.Drawing.Bitmap": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, ConvertBitmapToString((Bitmap)variable.VariableValue)); break; case "System.Collections.Generic.List`1[System.String]": case "System.Collections.Generic.List`1[System.Data.DataTable]": case "System.Collections.Generic.List`1[Microsoft.Office.Interop.Outlook.MailItem]": case "System.Collections.Generic.List`1[MimeKit.MimeMessage]": case "System.Collections.Generic.List`1[OpenQA.Selenium.IWebElement]": variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, ConvertListToString(variable.VariableValue)); break; default: variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName, "*Type Not Yet Supported*"); break; } } } variablesGridViewHelper.DataSource = variableValues; uiPaneTabs.SelectedTab = debugTab; } }
private void LoadDebugTab(TabPage debugTab) { if (InvokeRequired) { var d = new LoadDebugTabDelegate(LoadDebugTab); Invoke(d, new object[] { debugTab }); } else { DataTable variableValues = new DataTable(); variableValues.Columns.Add("Name"); variableValues.Columns.Add("Type"); variableValues.Columns.Add("Value"); variableValues.TableName = "VariableValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss"); DataGridView variableGridViewHelper = new DataGridView(); variableGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; variableGridViewHelper.AutoSize = true; variableGridViewHelper.Dock = DockStyle.Fill; variableGridViewHelper.ColumnHeadersHeight = 30; variableGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; variableGridViewHelper.AllowUserToAddRows = false; variableGridViewHelper.AllowUserToDeleteRows = false; variableGridViewHelper.ReadOnly = true; variableGridViewHelper.CellContentDoubleClick += DebugGridViewHelper_CellContentDoubleClick; variableGridViewHelper.BorderStyle = BorderStyle.None; DataTable argumentValues = new DataTable(); argumentValues.Columns.Add("Name"); argumentValues.Columns.Add("Type"); argumentValues.Columns.Add("Value"); argumentValues.Columns.Add("Direction"); argumentValues.TableName = "ArgumentValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss"); DataGridView argumentGridViewHelper = new DataGridView(); argumentGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; argumentGridViewHelper.AutoSize = true; argumentGridViewHelper.Dock = DockStyle.Fill; argumentGridViewHelper.ColumnHeadersHeight = 30; argumentGridViewHelper.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; argumentGridViewHelper.AllowUserToAddRows = false; argumentGridViewHelper.AllowUserToDeleteRows = false; argumentGridViewHelper.ReadOnly = true; argumentGridViewHelper.CellContentDoubleClick += DebugGridViewHelper_CellContentDoubleClick; argumentGridViewHelper.BorderStyle = BorderStyle.None; if (debugTab.Controls[0].Controls.Count != 0) { debugTab.Controls[0].Controls.Clear(); } Label variableLabel = new Label(); variableLabel.Text = "Variables"; variableLabel.ForeColor = Color.White; Label argumentLabel = new Label(); argumentLabel.Text = "Arguments"; argumentLabel.ForeColor = Color.White; debugTab.Controls[0].Controls.Add(variableLabel); debugTab.Controls[0].Controls.Add(variableGridViewHelper); debugTab.Controls[0].Controls.Add(argumentLabel); debugTab.Controls[0].Controls.Add(argumentGridViewHelper); List <ScriptVariable> engineVariables = ((frmScriptEngine)CurrentEngine).EngineInstance.AutomationEngineContext.Variables; foreach (var variable in engineVariables) { DataRow[] foundVariables = variableValues.Select("Name = '" + variable.VariableName + "'"); if (foundVariables.Length == 0) { string type = variable.VariableType.FullName; if (variable.VariableValue != null && StringMethods.ConvertObjectToString(variable.VariableValue, variable.VariableType).Length > 40000) { variableValues.Rows.Add(variable.VariableName, type, StringMethods.ConvertObjectToString(variable.VariableValue, variable.VariableType).Substring(0, 40000)); } else { variableValues.Rows.Add(variable.VariableName, type, StringMethods.ConvertObjectToString(variable.VariableValue, variable.VariableType)); } } } List <ScriptArgument> engineArguments = ((frmScriptEngine)CurrentEngine).EngineInstance.AutomationEngineContext.Arguments; foreach (var argument in engineArguments) { DataRow[] foundArguments = argumentValues.Select("Name = '" + argument.ArgumentName + "'"); if (foundArguments.Length == 0) { string type = argument.ArgumentType.FullName; argumentValues.Rows.Add(argument.ArgumentName, type, StringMethods.ConvertObjectToString(argument.ArgumentValue, argument.ArgumentType), argument.Direction.ToString()); } } variableGridViewHelper.DataSource = variableValues; argumentGridViewHelper.DataSource = argumentValues; uiPaneTabs.SelectedTab = debugTab; variableGridViewHelper.Sort(variableGridViewHelper.Columns["Name"], ListSortDirection.Ascending); argumentGridViewHelper.Sort(argumentGridViewHelper.Columns["Name"], ListSortDirection.Ascending); } }