Пример #1
0
            /// <summary>
            /// initialize column widths
            /// </summary>
            internal override void Initialize()
            {
                TableFormattingHint tableHint = this.InnerCommand.RetrieveFormattingHint() as TableFormattingHint;

                int[] columnWidthsHint = null;

                if (tableHint != null)
                {
                    columnWidthsHint = tableHint.columnWidths;
                }

                int columsOnTheScreen = this.InnerCommand._lo.ColumnNumber;

                int columns = this.CurrentTableHeaderInfo.tableColumnInfoList.Count;

                if (columns == 0)
                {
                    return;
                }

                // create arrays for widths and alignment
                int[] columnWidths = new int[columns];
                int[] alignment    = new int[columns];
                int   k            = 0;

                foreach (TableColumnInfo tci in this.CurrentTableHeaderInfo.tableColumnInfoList)
                {
                    columnWidths[k] = (columnWidthsHint != null) ? columnWidthsHint[k] : tci.width;
                    alignment[k]    = tci.alignment;
                    k++;
                }
                this.Writer.Initialize(0, columsOnTheScreen, columnWidths, alignment, this.CurrentTableHeaderInfo.hideHeader);
            }
            /// <summary>
            /// initialize column widths
            /// </summary>
            internal override void Initialize()
            {
                TableFormattingHint tableHint = this.InnerCommand.RetrieveFormattingHint() as TableFormattingHint;

                int[] columnWidthsHint = null;
                // We expect that console width is less then 120.

                if (tableHint != null)
                {
                    columnWidthsHint = tableHint.columnWidths;
                }

                int columnsOnTheScreen = GetConsoleWindowWidth(this.InnerCommand._lo.ColumnNumber);

                int columns = this.CurrentTableHeaderInfo.tableColumnInfoList.Count;

                if (columns == 0)
                {
                    return;
                }

                // create arrays for widths and alignment
                Span <int> columnWidths = columns <= StackAllocThreshold ? stackalloc int[columns] : new int[columns];
                Span <int> alignment    = columns <= StackAllocThreshold ? stackalloc int[columns] : new int[columns];

                int k = 0;

                foreach (TableColumnInfo tci in this.CurrentTableHeaderInfo.tableColumnInfoList)
                {
                    columnWidths[k] = (columnWidthsHint != null) ? columnWidthsHint[k] : tci.width;
                    alignment[k]    = tci.alignment;
                    k++;
                }
                this.Writer.Initialize(0, columnsOnTheScreen, columnWidths, alignment, this.CurrentTableHeaderInfo.hideHeader);
            }
Пример #3
0
        private void ProcessCachedGroupOnTable(TableHeaderInfo thi, List <PacketInfoData> objects)
        {
            if (thi.tableColumnInfoList.Count == 0)
            {
                return;
            }

            int[] widths = new int[thi.tableColumnInfoList.Count];

            for (int k = 0; k < thi.tableColumnInfoList.Count; k++)
            {
                string label = thi.tableColumnInfoList[k].label;

                if (string.IsNullOrEmpty(label))
                {
                    label = thi.tableColumnInfoList[k].propertyName;
                }

                if (string.IsNullOrEmpty(label))
                {
                    widths[k] = 0;
                }
                else
                {
                    widths[k] = _lo.DisplayCells.Length(label);
                }
            }

            int cellCount; // scratch variable

            foreach (PacketInfoData o in objects)
            {
                FormatEntryData fed = o as FormatEntryData;

                if (fed == null)
                {
                    continue;
                }

                TableRowEntry tre = fed.formatEntryInfo as TableRowEntry;
                int           kk  = 0;

                foreach (FormatPropertyField fpf in tre.formatPropertyFieldList)
                {
                    cellCount = _lo.DisplayCells.Length(fpf.propertyValue);
                    if (widths[kk] < cellCount)
                    {
                        widths[kk] = cellCount;
                    }

                    kk++;
                }
            }

            TableFormattingHint hint = new TableFormattingHint();

            hint.columnWidths = widths;
            _formattingHint   = hint;
        }
Пример #4
0
            /// <summary>
            /// initialize column widths
            /// </summary>
            internal override void Initialize()
            {
                TableFormattingHint tableHint = this.InnerCommand.RetrieveFormattingHint() as TableFormattingHint;

                int[] columnWidthsHint = null;

                if (tableHint != null)
                {
                    columnWidthsHint = tableHint.columnWidths;
                }

                int columnsOnTheScreen = this.InnerCommand._lo.ColumnNumber;

                // Tables need to use spaces for padding to maintain table look even if console window is resized.
                // For all other output, we use int.MaxValue if the user didn't explicitly specify a width.
                // If we detect that int.MaxValue is used, first we try to get the current console window width.
                // However, if we can't read that (for example, implicit remoting has no console window), we default
                // to something reasonable: 120 columns.
                if (columnsOnTheScreen == int.MaxValue)
                {
                    try
                    {
                        columnsOnTheScreen = Console.WindowWidth;
                    }
                    catch
                    {
                        columnsOnTheScreen = 120;
                    }
                }

                int columns = this.CurrentTableHeaderInfo.tableColumnInfoList.Count;

                if (columns == 0)
                {
                    return;
                }

                // create arrays for widths and alignment
                int[] columnWidths = new int[columns];
                int[] alignment    = new int[columns];
                int   k            = 0;

                foreach (TableColumnInfo tci in this.CurrentTableHeaderInfo.tableColumnInfoList)
                {
                    columnWidths[k] = (columnWidthsHint != null) ? columnWidthsHint[k] : tci.width;
                    alignment[k]    = tci.alignment;
                    k++;
                }
                this.Writer.Initialize(0, columnsOnTheScreen, columnWidths, alignment, this.CurrentTableHeaderInfo.hideHeader);
            }
Пример #5
0
 private void ProcessCachedGroupOnTable(TableHeaderInfo thi, List <PacketInfoData> objects)
 {
     if (thi.tableColumnInfoList.Count != 0)
     {
         int[] numArray = new int[thi.tableColumnInfoList.Count];
         for (int i = 0; i < thi.tableColumnInfoList.Count; i++)
         {
             string label = thi.tableColumnInfoList[i].label;
             if (string.IsNullOrEmpty(label))
             {
                 label = thi.tableColumnInfoList[i].propertyName;
             }
             if (string.IsNullOrEmpty(label))
             {
                 numArray[i] = 0;
             }
             else
             {
                 numArray[i] = this.lo.DisplayCells.Length(label);
             }
         }
         foreach (PacketInfoData data in objects)
         {
             FormatEntryData data2 = data as FormatEntryData;
             if (data2 != null)
             {
                 TableRowEntry formatEntryInfo = data2.formatEntryInfo as TableRowEntry;
                 int           index           = 0;
                 foreach (FormatPropertyField field in formatEntryInfo.formatPropertyFieldList)
                 {
                     int num2 = this.lo.DisplayCells.Length(field.propertyValue);
                     if (numArray[index] < num2)
                     {
                         numArray[index] = num2;
                     }
                     index++;
                 }
             }
         }
         TableFormattingHint hint = new TableFormattingHint {
             columnWidths = numArray
         };
         this.formattingHint = hint;
     }
 }
Пример #6
0
        private void ProcessCachedGroupOnTable(TableHeaderInfo thi, List<PacketInfoData> objects)
        {
            if (thi.tableColumnInfoList.Count == 0)
                return;

            int[] widths = new int[thi.tableColumnInfoList.Count];

            for (int k = 0; k < thi.tableColumnInfoList.Count; k++)
            {
                string label = thi.tableColumnInfoList[k].label;

                if (string.IsNullOrEmpty(label))
                    label = thi.tableColumnInfoList[k].propertyName;

                if (string.IsNullOrEmpty(label))
                    widths[k] = 0;
                else
                    widths[k] = _lo.DisplayCells.Length(label);
            }

            int cellCount; // scratch variable
            foreach (PacketInfoData o in objects)
            {
                FormatEntryData fed = o as FormatEntryData;

                if (fed == null)
                    continue;

                TableRowEntry tre = fed.formatEntryInfo as TableRowEntry;
                int kk = 0;

                foreach (FormatPropertyField fpf in tre.formatPropertyFieldList)
                {
                    cellCount = _lo.DisplayCells.Length(fpf.propertyValue);
                    if (widths[kk] < cellCount)
                        widths[kk] = cellCount;

                    kk++;
                }
            }

            TableFormattingHint hint = new TableFormattingHint();

            hint.columnWidths = widths;
            _formattingHint = hint;
        }
Пример #7
0
 private void ProcessCachedGroupOnTable(TableHeaderInfo thi, List<PacketInfoData> objects)
 {
     if (thi.tableColumnInfoList.Count != 0)
     {
         int[] numArray = new int[thi.tableColumnInfoList.Count];
         for (int i = 0; i < thi.tableColumnInfoList.Count; i++)
         {
             string label = thi.tableColumnInfoList[i].label;
             if (string.IsNullOrEmpty(label))
             {
                 label = thi.tableColumnInfoList[i].propertyName;
             }
             if (string.IsNullOrEmpty(label))
             {
                 numArray[i] = 0;
             }
             else
             {
                 numArray[i] = this.lo.DisplayCells.Length(label);
             }
         }
         foreach (PacketInfoData data in objects)
         {
             FormatEntryData data2 = data as FormatEntryData;
             if (data2 != null)
             {
                 TableRowEntry formatEntryInfo = data2.formatEntryInfo as TableRowEntry;
                 int index = 0;
                 foreach (FormatPropertyField field in formatEntryInfo.formatPropertyFieldList)
                 {
                     int num2 = this.lo.DisplayCells.Length(field.propertyValue);
                     if (numArray[index] < num2)
                     {
                         numArray[index] = num2;
                     }
                     index++;
                 }
             }
         }
         TableFormattingHint hint = new TableFormattingHint {
             columnWidths = numArray
         };
         this.formattingHint = hint;
     }
 }