using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design; using DevComponents.DotNetBar; using DevComponents.DotNetBar.Charts; namespace DevComponents.Charts.Design { public class PieSeriesPointCollectionEditor : BaseCollectionEditor { #region Private variables private PieSeries _PieSeries; #endregion public PieSeriesPointCollectionEditor(Type type) : base(type) { } #region EditValue public override object EditValue( ITypeDescriptorContext context, IServiceProvider provider, object value) { _PieSeries = context.Instance as PieSeries; if (_PieSeries == null) { PieSeriesPoint psp = context.Instance as PieSeriesPoint; if (psp != null) _PieSeries = psp.ChartSeries; } if (_PieSeries != null) return (base.EditValue(context, provider, value)); return (value); } #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) { PieSeriesPoint item = ChartItem as PieSeriesPoint; if (item != null) { if (AddButton != null) { ChartControlDesigner ccd = GetDesigner(_PieSeries.ChartControl); ccd.InCopyItem = true; try { AddButton.PerformClick(); PieSeriesPointCollection spc = item.Parent as PieSeriesPointCollection; PieSeriesPoint clone = spc[spc.Count - 1]; item.CopyTo(clone); } finally { ccd.InCopyItem = false; } } } } #endregion #region CreateCollectionItemType protected override Type CreateCollectionItemType() { return typeof(PieSeriesPoint); } #endregion } }