コード例 #1
0
        private void OnRoomReceive(List <Room> rooms)
        {
            for (var rowIndex = 0; rowIndex < grid.rows.Count; rowIndex++)
            {
                var row       = grid.rows[rowIndex];
                var performer = (PerformerStatEx)row.ValueObject;
                performer.Rooms = string.Join(", ", rooms.Where(r => r.Owner == performer.UserId).Select(r => r.Name));
                grid.UpdateRow(rowIndex, performer);
            }
            var blank            = new PerformerStatEx();
            var roomsColumnIndex = grid.Columns.FindIndex(col => col.PropertyName == blank.Property(p => p.Rooms));

            grid.InvalidateColumns(roomsColumnIndex, roomsColumnIndex);
            chat.RoomsReceived -= RoomsReceived;
        }
コード例 #2
0
        public void SetupGrid()
        {
            var stat = new PerformerStatEx();

            try
            {
                var metadataSettings = TradeSharpDictionary.Instance.proxy.GetMetadataByCategory("UserInfoEx");
                if (metadataSettings != null)
                {
                    imgListAvatar.ImageSize = new Size((int)metadataSettings["SmallAvatarMaxSize"],
                                                       (int)metadataSettings["SmallAvatarMaxSize"]);
                }
            }
            catch (Exception ex)
            {
                Logger.Info("PerformersFastGrid.SetupGrid", ex);
            }
            try
            {
                grid.Columns.Clear();
                var cols     = LoadColumns();
                var fontBold = new Font(Font, FontStyle.Bold);

                foreach (var col in cols)
                {
                    var column = new FastColumn(col.PropertyName, col.Title)
                    {
                        FormatString = col.FormatString
                                       //ColumnMinWidth = 65
                    };
                    if (!string.IsNullOrEmpty(col.FormatSuffix))
                    {
                        column.Tag             = col.FormatSuffix;
                        column.CellFormatting += args =>
                        {
                            args.resultedString += (string)column.Tag;
                        };
                    }
                    // определенные колонки имеют определенные настройки
                    if (col.PropertyName == stat.Property(t => t.IsSubscribed))
                    {
                        column.IsHyperlinkStyleColumn = true;
                        column.HyperlinkActiveCursor  = Cursors.Hand;
                        column.ImageList = imageListGrid;
                    }
                    else if (col.PropertyName == stat.Property(t => t.TradeSignalTitle) ||
                             col.PropertyName == stat.Property(t => t.Login))
                    {
                        if (col.PropertyName == stat.Property(t => t.TradeSignalTitle))
                        {
                            column.ColumnMinWidth = 70;
                        }
                        column.IsHyperlinkStyleColumn   = true;
                        column.HyperlinkActiveCursor    = Cursors.Hand;
                        column.ColorHyperlinkTextActive = Color.Blue;
                        column.HyperlinkFontActive      = fontBold;
                        column.ShowClippedContent       = true;
                    }
                    else if (col.PropertyName == stat.Property(t => t.ChartIndex))
                    {
                        column.ColumnWidth            = imgListChartMini.ImageSize.Width + grid.CellPadding * 2;
                        column.ImageList              = imgListChartMini;
                        column.IsHyperlinkStyleColumn = true;
                        column.HyperlinkActiveCursor  = Cursors.Hand;
                    }
                    else if (col.PropertyName == stat.Property(t => t.UserScore))
                    {
                        column.IsHyperlinkStyleColumn   = true;
                        column.HyperlinkActiveCursor    = Cursors.Hand;
                        column.ColorHyperlinkTextActive = Color.Blue;
                        column.HyperlinkFontActive      = fontBold;
                    }
                    else if (col.PropertyName == stat.Property(t => t.IsRealAccount))
                    {
                        column.ImageList = imageListGrid;
                    }
                    else if (col.PropertyName == stat.Property(t => t.AvatarSmallIndex))
                    {
                        column.ImageList   = imgListAvatar;
                        column.ColumnWidth = imgListAvatar.ImageSize.Width + grid.CellPadding * 2;
                    }
                    else if (col.PropertyName == stat.Property(t => t.Rooms))
                    {
                        column.IsHyperlinkStyleColumn   = true;
                        column.HyperlinkActiveCursor    = Cursors.Hand;
                        column.ColorHyperlinkTextActive = Color.Blue;
                        column.HyperlinkFontActive      = fontBold;
                    }

                    column.Visible = true;
                    grid.Columns.Add(column);
                }

                // установка минимальных размеров таблицы (а зачем?)
                //grid.CalcSetTableMinWidth();
                grid.DataBind(grid.rows.Select(r => r.ValueObject).ToList());
                grid.CheckSize(true);
            }
            // ReSharper disable EmptyGeneralCatchClause
            catch
            // ReSharper restore EmptyGeneralCatchClause
            {
                // мб в режиме дизайнера, о чем контрол никогда не узнает
            }
        }
コード例 #3
0
        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;
        }