/// <summary> /// если на графике уже есть индикатор ордеров - открыть его настройки /// иначе - добавить на график индикатор /// </summary> private void IndicatorOrdersMenuClick(object sender, EventArgs e) { var ordersIndi = indicators.FirstOrDefault(i => i is IndicatorOrders); if (ordersIndi != null) { var dlg = new IndicatorSettingsWindow { Indi = ordersIndi }; dlg.ShowDialog(); return; } // добавить индикатор и открыть окно его настроек var indi = new IndicatorOrders(); AddNewIndicator(indi); new IndicatorSettingsWindow { Indi = indi }.ShowDialog(); }
private void EditIndicator(int indicatorDescriptionRow) { var indi = indicators[indicatorDescriptionRow]; var oldName = indi.UniqueName; var tmpIndi = ((BaseChartIndicator)indi).Copy(); var dlg = new IndicatorSettingsWindow { Indi = (IChartIndicator)tmpIndi }; // открыть окно атрибутов узла if (dlg.ShowDialog() != DialogResult.OK) return; // обновить список индикаторов в графике ((BaseChartIndicator)dlg.Indi).Copy((BaseChartIndicator)indi); // обновить все связи между индикаторами owner.UpdateIndicatorPanesAndSeries(); // обновить сам индикатор indi.AcceptSettings(); if (indi.UniqueName == oldName) { var parametrizedName = ((BaseChartIndicator)indi).GenerateNameBySettings(); if (!string.IsNullOrEmpty(parametrizedName)) indi.UniqueName = parametrizedName; } // обновить таблицу подстановки LookupTypeEditor.UpdatePropValues(indi); // проверить уникальность имени и если надо обновить связи на серии индюка if (oldName != indi.UniqueName) { owner.EnsureUniqueName(indi); owner.RefreshDisplaySeriesAndPanels(oldName, indi.UniqueName); owner.UpdateIndicatorPanesAndSeries(); } // обновить подпись панели индикатора if (((BaseChartIndicator)indi).ownPane != null) ((BaseChartIndicator)indi).ownPane.Title = indi.UniqueName; if (onIndicatorUpdate != null) onIndicatorUpdate(oldName, indi); // проверить нарушения наследования CheckBrokenDependencies(); BuildView(); fastGrid.Invalidate(); UpdateUserInterface(); }
private void EditIndicator(int indicatorDescriptionRow) { var indi = indicators[indicatorDescriptionRow]; var oldName = indi.UniqueName; var tmpIndi = ((BaseChartIndicator)indi).Copy(); var dlg = new IndicatorSettingsWindow { Indi = (IChartIndicator)tmpIndi }; // открыть окно атрибутов узла if (dlg.ShowDialog() != DialogResult.OK) { return; } // обновить список индикаторов в графике ((BaseChartIndicator)dlg.Indi).Copy((BaseChartIndicator)indi); // обновить все связи между индикаторами owner.UpdateIndicatorPanesAndSeries(); // обновить сам индикатор indi.AcceptSettings(); if (indi.UniqueName == oldName) { var parametrizedName = ((BaseChartIndicator)indi).GenerateNameBySettings(); if (!string.IsNullOrEmpty(parametrizedName)) { indi.UniqueName = parametrizedName; } } // обновить таблицу подстановки LookupTypeEditor.UpdatePropValues(indi); // проверить уникальность имени и если надо обновить связи на серии индюка if (oldName != indi.UniqueName) { owner.EnsureUniqueName(indi); owner.RefreshDisplaySeriesAndPanels(oldName, indi.UniqueName); owner.UpdateIndicatorPanesAndSeries(); } // обновить подпись панели индикатора if (((BaseChartIndicator)indi).ownPane != null) { ((BaseChartIndicator)indi).ownPane.Title = indi.UniqueName; } if (onIndicatorUpdate != null) { onIndicatorUpdate(oldName, indi); } // проверить нарушения наследования CheckBrokenDependencies(); BuildView(); fastGrid.Invalidate(); UpdateUserInterface(); }