DotNet 4.8.1 build of DotNetBar
This commit is contained in:
@@ -0,0 +1,480 @@
|
||||
#if FRAMEWORK20
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using DevComponents.Schedule.Model;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace DevComponents.DotNetBar.Schedule
|
||||
{
|
||||
public class CustomCalendarItem : CalendarItem
|
||||
{
|
||||
#region Events
|
||||
|
||||
/// <summary>
|
||||
/// Occurs when the OwnerKey has changed
|
||||
/// </summary>
|
||||
[Description("Occurs when the OwnerKey has changed.")]
|
||||
public event EventHandler<EventArgs> OwnerKeyChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Occurs when Locked has changed
|
||||
/// </summary>
|
||||
[Description("Occurs when the Locked property has changed.")]
|
||||
public event EventHandler<EventArgs> LockedChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private variables
|
||||
|
||||
private string _OwnerKey = ""; // OwnerKey
|
||||
private bool _Locked; // Locked state
|
||||
|
||||
private CustomCalendarItem _BaseCalendarItem; // Base CalendarItem
|
||||
private CalendarView _CalendarView;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public properties
|
||||
|
||||
#region CollateId
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CollateId used for TimeLine row collation.
|
||||
/// </summary>
|
||||
public override int CollateId
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.CollateId);
|
||||
|
||||
return (base.CollateId);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
_BaseCalendarItem.CollateId = value;
|
||||
|
||||
base.CollateId = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region OwnerKey
|
||||
|
||||
/// <summary>
|
||||
/// Gets and sets the item OwnerKey
|
||||
/// </summary>
|
||||
public string OwnerKey
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.OwnerKey);
|
||||
|
||||
return (_OwnerKey);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
{
|
||||
_BaseCalendarItem.OwnerKey = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (value == null)
|
||||
value = "";
|
||||
|
||||
if (_OwnerKey.Equals(value) == false)
|
||||
{
|
||||
string oldValue = _OwnerKey;
|
||||
_OwnerKey = value;
|
||||
|
||||
OnOwnerKeyChanged(oldValue, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends ChangedEvent for the OwnerKey property
|
||||
/// </summary>
|
||||
/// <param name="oldValue">Old OwnerKey</param>
|
||||
/// <param name="newValue">New OwnerKey</param>
|
||||
protected virtual void OnOwnerKeyChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (OwnerKeyChanged != null)
|
||||
OwnerKeyChanged(this, new OwnerKeyChangedEventArgs(oldValue, newValue));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Locked
|
||||
|
||||
/// <summary>
|
||||
/// Gets and set whether modification is enabled
|
||||
/// through the user interface"
|
||||
/// </summary>
|
||||
public bool Locked
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.Locked);
|
||||
|
||||
return (_Locked);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
{
|
||||
_BaseCalendarItem.Locked = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_Locked != value)
|
||||
{
|
||||
bool oldValue = _Locked;
|
||||
_Locked = value;
|
||||
|
||||
OnLockedChanged(oldValue, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends ChangedEvent for the Locked property
|
||||
/// </summary>
|
||||
/// <param name="oldValue">Old OwnerKey</param>
|
||||
/// <param name="newValue">New OwnerKey</param>
|
||||
protected virtual void OnLockedChanged(bool oldValue, bool newValue)
|
||||
{
|
||||
if (LockedChanged != null)
|
||||
LockedChanged(this, new LockedChangedEventArgs(oldValue, newValue));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region StartTime
|
||||
|
||||
public override DateTime StartTime
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.StartTime);
|
||||
|
||||
return (base.StartTime);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
_BaseCalendarItem.StartTime = value;
|
||||
|
||||
base.StartTime = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region EndTime
|
||||
|
||||
public override DateTime EndTime
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.EndTime);
|
||||
|
||||
return (base.EndTime);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
_BaseCalendarItem.EndTime = value;
|
||||
|
||||
base.EndTime = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region BaseCalendarItem
|
||||
|
||||
/// <summary>
|
||||
/// Base CalendarItem
|
||||
///
|
||||
/// This property holds the base CalendarItem from which
|
||||
/// each displayed CustomItem (of this type) is based.
|
||||
///
|
||||
/// In order to keep all displayed items "in-sync", it is necessary
|
||||
/// to propagate data to and from the base CalendarItem. This is
|
||||
/// accomplished via hooking those members you are interested in, at
|
||||
/// both the item (HookEvents) and BaseCalendarItem (HookBaseEvents)
|
||||
/// level.
|
||||
///
|
||||
/// </summary>
|
||||
public virtual CustomCalendarItem BaseCalendarItem
|
||||
{
|
||||
get { return (_BaseCalendarItem); }
|
||||
set { _BaseCalendarItem = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IsMultiDayOrAllDayEvent
|
||||
|
||||
public bool IsMultiDayOrAllDayEvent
|
||||
{
|
||||
get
|
||||
{
|
||||
return (StartTime < EndTime &&
|
||||
(EndTime.Subtract(StartTime).TotalDays >= 1 ||
|
||||
DateTimeHelper.IsSameDay(StartTime, EndTime) == false));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region CategoryColor
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the category color used for TimeLine CondensedView markers.
|
||||
/// Use static members on Appointment class to assign the category color for example Appointment.CategoryRed.
|
||||
/// </summary>
|
||||
public override string CategoryColor
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.CategoryColor);
|
||||
|
||||
return (base.CategoryColor);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
_BaseCalendarItem.CategoryColor = value;
|
||||
|
||||
base.CategoryColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IsSelected
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets whether the item is selected.
|
||||
/// </summary>
|
||||
public override bool IsSelected
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.IsSelected);
|
||||
|
||||
return (base.IsSelected);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
_BaseCalendarItem.IsSelected = value;
|
||||
|
||||
base.IsSelected = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Visible
|
||||
|
||||
/// <summary>
|
||||
/// Gets and sets the item Visibility
|
||||
/// </summary>
|
||||
public override bool Visible
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
return (_BaseCalendarItem.Visible);
|
||||
|
||||
return (base.Visible);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
{
|
||||
_BaseCalendarItem.Visible = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_BaseCalendarItem != null)
|
||||
_BaseCalendarItem.Visible = value;
|
||||
|
||||
base.Visible = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region Internal properties
|
||||
|
||||
#region CalendarView
|
||||
|
||||
internal CalendarView CalendarView
|
||||
{
|
||||
get { return (_CalendarView); }
|
||||
set { _CalendarView = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region Refresh
|
||||
|
||||
public override void Refresh()
|
||||
{
|
||||
if (_CalendarView != null)
|
||||
{
|
||||
Control c = (Control)_CalendarView.GetContainerControl();
|
||||
|
||||
if (c != null)
|
||||
{
|
||||
foreach (BaseItem item in _CalendarView.CalendarPanel.SubItems)
|
||||
{
|
||||
BaseView view = item as BaseView;
|
||||
|
||||
if (view != null)
|
||||
RefreshItems(c, view.SubItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void RefreshItems(Control c, SubItemsCollection subItems)
|
||||
{
|
||||
foreach (BaseItem item in subItems)
|
||||
{
|
||||
CustomCalendarItem ci = item as CustomCalendarItem;
|
||||
|
||||
if (ci != null)
|
||||
{
|
||||
if (ci == this || ci.BaseCalendarItem == this)
|
||||
ci.Invalidate(c);
|
||||
}
|
||||
else if (item is AllDayPanel)
|
||||
{
|
||||
RefreshItems(c, item.SubItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Paint
|
||||
|
||||
public override void Paint(ItemPaintArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Copy
|
||||
|
||||
/// <summary>
|
||||
/// Returns copy of the item.
|
||||
/// </summary>
|
||||
public override BaseItem Copy()
|
||||
{
|
||||
CustomCalendarItem objCopy = new CustomCalendarItem();
|
||||
CopyToItem(objCopy);
|
||||
|
||||
return (objCopy);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Copies the CustomCalendarItem specific properties to new instance of the item.
|
||||
/// </summary>
|
||||
/// <param name="copy">New CustomCalendarItem instance</param>
|
||||
protected override void CopyToItem(BaseItem copy)
|
||||
{
|
||||
CustomCalendarItem objCopy = copy as CustomCalendarItem;
|
||||
|
||||
if (objCopy != null)
|
||||
{
|
||||
base.CopyToItem(objCopy);
|
||||
|
||||
objCopy._OwnerKey = this._OwnerKey;
|
||||
objCopy._Locked = this.Locked;
|
||||
objCopy._CalendarView = this.CalendarView;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#region OwnerKeyChangedEventArgs
|
||||
|
||||
/// <summary>
|
||||
/// OwnerKeyChangedEventArgs
|
||||
/// </summary>
|
||||
///
|
||||
public class OwnerKeyChangedEventArgs : ValueChangedEventArgs<string, string>
|
||||
{
|
||||
public OwnerKeyChangedEventArgs(string oldValue, string newValue)
|
||||
: base(oldValue, newValue)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region LockedChangedEventArgs
|
||||
|
||||
/// <summary>
|
||||
/// LockedChangedEventArgs
|
||||
/// </summary>
|
||||
///
|
||||
public class LockedChangedEventArgs : ValueChangedEventArgs<bool, bool>
|
||||
{
|
||||
public LockedChangedEventArgs(bool oldValue, bool newValue)
|
||||
: base(oldValue, newValue)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region CategoryColorChangedEventArgs
|
||||
|
||||
/// <summary>
|
||||
/// CategoryColorChangedEventArgs
|
||||
/// </summary>
|
||||
///
|
||||
public class CategoryColorChangedEventArgs : ValueChangedEventArgs<string, string>
|
||||
{
|
||||
public CategoryColorChangedEventArgs(string oldValue, string newValue)
|
||||
: base(oldValue, newValue)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user