/// <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); }
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; }
/// <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); }
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; } }
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; }
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; } }