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 /// 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; } } /// /// 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) { _MyKey = myKey; _MyDisplayTabControl = myDisplayTabControl; _MyItemInfo = myItemInfo; container.Add(this); InitializeComponent(); this.Click += new EventHandler(DisplayTabItem_Click); if (myItemInfo.MyContent.MyEntry == null) SetupStepTabPanel(); else SetupDSOTabPanel(); Name = string.Format("DisplayTabItem {0}", myItemInfo.ItemID); } public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, DocumentInfo myDocumentInfo, string myKey) { _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 SelectedStepItem 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.SelectedStepItem == null) return; _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedStepItem)); } #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; _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011","-"); MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); // _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; //MyStepItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; if (dvi == null) return; if (dvi.VersionType > 127) MyStepTabPanel.MyStepPanel.PanelViewEditMode = E_ViewMode.View; } private string _Tooltip; void DisplayTabItem_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { Tooltip = e.Y>30?null:_Tooltip; } /// /// Creates and sets-up a DSOTabPanel /// private void SetupDSOTabPanel() { EntryInfo myEntry = _MyItemInfo.MyContent.MyEntry; _MyDSOTabPanel = new DSOTabPanel(myEntry.MyDocument, _MyDisplayTabControl); // // tabItem // Control = _MyDSOTabPanel; Name = "tabItem Item " + _MyItemInfo.ItemID; Text = _MyItemInfo.TabTitle; _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011","-"); MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); _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() { _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl); // // tabItem // Control = _MyDSOTabPanel; Name = "tabLibraryDocument " + _MyDocumentInfo.DocID; Text = _MyDocumentInfo.LibTitle; DocumentConfig dc = new DocumentConfig(_MyDocumentInfo); _Tooltip = dc.LibDoc_Comment; MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); _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"; } } }