Пример #1
0
        public FeatDialog(Context context, Feat editFeat) : base(context)
        {
            feat = (Feat)editFeat.Clone();

            RequestWindowFeature((int)WindowFeatures.NoTitle);

            SetContentView(Resource.Layout.FeatDialog);
            SetCanceledOnTouchOutside(true);

            OKButton.Click += (sender, e) =>
            {
                Dismiss();
                FeatComplete?.Invoke(this, feat);
            };

            CancelButton.Click += (sender, e) =>
            {
                Dismiss();
            };

            NameText.AttachEditTextString(feat, "Name");
            TypesButton.AttachButtonStringList(feat, "Type", new List <string>(Feat.FeatTypes));
            PrerequisitesText.AttachEditTextString(feat, "Prerequistites");
            BenefitText.AttachEditTextString(feat, "Benefit");
            NormalText.AttachEditTextString(feat, "Normal");
            SpecialText.AttachEditTextString(feat, "Special");

            feat.PropertyChanged += Feat_PropertyChanged;

            EnableOK();
        }
Пример #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.SpellEditor);

            OKButton.Click     += OKButton_Click;
            CancelButton.Click += CancelButton_Click;

            NameText.AttachEditTextString(spell, "Name");
            MaterialText.AttachEditTextString(spell.Adjuster, "MaterialText");
            FocusText.AttachEditTextString(spell.Adjuster, "FocusText");
            DescriptionText.AttachEditTextString(spell, "description");

            DismissibleCheckbox.AttachBool(spell.Adjuster, "Dismissible");
            VerbalCheckbox.AttachBool(spell.Adjuster, "Verbal");
            SomaticCheckbox.AttachBool(spell.Adjuster, "Somatic");
            FocusCheckbox.AttachBool(spell.Adjuster, "Focus");
            DivineFocusCheckbox.AttachBool(spell.Adjuster, "DivineFocus");

            SchoolButton.AttachButtonStringList(spell, "school", Spell.Schools);
            SubschoolButton.AttachTextCombo(spell, "subschool", Spell.Subschools);
            DescriptorButton.AttachTextCombo(spell, "descriptor", Spell.Descriptors);

            CastingTimeButton.AttachTextCombo(spell, "casting_time", Spell.CastingTimeOptions);
            RangeButton.AttachTextCombo(spell, "range", Spell.RangeOptions);
            AreaButton.AttachTextCombo(spell, "area", Spell.AreaOptions);
            TargetsButton.AttachTextCombo(spell, "targets", Spell.TargetsOptions);
            DurationButton.AttachTextCombo(spell, "duration", Spell.DurationOptions);
            SavingThrowButton.AttachTextCombo(spell, "saving_throw", Spell.SavingThrowOptions);
            SpellResistanceButton.AttachTextCombo(spell, "spell_resistence", Spell.SpellResistanceOptions);


            SpellLevelListView.Adapter = new SpellLevelAdapter(this, SpellLevelListView.Context);

            AddSpellLevelButton.Click += (sender, e) =>
            {
                var avList = from className in Spell.SpellAdjuster.Classes.Values
                             where !spell.Adjuster.ContainsClass(className)
                             select className;

                List <string> availableLevels = new List <string>();
                availableLevels.AddRange(avList);
                availableLevels.Sort();

                UIUtils.ShowListPopover(AddSpellLevelButton, "Class", availableLevels, (item) =>
                {
                    String newClass = availableLevels[item];
                    var lai         = new Spell.SpellAdjuster.LevelAdjusterInfo()
                    {
                        Class = newClass, Level = 1
                    };
                    spell.Adjuster.Levels.Add(lai);

                    SpellLevelListView.Adapter = new SpellLevelAdapter(this, SpellLevelListView.Context);
                });
            };

            spell.PropertyChanged += (sender, e) =>
            {
                UpdateOK();
            };
            spell.Adjuster.PropertyChanged += (sender, e) =>
            {
                UpdateOK();
            };

            UpdateOK();
        }