// adds the selected subset to the input box private void ToRangeButton_Click(object sender, EventArgs e) { string setText; bool append; if (SubsetSelector.SelectedItem != null) { Subset selectedSubset = (Subset)SubsetSelector.SelectedItem; setText = selectedSubset.Name; append = true; } else if (CustomSubsetSelector.SelectedItem != null) { var selectedSubset = (CustomSubset)CustomSubsetSelector.SelectedItem; setText = selectedSubset.Name; append = true; } else { if (RecentSubsetSelector.SelectedItem == null) { return; } setText = (string)RecentSubsetSelector.SelectedItem; append = false; } if (append) { bool addComma = true; if (RangeBox.Text.Trim().Equals("")) { addComma = false; } var operators = new List <string> { ",", "+", "*", "|", "&", "(" }; foreach (var str in operators) { if (RangeBox.Text.Trim().EndsWith(str)) { addComma = false; } } if (addComma) { RangeBox.Text += ", "; } RangeBox.Text += setText; } else { RangeBox.Text = setText.Trim(); } }
//public List<Subset> GetSubsetsForAlgSet(AlgSet set) //{ // XmlDocument doc = new XmlDocument(); // doc.Load(@"subsets.xml"); // string xPath = "subsets/" + set.ToString(); // var node = doc.SelectSingleNode(xPath); // var subsetNodes = node.SelectNodes("subset"); // var subsets = new List<Subset>(); // for(int k = 0; k < subsetNodes.Count; k++) // { // var subsetNode = subsetNodes[k]; // var subset = new Subset { Name = subsetNode.Attributes["name"].Value, SubsetList = subsetNode.InnerText }; // subsets.Add(subset); // } // return subsets; //} /// <summary> /// Gets all subset groups and subsets for the given alg set /// </summary> /// <param name="set"></param> /// <returns></returns> public List <SubsetGroup> GetSubsetGroupsForAlgSet(AlgSet set) { XmlDocument doc = new XmlDocument(); doc.Load(Name); string xPath = "subsets/" + set.ToString(); var node = doc.SelectSingleNode(xPath); var groupNodes = node.SelectNodes("group"); var groups = new List <SubsetGroup>(); for (int k = 0; k < groupNodes.Count; k++) { var groupNode = groupNodes[k]; var groupName = groupNode.Attributes["name"].Value; var subsets = new List <Subset>(); var subsetNodes = groupNodes[k].SelectNodes(".//subset"); for (int i = 0; i < subsetNodes.Count; i++) { var subsetNode = subsetNodes[i]; var subset = new Subset { Name = subsetNode.Attributes["name"].Value, SubsetList = subsetNode.InnerText }; // check if subset is in a subgroup var parent = subsetNode.SelectSingleNode(".."); if (parent.Name.Equals("subgroup")) { subset.Subgroup = parent.Attributes["name"].Value; } subsets.Add(subset); } var subgroupNames = new List <string>(); var subgroupNodes = groupNode.SelectNodes("subgroup"); for (var i = 0; i < subgroupNodes.Count; i++) { subgroupNames.Add(subgroupNodes[i].Attributes["name"].Value); } var group = new SubsetGroup { Name = groupName, Subsets = subsets, SubgroupNames = subgroupNames }; groups.Add(group); } return(groups); }