ObjectEditor.frmMain.SetCustomTabPage C# (CSharp) Method

SetCustomTabPage() public method

public SetCustomTabPage ( ItemProto &Prot, TabPage Page, bool ToUI ) : void
Prot ItemProto
Page System.Windows.Forms.TabPage
ToUI bool
return void
        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);
                        }
                    }
                }
            }
        }