diff --git a/PROMS/Volian.Controls.Library/DisplayTabItem.cs b/PROMS/Volian.Controls.Library/DisplayTabItem.cs index 1b52b32c..cf7db754 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabItem.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabItem.cs @@ -17,9 +17,9 @@ namespace Volian.Controls.Library private StepTabPanel _MyStepTabPanel; private string _MyKey; private DSOTabPanel _MyDSOTabPanel; - private DocumentInfo _MyDocumentInfo; + private DocumentInfo _MyDocumentInfo; + - #endregion #region Properties /// @@ -78,50 +78,58 @@ namespace Volian.Controls.Library /// public ItemInfo SelectedItemInfo { - get + get { if (_MyStepTabPanel == null) return null; return _MyStepTabPanel.SelectedItemInfo; } - set {// B2018-074 Don't crash if opening MSWord section from Tools window in Debug Mode - if (_MyStepTabPanel != null) - _MyStepTabPanel.SelectedItemInfo = value; + set + {// B2018-074 Don't crash if opening MSWord section from Tools window in Debug Mode + if (_MyStepTabPanel != null) + _MyStepTabPanel.SelectedItemInfo = value; } } - /// - /// Current DocumentInfo for this page - only set if library document - /// - public DocumentInfo MyDocumentInfo - { - get { return _MyDocumentInfo; } - } + /// + /// Current DocumentInfo for this page - only set if library document + /// + public DocumentInfo MyDocumentInfo + { + get { return _MyDocumentInfo; } + } #endregion #region Constructors - public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, ItemInfo myItemInfo, string myKey) - { - _MyItemInfo = myItemInfo; - if (MyItemInfo.MyContent.MyEntry == null) - OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyProcedure.ItemID, CheckOutType.Procedure); - else - OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyContent.MyEntry.DocID, CheckOutType.Document); - //Console.WriteLine("DisplayTabItem"); - _MyKey = myKey; - _MyDisplayTabControl = myDisplayTabControl; - container.Add(this); - InitializeComponent(); - this.Click += new EventHandler(DisplayTabItem_Click); - if (myItemInfo.MyContent.MyEntry == null) - SetupStepTabPanel(); - else - SetupDSOTabPanel(); - SetupSecurity(myItemInfo); - if (MyDSOTabPanel == null || MyDSOTabPanel.MyEdWord != null) // B2017-219 check needed if we could not open a word attachment - Name = string.Format("DisplayTabItem {0}", myItemInfo.ItemID); - } + public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, ItemInfo myItemInfo, string myKey) + { + _MyItemInfo = myItemInfo; + if (MyItemInfo.MyContent.MyEntry == null) + OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyProcedure.ItemID, CheckOutType.Procedure); + else + OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyContent.MyEntry.DocID, CheckOutType.Document); + //Console.WriteLine("DisplayTabItem"); + _MyKey = myKey; + _MyDisplayTabControl = myDisplayTabControl; + container.Add(this); + InitializeComponent(); + this.Click += new EventHandler(DisplayTabItem_Click); + if (myItemInfo.MyContent.MyEntry == null) + SetupStepTabPanel(); + else + SetupDSOTabPanel(); + SetupSecurity(myItemInfo); + // B2022-055 assigning the Name caused a duplicate name error + // we found that the procedure tab control remained in the Control list after the procedure was closed + // later on we need to find out why it isn't removed when the procedure is closed + //if (MyDSOTabPanel == null || MyDSOTabPanel.MyEdWord != null) // B2017-219 check needed if we could not open a word attachment + //{ + // //Name = string.Format("DisplayTabItem {0}", myItemInfo.ItemID); + //} + + } private bool MesssageShown = false; public void SetupSecurity(ItemInfo myItem) { UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); + if (ui == null) { if (!MesssageShown) @@ -133,8 +141,9 @@ namespace Volian.Controls.Library } else if (ui.IsAdministrator()) { - if(_MyStepTabPanel != null) + if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupAdminMode(); + MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Administrator"; } else if (ui.IsSetAdministrator(myItem.MyDocVersion)) @@ -143,10 +152,10 @@ namespace Volian.Controls.Library _MyStepTabPanel.MyStepTabRibbon.SetupSetAdminMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Set Administrator"; } - else if (ui.IsROEditor(myItem.MyDocVersion) && !ui.IsWriter(myItem.MyDocVersion)) + else if (ui.IsROEditor(myItem.MyDocVersion) && !ui.IsWriter(myItem.MyDocVersion)) { - if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupROEditorMode(); + if (_MyStepTabPanel != null) + _MyStepTabPanel.MyStepTabRibbon.SetupROEditorMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - RO Editor"; } else if (ui.IsWriter(myItem.MyDocVersion)) @@ -168,27 +177,30 @@ namespace Volian.Controls.Library MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Reviewer"; } } - public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, DocumentInfo myDocumentInfo, string myKey) - { - OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myDocumentInfo.DocID, CheckOutType.Document); - _MyKey = myKey; - _MyDisplayTabControl = myDisplayTabControl; - _MyDocumentInfo = myDocumentInfo; - container.Add(this); - InitializeComponent(); - this.Click += new EventHandler(DisplayTabItem_Click); - SetupLibraryDocumentDSOTabPanel(); - Name = string.Format("DisplayTabLibraryDocument {0}", myDocumentInfo.DocID); - } - + public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, DocumentInfo myDocumentInfo, string myKey) + { + OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myDocumentInfo.DocID, CheckOutType.Document); + _MyKey = myKey; + _MyDisplayTabControl = myDisplayTabControl; + _MyDocumentInfo = myDocumentInfo; + container.Add(this); + InitializeComponent(); + this.Click += new EventHandler(DisplayTabItem_Click); + SetupLibraryDocumentDSOTabPanel(); + // B2022-055 assigning the Name caused a duplicate name error + // we found that the procedure tab control remained in the Control list after the procedure was closed + // later on we need to find out why it isn't removed when the procedure is closed + //Name = string.Format("DisplayTabLibraryDocument {0}", myDocumentInfo.DocID); + } + protected override void OnDisplayedChanged() { //Console.WriteLine("=>=>=>=> OnDisplayedChanged"); - if(_MyStepTabPanel != null) + if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepPanel.DisplayItemChanging = true; base.OnDisplayedChanged(); if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepPanel.DisplayItemChanging = false; + _MyStepTabPanel.MyStepPanel.DisplayItemChanging = false; //Console.WriteLine("<=<=<=<= OnDisplayedChanged"); } @@ -222,12 +234,12 @@ namespace Volian.Controls.Library { // Tell the TabControl that the ItemSelected has changed DisplayTabItem myTabItem = sender as DisplayTabItem; - if(myTabItem == null)return; + if (myTabItem == null) return; StepTabPanel myTabPanel = myTabItem.MyStepTabPanel as StepTabPanel; - if(myTabPanel == null) return; + if (myTabPanel == null) return; if (MyStepTabPanel.SelectedEditItem == null) return; MyStepTabPanel.MyDisplayTabControl.HandleChangeId(MyStepTabPanel.SelectedEditItem.MyItemInfo, myTabItem); - _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedEditItem)); + _MyDisplayTabControl.OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedEditItem)); } #endregion #region private Methods @@ -243,7 +255,10 @@ namespace Volian.Controls.Library // tabItem // Control = _MyStepTabPanel; - Name = "tabItem Item " + _MyItemInfo.ItemID; + // B2022-055 assigning the Name caused a duplicate name error + // we found that the procedure tab control remained in the Control list after the procedure was closed + // later on we need to find out why it isn't removed when the procedure is closed + //Name = "tabItem Item " + _MyItemInfo.ItemID; Text = _MyItemInfo.TabTitle; _MyItemInfo.Changed += new ItemInfoEvent(_MyItemInfo_Changed); Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-").Replace(@"\u9586?", @"\"); @@ -274,7 +289,7 @@ namespace Volian.Controls.Library } void DisplayTabItem_LostFocus(object sender, EventArgs e) { - if(Tooltip != _Tooltip) + if (Tooltip != _Tooltip) Tooltip = _Tooltip; } private string _Tooltip; @@ -285,7 +300,7 @@ namespace Volian.Controls.Library void DisplayTabItem_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { string newTooltip = e.Y > 30 ? null : _Tooltip; - if(Tooltip != newTooltip) + if (Tooltip != newTooltip) Tooltip = newTooltip; } /// @@ -295,13 +310,16 @@ namespace Volian.Controls.Library { EntryInfo myEntry = _MyItemInfo.MyContent.MyEntry; UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); - _MyDSOTabPanel = new DSOTabPanel(myEntry.MyDocument, _MyDisplayTabControl, _MyItemInfo, UserInfo.CanEdit(ui,MyItemInfo.MyDocVersion)); + _MyDSOTabPanel = new DSOTabPanel(myEntry.MyDocument, _MyDisplayTabControl, _MyItemInfo, UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion)); if (_MyDSOTabPanel.MyEdWord == null) return; // B2017-219 if we could not open the word attachment just return // // tabItem // Control = _MyDSOTabPanel; - Name = "tabItem Item " + _MyItemInfo.ItemID; + // B2022-055 assigning the Name caused a duplicate name error + // we found that the procedure tab control remained in the Control list after the procedure was closed + // later on we need to find out why it isn't removed when the procedure is closed + //Name = "tabItem Item " + _MyItemInfo.ItemID; Text = _MyItemInfo.TabTitle; Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-").Replace(@"\u9586?", @"\"); MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); @@ -310,7 +328,7 @@ namespace Volian.Controls.Library DSOTabPanel.IgnoreEnter = true; //Console.WriteLine("AddRange {0}", Name); _MyDisplayTabControl.MyBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this}); + this}); // // tabPanel // @@ -318,34 +336,37 @@ namespace Volian.Controls.Library _MyDSOTabPanel.MyDisplayTabItem = this; DSOTabPanel.IgnoreEnter = false; } - private void SetupLibraryDocumentDSOTabPanel() - { - UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); - // B2016-131 if myiteminfo is null, then the lib doc is not referenced. - // - Allow editting only if you are an Administrator - // - Cannot check if you are a Writer or Set Aministrator because we don't have a Doc Verion - _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo, (MyItemInfo != null) ? UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion):ui.IsAdministrator()); - // - // tabItem - // - Control = _MyDSOTabPanel; - Name = "tabLibraryDocument " + _MyDocumentInfo.DocID; - Text = _MyDocumentInfo.LibTitle; - DocumentConfig dc = new DocumentConfig(_MyDocumentInfo); - Tooltip = _Tooltip = dc.LibDoc_Comment; + private void SetupLibraryDocumentDSOTabPanel() + { + UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); + // B2016-131 if myiteminfo is null, then the lib doc is not referenced. + // - Allow editting only if you are an Administrator + // - Cannot check if you are a Writer or Set Aministrator because we don't have a Doc Verion + _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo, (MyItemInfo != null) ? UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion) : ui.IsAdministrator()); + // + // tabItem + // + Control = _MyDSOTabPanel; + // B2022-055 assigning the Name caused a duplicate name error + // we found that the procedure tab control remained in the Control list after the procedure was closed + // later on we need to find out why it isn't removed when the procedure is closed + //Name = "tabLibraryDocument " + _MyDocumentInfo.DocID; + Text = _MyDocumentInfo.LibTitle; + DocumentConfig dc = new DocumentConfig(_MyDocumentInfo); + Tooltip = _Tooltip = dc.LibDoc_Comment; MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); LostFocus += new EventHandler(DisplayTabItem_LostFocus); _MyDisplayTabControl.Controls.Add(_MyDSOTabPanel); - DSOTabPanel.IgnoreEnter = true; - _MyDisplayTabControl.MyBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this}); - // - // tabPanel - // - _MyDisplayTabControl.SelectDisplayTabItem(this); - _MyDSOTabPanel.MyDisplayTabItem = this; - DSOTabPanel.IgnoreEnter = false; - } + DSOTabPanel.IgnoreEnter = true; + _MyDisplayTabControl.MyBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { + this}); + // + // tabPanel + // + _MyDisplayTabControl.SelectDisplayTabItem(this); + _MyDSOTabPanel.MyDisplayTabItem = this; + DSOTabPanel.IgnoreEnter = false; + } #endregion public override string ToString() {