void SetCustomTabPage(ref ItemProto Prot, TabPage Page, bool ToUI)
{
foreach (Control Ctrl in Page.Controls)
{
if (Ctrl is NumericUpDown)
{
NumericUpDown Num = (NumericUpDown)Ctrl;
FieldObject FieldData;
FieldData = (FieldObject)Num.Tag;
if (FieldData == null)
continue;
if (ToUI)
{
Num.Value = 0;
if (Prot.CustomFields.ContainsKey(FieldData.CustomFieldName))
{
if (Prot.CustomFields[FieldData.CustomFieldName].Value is Decimal)
Num.Value = (decimal)Prot.CustomFields[FieldData.CustomFieldName].Value;
if (Prot.CustomFields[FieldData.CustomFieldName].Value is int)
Num.Value = (int)Prot.CustomFields[FieldData.CustomFieldName].Value;
if (Prot.CustomFields[FieldData.CustomFieldName].Value is uint)
Num.Value = (uint)Prot.CustomFields[FieldData.CustomFieldName].Value;
if (Prot.CustomFields[FieldData.CustomFieldName].Value is UInt16)
Num.Value = (UInt16)Prot.CustomFields[FieldData.CustomFieldName].Value;
if (Prot.CustomFields[FieldData.CustomFieldName].Value is Int16)
Num.Value = (Int16)Prot.CustomFields[FieldData.CustomFieldName].Value;
if (Prot.CustomFields[FieldData.CustomFieldName].Value is SByte)
Num.Value = (SByte)Prot.CustomFields[FieldData.CustomFieldName].Value;
}
}
else
{
if (Prot.CustomFields.ContainsKey(FieldData.CustomFieldName))
Prot.CustomFields[FieldData.CustomFieldName].Value = Num.Value;
if (Num.Value != 0 && !Prot.CustomFields.ContainsKey(FieldData.CustomFieldName))
{
ItemProtoCustomField NewField = new ItemProtoCustomField(FieldData.CustomFieldName, FOCommon.Utils.GetTypeFromString(FieldData.DataType));
NewField.Value = Num.Value;
Prot.CustomFields.Add(FieldData.CustomFieldName, NewField);
}
}
}
else if (Ctrl is CheckBox)
{
CheckBox Chk = (CheckBox)Ctrl;
FieldObject FieldData;
FieldData = (FieldObject)Chk.Tag;
if (FieldData == null)
continue;
if (ToUI)
{
if (Prot.CustomFields.ContainsKey(FieldData.CustomFieldName) && Prot.CustomFields[FieldData.CustomFieldName].Value is bool)
Chk.Checked = (bool)Prot.CustomFields[FieldData.CustomFieldName].Value;
else
Chk.Checked = false;
}
else
{
if (Prot.CustomFields.ContainsKey(FieldData.CustomFieldName))
Prot.CustomFields[FieldData.CustomFieldName].Value = Chk.Checked;
if (Chk.Checked && !Prot.CustomFields.ContainsKey(FieldData.CustomFieldName))
{
ItemProtoCustomField NewField = new ItemProtoCustomField(FieldData.CustomFieldName, FOCommon.Utils.GetTypeFromString(FieldData.DataType));
NewField.Value = true;
Prot.CustomFields.Add(FieldData.CustomFieldName, NewField);
}
}
}
}
}