コード例 #1
0
        public static void BuildStatusMessageCellPainting(DataGridViewCellPaintingEventArgs e, GitRevision revision, Color foreColor, Font rowFont, bool isSelected, RevisionGrid revisions)
        {
            if (revision.BuildStatus == null)
            {
                return;
            }

            var color = GetColor();
            var text  = (string)e.FormattedValue;

            revisions.DrawColumnText(e, text, rowFont, color);

            Color GetColor()
            {
                switch (revision.BuildStatus.Status)
                {
                case BuildInfo.BuildStatus.Success:
                    return(isSelected ? Color.LightGreen : Color.DarkGreen);

                case BuildInfo.BuildStatus.Failure:
                    return(isSelected ? Color.Red : Color.DarkRed);

                case BuildInfo.BuildStatus.InProgress:
                    return(isSelected ? Color.LightBlue : Color.Blue);

                case BuildInfo.BuildStatus.Unstable:
                    return(Color.OrangeRed);

                case BuildInfo.BuildStatus.Stopped:
                    return(isSelected ? Color.LightGray : Color.Gray);

                case BuildInfo.BuildStatus.Unknown:
                    return(foreColor);

                default:
                    throw new InvalidOperationException("Unsupported build status enum value.");
                }
            }
        }