void ReleaseDesignerOutlets()
        {
            if (AddSkillButton != null)
            {
                AddSkillButton.Dispose();
                AddSkillButton = null;
            }

            if (AuraButton != null)
            {
                AuraButton.Dispose();
                AuraButton = null;
            }

            if (AvailableSkillsTable != null)
            {
                AvailableSkillsTable.Dispose();
                AvailableSkillsTable = null;
            }

            if (BaseAtkButton != null)
            {
                BaseAtkButton.Dispose();
                BaseAtkButton = null;
            }

            if (BaseView != null)
            {
                BaseView.Dispose();
                BaseView = null;
            }

            if (CMBButton != null)
            {
                CMBButton.Dispose();
                CMBButton = null;
            }

            if (CMDButton != null)
            {
                CMDButton.Dispose();
                CMDButton = null;
            }

            if (DescriptionView != null)
            {
                DescriptionView.Dispose();
                DescriptionView = null;
            }

            if (GearButton != null)
            {
                GearButton.Dispose();
                GearButton = null;
            }

            if (KnownSkillsTable != null)
            {
                KnownSkillsTable.Dispose();
                KnownSkillsTable = null;
            }

            if (LanguagesButton != null)
            {
                LanguagesButton.Dispose();
                LanguagesButton = null;
            }

            if (ModView != null)
            {
                ModView.Dispose();
                ModView = null;
            }

            if (RacialModsButton != null)
            {
                RacialModsButton.Dispose();
                RacialModsButton = null;
            }

            if (SkillDetailButton != null)
            {
                SkillDetailButton.Dispose();
                SkillDetailButton = null;
            }

            if (SkillDetailSelectButton != null)
            {
                SkillDetailSelectButton.Dispose();
                SkillDetailSelectButton = null;
            }

            if (SkillsView != null)
            {
                SkillsView.Dispose();
                SkillsView = null;
            }

            if (SQButton != null)
            {
                SQButton.Dispose();
                SQButton = null;
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            _AreaViews = new List <GradientView>()
            {
                BaseView, ModView, DescriptionView, SkillsView
            };
            foreach (GradientView v in _AreaViews)
            {
                StylePanel(v);
            }



            ButtonPropertyManager pm;

            pm = new ButtonPropertyManager(BaseAtkButton, DialogParent, CurrentMonster, "BaseAtk")
            {
                Title = "Base Attack Bonus"
            };
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(CMBButton, DialogParent, CurrentMonster, "CMB_Numeric")
            {
                Title = "CMD"
            };
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(CMDButton, DialogParent, CurrentMonster, "CMD_Numeric")
            {
                Title = "CMB"
            };
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(RacialModsButton, DialogParent, CurrentMonster, "RacialMods");
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(AuraButton, DialogParent, CurrentMonster, "Aura");
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(SQButton, DialogParent, CurrentMonster, "SQ")
            {
                Multiline = true, Title = "Special Qualities"
            };
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(LanguagesButton, DialogParent, CurrentMonster, "Languages")
            {
                Multiline = true
            };
            _Managers.Add(pm);
            pm = new ButtonPropertyManager(GearButton, DialogParent, CurrentMonster, "Gear")
            {
                Multiline = true
            };
            _Managers.Add(pm);

            CMStyles.TextFieldStyle(SkillDetailButton);
            SkillDetailButton.TouchUpInside += HandleSkillDetailClicked;

            _SkillDetailPopover = new ButtonStringPopover(SkillDetailSelectButton);
            _SkillDetailPopover.WillShowPopover += HandleWillShowDetailPopover;
            _SkillDetailPopover.ItemClicked     += HandleSkillDetailItemClicked;


            SkillDetailSelectButton.SetImage(UIExtensions.GetSmallIcon("prev"), UIControlState.Normal);

            foreach (GradientButton b in from x in _Managers select x.Button)
            {
                CMStyles.TextFieldStyle(b, 15f);
            }

            AvailableSkillsTable.DataSource = new AvailableViewDataSource(this);
            AvailableSkillsTable.Delegate   = new AvailableViewDelegate(this);
            AvailableSkillsTable.RowHeight  = 24;

            KnownSkillsTable.DataSource = new KnownViewDataSource(this);
            KnownSkillsTable.Delegate   = new KnownViewDelegate(this);
            KnownSkillsTable.RowHeight  = 24;

            UpdateSelectableSkills();

            AddSkillButton.TouchUpInside += AddSkillButtonClicked;
        }