B2025-013 PROMS –Admin Tool Tree Behavior #513
@ -576,7 +576,7 @@
|
|||||||
this.myTVdel.Name = "myTVdel";
|
this.myTVdel.Name = "myTVdel";
|
||||||
this.myTVdel.Size = new System.Drawing.Size(299, 367);
|
this.myTVdel.Size = new System.Drawing.Size(299, 367);
|
||||||
this.myTVdel.TabIndex = 34;
|
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
|
// btnDeleteItems
|
||||||
//
|
//
|
||||||
|
@ -124,9 +124,11 @@ namespace VEPROMS
|
|||||||
// check to see if at least one tree node is checked.
|
// check to see if at least one tree node is checked.
|
||||||
// Used to determin whether to make the process button active for
|
// Used to determin whether to make the process button active for
|
||||||
// Refresh Transitions and for Update RO Values
|
// 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))
|
if (NodeIsChecked(tn))
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
@ -1230,24 +1232,30 @@ namespace VEPROMS
|
|||||||
|
|
||||||
private void myTV_AfterCheck(object sender, TreeViewEventArgs e)
|
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.Action != TreeViewAction.Unknown)
|
||||||
{
|
{
|
||||||
if (e.Node.Nodes.Count > 0)
|
if (e.Node.Nodes.Count > 0)
|
||||||
{
|
{
|
||||||
CheckChildNodes(e.Node, e.Node.Checked);
|
CheckChildNodes(e.Node, e.Node.Checked);
|
||||||
}
|
}
|
||||||
}
|
//B2025-013 Admin Tool Tree Behavior
|
||||||
if (swDeleteAnnotations.Value)
|
//if a node gets unchecked,
|
||||||
{
|
//then uncheck both its parents and children
|
||||||
if (e.Node.Checked)
|
if (!e.Node.Checked)
|
||||||
{
|
{
|
||||||
DiselectParentNodes(e.Node.Parent);
|
DiselectParentNodes(e.Node.Parent);
|
||||||
DiselectChildNodes(e.Node.Nodes);
|
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)
|
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;
|
private ProgressBarItem _ProgressBar = null;
|
||||||
|
|
||||||
@ -1788,14 +1726,24 @@ namespace VEPROMS
|
|||||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||||
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
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
|
// Create a list of procedures the user selected
|
||||||
foreach (TreeNode tn in myProcedures.Keys)
|
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]);
|
pil.Add(myProcedures[tn]);
|
||||||
|
|
||||||
// Create a list of doc versions the user selected
|
// Create a list of doc versions the user selected
|
||||||
foreach (TreeNode tn in myDocVersions.Keys)
|
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]);
|
dvil.Add(myDocVersions[tn]);
|
||||||
|
|
||||||
bool cancelledOut = false; // Flag to indicate if the process should be cancelled
|
bool cancelledOut = false; // Flag to indicate if the process should be cancelled
|
||||||
@ -1987,15 +1935,6 @@ namespace VEPROMS
|
|||||||
return false;
|
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
|
//C2025-011 RO Update Admin Tool Memory Enhancements
|
||||||
private void txtProcess_TextChanged(object sender, EventArgs e)
|
private void txtProcess_TextChanged(object sender, EventArgs e)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user