/// <summary> /// An event called everytime a new award is selected... /// It repaints the current award info /// </summary> private void AwardTree_AfterSelect(object sender, TreeViewEventArgs e) { // Set our award globally SelectedAwardNode = e.Node; // Only proccess child Nodes if (SelectedAwardNode.Nodes.Count == 0) { // Set Award Image SetAwardImage(SelectedAwardNode.Name); // Set award name and type switch (Award.GetType(SelectedAwardNode.Name)) { case AwardType.Badge: AwardTypeBox.Text = "Badge"; AwardNameBox.Text = Award.GetName(SelectedAwardNode.Name); break; case AwardType.Medal: AwardTypeBox.Text = "Medal"; AwardNameBox.Text = Award.GetName(SelectedAwardNode.Name); break; case AwardType.Ribbon: AwardTypeBox.Text = "Ribbon"; AwardNameBox.Text = Award.GetName(SelectedAwardNode.Name); break; case AwardType.Rank: AwardTypeBox.Text = "Rank"; AwardNameBox.Text = Rank.GetName(Int32.Parse(SelectedAwardNode.Name)); break; } // Delay or tree redraw AwardConditionsTree.BeginUpdate(); // Clear all Nodes AwardConditionsTree.Nodes.Clear(); // Parse award conditions into tree view SelectedAward = AwardCache.GetAward(SelectedAwardNode.Name); TreeNode Conds = SelectedAward.ToTree(); if (Conds != null) { AwardConditionsTree.Nodes.Add(Conds); } // Conditions tree's are to be expanded at all times AwardConditionsTree.ExpandAll(); // Redraw the tree AwardConditionsTree.EndUpdate(); } }
/// <summary> /// Covnerts the conditions into a TreeNode /// </summary> /// <returns></returns> public override TreeNode ToTree() { string Name = (Params[0] == "has_medal") ? "Has Award \"" + Award.GetName(Params[1]) + "\"" : "Current Rank Is \"" + Rank.GetName(Int32.Parse(Params[1])) + "\""; TreeNode Me = new TreeNode(Name); Me.Tag = this; return(Me); }