public void AddDataProperty(DataPropertyDefinition dataDef)
{
if (dataDef.IsAutoGenerated || dataDef.ReadOnly)
return;
DataGridViewRow row = new DataGridViewRow();
DataGridViewTextBoxCell nameCell = new DataGridViewTextBoxCell();
nameCell.Value = dataDef.Name;
nameCell.ToolTipText = "Type: " + dataDef.DataType;
nameCell.Tag = dataDef;
DataGridViewCell valueCell = null;
if (dataDef.ValueConstraint != null && dataDef.ValueConstraint.ConstraintType == PropertyValueConstraintType.PropertyValueConstraintType_List)
{
PropertyValueConstraintList list = (dataDef.ValueConstraint as PropertyValueConstraintList);
DataGridViewComboBoxCell cc = new DataGridViewComboBoxCell();
List<string> values = new List<string>();
foreach (DataValue value in list.ConstraintList)
{
values.Add(value.ToString());
}
cc.DataSource = values;
valueCell = cc;
}
else
{
switch (dataDef.DataType)
{
case DataType.DataType_BLOB:
{
DataGridViewTextBoxCell tc = new DataGridViewTextBoxCell();
tc.MaxInputLength = dataDef.Length;
valueCell = tc;
}
break;
case DataType.DataType_Boolean:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Byte:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_CLOB:
{
DataGridViewTextBoxCell tc = new DataGridViewTextBoxCell();
tc.MaxInputLength = dataDef.Length;
valueCell = tc;
}
break;
case DataType.DataType_DateTime:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Decimal:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Double:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Int16:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Int32:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Int64:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_Single:
valueCell = new DataGridViewTextBoxCell();
break;
case DataType.DataType_String:
{
DataGridViewTextBoxCell tc = new DataGridViewTextBoxCell();
tc.MaxInputLength = dataDef.Length;
valueCell = tc;
}
break;
}
}
valueCell.Style.BackColor = dataDef.Nullable ? Color.YellowGreen : Color.White;
valueCell.Value = dataDef.DefaultValue;
valueCell.ToolTipText = dataDef.Description;
DataGridViewCheckBoxCell ecell = new DataGridViewCheckBoxCell(false);
ecell.Value = true;
DataGridViewCheckBoxCell ncell = new DataGridViewCheckBoxCell(false);
ncell.Value = false;
row.Cells.Add(ecell);
row.Cells.Add(ncell);
row.Cells.Add(nameCell);
row.Cells.Add(valueCell);
nameCell.ReadOnly = true;
grdProperties.Rows.Add(row);
}