106 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Charts;
namespace DevComponents.Charts.Design
{
public class SeriesPointCollectionEditor : BaseCollectionEditor
{
#region Private variables
private ChartSeries _ChartSeries;
private SeriesPointCollection _SavedCollection;
#endregion
public SeriesPointCollectionEditor(Type type)
: base(type)
{
}
#region EditValue
public override object EditValue(
ITypeDescriptorContext context, IServiceProvider provider, object value)
{
_ChartSeries = context.Instance as ChartSeries;
SeriesPointCollection spc = (SeriesPointCollection)value;
_SavedCollection = new SeriesPointCollection();
foreach (SeriesPoint sp in spc)
_SavedCollection.Add(sp.Copy());
try
{
object evalue = base.EditValue(context, provider, value);
if (EditCancelled == true)
return (_SavedCollection);
return (evalue);
}
catch
{
return (_SavedCollection);
}
}
#endregion
#region CreateInstance
protected override object CreateInstance(Type itemType)
{
return (base.CreateInstance(itemType));
}
#endregion
#region CopyButton_Click
protected override void CopyButton_Click(object sender, EventArgs e)
{
SeriesPoint item = ChartItem as SeriesPoint;
if (item != null)
{
if (AddButton != null)
{
ChartControlDesigner ccd = GetDesigner(_ChartSeries.ChartControl);
ccd.InCopyItem = true;
try
{
AddButton.PerformClick();
SeriesPointCollection spc = _ChartSeries.SeriesPoints;
SeriesPoint clone = spc[spc.Count - 1];
item.CopyTo(clone);
}
finally
{
ccd.InCopyItem = false;
}
}
}
}
#endregion
#region CreateCollectionItemType
protected override Type CreateCollectionItemType()
{
return typeof(SeriesPoint);
}
#endregion
}
}