//Get selected items in DataGridView to store in the list private void get_Selected() { //Get the current ACF2 Object ACF2 user = active_ACF2.Find( delegate(ACF2 acf2) { return(acf2.ID == current_User); } ); List <NodeItem> new_Selections = new List <NodeItem>(); //Store the newly selected NodeItems into the selected ACF2 Object for (int i = 0; i < nodeList.RowCount; i++) { if (nodeList.Rows[i].Selected == true) { new_Selections.Add(user.Nodes.Find( delegate(NodeItem node) { return(node.Node == (string)nodeList[0, i].Value); })); } } active_ACF2.Find( delegate(ACF2 acf2) { return(acf2.ID == current_User); }).SelectedNodes = new List <NodeItem>(new_Selections); }
//Display selected values in DataGridView private void set_Selected(String id) { ACF2 user = active_ACF2.Find( delegate(ACF2 acf2) { return(acf2.ID == id); }); //This is done because when a form is generated, the first row is always selected. This will prevent that selection if (user.SelectedNodes.Count > 0) { nodeList.Rows[0].Selected = false; } foreach (NodeItem selection in user.SelectedNodes) { for (int i = 0; i < nodeList.RowCount; i++) { if (selection.Node == (string)nodeList[0, i].Value) { nodeList.Rows[i].Selected = true; } } } }
//Saves the selection changes private void save_Selected_Click(object sender, EventArgs e) { get_Selected(); ACF2 user = active_ACF2.Find( delegate(ACF2 acf2) { return(acf2.ID == current_User); }); update_Tree(user); }
//Update the tree after a selection change has been made for visual recognition public void update_Tree(ACF2 user) { bool inactive = false; List <TreeNode> leaves = new List <TreeNode>(); foreach (NodeItem selected in user.SelectedNodes) { if (selected.Active == "0" || selected.Active == "") { inactive = true; } leaves.Add(new TreeNode(selected.Node)); } TreeNodeCollection collection = ACF2_Tree.Nodes; int index = 0; foreach (TreeNode node in collection) { String[] splits = node.Text.Split(' '); if (splits[0] == current_User) { index = node.Index; } } ACF2_Tree.Nodes.RemoveAt(index); TreeNode node2 = new TreeNode(user.ID + " (" + user.Nodes.Count + ")", (TreeNode[])leaves.ToArray()); //Alert the user that there could be a issue with the selections made on a specific ACF2 if (inactive == true) { node2.BackColor = Color.Red; } ACF2_Tree.Nodes.Insert(index, node2); }
//Update the tree after a selection change has been made for visual recognition public void update_Tree(ACF2 user) { bool inactive = false; List<TreeNode> leaves = new List<TreeNode>(); foreach (NodeItem selected in user.SelectedNodes) { if (selected.Active == "0" || selected.Active == "") inactive = true; leaves.Add(new TreeNode(selected.Node)); } TreeNodeCollection collection = ACF2_Tree.Nodes; int index = 0; foreach (TreeNode node in collection) { String[] splits = node.Text.Split(' '); if (splits[0] == current_User) index = node.Index; } ACF2_Tree.Nodes.RemoveAt(index); TreeNode node2 = new TreeNode(user.ID +" ("+user.Nodes.Count+")", (TreeNode[])leaves.ToArray()); //Alert the user that there could be a issue with the selections made on a specific ACF2 if (inactive == true) node2.BackColor = Color.Red; ACF2_Tree.Nodes.Insert(index,node2); }