Allow search to work on the basis of Folders, rather than DocVersions (Working Draft).

This commit is contained in:
Rich 2016-11-08 21:45:29 +00:00
parent 5feabe3a89
commit 3cd0e1cae7

View File

@ -342,13 +342,20 @@ namespace Volian.Controls.Library
newnode = new DevComponents.AdvTree.Node(); newnode = new DevComponents.AdvTree.Node();
newnode.Text = nodetext; newnode.Text = nodetext;
newnode.Selectable = selectable; newnode.Selectable = selectable;
AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected.
return newnode;
}
//C2016-045 Allow Folders to be selected.
private void AddCheckBox(bool chxbxvisable, DevComponents.AdvTree.Node newnode)
{
newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
newnode.CheckBoxThreeState = false; newnode.CheckBoxThreeState = false;
newnode.CheckBoxVisible = chxbxvisable; newnode.CheckBoxVisible = chxbxvisable;
return newnode; // Set newnode.Checked = parent.Checked
if(newnode.Parent != null)
newnode.Checked = newnode.Parent.Checked;
} }
public void advTreeStepTypesFillIn() public void advTreeStepTypesFillIn()
{ {
DevComponents.AdvTree.Node topnode = new DevComponents.AdvTree.Node(); DevComponents.AdvTree.Node topnode = new DevComponents.AdvTree.Node();
@ -464,23 +471,7 @@ namespace Volian.Controls.Library
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
newnode.Text = fic.ToString(); newnode.Text = fic.ToString();
newnode.Tag = fic; newnode.Tag = fic;
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
//int tmp;
//if (topnode == null)
//{
// newnode.Text = "Available Procedure Sets";
// tmp = advTreeProcSets.Nodes.Add(newnode);
// topnode = newnode;
//}
//else
//{
// newnode.Selectable = true;
// newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
// newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
// newnode.CheckBoxThreeState = false;
// newnode.CheckBoxVisible = true;
// tmp = topnode.Nodes.Add(newnode);
//}
cntnd++; cntnd++;
if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion
{ {
@ -496,12 +487,7 @@ namespace Volian.Controls.Library
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
newnode.Text = fi.ToString(); newnode.Text = fi.ToString();
newnode.Tag = fi; newnode.Tag = fi;
//newnode.Checked = true; AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
//newnode.Selectable = true;
//newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
//newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
//newnode.CheckBoxThreeState = false;
//newnode.CheckBoxVisible = true;
AddDocVersionNodes(newnode, fi, true); AddDocVersionNodes(newnode, fi, true);
topnode.Nodes.Add(newnode); topnode.Nodes.Add(newnode);
lstCheckedDocVersions.Add(Mydocversion); lstCheckedDocVersions.Add(Mydocversion);
@ -564,6 +550,7 @@ namespace Volian.Controls.Library
newnode.Text = fic.ToString(); newnode.Text = fic.ToString();
newnode.Tag = fic; newnode.Tag = fic;
par.Nodes.Add(newnode); par.Nodes.Add(newnode);
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
if (fic.HasChildren) // allow for '+' for tree expansion if (fic.HasChildren) // allow for '+' for tree expansion
{ {
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
@ -589,10 +576,7 @@ namespace Volian.Controls.Library
newnode.Text = dv.ToString(); newnode.Text = dv.ToString();
newnode.Tag = dv; newnode.Tag = dv;
newnode.Selectable = true; newnode.Selectable = true;
newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
newnode.CheckBoxThreeState = false;
newnode.CheckBoxVisible = true;
newnode.Checked = isChecked; newnode.Checked = isChecked;
if (tabSearchTypes.SelectedTab == tabTranSearch) if (tabSearchTypes.SelectedTab == tabTranSearch)
{ {
@ -1491,6 +1475,8 @@ namespace Volian.Controls.Library
if (n.Checked) if (n.Checked)
{ {
n.Style = DevComponents.AdvTree.NodeStyles.Apple; n.Style = DevComponents.AdvTree.NodeStyles.Apple;
if (n.Tag is DocVersionInfo)//If it is a DocVersion add one DocVersion ID
{
lstCheckedDocVersions.Add((DocVersionInfo)n.Tag); lstCheckedDocVersions.Add((DocVersionInfo)n.Tag);
if (lstCheckedDocVersions.Count == 1)//Mydocversion == null) if (lstCheckedDocVersions.Count == 1)//Mydocversion == null)
{ {
@ -1498,9 +1484,16 @@ namespace Volian.Controls.Library
advTreeStepTypesFillIn(); advTreeStepTypesFillIn();
} }
} }
else if (n.Tag is FolderInfo) // If it is a folder add all of the doc version children
{
AddAllVersions(n.Tag as FolderInfo);
}
}
else else
{ {
n.Style = null; n.Style = null;
if (n.Tag is DocVersionInfo)// If docVersion Remove 1 DocVersion
{
lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag); lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag);
if (lstCheckedDocVersions.Count == 1) if (lstCheckedDocVersions.Count == 1)
{ {
@ -1524,6 +1517,11 @@ namespace Volian.Controls.Library
buildStepTypePannelTitle(); buildStepTypePannelTitle();
} }
} }
else if (n.Tag is FolderInfo) // If foldre remove all docversion children.
{
RemoveAllVersions(n.Tag as FolderInfo);
}
}
//// Enable the RO combo list only if at least one procedure set node //// Enable the RO combo list only if at least one procedure set node
//// is selected //// is selected
//cmboTreeROs.Enabled = (lstCheckedDocVersions.Count > 0); //cmboTreeROs.Enabled = (lstCheckedDocVersions.Count > 0);
@ -1533,7 +1531,28 @@ namespace Volian.Controls.Library
buildSetToSearchPanelTitle(); buildSetToSearchPanelTitle();
} }
// remove all docversion children
private void RemoveAllVersions(FolderInfo myFolderInfo)
{
if (myFolderInfo.FolderDocVersionCount > 0)
foreach(DocVersionInfo dvi in myFolderInfo.FolderDocVersions)
if(lstCheckedDocVersions.Contains (dvi))
lstCheckedDocVersions.Remove(dvi);
if (myFolderInfo.ChildFolders != null)
foreach (FolderInfo folderChild in myFolderInfo.ChildFolders)
RemoveAllVersions(folderChild);
}
// add all docversion children
private void AddAllVersions(FolderInfo myFolderInfo)
{
if (myFolderInfo.FolderDocVersionCount > 0)
foreach(DocVersionInfo dvi in myFolderInfo.FolderDocVersions)
if(!lstCheckedDocVersions.Contains (dvi))
lstCheckedDocVersions.Add(dvi);
if (myFolderInfo.ChildFolders != null)
foreach (FolderInfo folderChild in myFolderInfo.ChildFolders)
AddAllVersions(folderChild);
}
private void cbxTranFormatFillIn(string vid) private void cbxTranFormatFillIn(string vid)
{ {
vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(",")); vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(","));
@ -1556,13 +1575,10 @@ namespace Volian.Controls.Library
_DoingRange = (etm & E_TransUI.StepLast) == E_TransUI.StepLast; _DoingRange = (etm & E_TransUI.StepLast) == E_TransUI.StepLast;
*/ */
} }
private void xpSetToSearch_ExpandedChanged(object sender, ExpandedChangeEventArgs e) private void xpSetToSearch_ExpandedChanged(object sender, ExpandedChangeEventArgs e)
{ {
buildSetToSearchPanelTitle(); buildSetToSearchPanelTitle();
} }
private void buildSetToSearchPanelTitle() private void buildSetToSearchPanelTitle()
{ {
if (lstCheckedDocVersions.Count == 0) if (lstCheckedDocVersions.Count == 0)
@ -1590,19 +1606,19 @@ namespace Volian.Controls.Library
btnSearch.Enabled = true; btnSearch.Enabled = true;
tabSearchTypes.Enabled = true; // enable all the search tabs tabSearchTypes.Enabled = true; // enable all the search tabs
} }
} }
private void advTreeProcSets_AfterNodeSelect(object sender, AdvTreeNodeEventArgs e) private void advTreeProcSets_AfterNodeSelect(object sender, AdvTreeNodeEventArgs e)
{ {
DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode; DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode;
if (advTreeStepTypes.Nodes.Count == 1 && n.Checked) if (advTreeStepTypes.Nodes.Count == 1 && n.Checked)
{
if (n.Tag is DocVersionInfo) // Only set MyDocVersion if it is a DocVersion
{ {
Mydocversion = (DocVersionInfo)n.Tag; Mydocversion = (DocVersionInfo)n.Tag;
advTreeStepTypesFillIn(); advTreeStepTypesFillIn();
} }
} }
}
#endregion #endregion
#region StepTypeSelection #region StepTypeSelection