public void EditCriteria()
{
// Grab the selected treenode
TreeNode SelectedNode = ConditionTree.SelectedNode;
// Make sure we have a node selected
if (SelectedNode == null)
{
MessageBox.Show("Please select a criteria to edit.");
return;
}
// Make sure its a child node, and not the topmost
if (SelectedNode.Parent == null) // && SelectedNode.Nodes.Count != 0)
return;
// Open correct condition editor form
if (SelectedNode.Tag is ObjectStat)
Child = new ObjectStatForm(SelectedNode);
else if (SelectedNode.Tag is PlayerStat)
Child = new ScoreStatForm(SelectedNode);
else if (SelectedNode.Tag is MedalOrRankCondition)
Child = new MedalConditionForm(SelectedNode);
else if (SelectedNode.Tag is GlobalStatMultTimes)
Child = new GlobalStatMultTimesForm(SelectedNode);
else if (SelectedNode.Tag is ConditionList)
Child = new ConditionListForm(SelectedNode);
else
return;
if (Child.ShowDialog() == DialogResult.OK)
{
ConditionList NN = new ConditionList(List.Type);
NN = (ConditionList) MedalDataParser.ParseNodeConditions(ConditionTree.Nodes[0]);
ConditionTree.Nodes.Clear();
ConditionTree.Nodes.Add(NN.ToTree());
ConditionTree.Refresh();
ConditionTree.ExpandAll();
}
}