using System; using System.ComponentModel; using DevComponents.DotNetBar.Charts; namespace DevComponents.Charts.Design { public class ChartAxesCollectionEditor : BaseCollectionEditor { #region Private variables private ChartXy _ChartXy; private Type _CollectionType; #endregion public ChartAxesCollectionEditor(Type type) : base(type) { _CollectionType = type; } #region EditValue public override object EditValue( ITypeDescriptorContext context, IServiceProvider provider, object value) { _ChartXy = context.Instance as ChartXy; return (base.EditValue(context, provider, value)); } #endregion #region CreateInstance protected override object CreateInstance(Type itemType) { ChartAxis axis = (ChartAxis)base.CreateInstance(itemType); axis.Name = (_CollectionType == typeof(ChartAxesXCollection)) ? _ChartXy.AncillaryAxesX.GetUniqueName() : _ChartXy.AncillaryAxesY.GetUniqueName(); return (axis); } #endregion #region CopyButton_Click protected override void CopyButton_Click(object sender, EventArgs e) { ChartAxis item = ChartItem as ChartAxis; if (item != null) { if (AddButton != null) { AddButton.PerformClick(); if (_CollectionType == typeof(ChartAxesXCollection)) { ChartAxesXCollection cac = _ChartXy.AncillaryAxesX; ChartAxis clone = cac[cac.Count - 1]; string name = clone.Name; item.CopyTo(clone); clone.Name = name; } else { ChartAxesYCollection cac = _ChartXy.AncillaryAxesY; ChartAxis clone = cac[cac.Count - 1]; item.CopyTo(clone); clone.Name = cac.GetUniqueName(); } } } } #endregion #region CreateCollectionItemType protected override Type CreateCollectionItemType() { return (_CollectionType == typeof(ChartAxesXCollection) ? typeof(ChartAxisX) : typeof(ChartAxisY)); } #endregion } }