private void FavoriteToolStripMenuItem_Click(object sender, EventArgs e) { Spells spells = Spells.Retrieve(Properties.Settings.Default.SpellsXML); Spell thisSpell = (Spell)((TreeView)((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent()).SourceControl).SelectedNode.Tag; //((TreeView)((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent().tvSpells).SelectedNode.Tag; int indexMatch = spells.FindIndex(x => x.Name.ToUpper() == thisSpell.Name.ToUpper() && x.Level.ToUpper() == thisSpell.Level.ToUpper()); if (indexMatch > -1) { if (spells[indexMatch].Favorited) { spells[indexMatch].Favorited = false; } else if (!spells[indexMatch].Favorited) { spells[indexMatch].Favorited = true; } else { spells[indexMatch].Favorited = true; } spells.Save(Properties.Settings.Default.SpellsXML); } RefreshSpellPage(GetSpellNodesExpansion()); }
private void TvSpells_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) { if (!File.Exists(Properties.Settings.Default.SpellsXML)) { MessageBox.Show("XML file was not found.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (tvSpells.SelectedNode != null) { if (tvSpells.SelectedNode.Tag is Spell selSpell) { if (MessageBox.Show(string.Format("Are you sure you want to delete {0} from this list?", ((Spell)tvSpells.SelectedNode.Tag).Name), "Delete Summon Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes) { Spells spells = Spells.Retrieve(Properties.Settings.Default.SpellsXML); int indexMatch = spells.FindIndex(x => x.Name.ToUpper() == selSpell.Name.ToUpper() && x.Level.ToUpper() == selSpell.Level.ToUpper()); if (indexMatch > -1) { spells.RemoveAt(indexMatch); } spells.Save(Properties.Settings.Default.SpellsXML); RefreshSpellPage(GetSpellNodesExpansion()); } } } } }
private void ChangeToolStripMenuItem_Click(object sender, EventArgs e) { TextBox tbSender = (TextBox)((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent()).SourceControl; if (tbSender == tbSummonsXML) { using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Multiselect = false; ofd.Filter = "XML Files (*.xml)| *.xml"; ofd.CheckFileExists = true; if (ofd.ShowDialog() == DialogResult.OK) { try { Summons s = Summons.Retrieve(ofd.FileName); } catch (Exception ex) { MessageBox.Show(string.Format("File not valid\rError: {0}", ex.Message), "File Select Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } tbSummonsXML.Text = ofd.FileName; } } } if (tbSender == tbSpellsXML) { using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Multiselect = false; ofd.Filter = "XML Files (*.xml)| *.xml"; ofd.CheckFileExists = true; if (ofd.ShowDialog() == DialogResult.OK) { try { Spells s = Spells.Retrieve(ofd.FileName); } catch (Exception ex) { MessageBox.Show(string.Format("File not valid\rError: {0}", ex.Message), "File Select Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } tbSpellsXML.Text = ofd.FileName; } } } }
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 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 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()); }