protected override void WriteDataGridColumnInitialization() { List <ColumnValidation> validationColumns = GetValidationColumns(); Writer.PushIdentationLevel(); Writer.IncreaseIdentation(); Writer.IncreaseIdentation(); Writer.IncreaseIdentation(); Writer.WriteLine("dataGridView1.AutoGenerateColumns = false;"); Writer.WriteLine("string strConn2 = \"{0};\";", ConnectionString); Writer.WriteLine("MySql.Data.MySqlClient.MySqlDataAdapter ad2 = null;"); for (int i = 0; i < validationColumns.Count; i++) { ColumnValidation cv = validationColumns[i]; string idColumnCanonical = GetCanonicalIdentifier(cv.Column.ColumnName); if (cv.IsBooleanType()) { Writer.WriteLine("System.Windows.Forms.DataGridViewCheckBoxColumn col{0} = new System.Windows.Forms.DataGridViewCheckBoxColumn();", idColumnCanonical); Writer.WriteLine("col{0}.DataPropertyName = \"{1}\";", idColumnCanonical, cv.EfColumnMapping); Writer.WriteLine("col{0}.HeaderText = \"{1}\";", idColumnCanonical, cv.Name); Writer.WriteLine("col{0}.Name = \"col{0}\";", idColumnCanonical); Writer.WriteLine("dataGridView1.Columns.Add(col{0});", idColumnCanonical); } else if (cv.HasLookup) { Writer.WriteLine("System.Windows.Forms.DataGridViewComboBoxColumn col{0} = new System.Windows.Forms.DataGridViewComboBoxColumn();", idColumnCanonical); Writer.WriteLine("col{0}.DataSource = {1};", idColumnCanonical, GetDataSourceForCombo(cv)); Writer.WriteLine("col{0}.DataPropertyName = \"{1}\";", idColumnCanonical, cv.EfColumnMapping); Writer.WriteLine("col{0}.DisplayMember = \"{1}\";", idColumnCanonical, cv.EfLookupColumnMapping); Writer.WriteLine("col{0}.ValueMember = \"{1}\";", idColumnCanonical, cv.FkInfo.ReferencedColumnName); Writer.WriteLine("col{0}.HeaderText = \"{0}\";", idColumnCanonical); Writer.WriteLine("col{0}.Name = \"col{0}\";", idColumnCanonical); Writer.WriteLine("col{0}.ToolTipText = \"Pick the column from the foreign table to use as friendly value for this lookup.\";", idColumnCanonical); Writer.WriteLine("dataGridView1.Columns.Add(col{0});", idColumnCanonical); } else if (cv.IsDateType()) { Writer.WriteLine("MyDateTimePickerColumn col{0} = new MyDateTimePickerColumn();", idColumnCanonical); Writer.WriteLine("col{0}.DataPropertyName = \"{1}\";", idColumnCanonical, cv.EfColumnMapping); Writer.WriteLine("col{0}.HeaderText = \"{1}\";", idColumnCanonical, cv.Name); Writer.WriteLine("col{0}.Name = \"col{0}\";", idColumnCanonical); Writer.WriteLine("dataGridView1.Columns.Add(col{0});", idColumnCanonical); } else { Writer.WriteLine("System.Windows.Forms.DataGridViewTextBoxColumn col{0} = new System.Windows.Forms.DataGridViewTextBoxColumn();", idColumnCanonical); Writer.WriteLine("col{0}.DataPropertyName = \"{1}\";", idColumnCanonical, cv.EfColumnMapping); Writer.WriteLine("col{0}.HeaderText = \"{1}\";", idColumnCanonical, cv.Name); Writer.WriteLine("col{0}.Name = \"col{0}\";", idColumnCanonical); if (cv.MaxLength.HasValue) { Writer.WriteLine("col{0}.MaxInputLength = {1};", idColumnCanonical, cv.MaxLength.Value); } if (cv.IsReadOnly()) { Writer.WriteLine("col{0}.ReadOnly = true;", idColumnCanonical); Writer.WriteLine("col{0}.DefaultCellStyle.BackColor = Color.LightGray;", idColumnCanonical); } Writer.WriteLine("dataGridView1.Columns.Add(col{0});", idColumnCanonical); } } Writer.PopIdentationLevel(); }
protected override void WriteControlInitialization(bool addBindings) { Label l = new Label(); Size szText = TextRenderer.MeasureText(GetMaxWidthString(Columns), l.Font); Point initLoc = new Point(szText.Width + 10 + 50, 50); Point xy = new Point(initLoc.X, initLoc.Y); bool passedHalve = false; int tabIdx = 1; bool validationsEnabled = ValidationsEnabled; int i = 0; Writer.PushIdentationLevel(); Writer.IncreaseIdentation(); Writer.IncreaseIdentation(); Writer.IncreaseIdentation(); for (int j = 0; j < ValidationColumns.Count; j++) { ColumnValidation cv = ValidationColumns[j]; string colName = cv.Name; string idColumnCanonical = GetCanonicalIdentifier(colName); // Place half the column input in one column and the other in the second column. if (!passedHalve && ++i > (Columns.Count / 2)) { passedHalve = true; xy.X += 200 + 20 + szText.Width; xy.Y = initLoc.Y; } Writer.WriteLine("//"); Writer.WriteLine("// {0}Label", idColumnCanonical); Writer.WriteLine("//"); Writer.WriteLine("this.{0}Label = new System.Windows.Forms.Label();", idColumnCanonical); Writer.WriteLine("this.{0}Label.AutoSize = true;", idColumnCanonical); Size szLabel = TextRenderer.MeasureText(colName, l.Font); Writer.WriteLine("this.{0}Label.Location = new System.Drawing.Point( {1}, {2} );", idColumnCanonical, xy.X - 10 - szLabel.Width, xy.Y); Writer.WriteLine("this.{0}Label.Name = \"{0}Label\";", idColumnCanonical); Writer.WriteLine("this.{0}Label.Size = new System.Drawing.Size( {1}, {2} );", idColumnCanonical, szLabel.Width, szLabel.Height); Writer.WriteLine("this.{0}Label.TabIndex = {1};", idColumnCanonical, tabIdx++); Writer.WriteLine("this.{0}Label.Text = \"{1}\";", idColumnCanonical, colName); Writer.WriteLine("this.Panel1.Controls.Add( this.{0}Label );", idColumnCanonical); if (cv.HasLookup) { Writer.WriteLine("this.{0}_comboBox = new System.Windows.Forms.ComboBox();", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.Location = new System.Drawing.Point( {1}, {2} );", idColumnCanonical, xy.X, xy.Y); //Writer.WriteLine("this.{0}_comboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.FormattingEnabled = true;", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.Name = \"{0}_comboBox\";", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.Size = new System.Drawing.Size(206, 21);", idColumnCanonical); Writer.WriteLine("this.{0}_comboBox.TabIndex = {1};", idColumnCanonical, tabIdx++); if (validationsEnabled) { Writer.WriteLine("this.{0}_comboBox.Validating += new System.ComponentModel.CancelEventHandler( this.{0}_comboBox_Validating );", idColumnCanonical); } if (addBindings) { // nothing } Writer.WriteLine("this.Panel1.Controls.Add( this.{0}_comboBox );", idColumnCanonical); } else if (cv.IsDateType()) { Writer.WriteLine("//"); Writer.WriteLine("// {0}_dateTimePicker", idColumnCanonical); Writer.WriteLine("//"); Writer.WriteLine("this.{0}_dateTimePicker = new System.Windows.Forms.DateTimePicker();", idColumnCanonical); if (cv.IsDateTimeType()) { Writer.WriteLine("this.{0}_dateTimePicker.CustomFormat = \"dd/MM/yyyy, hh:mm\"; ", idColumnCanonical); } else { Writer.WriteLine("this.{0}_dateTimePicker.CustomFormat = \"dd/MM/yyyy\"; ", idColumnCanonical); } Writer.WriteLine("this.{0}_dateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;", idColumnCanonical); Writer.WriteLine("this.{0}_dateTimePicker.Location = new System.Drawing.Point({1}, {2});", idColumnCanonical, xy.X, xy.Y); Writer.WriteLine("this.{0}_dateTimePicker.Name = \"{0}_dateTimePicker\";", idColumnCanonical); Writer.WriteLine("this.{0}_dateTimePicker.Size = new System.Drawing.Size(200, 20);", idColumnCanonical); Writer.WriteLine("this.{0}_dateTimePicker.TabIndex = {1};", idColumnCanonical, tabIdx++); Writer.WriteLine("this.{0}_dateTimePicker.Value = new System.DateTime(2014, 5, 26, 17, 35, 11, 0);", idColumnCanonical); if (addBindings) { Writer.WriteLine("this.{0}_dateTimePicker.DataBindings.Add(new System.Windows.Forms.Binding(\"Text\", this.{2}BindingSource, \"{1}\", true ));", idColumnCanonical, cv.EfColumnMapping, CanonicalTableName); } Writer.WriteLine("this.Panel1.Controls.Add( this.{0}_dateTimePicker );", idColumnCanonical); } else if (cv.IsBooleanType()) { Writer.WriteLine("//"); Writer.WriteLine("//{0}CheckBox", idColumnCanonical); Writer.WriteLine("//"); Writer.WriteLine("this.{0}CheckBox = new System.Windows.Forms.CheckBox();", idColumnCanonical); Writer.WriteLine("this.{0}CheckBox.AutoSize = true;", idColumnCanonical); Writer.WriteLine("this.{0}CheckBox.Location = new System.Drawing.Point({1}, {2});", idColumnCanonical, xy.X, xy.Y + 3); Writer.WriteLine("this.{0}CheckBox.Name = \"{0}CheckBox\";", idColumnCanonical); Writer.WriteLine("this.{0}CheckBox.Size = new System.Drawing.Size(15, 14);", idColumnCanonical); Writer.WriteLine("this.{0}CheckBox.TabIndex = {1};", idColumnCanonical, tabIdx++); Writer.WriteLine("this.{0}CheckBox.UseVisualStyleBackColor = true;", idColumnCanonical); Writer.WriteLine("this.Panel1.Controls.Add( this.{0}CheckBox );", idColumnCanonical); if (addBindings) { Writer.WriteLine("this.{0}CheckBox.DataBindings.Add(new System.Windows.Forms.Binding(\"Checked\", this.{2}BindingSource, \"{1}\", true));", idColumnCanonical, cv.EfColumnMapping, CanonicalTableName); } } else { Writer.WriteLine("//"); Writer.WriteLine("// {0}TextBox", idColumnCanonical); Writer.WriteLine("//"); Writer.WriteLine("this.{0}TextBox = new System.Windows.Forms.TextBox();", idColumnCanonical); if (addBindings) { Writer.WriteLine("this.{0}TextBox.DataBindings.Add(new System.Windows.Forms.Binding(\"Text\", this.{2}BindingSource, \"{1}\", true ));", idColumnCanonical, cv.EfColumnMapping, CanonicalTableName); } Writer.WriteLine("this.{0}TextBox.Location = new System.Drawing.Point( {1}, {2} );", idColumnCanonical, xy.X, xy.Y); Writer.WriteLine("this.{0}TextBox.Name = \"{0}TextBox\";", idColumnCanonical); Writer.WriteLine("this.{0}TextBox.Size = new System.Drawing.Size( {1}, {2} );", idColumnCanonical, 100, 20); Writer.WriteLine("this.{0}TextBox.TabIndex = {1};", idColumnCanonical, tabIdx++); if (cv.MaxLength.HasValue) { Writer.WriteLine("this.{0}TextBox.MaxLength = {1};", idColumnCanonical, cv.MaxLength.Value); } if (cv.IsReadOnly()) { Writer.WriteLine("this.{0}TextBox.Enabled = false;", idColumnCanonical); } else if (validationsEnabled) { Writer.WriteLine("this.{0}TextBox.Validating += new System.ComponentModel.CancelEventHandler( this.{0}TextBox_Validating );", idColumnCanonical); } Writer.WriteLine("this.Panel1.Controls.Add( this.{0}TextBox);", idColumnCanonical); } xy.Y += szText.Height * 2; } Writer.PopIdentationLevel(); }
protected override void WriteValidationCode() { bool validationsEnabled = ValidationsEnabled; List <ColumnValidation> validationColumns = ValidationColumns; Writer.PushIdentationLevel(); Writer.IncreaseIdentation(); Writer.IncreaseIdentation(); if (validationsEnabled) { for (int i = 0; i < validationColumns.Count; i++) { ColumnValidation cv = validationColumns[i]; if (cv.IsDateType() || cv.IsReadOnly() || cv.IsBooleanType()) { continue; } string idColumnCanonical = GetCanonicalIdentifier(cv.Column.ColumnName); if (cv.HasLookup && cv.Required) { Writer.WriteLine("private void {0}_comboBox_Validating(object sender, CancelEventArgs e)", idColumnCanonical); Writer.WriteLine("{"); Writer.WriteLine("int i = {0}_comboBox.SelectedIndex;", idColumnCanonical); Writer.WriteLine("e.Cancel = false;"); Writer.WriteLine("if( i == -1 )"); Writer.WriteLine("{"); Writer.WriteLine("e.Cancel = true; "); Writer.WriteLine("errorProvider1.SetError({0}_comboBox, \"Must select a {0}\");", idColumnCanonical); Writer.WriteLine("}"); Writer.WriteLine("if( !e.Cancel )"); Writer.WriteLine("{"); Writer.WriteLine("errorProvider1.SetError({0}_comboBox, \"\");", idColumnCanonical); Writer.WriteLine("}"); Writer.WriteLine("}"); continue; } Writer.WriteLine("private void {0}TextBox_Validating(object sender, CancelEventArgs e)", idColumnCanonical); Writer.WriteLine("{"); Writer.WriteLine("e.Cancel = false;"); if (cv.Required) { Writer.WriteLine("if( string.IsNullOrEmpty( {0}TextBox.Text ) )", idColumnCanonical); Writer.WriteLine("{"); Writer.WriteLine("e.Cancel = true;"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} is required\" ); ", idColumnCanonical, cv.Name); Writer.WriteLine("}"); } if (cv.IsNumericType()) { string numericType = ""; if (cv.IsIntegerType()) { numericType = "int"; } else if (cv.IsFloatingPointType()) { numericType = "double"; } Writer.WriteLine("{0} v;", numericType); Writer.WriteLine("string s = {0}TextBox.Text;", idColumnCanonical); if (!string.IsNullOrEmpty(numericType)) { Writer.WriteLine("if( !{0}.TryParse( s, out v ) )", numericType); Writer.WriteLine("{"); } else { // just assume is good Writer.WriteLine("if( true )"); Writer.WriteLine("{"); } Writer.WriteLine("e.Cancel = true;"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} must be {2}.\" );", idColumnCanonical, cv.Name, numericType); Writer.WriteLine("}"); if (cv.MinValue != null) { Writer.WriteLine("else if( {0} > v )", cv.MinValue); Writer.WriteLine("{"); Writer.WriteLine("e.Cancel = true;"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} must be greater or equal than {2}.\" );", idColumnCanonical, cv.Name, cv.MinValue); Writer.WriteLine("}"); } if (cv.MaxValue != null) { Writer.WriteLine("else if( {0} < v )", cv.MaxValue); Writer.WriteLine("{"); Writer.WriteLine("e.Cancel = true;"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} must be lesser or equal than {2}\" );", idColumnCanonical, cv.Name, cv.MaxValue); Writer.WriteLine("} "); } } Writer.WriteLine("if( !e.Cancel ) {{ errorProvider1.SetError( {0}TextBox, \"\" ); }} ", idColumnCanonical); Writer.WriteLine("}"); Writer.WriteLine(); } } Writer.PopIdentationLevel(); }
protected override void WriteValidationCode() { bool validationsEnabled = ValidationsEnabled; List <ColumnValidation> validationColumns = ValidationColumns; Writer.PushIdentationLevel(); Writer.IncreaseIdentation(); Writer.IncreaseIdentation(); if (validationsEnabled) { for (int i = 0; i < validationColumns.Count; i++) { ColumnValidation cv = validationColumns[i]; if (cv.IsDateType() || cv.IsReadOnly() || cv.IsBooleanType()) { continue; } string idColumnCanonical = GetCanonicalIdentifier(cv.Column.ColumnName); if (cv.HasLookup && cv.Required) { Writer.WriteLine("Private Sub {0}_comboBox_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs)", idColumnCanonical); Writer.WriteLine("Dim i As Integer = {0}_comboBox.SelectedIndex", idColumnCanonical); Writer.WriteLine("e.Cancel = False"); Writer.WriteLine("If i = -1 Then"); Writer.WriteLine("e.Cancel = True"); Writer.WriteLine("errorProvider1.SetError({0}_comboBox, \"Must select a {0}\")", idColumnCanonical); Writer.WriteLine("End If"); Writer.WriteLine("If Not e.Cancel Then"); Writer.WriteLine("errorProvider1.SetError({0}_comboBox, \"\")", idColumnCanonical); Writer.WriteLine("End If"); Writer.WriteLine("End Sub"); continue; } Writer.WriteLine("Private Sub {0}TextBox_Validating(sender As Object, e As CancelEventArgs)", idColumnCanonical); Writer.WriteLine(""); Writer.WriteLine("e.Cancel = False"); if (cv.Required) { Writer.WriteLine("If String.IsNullOrEmpty( {0}TextBox.Text ) Then ", idColumnCanonical); Writer.WriteLine("e.Cancel = True"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} is required\" ) ", idColumnCanonical, cv.Name); Writer.WriteLine("End If"); } if (cv.IsNumericType()) { string numericType = ""; if (cv.IsIntegerType()) { numericType = "Integer"; } else if (cv.IsFloatingPointType()) { numericType = "Double"; } Writer.WriteLine("Dim v As {0}", numericType); Writer.WriteLine("Dim s As string = {0}TextBox.Text", idColumnCanonical); if (!string.IsNullOrEmpty(numericType)) { Writer.WriteLine("If Not {0}.TryParse( s, v ) Then", numericType); } else { // just assume is good Writer.WriteLine("If True Then"); } Writer.WriteLine("e.Cancel = True"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} must be {2}.\" )", idColumnCanonical, cv.Name, numericType); if (cv.MinValue != null) { Writer.WriteLine("ElseIf {0} > v Then ", cv.MinValue); Writer.WriteLine("e.Cancel = True"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} must be greater or equal than {2}.\" )", idColumnCanonical, cv.Name, cv.MinValue); } if (cv.MaxValue != null) { Writer.WriteLine("ElseIf {0} < v Then ", cv.MaxValue); Writer.WriteLine("e.Cancel = True"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"The field {1} must be lesser or equal than {2}\" )", idColumnCanonical, cv.Name, cv.MaxValue); } Writer.WriteLine("End If"); } Writer.WriteLine("If Not e.Cancel Then"); Writer.WriteLine("errorProvider1.SetError( {0}TextBox, \"\" )", idColumnCanonical); Writer.WriteLine("End If"); Writer.WriteLine("End Sub"); Writer.WriteLine(); } } Writer.PopIdentationLevel(); }