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 } }