DotNet 4.8.1 build of DotNetBar
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Reflection;
|
||||
using DevComponents.DotNetBar.Charts;
|
||||
|
||||
namespace DevComponents.Charts.Design
|
||||
{
|
||||
public class IndicatorCollectionEditor : BaseCollectionEditor
|
||||
{
|
||||
#region Private variables
|
||||
|
||||
private ChartSeries _ChartSeries;
|
||||
|
||||
#endregion
|
||||
|
||||
public IndicatorCollectionEditor(Type type)
|
||||
: base(type)
|
||||
{
|
||||
}
|
||||
|
||||
#region EditValue
|
||||
|
||||
public override object EditValue(
|
||||
ITypeDescriptorContext context, IServiceProvider provider, object value)
|
||||
{
|
||||
_ChartSeries = context.Instance as ChartSeries;
|
||||
|
||||
return (base.EditValue(context, provider, value));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region CreateInstance
|
||||
|
||||
protected override object CreateInstance(Type itemType)
|
||||
{
|
||||
if (itemType == typeof(RegressionLine))
|
||||
{
|
||||
RegressionLine regLine = (RegressionLine)base.CreateInstance(itemType);
|
||||
|
||||
if (_ChartSeries != null)
|
||||
regLine.Name = _ChartSeries.ChartIndicators.GetUniqueName("RegLine");
|
||||
|
||||
return (regLine);
|
||||
}
|
||||
|
||||
if (itemType == typeof(TrendLine))
|
||||
{
|
||||
TrendLine trendLine = (TrendLine)base.CreateInstance(itemType);
|
||||
|
||||
if (_ChartSeries != null)
|
||||
trendLine.Name = _ChartSeries.ChartIndicators.GetUniqueName("TrendLine");
|
||||
|
||||
return (trendLine);
|
||||
}
|
||||
|
||||
return (base.CreateInstance(itemType));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region CopyButton_Click
|
||||
|
||||
protected override void CopyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
ChartIndicator item = ChartItem as ChartIndicator;
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
if (AddButton != null)
|
||||
{
|
||||
ChartControlDesigner ccd = GetDesigner(_ChartSeries.ChartControl);
|
||||
ChartIndicatorCollection cic = _ChartSeries.ChartIndicators;
|
||||
|
||||
ccd.InCopyItem = true;
|
||||
|
||||
if (item is RegressionLine)
|
||||
_ItemTypes[0] = typeof(RegressionLine);
|
||||
|
||||
try
|
||||
{
|
||||
AddButton.PerformClick();
|
||||
|
||||
ChartIndicator clone = (ChartIndicator)cic[cic.Count - 1];
|
||||
|
||||
string name = clone.Name;
|
||||
item.CopyTo(clone);
|
||||
clone.Name = name;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (item is RegressionLine)
|
||||
_ItemTypes[0] = typeof(TrendLine);
|
||||
|
||||
ccd.InCopyItem = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region CreateCollectionItemType
|
||||
|
||||
protected override Type CreateCollectionItemType()
|
||||
{
|
||||
return typeof(ChartIndicator);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region CreateNewItemTypes
|
||||
|
||||
private Type[] _ItemTypes = new Type[]
|
||||
{
|
||||
typeof(TrendLine),
|
||||
typeof(RegressionLine),
|
||||
};
|
||||
|
||||
protected override Type[] CreateNewItemTypes()
|
||||
{
|
||||
return (_ItemTypes);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user