// this is the formatted item placed into // a left / center / right padded space // exactly ColWidth in size // and then the margins are added to // the left / right sides resp. public static string FormatForColumn(string value, RevisionDataDisplay dd, char left = ' ', char right = ' ', RevisionMetaData.Justification justification = RevisionMetaData.Justification.UNDEFINED) { if (string.IsNullOrWhiteSpace(value)) { value = ""; } string formatted; formatted = Abbreviate(value, dd.ColWidth, '…'); if (justification == RevisionMetaData.Justification.UNDEFINED) { formatted = Justify(formatted, dd.JustifyColumn, dd.ColWidth, left, right); } else { formatted = Justify(formatted, justification, dd.ColWidth, left, right); } formatted = ApplyMargin(formatted, dd.MarginLeft, dd.MarginRight, left, right); return(formatted); }
public static string Justify(string formatted, RevisionMetaData.Justification justifyColumn, int width, char left = ' ', char right = ' ') { string result = formatted; switch (justifyColumn) { case RevisionMetaData.Justification.LEFT: { result = formatted.PadRight(width, left); break; } case RevisionMetaData.Justification.CENTER: { result = formatted.PadCenter(width, left, right); break; } case RevisionMetaData.Justification.RIGHT: { result = formatted.PadLeft(width, right); break; } } return(result); }