/// <summary>Write the detectors used to the stream</summary> /// <param name="detectors">the detectors of the data packet that makes up the result file</param> internal void WriteUsedDetectors(IEnumerable <IDetector> detectors) { _textWriter.WriteLine(); _textWriter.WriteLine("Container Detectors used:{0}Version:", SeparatorChar); foreach (IDetector detector in detectors.Where(d => !(d is ICodecDetector))) { _textWriter.WriteLine("{0}{1}{2}", detector.Name, SeparatorChar, _detectorFormatter.FormatVersion(detector)); } _textWriter.WriteLine(); _textWriter.WriteLine("Codec Detectors used:{0}Version:", SeparatorChar); foreach (ICodecDetector detector in detectors.Where(d => d is ICodecDetector)) { _textWriter.WriteLine("{0}{1}{2}", detector.Name, SeparatorChar, _detectorFormatter.FormatVersion(detector)); } }
private void Export(XmlNode parent, IFragment fragment, IDataReaderPool dataReaderPool, IProgressReporter progressReporter) { if (fragment == null) { return; } IResultNode results = _dataBlockScanner.GetResults(fragment, new NullProgressReporter(), dataReaderPool); if (results == null) { // No results were found in the data block // Add the bytes from this data block to the _byteCount variable // to keep the progress bar correct. _handledBytes += fragment.Length; progressReporter.ReportProgress(_totalBytes == 0 ? 0 : (int)((_handledBytes * 100) / _totalBytes)); return; } List <NameValuePair> detectableNameValuePairs = new List <NameValuePair>(); detectableNameValuePairs.Add(new NameValuePair("File", fragment.InputFile.Name)); if (fragment.Detectors != null) { foreach (IDetector detector in fragment.Detectors) { detectableNameValuePairs.Add(new NameValuePair(_detectorFormatter.DetectorType(detector), detector.Name)); detectableNameValuePairs.Add(new NameValuePair(_detectorFormatter.DetectorType(detector) + "Version", _detectorFormatter.FormatVersion(detector))); } } detectableNameValuePairs.Add(new NameValuePair("Offset", fragment.StartOffset.ToString())); detectableNameValuePairs.Add(new NameValuePair("Length", fragment.Length.ToString())); string nodeName = "UnknownContainerOrCodec"; if (fragment is IDataBlock) { nodeName = "Container"; } else { nodeName = "Codec"; } XmlElement fragmentElement = CreateElement(parent.OwnerDocument, nodeName, detectableNameValuePairs.ToArray()); parent.AppendChild(fragmentElement); Export(fragmentElement, results.Children, progressReporter); }
protected override void OnGetCellData(Row row, Column column, CellData cellData) { base.OnGetCellData(row, column, cellData); if (column.Name == null) { return; } IResultNode result = row.Item as IResultNode; if (result == null) { return; } DefaultColumnIndex index; if (DefaultColumnExtensions.TryParse(column.Name, out index)) { switch (index) { case DefaultColumnIndex.Name: cellData.Value = result.Name; if (result.InputFile is IReferenceHeaderFile) { cellData.EvenStyle = new Style(cellData.EvenStyle) { ForeColor = Color.RoyalBlue, Font = new Font(cellData.EvenStyle.Font.FontFamily, cellData.EvenStyle.Font.SizeInPoints, FontStyle.Bold) }; cellData.OddStyle = new Style(cellData.OddStyle) { ForeColor = Color.RoyalBlue, Font = new Font(cellData.OddStyle.Font.FontFamily, cellData.OddStyle.Font.SizeInPoints, FontStyle.Bold) }; } break; case DefaultColumnIndex.Detector: cellData.Value = result.Detectors.First().Name; break; case DefaultColumnIndex.DetectorVersion: cellData.Value = _detectorFormatter.FormatVersion(result.Detectors.First()); break; case DefaultColumnIndex.Offset: cellData.Value = result.StartOffset; if (DisplayMode == DisplayMode.Hex) { cellData.Format = "{0:X}"; } break; case DefaultColumnIndex.Length: cellData.Value = result.Length; if (DisplayMode == DisplayMode.Hex) { cellData.Format = "{0:X}"; } break; case DefaultColumnIndex.EndOffset: cellData.Value = result.EndOffset; if (DisplayMode == DisplayMode.Hex) { cellData.Format = "{0:X}"; } break; case DefaultColumnIndex.File: IInputFile inputFile = result.InputFile; if (inputFile != null) { cellData.Value = (new FileInfo(inputFile.Name)).Name; cellData.ToolTip = inputFile.Name; cellData.AlwaysDisplayToolTip = true; } break; } } else { IResultAttribute attribute = result.FindAttributeByName(column.Name); if (attribute == null) { cellData.Value = string.Empty; } else { cellData.Value = attribute.ValueAsString; // Align the cell content depending its value. if ((attribute.Value.GetType() == typeof(string)) || (attribute.Value.GetType() == typeof(bool))) { cellData.EvenStyle = new Style(cellData.EvenStyle, _horzAlignmentNearStyleDelta); cellData.OddStyle = new Style(cellData.OddStyle, _horzAlignmentNearStyleDelta); } else { cellData.EvenStyle = new Style(cellData.EvenStyle, _horzAlignmentFarStyleDelta); cellData.OddStyle = new Style(cellData.OddStyle, _horzAlignmentFarStyleDelta); } } } }