private void SaveSpellToolStripMenuItem_Click(object sender, EventArgs e) { if (!File.Exists(Properties.Settings.Default.SpellsXML)) { MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (sittingSpellID == 0) { MessageBox.Show("Spell does not exist.", "Spell Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { if (tbSpellName.Text == "") { MessageBox.Show("Spell Name must be filled out", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Regex.IsMatch(tbSpellLevel.Text, "[0-9]{1}")) { MessageBox.Show("Spell Level must be a number 0 - 9", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Spell updateSpell = new Spell { Index = sittingSpellID, Favorited = chkFavoriteSpell.Checked, Name = tbSpellName.Text, Class = tbSpellClass.Text, Level = tbSpellLevel.Text, Domain = tbSpellDomain.Text, Components = tbSpellComponents.Text, Casting = tbSpellCastingTime.Text, Range = tbSpellRange.Text, Target = tbSpellTarget.Text, Effect = tbSpellEffect.Text, Duration = tbSpellDuration.Text, SavingThrow = tbSpellSaving.Text, SpellResistance = tbSpellResistance.Text, SourceBook = tbSource.Text, Description = rtbSpellDescription.Text, PersonalNotes = rtbPersonalNotes.Text }; Spells spells = Spells.Retrieve(Properties.Settings.Default.SpellsXML); int indexMatch = spells.FindIndex(x => x.Index == sittingSpellID); if (indexMatch > -1) { spells[indexMatch] = updateSpell; } else { MessageBox.Show("Spell cannot be found.", "Spell Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } spells.Save(Properties.Settings.Default.SpellsXML); RefreshSpellPage(GetSpellNodesExpansion()); } }
private void RefreshSpellPage(bool[] expanders) { if (!File.Exists(Properties.Settings.Default.SpellsXML)) { MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } tvSpells.Nodes.Clear(); tvFavoritedSpells.Nodes.Clear(); TreeNode tn0 = tvSpells.Nodes.Add("Level 0"); TreeNode tn1 = tvSpells.Nodes.Add("Level 1"); TreeNode tn2 = tvSpells.Nodes.Add("Level 2"); TreeNode tn3 = tvSpells.Nodes.Add("Level 3"); TreeNode tn4 = tvSpells.Nodes.Add("Level 4"); TreeNode tn5 = tvSpells.Nodes.Add("Level 5"); TreeNode tn6 = tvSpells.Nodes.Add("Level 6"); TreeNode tn7 = tvSpells.Nodes.Add("Level 7"); TreeNode tn8 = tvSpells.Nodes.Add("Level 8"); TreeNode tn9 = tvSpells.Nodes.Add("Level 9"); TreeNode tnf0 = tvFavoritedSpells.Nodes.Add("Level 0"); TreeNode tnf1 = tvFavoritedSpells.Nodes.Add("Level 1"); TreeNode tnf2 = tvFavoritedSpells.Nodes.Add("Level 2"); TreeNode tnf3 = tvFavoritedSpells.Nodes.Add("Level 3"); TreeNode tnf4 = tvFavoritedSpells.Nodes.Add("Level 4"); TreeNode tnf5 = tvFavoritedSpells.Nodes.Add("Level 5"); TreeNode tnf6 = tvFavoritedSpells.Nodes.Add("Level 6"); TreeNode tnf7 = tvFavoritedSpells.Nodes.Add("Level 7"); TreeNode tnf8 = tvFavoritedSpells.Nodes.Add("Level 8"); TreeNode tnf9 = tvFavoritedSpells.Nodes.Add("Level 9"); Spells spells = Spells.Retrieve(Properties.Settings.Default.SpellsXML); for (int i = 0; i < spells.Count; i++) { TreeNode thisSpell = new TreeNode(string.Format("{0} ({1})", spells[i].Name, spells[i].SourceBook)); thisSpell.Tag = spells[i]; TreeNode thisfSpell = new TreeNode(string.Format("{0} ({1})", spells[i].Name, spells[i].SourceBook)); thisfSpell.Tag = spells[i]; if (spells[i].Level == "0") { tn0.Nodes.Add(thisSpell); } if (spells[i].Level == "1") { tn1.Nodes.Add(thisSpell); } if (spells[i].Level == "2") { tn2.Nodes.Add(thisSpell); } if (spells[i].Level == "3") { tn3.Nodes.Add(thisSpell); } if (spells[i].Level == "4") { tn4.Nodes.Add(thisSpell); } if (spells[i].Level == "5") { tn5.Nodes.Add(thisSpell); } if (spells[i].Level == "6") { tn6.Nodes.Add(thisSpell); } if (spells[i].Level == "7") { tn7.Nodes.Add(thisSpell); } if (spells[i].Level == "8") { tn8.Nodes.Add(thisSpell); } if (spells[i].Level == "9") { tn9.Nodes.Add(thisSpell); } if (spells[i].Level == "0" && spells[i].Favorited) { tnf0.Nodes.Add(thisfSpell); } if (spells[i].Level == "1" && spells[i].Favorited) { tnf1.Nodes.Add(thisfSpell); } if (spells[i].Level == "2" && spells[i].Favorited) { tnf2.Nodes.Add(thisfSpell); } if (spells[i].Level == "3" && spells[i].Favorited) { tnf3.Nodes.Add(thisfSpell); } if (spells[i].Level == "4" && spells[i].Favorited) { tnf4.Nodes.Add(thisfSpell); } if (spells[i].Level == "5" && spells[i].Favorited) { tnf5.Nodes.Add(thisfSpell); } if (spells[i].Level == "6" && spells[i].Favorited) { tnf6.Nodes.Add(thisfSpell); } if (spells[i].Level == "7" && spells[i].Favorited) { tnf7.Nodes.Add(thisfSpell); } if (spells[i].Level == "8" && spells[i].Favorited) { tnf8.Nodes.Add(thisfSpell); } if (spells[i].Level == "9" && spells[i].Favorited) { tnf9.Nodes.Add(thisfSpell); } } tvSpells.Sort(); tvFavoritedSpells.Sort(); if (expanders.Length == 20) { if (expanders[0]) { tn0.Expand(); } if (expanders[1]) { tn1.Expand(); } if (expanders[2]) { tn2.Expand(); } if (expanders[3]) { tn3.Expand(); } if (expanders[4]) { tn4.Expand(); } if (expanders[5]) { tn5.Expand(); } if (expanders[6]) { tn6.Expand(); } if (expanders[7]) { tn7.Expand(); } if (expanders[8]) { tn8.Expand(); } if (expanders[9]) { tn9.Expand(); } if (expanders[10]) { tnf0.Expand(); } if (expanders[11]) { tnf1.Expand(); } if (expanders[12]) { tnf2.Expand(); } if (expanders[13]) { tnf3.Expand(); } if (expanders[14]) { tnf4.Expand(); } if (expanders[15]) { tnf5.Expand(); } if (expanders[16]) { tnf6.Expand(); } if (expanders[17]) { tnf7.Expand(); } if (expanders[18]) { tnf8.Expand(); } if (expanders[19]) { tnf9.Expand(); } } }
private void AddSpellToolStripMenuItem_Click(object sender, EventArgs e) { if (!File.Exists(Properties.Settings.Default.SpellsXML)) { MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (tbSpellName.Text == "") { MessageBox.Show("Spell Name must be filled out", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Regex.IsMatch(tbSpellLevel.Text, "[0-9]{1}")) { MessageBox.Show("Spell Level must be a number 0 - 9", "Spell Update Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Spell addSpell = new Spell { Favorited = chkFavoriteSpell.Checked, Name = tbSpellName.Text, Class = tbSpellClass.Text, Level = tbSpellLevel.Text, Domain = tbSpellDomain.Text, Components = tbSpellComponents.Text, Casting = tbSpellCastingTime.Text, Range = tbSpellRange.Text, Target = tbSpellTarget.Text, Effect = tbSpellEffect.Text, Duration = tbSpellDuration.Text, SavingThrow = tbSpellSaving.Text, SpellResistance = tbSpellResistance.Text, SourceBook = tbSource.Text, Description = rtbSpellDescription.Text, PersonalNotes = rtbPersonalNotes.Text }; Spells spells = Spells.Retrieve(Properties.Settings.Default.SpellsXML); int indexMatch = spells.FindIndex(x => x.Name.ToUpper() == addSpell.Name.ToUpper() && x.Level.ToUpper() == addSpell.Level.ToUpper()); if (indexMatch > -1) { if (MessageBox.Show("Spell of the same name and level already exists\rWould you like to add a duplicate?", "Spell already exists", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { addSpell.Index = spells.Max(x => x.Index) + 1; spells.Add(addSpell); ClearSpellPage(); } } else { addSpell.Index = spells.Max(x => x.Index) + 1; spells.Add(addSpell); ClearSpellPage(); } rtbSpellText.Clear(); spells.Save(Properties.Settings.Default.SpellsXML); RefreshSpellPage(GetSpellNodesExpansion()); }