diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index 5c96315e..381effb5 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -23,6 +23,7 @@ namespace Volian.Controls.Library public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args); public delegate TreeNode vlnTreeViewTreeNodeEvent(object sender, vlnTreeEventArgs args); public delegate DialogResult vlnTreeViewPropertyEvent(object sender, vlnTreePropertyEventArgs args); + public delegate DialogResult vlnTreeViewPSIEvent(object sender, vlnTreeEventArgs args); public delegate void vlnTreeViewSectionInfoEvent(object sender, vlnTreeSectionInfoEventArgs args); public delegate void WordSectionDeletedEvent(object sender, WordSectionEventArgs args); public partial class vlnTreeSectionInfoEventArgs @@ -308,6 +309,12 @@ namespace Volian.Controls.Library if (NodeOpenProperty != null) return NodeOpenProperty(sender, args); return DialogResult.Cancel; } + public event vlnTreeViewPSIEvent NodePSI; + private DialogResult OnNodePSI(object sender, vlnTreeEventArgs args) + { + if (NodePSI != null) return NodePSI(sender, args); + return DialogResult.Cancel; + } public event vlnTreeViewEvent NodeSelect; private void OnNodeSelect(object sender, vlnTreeEventArgs args) { @@ -407,6 +414,8 @@ namespace Volian.Controls.Library cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click)); else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections { + ProcedureInfo pri = tn.VEObject as ProcedureInfo; + if (pri.ActiveFormat.PlantFormat.FormatData.ProcData.PSI.Caption != null) cm.MenuItems.Add("Procedure Specific Information", new EventHandler(mi_Click)); cm.MenuItems.Add("Insert Procedure Before", new EventHandler(mi_Click)); cm.MenuItems.Add("Insert Procedure After", new EventHandler(mi_Click)); cm.MenuItems.Add("New Section", new EventHandler(mi_Click)); @@ -632,6 +641,17 @@ namespace Volian.Controls.Library SetLastValues((VETreeNode)SelectedNode); SetupNodeProperties(); break; + case "Procedure Specific Information": + VETreeNode tn = SelectedNode as VETreeNode; + ProcedureInfo pi = tn.VEObject as ProcedureInfo; + if (pi != null) + { + using (Procedure proc = pi.Get()) + { + OnNodePSI(this, new vlnTreeEventArgs(tn, null, 0)); + } + } + break; default: MessageBox.Show(string.Format("Unrecognized Menu Item '{0}'", mi.Text)); break;