Added code to support conversion to text of invalid referenced objects
Added code to support the searching for transitions Added code to support refreshing of referenced objects and transitions Added interface code to support refreshing of referenced objects and transitions Added code to store the xml representation of the approved version of the procedure in the database for future support of temp mods, etc.
This commit is contained in:
@@ -143,7 +143,81 @@ namespace Volian.Controls.Library
|
||||
rbtnSrchTxt.Checked = true;
|
||||
gpSrchAnnoText.Enabled = true;
|
||||
cmbResultsStyle.Enabled = false;
|
||||
tabSearchTypes.SelectedTabChanged += new TabStrip.SelectedTabChangedEventHandler(tabSearchTypes_SelectedTabChanged);
|
||||
}
|
||||
|
||||
void tabSearchTypes_SelectedTabChanged(object sender, TabStripTabChangedEventArgs e)
|
||||
{
|
||||
if (e.NewTab == tabTranSearch)
|
||||
{
|
||||
//setup transition format versions
|
||||
if (myFormatVersionList == null)
|
||||
{
|
||||
myFormatVersionList = FormatVersionList.GetFormatVersions();
|
||||
cbxTranVersion.DisplayMember = "Title";
|
||||
int lastLastFormatID = 0;
|
||||
foreach (FormatVersion fv in myFormatVersionList)
|
||||
{
|
||||
if (fv.FormatID != lastLastFormatID)
|
||||
{
|
||||
cbxTranVersion.Items.Add(fv);
|
||||
lastLastFormatID = fv.FormatID;
|
||||
}
|
||||
}
|
||||
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||
cbxTranFormat.SelectedIndexChanged += new EventHandler(cbxTranFormat_SelectedIndexChanged);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cbxTranFormat_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
#region 1st cut
|
||||
//if (cbxTranFormat.SelectedItem.ToString() == "All")
|
||||
//{
|
||||
// cbxTranCategory.Items.Clear();
|
||||
// cbxTranCategory.Items.Add("All");
|
||||
// cbxTranCategory.Items.Add("Internal");
|
||||
// cbxTranCategory.Items.Add("External");
|
||||
// cbxTranCategory.Items.Add("Outside");
|
||||
// cbxTranCategory.SelectedIndex = 0;
|
||||
//}
|
||||
//else if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
|
||||
//{
|
||||
// cbxTranCategory.Items.Clear();
|
||||
// cbxTranCategory.Items.Add("All");
|
||||
// cbxTranCategory.Items.Add("External");
|
||||
// cbxTranCategory.Items.Add("Outside");
|
||||
// cbxTranCategory.SelectedIndex = 0;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// cbxTranCategory.Items.Clear();
|
||||
// cbxTranCategory.Items.Add("Internal");
|
||||
// cbxTranCategory.SelectedIndex = 0;
|
||||
//}
|
||||
#endregion
|
||||
#region 2nd cut
|
||||
if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
|
||||
{
|
||||
cbxTranCategory.Items.Clear();
|
||||
cbxTranCategory.Items.Add("All");
|
||||
cbxTranCategory.Items.Add("External");
|
||||
cbxTranCategory.Items.Add("Outside");
|
||||
cbxTranCategory.SelectedIndex = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
cbxTranCategory.Items.Clear();
|
||||
cbxTranCategory.Items.Add("All");
|
||||
cbxTranCategory.Items.Add("Internal");
|
||||
cbxTranCategory.Items.Add("External");
|
||||
cbxTranCategory.Items.Add("Outside");
|
||||
cbxTranCategory.SelectedIndex = 0;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
FormatVersionList myFormatVersionList;
|
||||
private void LoadSearchTextListBox()
|
||||
{
|
||||
// Setup SearchText Combo
|
||||
@@ -162,6 +236,39 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
|
||||
void cbxTranVersion_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string versionList = string.Empty;
|
||||
string sep = string.Empty;
|
||||
FormatVersion sfv = cbxTranVersion.SelectedItem as FormatVersion;
|
||||
foreach (FormatVersion fv in myFormatVersionList)
|
||||
{
|
||||
if (fv.FormatID == sfv.FormatID)
|
||||
{
|
||||
versionList += sep + fv.VersionID;
|
||||
sep = ",";
|
||||
}
|
||||
}
|
||||
cbxTranVersion.Tag = versionList;
|
||||
cbxTranFormatFillIn(versionList);
|
||||
List<DevComponents.AdvTree.Node> uncheckNodes = new List<Node>();
|
||||
foreach (DevComponents.AdvTree.Node n in dicSelectedDocVersionNodes.Keys)
|
||||
{
|
||||
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
|
||||
if (!versionList.Contains(dvi.VersionID.ToString()))
|
||||
uncheckNodes.Add(n);
|
||||
else
|
||||
n.Enabled = true;
|
||||
}
|
||||
while (uncheckNodes.Count > 0)
|
||||
{
|
||||
uncheckNodes[0].Checked = false;
|
||||
uncheckNodes[0].Enabled = false;
|
||||
uncheckNodes.Remove(uncheckNodes[0]);
|
||||
}
|
||||
lstCheckedDocVersions.Clear();
|
||||
}
|
||||
|
||||
private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable)
|
||||
{
|
||||
DevComponents.AdvTree.Node newnode;
|
||||
@@ -344,7 +451,7 @@ namespace Volian.Controls.Library
|
||||
// }
|
||||
// vlnStackTrace.ShowStackLocal(e.Node.Text,1,10);
|
||||
//}
|
||||
|
||||
private Dictionary<DevComponents.AdvTree.Node, bool> dicSelectedDocVersionNodes = new Dictionary<DevComponents.AdvTree.Node, bool>();
|
||||
void advTreeProcSets_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e)
|
||||
{
|
||||
DevComponents.AdvTree.Node par = e.Node;
|
||||
@@ -387,6 +494,9 @@ namespace Volian.Controls.Library
|
||||
newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
|
||||
newnode.CheckBoxThreeState = false;
|
||||
newnode.CheckBoxVisible = true;
|
||||
if (!dicSelectedDocVersionNodes.ContainsKey(newnode)) dicSelectedDocVersionNodes.Add(newnode, false);
|
||||
|
||||
newnode.Enabled = cbxTranVersion.Tag != null ? cbxTranVersion.Tag.ToString().Contains(dv.VersionID.ToString()) : false;
|
||||
par.Nodes.Add(newnode);
|
||||
//}
|
||||
}
|
||||
@@ -736,6 +846,7 @@ namespace Volian.Controls.Library
|
||||
btnPrnSrchRslts.Enabled = true;
|
||||
btnClearSearchResults.Enabled = true;
|
||||
btnCopySearchResults.Enabled = true;
|
||||
btnSaveSearchResults.Enabled = true;
|
||||
cmbResultsStyle.Enabled = true;
|
||||
}
|
||||
else
|
||||
@@ -743,6 +854,7 @@ namespace Volian.Controls.Library
|
||||
btnPrnSrchRslts.Enabled = false;
|
||||
btnClearSearchResults.Enabled = false;
|
||||
btnCopySearchResults.Enabled = false;
|
||||
btnSaveSearchResults.Enabled = false;
|
||||
cmbResultsStyle.Enabled = false;
|
||||
}
|
||||
|
||||
@@ -1113,6 +1225,24 @@ namespace Volian.Controls.Library
|
||||
cmbResultsStyleIndex = 3; // display step text in results
|
||||
}
|
||||
}
|
||||
else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[3]) //Transition Search
|
||||
{
|
||||
ReportTitle = string.Format("Search For Transitions: Transition Type: {0}, Transition Category: {1}", cbxTranFormat.SelectedItem, cbxTranCategory.SelectedItem);
|
||||
string docVersionList = string.Empty;
|
||||
if (lstCheckedDocVersions.Count == 0)
|
||||
docVersionList = cbxTranVersion.Tag.ToString();
|
||||
else
|
||||
{
|
||||
string sep = string.Empty;
|
||||
foreach (DocVersionInfo dvi in lstCheckedDocVersions)
|
||||
{
|
||||
docVersionList += sep + dvi.VersionID.ToString();
|
||||
sep = ",";
|
||||
}
|
||||
}
|
||||
SearchResults = ItemInfoList.GetListFromTransitionSearch(docVersionList, cbxTranFormat.SelectedIndex - 1, cbxTranCategory.SelectedItem.ToString());
|
||||
cmbResultsStyleIndex = 3; // display step text in results
|
||||
}
|
||||
AddMessageForEmptyAnnotations();
|
||||
if (cmbResultsStyleIndex == 3 && cmbResultsStyle.Items.Count == 3) cmbResultsStyleIndex--;
|
||||
cmbResultsStyle.SelectedIndex = cmbResultsStyleIndex;
|
||||
@@ -1246,6 +1376,7 @@ namespace Volian.Controls.Library
|
||||
private void advTreeProcSets_AfterCheck(object sender, DevComponents.AdvTree.AdvTreeCellEventArgs e)
|
||||
{
|
||||
DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode;
|
||||
dicSelectedDocVersionNodes[n] = n.Checked;
|
||||
if (n.Checked)
|
||||
{
|
||||
n.Style = DevComponents.AdvTree.NodeStyles.Apple;
|
||||
@@ -1292,6 +1423,29 @@ namespace Volian.Controls.Library
|
||||
buildSetToSearchPanelTitle();
|
||||
}
|
||||
|
||||
private void cbxTranFormatFillIn(string vid)
|
||||
{
|
||||
vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(","));
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid));
|
||||
TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList;
|
||||
cbxTranFormat.Items.Clear();
|
||||
cbxTranFormat.Items.Add("All");
|
||||
for (int i = 0; i < ttl.Count; i++)
|
||||
cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", ""), ttl[i].TransFormat.Replace("?.", "")));
|
||||
cbxTranFormat.SelectedIndex = 0;
|
||||
cbxTranCategory.Items.Clear();
|
||||
cbxTranCategory.Items.Add("All");
|
||||
cbxTranCategory.Items.Add("Internal");
|
||||
cbxTranCategory.Items.Add("External");
|
||||
cbxTranCategory.Items.Add("Outside");
|
||||
cbxTranCategory.SelectedIndex = 0;
|
||||
/*
|
||||
groupPanelTranFmt.Style.BackColor = (_CurTrans == null && _TranFmtIndx==0) ? Color.Yellow : Color.Orange;
|
||||
E_TransUI etm = (E_TransUI)_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[_TranFmtIndx].TransUI;
|
||||
_DoingRange = (etm & E_TransUI.StepLast) == E_TransUI.StepLast;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
private void xpSetToSearch_ExpandedChanged(object sender, ExpandedChangeEventArgs e)
|
||||
{
|
||||
@@ -1633,6 +1787,204 @@ namespace Volian.Controls.Library
|
||||
_SearchResults = null;
|
||||
DisplayResults();
|
||||
}
|
||||
private void btnLoadSearchResults_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
if (ofdSearchResults.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
|
||||
lbSrchResults.DataSource = null;
|
||||
lbSrchResults.Items.Clear();
|
||||
toolTip1.SetToolTip(lbSrchResults, null);
|
||||
Cursor = Cursors.WaitCursor;
|
||||
SearchResults = ItemInfoList.GetByContentID(0);
|
||||
int k = ofdSearchResults.FilterIndex;
|
||||
switch (k)
|
||||
{
|
||||
case 1: //xml
|
||||
{
|
||||
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
||||
xd.Load(ofdSearchResults.FileName);
|
||||
int sti = int.Parse(xd.SelectSingleNode("search/criteria/@index").InnerText);
|
||||
switch (sti)
|
||||
{
|
||||
case 0: //text
|
||||
{
|
||||
cbxTextSearchText.Text = xd.SelectSingleNode("search/criteria/@text").InnerText;
|
||||
cbxCaseSensitive.Checked = bool.Parse(xd.SelectSingleNode("search/criteria/@case").InnerText);
|
||||
cbxIncROTextSrch.Checked = bool.Parse(xd.SelectSingleNode("search/criteria/@ro").InnerText);
|
||||
tabSearchTypes.SelectedTab = tabStepTypeSearch;
|
||||
//cmbResultsStyle.SelectedIndex = int.Parse(xd.SelectSingleNode("search/results/@style").InnerText);
|
||||
cmbResultsStyle.Text = xd.SelectSingleNode("search/results/@style").InnerText;
|
||||
System.Xml.XmlNodeList nl = xd.SelectNodes("search/results/item");
|
||||
foreach (System.Xml.XmlNode nd in nl)
|
||||
{
|
||||
int itemID = int.Parse(nd.Attributes.GetNamedItem("id").InnerText);
|
||||
ItemInfo ii = ItemInfo.Get(itemID);
|
||||
SearchResults.AddItemInfo(ii);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1: //annotation
|
||||
{
|
||||
cbxAnnoTypes.Text = xd.SelectSingleNode("search/criteria/@type").InnerText;
|
||||
cbxTextSearchAnnotation.Text = xd.SelectSingleNode("search/criteria/@text").InnerText;
|
||||
cbxCaseSensitiveAnnoText.Checked = bool.Parse(xd.SelectSingleNode("search/criteria/@case").InnerText);
|
||||
tabSearchTypes.SelectedTab = tabAnnotationSearch;
|
||||
cmbResultsStyle.Text = xd.SelectSingleNode("search/results/@style").InnerText;
|
||||
System.Xml.XmlNodeList nl = xd.SelectNodes("search/results/item");
|
||||
foreach (System.Xml.XmlNode nd in nl)
|
||||
{
|
||||
int itemID = int.Parse(nd.Attributes.GetNamedItem("id").InnerText);
|
||||
ItemInfo ii = ItemInfo.Get(itemID);
|
||||
SearchResults.AddItemInfo(ii);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2: //referenced object
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2: //csv
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 3: //tsv
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 4: //bsf
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
DisplayResults();
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnSaveSearchResults_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>;
|
||||
if (sfdSearchResults.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
int k = sfdSearchResults.FilterIndex;
|
||||
switch (k)
|
||||
{
|
||||
case 1: //xml
|
||||
{
|
||||
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
||||
System.Xml.XmlElement xe = xd.CreateElement("search");
|
||||
xd.AppendChild(xe);
|
||||
|
||||
int sti = tabSearchTypes.SelectedTabIndex;
|
||||
switch (sti)
|
||||
{
|
||||
case 0: //text
|
||||
{
|
||||
xe = xd.CreateElement("criteria");
|
||||
System.Xml.XmlAttribute xa = xd.CreateAttribute("index");
|
||||
xa.InnerText = sti.ToString();
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xa = xd.CreateAttribute("text");
|
||||
xa.InnerText = cbxTextSearchText.Text;
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xa = xd.CreateAttribute("case");
|
||||
xa.InnerText = cbxCaseSensitive.Checked.ToString();
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xa = xd.CreateAttribute("ro");
|
||||
xa.InnerText = cbxIncROTextSrch.Checked.ToString();
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xd.DocumentElement.AppendChild(xe);
|
||||
xe = xd.CreateElement("results");
|
||||
xa = xd.CreateAttribute("style");
|
||||
//xa.InnerText = cmbResultsStyle.SelectedIndex.ToString();
|
||||
xa.InnerText = cmbResultsStyle.Text;
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
foreach (ItemInfo ii in myList)
|
||||
{
|
||||
System.Xml.XmlElement xee = xd.CreateElement("item");
|
||||
xa = xd.CreateAttribute("id");
|
||||
xa.InnerText = ii.ItemID.ToString();
|
||||
xee.Attributes.SetNamedItem(xa);
|
||||
xe.AppendChild(xee);
|
||||
}
|
||||
xd.DocumentElement.AppendChild(xe);
|
||||
xd.Save(sfdSearchResults.FileName);
|
||||
break;
|
||||
}
|
||||
case 1: //annotation
|
||||
{
|
||||
xe = xd.CreateElement("criteria");
|
||||
System.Xml.XmlAttribute xa = xd.CreateAttribute("index");
|
||||
xa.InnerText = sti.ToString();
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xa = xd.CreateAttribute("type");
|
||||
xa.InnerText = cbxAnnoTypes.Text;
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xa = xd.CreateAttribute("text");
|
||||
xa.InnerText = cbxTextSearchAnnotation.Text;
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xa = xd.CreateAttribute("case");
|
||||
xa.InnerText = cbxCaseSensitiveAnnoText.Checked.ToString();
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
xd.DocumentElement.AppendChild(xe);
|
||||
xe = xd.CreateElement("results");
|
||||
xa = xd.CreateAttribute("style");
|
||||
//xa.InnerText = cmbResultsStyle.SelectedIndex.ToString();
|
||||
xa.InnerText = cmbResultsStyle.Text;
|
||||
xe.Attributes.SetNamedItem(xa);
|
||||
foreach (ItemInfo ii in myList)
|
||||
{
|
||||
System.Xml.XmlElement xee = xd.CreateElement("item");
|
||||
xa = xd.CreateAttribute("id");
|
||||
xa.InnerText = ii.ItemID.ToString();
|
||||
xee.Attributes.SetNamedItem(xa);
|
||||
xe.AppendChild(xee);
|
||||
}
|
||||
xd.DocumentElement.AppendChild(xe);
|
||||
xd.Save(sfdSearchResults.FileName);
|
||||
break;
|
||||
}
|
||||
case 2: //referenced object
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2: //csv
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 3: //tsv
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 4: //bsf
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
//string fn = sfdSearchResults.FileName;
|
||||
//StringBuilder sb = new StringBuilder();
|
||||
//sb.Append("\"Location\"\t\"Type\"\t\"Text\"\t\"High-Level\"\t\"Annotations\"");
|
||||
//foreach (ItemInfo myItem in myList)
|
||||
//{
|
||||
// sb.Append(string.Format("\r\n\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"", myItem.ShortPath, myItem.ToolTip,
|
||||
// myItem.DisplayText, !myItem.IsSection && !myItem.IsHigh ? (myItem.MyHLS == null ? "" : myItem.MyHLS.DisplayText) : ""));
|
||||
// if (myItem.ItemAnnotationCount > 0)
|
||||
// foreach (AnnotationInfo myAnnotation in myItem.ItemAnnotations)
|
||||
// sb.Append(string.Format("\t\"{0}\"", myAnnotation.SearchText));
|
||||
//}
|
||||
//Clipboard.Clear();
|
||||
//Clipboard.SetText(sb.ToString());
|
||||
MessageBox.Show("Results Copied to Clipboard", "Copy Results", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnCopySearchResults_Click(object sender, EventArgs e)
|
||||
{
|
||||
ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>;
|
||||
|
Reference in New Issue
Block a user