Exemplo n.º 1
0
 public void RenderFooter(ColloredStringBuilder stream, List <string> columnHeader)
 {
     stream.Append(LowerLeftBound);
     DrawHorizontalLineEx(stream, columnHeader, '┴');
     stream.Append(LowerRightBound);
     //DrawHorizontalLine(stream, LowerLeftBound, LowerRightBound);
 }
Exemplo n.º 2
0
        public void RenderNextProperty(ColloredStringBuilder stream, string propertyValue, int elementNr, bool isSelected, bool focused)
        {
            if (elementNr != 0)
            {
                stream.Append(VerticalLineSeperator);
                if (DrawSpace)
                {
                    stream.Append(" ");
                }
            }
            if (focused)
            {
                stream.Append(propertyValue, FocusedItemForgroundStyle, FocusedItemBackgroundStyle);
            }
            else if (isSelected)
            {
                stream.Append(propertyValue, SelectedItemForgroundStyle, SelectedItemBackgroundStyle);
            }
            else
            {
                if (id % 2 != 0)
                {
                    stream.Append(propertyValue, AlternatingTextStyle, AlternatingTextBackgroundStyle);
                }
                else
                {
                    stream.Append(propertyValue);
                }
            }

            if (DrawSpace)
            {
                stream.Append(" ");
            }
        }
Exemplo n.º 3
0
        private void DrawHorizontalLine(ColloredStringBuilder stream, char start, char end)
        {
            stream.Append(start);

            if (DrawSpace)
            {
                stream.Append(" ");
            }

            for (int i = 0; i < _width - 1; i++)
            {
                stream.Append(HorizontalLineSeperator);
            }

            if (DrawSpace)
            {
                stream.Append(" ");
            }

            stream.Append(end);
        }
Exemplo n.º 4
0
        public void BeginRenderProperty(ColloredStringBuilder stream, int elementNr, int maxElements, bool isSelected, bool focused)
        {
            id = elementNr;
            if (isSelected)
            {
                stream.Append('x');
            }
            else if (focused)
            {
                stream.Append('>');
            }
            else
            {
                stream.Append(VerticalLineSeperator);
            }

            if (DrawSpace)
            {
                stream.Append(" ");
            }
        }
Exemplo n.º 5
0
        private void RenderOnBottom(ColloredStringBuilder stream, string value)
        {
            stream.Append(VerticalLineSeperator);
            if (DrawSpace)
            {
                stream.Append(" ");
            }
            stream.Append(value);
            var toEnd = _width - value.Length;

            for (int i = 0; i < toEnd - 1; i++)
            {
                stream.Append(" ");
            }

            if (DrawSpace)
            {
                stream.Append(" ");
            }

            stream.AppendLine(VerticalLineSeperator.ToString());
            DrawHorizontalLine(stream, LowerLeftBound, LowerRightBound);
        }
Exemplo n.º 6
0
        private void DrawHorizontalLineEx(ColloredStringBuilder stream, List <string> headerInfos, char midChar)
        {
            var localCounter  = 0;
            var elemntCounter = 0;

            if (DrawSpace)
            {
                stream.Append(" ");
            }
            for (int i = 0; i < _width - 1; i++)
            {
                var targetChar = HorizontalLineSeperator;

                if (headerInfos.Count - 1 > elemntCounter)
                {
                    var element = headerInfos[elemntCounter];

                    var lengthWithExt = element.Length;
                    if (localCounter >= lengthWithExt)
                    {
                        elemntCounter++;
                        targetChar   = (midChar);
                        localCounter = 0;
                    }
                    else
                    {
                        localCounter++;
                    }
                }
                stream.Append(targetChar);
            }
            if (DrawSpace)
            {
                stream.Append(" ");
            }
        }
Exemplo n.º 7
0
        public int RenderHeader(ColloredStringBuilder stream, List <string> columnHeader)
        {
            _width = columnHeader.Sum(s => s.Length) + columnHeader.Count;
            if (DrawSpace)
            {
                _width += columnHeader.Count * 2;
                _width -= 2;
            }

            stream.Append(UpperLeftBound);

            if (DrawSpace)
            {
                stream.Append(" ");
            }
            DrawHorizontalLineEx(stream, columnHeader, '┬');

            if (DrawSpace)
            {
                stream.Append(" ");
            }

            stream.Append(UpperRightBound);
            stream.AppendLine();
            stream.Append(VerticalLineSeperator);

            if (DrawSpace)
            {
                stream.Append(" ");
            }

            for (int index = 0; index < columnHeader.Count; index++)
            {
                var propName = columnHeader[index];
                if (DrawSpace && index != 0)
                {
                    stream.Append(" ");
                }

                stream.Append(propName);

                if (DrawSpace)
                {
                    stream.Append(" ");
                }
                if (index + 1 < columnHeader.Count)
                {
                    stream.Append(VerticalLineSeperator);
                }
            }

            stream.Append(VerticalLineSeperator);
            stream.AppendLine();
            stream.Append('├');
            DrawHorizontalLineEx(stream, columnHeader, '┼');
            stream.Append('┤');

            //DrawHorizontalLine(stream, '├', '┤');
            return(_width);
        }
Exemplo n.º 8
0
 public void EndRenderProperty(ColloredStringBuilder stream, int elementNr, bool isSelected, bool focused)
 {
     stream.Append(VerticalLineSeperator);
 }