using System; using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; using System.Text; using System.Drawing; using VEPROMS.CSLA.Library; namespace Volian.Controls.Library { public partial class DisplayTabItem : DevComponents.DotNetBar.DockContainerItem { #region Private Fields private DisplayTabControl _MyDisplayTabControl; private ItemInfo _MyItemInfo; private StepTabPanel _MyStepTabPanel; private string _MyKey; private DSOTabPanel _MyDSOTabPanel; private DocumentInfo _MyDocumentInfo; #endregion #region Properties /// /// ItemInfo associated with this DisplayTabItem /// private int _OwnerID; public int OwnerID { get { return _OwnerID; } set { _OwnerID = value; } } public ItemInfo MyItemInfo { get { return _MyItemInfo; } //set { _MyItemInfo = value; } } /// /// get Key Either: /// "Item - " + Procedure ItemID for step pages /// "Doc - " + DocumentID for Word Documents /// public string MyKey { get { return _MyKey; } } /// /// Related StepTabPanel for a Step page /// public StepTabPanel MyStepTabPanel { get { return _MyStepTabPanel; } set { _MyStepTabPanel = value; } } /// /// Related DSOTabPanle for a Word page /// public DSOTabPanel MyDSOTabPanel { get { return _MyDSOTabPanel; } set { _MyDSOTabPanel = value; } } private string _MyUserRole; public string MyUserRole { get { return _MyUserRole; } set { _MyUserRole = value; } } private bool _Closed = false; public bool Closed { get { return _Closed; } set { _Closed = value; } } /// /// Current SelectedItemInfo for this page /// public ItemInfo SelectedItemInfo { get { if (_MyStepTabPanel == null) return null; return _MyStepTabPanel.SelectedItemInfo; } set { _MyStepTabPanel.SelectedItemInfo = value; } } /// /// 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); 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) { System.Windows.Forms.MessageBox.Show("Security has not been defined for PROMS. All functionality has been defaulted to the lowest level for all users until security is defined.", "no security defined", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); MesssageShown = true; } _MyStepTabPanel.MyStepTabRibbon.SetupReviewerMode(); } else if (ui.IsAdministrator()) { if(_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupAdminMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Administrator"; } else if (ui.IsSetAdministrator(myItem.MyDocVersion)) { if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupSetAdminMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Set Administrator"; } else if (ui.IsROEditor(myItem.MyDocVersion) && !ui.IsWriter(myItem.MyDocVersion)) { if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupROEditorMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - RO Editor"; } else if (ui.IsWriter(myItem.MyDocVersion)) { if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupWriterMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Writer"; } else if (ui.IsReviewer(myItem.MyDocVersion)) { if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupReviewerMode(); MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Reviewer"; } else { if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepTabRibbon.SetupReviewerMode(); 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); } protected override void OnDisplayedChanged() { //Console.WriteLine("=>=>=>=> OnDisplayedChanged"); if(_MyStepTabPanel != null) _MyStepTabPanel.MyStepPanel.DisplayItemChanging = true; base.OnDisplayedChanged(); if (_MyStepTabPanel != null) _MyStepTabPanel.MyStepPanel.DisplayItemChanging = false; //Console.WriteLine("<=<=<=<= OnDisplayedChanged"); } //void DisplayTabItem_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) //{ // Console.WriteLine("DisplayTabItem_MouseUp"); //} //void DisplayTabItem_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) //{ // Console.WriteLine("DisplayTabItem_MouseDown"); //} //void DisplayTabItem_LostFocus(object sender, EventArgs e) //{ // Console.WriteLine("DisplayTabItem_LostFocus"); //} //void DisplayTabItem_GotFocus(object sender, EventArgs e) //{ // Console.WriteLine("DisplayTabItem_GotFocus"); //} #endregion #region Event Handlers /// /// Updates SelectedRTBItem when the user selects a DisplayTabItem /// /// /// private void DisplayTabItem_Click(object sender, EventArgs e) { // Tell the TabControl that the ItemSelected has changed DisplayTabItem myTabItem = sender as DisplayTabItem; if(myTabItem == null)return; StepTabPanel myTabPanel = myTabItem.MyStepTabPanel as StepTabPanel; if(myTabPanel == null) return; if (MyStepTabPanel.SelectedEditItem == null) return; MyStepTabPanel.MyDisplayTabControl.HandleChangeId(MyStepTabPanel.SelectedEditItem.MyItemInfo, myTabItem); _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedEditItem)); } #endregion #region private Methods /// /// Creates and sets-up a StepTabPanel /// private void SetupStepTabPanel() { ((System.ComponentModel.ISupportInitialize)(_MyDisplayTabControl.MyBar)).BeginInit(); _MyDisplayTabControl.MyBar.SuspendLayout(); _MyStepTabPanel = new StepTabPanel(_MyDisplayTabControl); // // tabItem // Control = _MyStepTabPanel; Name = "tabItem Item " + _MyItemInfo.ItemID; Text = _MyItemInfo.TabTitle; _MyItemInfo.Changed += new ItemInfoEvent(_MyItemInfo_Changed); Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-"); MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); LostFocus += new EventHandler(DisplayTabItem_LostFocus); // _MyDisplayTabControl.Controls.Add(_MyStepTabPanel); _MyDisplayTabControl.MyBar.Items.Add(this); _MyDisplayTabControl.MyBar.Width = 300; // This triggers the bar to resize itself // // tabPanel // _MyStepTabPanel.MyDisplayTabItem = this; ((System.ComponentModel.ISupportInitialize)(_MyDisplayTabControl.MyBar)).EndInit(); _MyDisplayTabControl.MyBar.ResumeLayout(false); DocVersionInfo dvi = _MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; //MyRTBItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; if (dvi == null) return; if (dvi.VersionType > 127) MyStepTabPanel.MyStepPanel.VwMode = E_ViewMode.View; //added by jcb 20130718 to support disabling create pdf button when multiunit until user selects a unit if (dvi.MultiUnitCount > 1) { this.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = false; this.MyStepTabPanel.MyStepTabRibbon.btnCASCreate.Enabled = false; this.MyStepTabPanel.MyStepTabRibbon.btnReviewCreatePDF.Enabled = false; } else { this.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = true; this.MyStepTabPanel.MyStepTabRibbon.btnCASCreate.Enabled = true; this.MyStepTabPanel.MyStepTabRibbon.btnReviewCreatePDF.Enabled = true; } //end added by jcb 20130718 } void _MyItemInfo_Changed(object sender) { Text = _MyItemInfo.TabTitle; Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-"); } void DisplayTabItem_LostFocus(object sender, EventArgs e) { if(Tooltip != _Tooltip) Tooltip = _Tooltip; } private string _Tooltip; public void SetPrivateTooltip(string tt) { _Tooltip = tt; } void DisplayTabItem_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { string newTooltip = e.Y > 30 ? null : _Tooltip; if(Tooltip != newTooltip) Tooltip = newTooltip; } /// /// Creates and sets-up a DSOTabPanel /// private void SetupDSOTabPanel() { 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)); // // tabItem // Control = _MyDSOTabPanel; Name = "tabItem Item " + _MyItemInfo.ItemID; Text = _MyItemInfo.TabTitle; Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-"); MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); LostFocus += new EventHandler(DisplayTabItem_LostFocus); _MyDisplayTabControl.Controls.Add(_MyDSOTabPanel); DSOTabPanel.IgnoreEnter = true; //Console.WriteLine("AddRange {0}", Name); _MyDisplayTabControl.MyBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { this}); // // tabPanel // _MyDisplayTabControl.SelectDisplayTabItem(this); _MyDSOTabPanel.MyDisplayTabItem = this; DSOTabPanel.IgnoreEnter = false; } private void SetupLibraryDocumentDSOTabPanel() { UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo, UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion)); // // tabItem // Control = _MyDSOTabPanel; 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; } #endregion public override string ToString() { if (MyDSOTabPanel != null) return MyDSOTabPanel.ToString(); if (MyStepTabPanel != null) return MyStepTabPanel.ToString(); return "NULL"; } } }