B2025-013 PROMS –Admin Tool Tree Behavior
This commit is contained in:
parent
bc1f85b657
commit
01541c9e0d
@ -576,7 +576,7 @@
|
||||
this.myTVdel.Name = "myTVdel";
|
||||
this.myTVdel.Size = new System.Drawing.Size(299, 367);
|
||||
this.myTVdel.TabIndex = 34;
|
||||
this.myTVdel.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck_DelAnn);
|
||||
this.myTVdel.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
|
||||
//
|
||||
// btnDeleteItems
|
||||
//
|
||||
|
@ -124,9 +124,11 @@ namespace VEPROMS
|
||||
// check to see if at least one tree node is checked.
|
||||
// Used to determin whether to make the process button active for
|
||||
// Refresh Transitions and for Update RO Values
|
||||
private bool AtLeastOneNodeChecked()
|
||||
// B2025-013 Admin Tool Tree Behavior
|
||||
//Made this generic so same logic for all the TreeViews on this form
|
||||
private bool AtLeastOneNodeChecked(TreeNodeCollection col)
|
||||
{
|
||||
foreach (TreeNode tn in myTV.Nodes)
|
||||
foreach (TreeNode tn in col)
|
||||
if (NodeIsChecked(tn))
|
||||
return true;
|
||||
return false;
|
||||
@ -1230,24 +1232,30 @@ namespace VEPROMS
|
||||
|
||||
private void myTV_AfterCheck(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
//B2025 - 013 Admin Tool Tree Behavior
|
||||
//only want to perform this if
|
||||
// not an unknown action
|
||||
// aka is a mouse click
|
||||
// if this is fire-ing because clicked a parent or a child of an item
|
||||
// want this to only fire once - for the item clicked - not for parents/children
|
||||
if (e.Action != TreeViewAction.Unknown)
|
||||
{
|
||||
if (e.Node.Nodes.Count > 0)
|
||||
{
|
||||
CheckChildNodes(e.Node, e.Node.Checked);
|
||||
}
|
||||
}
|
||||
if (swDeleteAnnotations.Value)
|
||||
{
|
||||
if (e.Node.Checked)
|
||||
//B2025-013 Admin Tool Tree Behavior
|
||||
//if a node gets unchecked,
|
||||
//then uncheck both its parents and children
|
||||
if (!e.Node.Checked)
|
||||
{
|
||||
DiselectParentNodes(e.Node.Parent);
|
||||
DiselectChildNodes(e.Node.Nodes);
|
||||
}
|
||||
|
||||
btnFixLinks.Enabled = btnDeleteItems.Enabled = AtLeastOneNodeChecked(((TreeView)sender).Nodes); // C2017-030 support for Refresh Transitions/Update RO Values
|
||||
}
|
||||
|
||||
btnFixLinks.Enabled = AtLeastOneNodeChecked(); // C2017-030 support for Refresh Transitions/Update RO Values
|
||||
}
|
||||
|
||||
private void DiselectParentNodes(TreeNode parent)
|
||||
@ -1283,76 +1291,6 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
}
|
||||
//After check model to select and deselect nodes on the delete and annotation tree.
|
||||
private void myTV_AfterCheck_DelAnn(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (e.Action != TreeViewAction.Unknown)
|
||||
{
|
||||
if (e.Node.Nodes.Count > 0)
|
||||
{
|
||||
CheckChildNodes_DelAnn(e.Node, e.Node.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
if (e.Node.Checked)
|
||||
{
|
||||
// Ensure child nodes follow the parent node's state
|
||||
CheckChildNodes_DelAnn(e.Node, e.Node.Checked);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Automatically deselect parent nodes if current node is unchecked
|
||||
if (swDeleteFolder.Value)
|
||||
DiselectParentNodes_DelAnn(e.Node);
|
||||
}
|
||||
|
||||
btnFixLinks.Enabled = AtLeastOneNodeChecked_DelAnn(); // Ensure button is enabled based on custom logic
|
||||
}
|
||||
private void DiselectParentNodes_DelAnn(TreeNode node)
|
||||
{
|
||||
TreeNode parent = node.Parent;
|
||||
while (parent != null)
|
||||
{
|
||||
parent.Checked = false;
|
||||
parent = parent.Parent;
|
||||
}
|
||||
}
|
||||
private void DiselectChildNodes_DelAnn(TreeNodeCollection children)
|
||||
{
|
||||
foreach (TreeNode child in children)
|
||||
{
|
||||
child.Checked = false;
|
||||
DiselectChildNodes_DelAnn(child.Nodes);
|
||||
}
|
||||
}
|
||||
private void CheckChildNodes_DelAnn(TreeNode treeNode, bool isChecked)
|
||||
{
|
||||
foreach (TreeNode tn in treeNode.Nodes)
|
||||
{
|
||||
tn.Checked = isChecked;
|
||||
|
||||
if (tn.Nodes.Count > 0)
|
||||
CheckChildNodes_DelAnn(tn, isChecked);
|
||||
}
|
||||
}
|
||||
private bool AtLeastOneNodeChecked_DelAnn()
|
||||
{
|
||||
foreach (TreeNode node in myTV.Nodes)
|
||||
{
|
||||
if (node.Checked || AnyChildNodeChecked_DelAnn(node))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private bool AnyChildNodeChecked_DelAnn(TreeNode node)
|
||||
{
|
||||
foreach (TreeNode childNode in node.Nodes)
|
||||
{
|
||||
if (childNode.Checked || AnyChildNodeChecked_DelAnn(childNode))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private ProgressBarItem _ProgressBar = null;
|
||||
|
||||
@ -1788,14 +1726,24 @@ namespace VEPROMS
|
||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
||||
|
||||
//B2025-013 Admin Tool Tree Behavior
|
||||
//For Procedures & Doc Versions
|
||||
//To avoid processing duplicates
|
||||
//only want to add highest nodes selected
|
||||
// i.e. if both an item and it's parent is checked, then add the parent
|
||||
// not each individual item
|
||||
// if a parent isn't checked, then add the individual item
|
||||
// one exception to this is if the parent is not in the docversions
|
||||
// for example: the top node - VEPROMS
|
||||
//if that is selected, then we will add its children instead of it.
|
||||
// Create a list of procedures the user selected
|
||||
foreach (TreeNode tn in myProcedures.Keys)
|
||||
if (tn.Checked)
|
||||
if (tn.Checked && (tn.Parent == null || !tn.Parent.Checked || !myDocVersions.ContainsKey(tn.Parent)))
|
||||
pil.Add(myProcedures[tn]);
|
||||
|
||||
// Create a list of doc versions the user selected
|
||||
foreach (TreeNode tn in myDocVersions.Keys)
|
||||
if (tn.Checked)
|
||||
if (tn.Checked && (tn.Parent == null || !tn.Parent.Checked || !myDocVersions.ContainsKey(tn.Parent)))
|
||||
dvil.Add(myDocVersions[tn]);
|
||||
|
||||
bool cancelledOut = false; // Flag to indicate if the process should be cancelled
|
||||
@ -1987,15 +1935,6 @@ namespace VEPROMS
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public List<ProcedureInfo> RetrieveChkAnnotations()
|
||||
{
|
||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||
foreach (TreeNode tn in myProcedures.Keys)
|
||||
if (tn.Checked)
|
||||
pil.Add(myProcedures[tn]);
|
||||
return pil;
|
||||
}
|
||||
|
||||
//C2025-011 RO Update Admin Tool Memory Enhancements
|
||||
private void txtProcess_TextChanged(object sender, EventArgs e)
|
||||
|
Loading…
x
Reference in New Issue
Block a user