From b3b3f5e5182ae440dfbf165f1a6029ba8104272b Mon Sep 17 00:00:00 2001 From: Kathy Date: Tue, 30 Nov 2010 16:04:31 +0000 Subject: [PATCH] --- PROMS/Volian.Controls.Library/vlnTreeView.cs | 30 +++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index 5be275e5..0bdae1c1 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -408,8 +408,10 @@ namespace Volian.Controls.Library } else if (tn.VEObject as StepInfo != null) { - cm.MenuItems.Add("Insert Step Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Step After", new EventHandler(mi_Click)); + // check the format for allowable inserts, and also, + ItemInfo i = tn.VEObject as ItemInfo; + if (AddToInsertMenu(i,0)) cm.MenuItems.Add("Insert Step Before", new EventHandler(mi_Click)); + if (AddToInsertMenu(i,1)) cm.MenuItems.Add("Insert Step After", new EventHandler(mi_Click)); } #endregion #region Menu_Open @@ -452,6 +454,18 @@ namespace Volian.Controls.Library } } + private bool AddToInsertMenu(ItemInfo ii, int ba) // 0 = before, 1 = after + { + // set up insert buttons based on format + bool retB = true; + E_AccStep? actable = 0; + StepData sd = ii.FormatStepData; + actable = sd.StepEditData.AcTable; + if (actable == null) actable = 0; + + return (ba == 0) ? !ii.IsRNOPart && (actable & E_AccStep.AddingPrev) > 0 : + !ii.IsRNOPart && (actable & E_AccStep.AddingNext) > 0; + } private void Menu_Paste(VETreeNode tn, ContextMenu cm) { #region MenuPaste @@ -496,9 +510,9 @@ namespace Volian.Controls.Library cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click)); else if (iiPasteHere.IsStep && iiClipboard.IsStep) { - cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click)); + if (AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click)); cm.MenuItems.Add("Replace Existing Step", new EventHandler(mi_Click)); - cm.MenuItems.Add("Paste Step After", new EventHandler(mi_Click)); + if (AddToInsertMenu(iiPasteHere, 1)) cm.MenuItems.Add("Paste Step After", new EventHandler(mi_Click)); } } } @@ -1174,11 +1188,13 @@ namespace Volian.Controls.Library ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo; FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo; DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo; - if ((iidrag == null && fdrag == null && ddrag == null) || (iidrag != null && iidrag.IsStep)) + if ((iidrag == null && fdrag == null && ddrag == null)) { - MessageBox.Show(iidrag==null?"Cannot drag/drop a grouping node.":"Cannot drag/drop a Step"); + MessageBox.Show("Cannot drag/drop a grouping node."); return; - } + } + // don't put up message, message kept coming up on any selection of node (to copy, properties, etc) + //if (iidrag != null && iidrag.IsStep) return; if (SetupDragCursor(_dragImageList, dragNode)) { this.DoDragDrop(dragNode, DragDropEffects.Move | DragDropEffects.Copy);// Begin dragging