private void BtnUpdateSeriesClick(object sender, EventArgs e)
        {
            if (panelSeriesParams.Controls.Count == 0)
            {
                return;
            }
            var node = treeSeries.SelectedNode;

            if (node == null)
            {
                return;
            }

            // изменить настройки для серии
            foreach (GenericObjectEditor ctrl in panelSeriesParams.Controls)
            {
                var propInf = (PropertyInfo)ctrl.Tag;
                try
                {
                    propInf.SetValue(null, ctrl.PropertyValue, null);
                }
                catch (Exception ex)
                {
                    Logger.ErrorFormat("Update series value ({0}) error: {1}",
                                       ctrl.Title, ex);
                    MessageBox.Show(string.Format(Localizer.GetString("MessageValueNotRecognizedFmt"), ctrl.Title));
                }
            }

            // сохранить настройки
            var nodeXml = ToolSettingsStorageFile.LoadOrCreateNode(ToolSettingsStorageFile.NodeNameSeries);

            CandleChartControl.SaveSeriesSettingsInXml(nodeXml);
            ToolSettingsStorageFile.SaveXml(nodeXml.OwnerDocument);
        }
        private void LoadTemplates()
        {
            cbTemplate.Items.Clear();
            cbTemplate.Items.Add("");
            cbTemplate.SelectedIndex = 0;

            messageTemplate.Clear();
            var node = ToolSettingsStorageFile.LoadNode(
                ToolSettingsStorageFile.NodeNameMessageTemplates);

            if (node == null || node.ChildNodes.Count == 0)
            {
                return;
            }
            foreach (XmlElement child in node.ChildNodes)
            {
                var templateName = child.Attributes["name"].Value;
                var templateText = child.InnerText;
                messageTemplate.Add(templateName, templateText);
            }

            // добавить в комбо
            foreach (var name in messageTemplate.Keys)
            {
                cbTemplate.Items.Add(name);
            }
        }
Esempio n. 3
0
        public void LoadScripts()
        {
            var nodeScript = ToolSettingsStorageFile.LoadNode(ToolSettingsStorageFile.NodeNameScripts);

            if (nodeScript == null)
            {
                return;
            }
            scripts = TerminalScript.LoadFromXml(nodeScript);
        }
        /// <summary>
        /// Сохранение навого шаблона
        /// </summary>
        private void BtnSaveClick(object sender, EventArgs e)
        {
            var newTemplateName = cbTemplateName.Text.Trim();

            if (string.IsNullOrEmpty(newTemplateName))
            {
                MessageBox.Show(
                    Localizer.GetString("MessageTemplateNameMustBeNotEmpty"),
                    Localizer.GetString("TitleError"));
            }
            else
            {
                var rootNodeTemplates = ToolSettingsStorageFile.LoadOrCreateNode(ToolSettingsStorageFile.NodeNameChartTemplates, false);
                var doc = rootNodeTemplates.OwnerDocument;

                if (doc != null)
                {
                    XmlElement templateNode;
                    if (!ChartTemplate.GetChartTemplateNames().Contains(newTemplateName))
                    {
                        //Если узла "chartTemplate" в документе с таким именем ещё не существует, то создаём новый узел с таким именем
                        templateNode = (XmlElement)rootNodeTemplates.AppendChild(doc.CreateElement(ToolSettingsStorageFile.NodeNameChartTemplate));
                    }
                    else
                    {
                        //Если узл "chartTemplate" в документе с таким именем уже существует, то спрашиваем у пользователя, нужноли перезаписать в этот узел новый шаблон
                        if (
                            MessageBox.Show(
                                Localizer.GetString("MessageSuchNamedTemplateExistsOverwrite"),
                                Localizer.GetString("TitleConfirmation"),
                                MessageBoxButtons.OKCancel) == DialogResult.OK)
                        {
                            // если перезаписать, то находим по имени шаблона, описывающий его XmlElement
                            templateNode = (XmlElement)rootNodeTemplates.ChildNodes.Cast <XmlNode>().FirstOrDefault(node => node.Attributes != null &&
                                                                                                                    node.Attributes[ChartTemplate.AttributeName].Value != null &&
                                                                                                                    node.Attributes[ChartTemplate.AttributeName].Value == newTemplateName);
                            // и удаляем  из него  все дочерние узлы (они содержат описания индикаторов) и атрибуты
                            if (templateNode != null)
                            {
                                templateNode.RemoveAll();
                            }
                        }
                        else
                        {
                            return;
                        }
                    }
                    SaveTemplate(templateNode, doc);
                }
            }
        }
        private void SaveTemplates()
        {
            // получить узел шаблонов
            var nodeTemplate =
                ToolSettingsStorageFile.LoadOrCreateNode(ToolSettingsStorageFile.NodeNameMessageTemplates);

            // и почистить его
            while (nodeTemplate.HasChildNodes)
            {
                nodeTemplate.RemoveChild(nodeTemplate.FirstChild);
            }
            // сохранить шаблоны
            foreach (var templ in messageTemplate)
            {
                var templNode = nodeTemplate.AppendChild(nodeTemplate.OwnerDocument.CreateElement("template"));
                templNode.Attributes.Append(nodeTemplate.OwnerDocument.CreateAttribute("name")).Value = templ.Key;
                templNode.InnerText = templ.Value;
            }
            // сохранить документ
            ToolSettingsStorageFile.SaveXml(nodeTemplate.OwnerDocument);
        }
Esempio n. 6
0
        public void SaveScripts()
        {
            // получить узел скриптов
            var nodeScript =
                ToolSettingsStorageFile.LoadOrCreateNode(ToolSettingsStorageFile.NodeNameScripts);

            // и почистить его
            while (nodeScript.HasChildNodes)
            {
                nodeScript.RemoveChild(nodeScript.FirstChild);
            }
            // сохранить скрипты
            if (scripts != null)
            {
                foreach (var script in scripts)
                {
                    script.SaveInXml(nodeScript);
                }
            }
            // сохранить документ
            ToolSettingsStorageFile.SaveXml(nodeScript.OwnerDocument);
        }
        /// <summary>
        /// вспомогательный метод, нопосредствено сохраняющий/пересохраняющий шаблон
        /// </summary>
        /// <param name="templateNode">XmlElement представляющий описание шаблона</param>
        /// <param name="doc">XmlDocument, в который нужно записать орисание шаблона</param>
        private void SaveTemplate(XmlElement templateNode, XmlDocument doc)
        {
            if (templateNode != null && templateNode.OwnerDocument != null)
            {
                var xmlAttrTicker = templateNode.OwnerDocument.CreateAttribute(ChartTemplate.AttributeSymbol);
                xmlAttrTicker.Value = chbxBindCurrencyTicket.Checked
                                          ? txtCurrentTickerValue.Text
                                          : ChartTemplate.UniversalSymbol;
                templateNode.Attributes.Append(xmlAttrTicker);

                var xmlAttrChartType = templateNode.OwnerDocument.CreateAttribute(ChartTemplate.AttributeChartType);
                xmlAttrChartType.Value = chart.chart.ChartType.ToString();
                templateNode.Attributes.Append(xmlAttrChartType);

                var xmlAttrName = templateNode.OwnerDocument.CreateAttribute(ChartTemplate.AttributeName);
                xmlAttrName.Value = cbTemplateName.Text;
                templateNode.Attributes.Append(xmlAttrName);

                if (chbxSaveChartSettings.Checked)
                {
                    var xmlAttrSize = templateNode.OwnerDocument.CreateAttribute(ChartTemplate.AttributeChartSize);
                    xmlAttrSize.Value = string.Format("{0};{1}", chart.Parent.Size.Width, chart.Parent.Size.Height);
                    templateNode.Attributes.Append(xmlAttrSize);
                }

                if (chebxSaveIndicators.Checked)
                {
                    foreach (var indcator in chart.indicators)
                    {
                        var indicatorNode = (XmlElement)templateNode.AppendChild(doc.CreateElement(ToolSettingsStorageFile.NodeNameChartTemplateIndicator));
                        BaseChartIndicator.MakeIndicatorXMLNode(indcator, indicatorNode);
                    }
                }

                ToolSettingsStorageFile.SaveXml(doc);
            }
        }