private void LoadIndicatorTemplate(IndicatorTemplateItem indicatorTemplate, IndicatorTemplateXmlNode indicatorNode) { foreach (SettingXmlNode settingXmlNode in indicatorNode.Settings) { object obj; if (settingXmlNode.Type.IsEnum) { obj = Enum.Parse(settingXmlNode.Type, settingXmlNode.Value); } else if (settingXmlNode.Type == typeof(Color)) { string[] strArray = settingXmlNode.Value.Split(new char[1] { ',' }); obj = (object)Color.FromArgb(int.Parse(strArray[0]), int.Parse(strArray[1]), int.Parse(strArray[2]), int.Parse(strArray[3])); } else { obj = Convert.ChangeType((object)settingXmlNode.Value, settingXmlNode.Type, (IFormatProvider)NumberFormatInfo.InvariantInfo); } indicatorTemplate.SetProperty(settingXmlNode.Name, obj); } foreach (IndicatorTemplateXmlNode indicatorNode1 in indicatorNode.IndicatorTemplates) { IndicatorTemplateItem indicatorTemplate1 = new IndicatorTemplateItem(indicatorNode1.Type); indicatorTemplate.Children.Add(indicatorTemplate1); this.LoadIndicatorTemplate(indicatorTemplate1, indicatorNode1); } }
private IndicatorTemplateItem CreateIndicatorTemplate(Indicator indicator) { Type type = ((object)indicator).GetType(); IndicatorTemplateItem indicatorTemplateItem = new IndicatorTemplateItem(type); indicatorTemplateItem.SetProperty("Color", ((TimeSeries)indicator).Color); indicatorTemplateItem.SetProperty("Name", ((TimeSeries)indicator).Name); indicatorTemplateItem.SetProperty("Title", ((TimeSeries)indicator).Title); foreach (PropertyInfo propertyInfo in type.GetProperties()) { foreach (Attribute attribute in propertyInfo.GetCustomAttributes(false)) { if (attribute.GetType() == typeof(IndicatorParameterAttribute)) indicatorTemplateItem.SetProperty(propertyInfo.Name, propertyInfo.GetValue((object)indicator, (object[])null)); } } return indicatorTemplateItem; }
private IndicatorTemplateItem CreateIndicatorTemplate(Indicator indicator) { Type type = ((object)indicator).GetType(); IndicatorTemplateItem indicatorTemplateItem = new IndicatorTemplateItem(type); indicatorTemplateItem.SetProperty("Color", ((TimeSeries)indicator).Color); indicatorTemplateItem.SetProperty("Name", ((TimeSeries)indicator).Name); indicatorTemplateItem.SetProperty("Title", ((TimeSeries)indicator).Title); foreach (PropertyInfo propertyInfo in type.GetProperties()) { foreach (Attribute attribute in propertyInfo.GetCustomAttributes(false)) { if (attribute.GetType() == typeof(IndicatorParameterAttribute)) { indicatorTemplateItem.SetProperty(propertyInfo.Name, propertyInfo.GetValue((object)indicator, (object[])null)); } } } return(indicatorTemplateItem); }
private void LoadIndicatorTemplate(IndicatorTemplateItem indicatorTemplate, IndicatorTemplateXmlNode indicatorNode) { foreach (SettingXmlNode settingXmlNode in indicatorNode.Settings) { object obj; if (settingXmlNode.Type.IsEnum) obj = Enum.Parse(settingXmlNode.Type, settingXmlNode.Value); else if (settingXmlNode.Type == typeof (Color)) { string[] strArray = settingXmlNode.Value.Split(new char[1] { ',' }); obj = (object) Color.FromArgb(int.Parse(strArray[0]), int.Parse(strArray[1]), int.Parse(strArray[2]), int.Parse(strArray[3])); } else obj = Convert.ChangeType((object) settingXmlNode.Value, settingXmlNode.Type, (IFormatProvider) NumberFormatInfo.InvariantInfo); indicatorTemplate.SetProperty(settingXmlNode.Name, obj); } foreach (IndicatorTemplateXmlNode indicatorNode1 in indicatorNode.IndicatorTemplates) { IndicatorTemplateItem indicatorTemplate1 = new IndicatorTemplateItem(indicatorNode1.Type); indicatorTemplate.Children.Add(indicatorTemplate1); this.LoadIndicatorTemplate(indicatorTemplate1, indicatorNode1); } }