Esempio n. 1
0
            /// <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);
        }
Esempio n. 3
0
        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);
                    }
                }
            }
        }