public Stream Build(HeaderBase header, BodyBase body) { var formattedHeader = _headerBuilder.Build(header); var formattedBody = _bodyBuilder.Build(body); var finalContent = _merger.Merge(formattedHeader, formattedBody); return(finalContent); }
public WindowPanel(string title = "", float width = 165, System.Type headerType = null) : base(width) { if (headerType == null) { headerType = typeof(HeaderWidget); } _header = (HeaderBase)System.Activator.CreateInstance(headerType, title); _header.SetToggleCallback(x => _container.Style.Set(Styles.Hidden, !x)); _container = new VerticalLayout(width); base.AddChild(_header); base.AddChild(_container); }
private void WriteValue <TItem>(TItem item, HeaderBase <TItem> header, int offset, StreamWriter streamWriter, bool shouldWriteOffsetValue) { var value = header.GetValue(item); if (value == null) { if (shouldWriteOffsetValue) { streamWriter.Write(OffsetValue); } } else if (value is bool) { streamWriter.Write((bool)value ? "Yes" : "No"); if (shouldWriteOffsetValue) { streamWriter.Write(OffsetValue); } } else if (value is DateTime) { var dateFormat = Thread.CurrentThread.CurrentCulture.DateTimeFormat; streamWriter.Write(((DateTime)value).ToString("d", dateFormat)); if (shouldWriteOffsetValue) { streamWriter.Write(OffsetValue); } } else if (value is ICollection) { // ReSharper disable PossibleMultipleEnumeration streamWriter.Write(OffsetValue); IEnumerable <HeaderBase <object> > childHeaders = null; foreach (var itemValue in value as ICollection) { if (itemValue == null) { continue; } streamWriter.Write(Environment.NewLine); Offset(offset, streamWriter); if (childHeaders == null) { childHeaders = CreateHeadersFromProperties <object>(itemValue.GetType()); } foreach (var itemHeader in childHeaders) { WriteValue(itemValue, itemHeader, offset, streamWriter, shouldWriteOffsetValue: UseOffsetBeforeNewLine || !(!UseOffsetBeforeNewLine && childHeaders.Last().Equals(itemHeader))); } } // ReSharper restore PossibleMultipleEnumeration } else if (value is string) { var strVal = value as string; var wrappedInQuotMarks = strVal.StartsWith("\"") && strVal.EndsWith("\""); if (wrappedInQuotMarks) { streamWriter.Write("\"\""); } streamWriter.Write(value); if (wrappedInQuotMarks) { streamWriter.Write("\"\""); } if (shouldWriteOffsetValue) { streamWriter.Write(OffsetValue); } } else if (value is Enum) { //do nothing } else { streamWriter.Write(value.ToString()); if (shouldWriteOffsetValue) { streamWriter.Write(OffsetValue); } } }