private void Init() { try { // суммарная статистика var blank = new SummaryStatItem(string.Empty, Color.Empty); gridSummaryStat.Columns.Add(new FastColumn(blank.Property(p => p.ValueString), Localizer.GetString("TitleValue"))); gridSummaryStat.colorFormatter = (object value, out Color? color, out Color? fontColor) => { color = null; var rowData = (SummaryStatItem) value; fontColor = rowData.RowColor; }; gridSummaryStat.UserDrawCellText += GridSummaryStatUserDrawCellText; // обычная статистика singleParametersFastGrid.Columns.Add(new FastColumn("a", Localizer.GetString("TitleStatisticsIndex"))); singleParametersFastGrid.Columns.Add(new FastColumn("b", " ") { colorColumnFormatter = (object value, out Color? color, out Color? fontColor) => { color = null; fontColor = null; var strVal = value as string; if (string.IsNullOrEmpty(strVal)) return; fontColor = strVal[0] == '-' ? Color.Red : char.IsDigit(strVal[0]) ? Color.Blue : (Color?) null; } }); SetupChart(chartProfit); SetupChart(chartProfit1000); SetupDealsGrid(openedDealsFastGrid, false); SetupDealsGrid(closedDealsFastGrid, true); var metadataSettings = TradeSharpDictionary.Instance.proxy.GetMetadataByCategory("UserInfoEx"); if (metadataSettings != null) photoPanel.Size = new Size((int) metadataSettings["BigAvatarMaxSize"], (int) metadataSettings["BigAvatarMaxSize"]); siteAccessor = new ForexInvestSiteAccessor(forecastsWebBrowser); } catch (Exception ex) { Logger.Info("PerformerStatistic.Init", ex); } }
private void SetupGrids() { var blank = new PerformerStatEx(); // участники performersFastGrid.LoadPerformersGridSelectedColumns += () => new List<string> { blank.Property(p => p.ChartIndex), blank.Property(p => p.TradeSignalTitle), blank.Property(p => p.Profit), blank.Property(p => p.SumProfitPoints), blank.Property(p => p.ProfitLastMonthsAbs), }; performersFastGrid.SetupGrid(); // переименовываем и задаем подходящее форматирование var colTradeSignalTitle = performersFastGrid.Grid.Columns.FirstOrDefault(c => c.PropertyName == blank.Property(p => p.TradeSignalTitle)); if (colTradeSignalTitle != null) { colTradeSignalTitle.Title = Localizer.GetString("TitleTrader"); colTradeSignalTitle.ShowClippedContent = true; } var column = performersFastGrid.Grid.Columns.FirstOrDefault(c => c.PropertyName == blank.Property(p => p.Profit)); if (column != null) { column.Title = "%"; column.cellFormatting = null; // отменяем дополнение цифр единицами измерения, которые выполняется в PerformersFastGrid column.colorColumnFormatter = DigitColorColumnFormatter; } column = performersFastGrid.Grid.Columns.FirstOrDefault(c => c.PropertyName == blank.Property(p => p.SumProfitPoints)); if (column != null) { column.Title = Localizer.GetString("TitlePointsUnits"); column.cellFormatting = null; column.colorColumnFormatter = DigitColorColumnFormatter; } column = performersFastGrid.Grid.Columns.FirstOrDefault(c => c.PropertyName == blank.Property(p => p.ProfitLastMonthsAbs)); if (column != null) { column.Title = "$"; column.cellFormatting = null; column.FormatString = "f0"; column.colorColumnFormatter = DigitColorColumnFormatter; } performersFastGrid.Grid.CheckSize(true); // статистика statisticsFastGrid.SelectEnabled = false; statisticsFastGrid.Columns.Add(new FastColumn("a", Localizer.GetString("TitleStatisticsIndex")) { ShowClippedContent = true, }); statisticsFastGrid.Columns.Add(new FastColumn("b", " ") { ColumnWidth = 50, colorColumnFormatter = DigitColorColumnFormatter }); // таблицы с позициями PerformerStatistic.SetupDealsGrid(openedOrdersFastGrid, false); PerformerStatistic.SetupDealsGrid(closedOrdersFastGrid, true); // суммарная статистика var blankSummaryStatItem = new SummaryStatItem(string.Empty, Color.Empty); gridSummaryStat.Columns.Add(new FastColumn(blankSummaryStatItem.Property(p => p.ValueString), Localizer.GetString("TitleValue"))); gridSummaryStat.colorFormatter = (object value, out Color? color, out Color? fontColor) => { color = null; var rowData = (SummaryStatItem) value; fontColor = rowData.RowColor; }; gridSummaryStat.UserDrawCellText += PerformerStatistic.GridSummaryStatUserDrawCellText; }