85 lines
2.1 KiB
C#

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using DevComponents.DotNetBar.Charts;
namespace DevComponents.Charts.Design
{
public class ChartSeriesCollectionEditor : BaseCollectionEditor
{
#region Private variables
private BaseChart _BaseChart;
#endregion
public ChartSeriesCollectionEditor(Type type)
: base(type)
{
}
#region EditValue
public override object EditValue(
ITypeDescriptorContext context, IServiceProvider provider, object value)
{
_BaseChart = context.Instance as BaseChart;
return (base.EditValue(context, provider, value));
}
#endregion
#region CreateInstance
protected override object CreateInstance(Type itemType)
{
if (itemType == typeof(PieSeries) || itemType == typeof(ChartSeries))
{
BaseSeries series = (BaseSeries)base.CreateInstance(itemType);
series.Name = _BaseChart.BaseSeries.GetUniqueName();
return (series);
}
return (base.CreateInstance(itemType));
}
#endregion
#region CopyButton_Click
protected override void CopyButton_Click(object sender, EventArgs e)
{
BaseSeries item = ChartItem as BaseSeries;
if (item != null)
{
if (AddButton != null)
{
AddButton.PerformClick();
ChartBaseSeriesCollection csc = _BaseChart.BaseSeries;
BaseSeries clone = csc[csc.Count - 1];
string name = clone.Name;
item.CopyTo(clone);
clone.Name = name;
}
}
}
#endregion
#region CreateCollectionItemType
protected override Type CreateCollectionItemType()
{
return (_BaseChart is PieChart ? typeof(PieSeries) : typeof(ChartSeries));
}
#endregion
}
}