Files
SourceCode/PROMS/Volian.Controls.Library/DisplayBookMarks.cs
T

134 lines
3.8 KiB
C#

using System;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
using JR.Utils.GUI.Forms;
namespace Volian.Controls.Library
{
public partial class DisplayBookMarks : UserControl
{
#region delegates and Events
// C2015-022 added event so that we can update child PROMS windows
public delegate void ResetBookMarksInPROMSWindowsEvent(object sender, EventArgs args);
public event ResetBookMarksInPROMSWindowsEvent ResetBookMarksInPROMSWindows;
private void OnResetBookMarksInPROMSWindows()
{
ResetBookMarksInPROMSWindows?.Invoke(this, new EventArgs());
}
#endregion //delegates and Events
#region Properties
private MostRecentItemList _MyBookMarks;
public MostRecentItemList MyBookMarks
{
get { return _MyBookMarks; }
set { _MyBookMarks = value; }
}
private ItemInfo _CurItemInfo = null;
private DisplayTabControl _MyDisplayTabControl;
public DisplayTabControl MyDisplayTabControl
{
get { return _MyDisplayTabControl; }
set
{
if (value == null) return;
_MyDisplayTabControl = value;
}
}
private EditItem _MyEditItem;
public EditItem MyEditItem
{
get { return _MyEditItem; }
set
{
if (value == null) return;
if (_CurItemInfo != null && _CurItemInfo.ItemID == value.MyItemInfo.ItemID) return;
_MyEditItem = value;
_CurItemInfo = MyEditItem.MyItemInfo;
}
}
#endregion
#region Constructors
public DisplayBookMarks()
{
InitializeComponent();
}
public void SetupBookMarks()
{
if (_MyBookMarks == null)
{
_MyBookMarks = MostRecentItemList.GetMRILst((System.Collections.Specialized.StringCollection)(Properties.Settings.Default["BookMarks"]),0);
_MyBookMarks.AfterRemove += new ItemInfoEvent(_MyBookMarks_AfterRemove);
}
lbxBookMarks.SelectedValueChanged += new EventHandler(lbxBookMarks_SelectedValueChanged);
RefreshBookMarkData();
}
void _MyBookMarks_AfterRemove(object sender)
{
RefreshBookMarkData();
}
private void RefreshBookMarkData()
{
ResetBookMarkList();
OnResetBookMarksInPROMSWindows(); // C2015-022 trigger event to update child PROMS windows with current bookmark list
SaveBookMarks();
}
// Part of Separate Windows upgrade C2015-022
// Call from FrmVEPROMS which spins through all of the child windows and updates the bookmark list in each
// - broke is code out of RefreshBookMarkData()
public void ResetBookMarkList()
{
lbxBookMarks.DataSource = null;
lbxBookMarks.DisplayMember = "MenuTitle";
lbxBookMarks.DataSource = _MyBookMarks;
btnClrBookMrks.Enabled = (lbxBookMarks.Items.Count > 0);
btnRmvCurBookMrk.Enabled = lbxBookMarks.SelectedIndex > -1;
}
private void SaveBookMarks()
{
Properties.Settings.Default.BookMarks = _MyBookMarks.ToSettings();
Properties.Settings.Default.Save();
}
void lbxBookMarks_SelectedValueChanged(object sender, EventArgs e)
{
btnRmvCurBookMrk.Enabled = (lbxBookMarks.SelectedIndex >= 0);
}
public void AddBookMark(ItemInfo itm)
{
_MyBookMarks.Add(itm);
RefreshBookMarkData();
}
#endregion
#region Events
private void btnSetBookMrk_Click(object sender, EventArgs e)
{
if (_CurItemInfo == null)
{
FlexibleMessageBox.Show("Cannot set a bookmark on this item.");
return;
}
_MyBookMarks.Add(_CurItemInfo);
RefreshBookMarkData();
}
private void btnRmvCurBookMrk_Click(object sender, EventArgs e)
{
_MyBookMarks.RemoveAt(lbxBookMarks.SelectedIndex);
RefreshBookMarkData();
}
private void btnClrBookMrks_Click(object sender, EventArgs e)
{
_MyBookMarks.Clear();
RefreshBookMarkData();
}
private void lbxBookMarks_Click(object sender, EventArgs e)
{
if (lbxBookMarks.SelectedValue is MostRecentItem itm)
MyDisplayTabControl.OpenItem(itm.MyItemInfo);
}
#endregion
}
}