示例#1
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);
     rv.VisitRecord(shapProps);
     foreach (ContinueFrt12Record cr in continues)
         rv.VisitRecord(cr);
 }
示例#2
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(dataFormat);
            rv.VisitRecord(BeginRecord.instance);

            if (chart3DBarShape != null)
                rv.VisitRecord(chart3DBarShape);
            if (lineFormat != null)
            {
                rv.VisitRecord(lineFormat);
                rv.VisitRecord(areaFormat);
                rv.VisitRecord(pieFormat);
            }

            if (serFmt != null)
                rv.VisitRecord(serFmt);

            if (gelFrame != null)
                gelFrame.VisitContainedRecords(rv);
            if (markerFormat != null)
                rv.VisitRecord(markerFormat);

            if (attachedLabel != null)
                rv.VisitRecord(attachedLabel);
            if (shapeProps1 != null)
                shapeProps1.VisitContainedRecords(rv);
            if (shapeProps2 != null)
                shapeProps2.VisitContainedRecords(rv);
            if (crtMlFrt != null)
                crtMlFrt.VisitContainedRecords(rv);

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#3
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);
     rv.VisitRecord(crtmlFrt);
     foreach (CrtMlFrtContinueRecord cr in continues)
         rv.VisitRecord(cr);
 }
示例#4
0
 public void VisitCellsForRow(int rowIndex, RecordVisitor rv)
 {
     CellValueRecordInterface[] rowCells = records[rowIndex];
     if (rowCells == null)
     {
         throw new ArgumentException("Row [" + rowIndex + "] is empty");
     }
     for (int i = 0; i < rowCells.Length; i++)
     {
         RecordBase cvr = (RecordBase)rowCells[i];
         if (cvr == null)
         {
             continue;
         }
         int nBlank = CountBlanks(rowCells, i);
         if (nBlank > 1)
         {
             rv.VisitRecord(CreateMBR(rowCells, i, nBlank));
             i += nBlank - 1;
         }
         else if (cvr is RecordAggregate)
         {
             RecordAggregate agg = (RecordAggregate)cvr;
             agg.VisitContainedRecords(rv);
         }
         else
         {
             rv.VisitRecord((Record)cvr);
         }
     }
 }
示例#5
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(legend);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(pos);
            attachedLabel.VisitContainedRecords(rv);

            if (frame != null)
            {
                frame.VisitContainedRecords(rv);
            }

            if (crtLayout != null)
            {
                rv.VisitRecord(crtLayout);
            }

            if (textProps != null)
            {
                textProps.VisitContainedRecords(rv);
            }

            if (crtMlFrt != null)
            {
                crtMlFrt.VisitContainedRecords(rv);
            }
            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#6
0
 private static void VisitIfPresent(Record r, RecordVisitor rv)
 {
     if (r != null)
     {
         rv.VisitRecord(r);
     }
 }
示例#7
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            if (ivaxis != null)
            {
                ivaxis.VisitContainedRecords(rv);
            }
            if (dvaxis != null)
            {
                dvaxis.VisitContainedRecords(rv);
            }
            dvaxisSecond.VisitContainedRecords(rv);
            if (seriesAxis != null)
            {
                seriesAxis.VisitContainedRecords(rv);
            }

            foreach (AttachedLabelAggregate al in attachedLabelList)
            {
                al.VisitContainedRecords(rv);
            }
            if (plotArea != null)
            {
                rv.VisitRecord(plotArea);
                if (frame != null)
                {
                    frame.VisitContainedRecords(rv);
                }
            }
        }
示例#8
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            int nRegions = _mergedRegions.Count;

            if (nRegions < 1)
            {
                // no need to write a single empty MergeCellsRecord
                return;
            }

            int nFullMergedCellsRecords = nRegions / MAX_MERGED_REGIONS;
            int nLeftoverMergedRegions  = nRegions % MAX_MERGED_REGIONS;

            CellRangeAddress[] cras = (CellRangeAddress[])_mergedRegions.ToArray();

            for (int i = 0; i < nFullMergedCellsRecords; i++)
            {
                int startIx = i * MAX_MERGED_REGIONS;
                rv.VisitRecord(new MergeCellsRecord(cras, startIx, MAX_MERGED_REGIONS));
            }
            if (nLeftoverMergedRegions > 0)
            {
                int startIx = nFullMergedCellsRecords * MAX_MERGED_REGIONS;
                rv.VisitRecord(new MergeCellsRecord(cras, startIx, nLeftoverMergedRegions));
            }
        }
示例#9
0
        private int VisitRowRecordsForBlock(int blockIndex, RecordVisitor rv)
        {
            int startIndex = blockIndex * DBCellRecord.BLOCK_SIZE;
            int endIndex   = startIndex + DBCellRecord.BLOCK_SIZE;

            IEnumerator rowIterator = _rowRecords.Values.GetEnumerator();

            //Given that we basically iterate through the rows in order,
            //For a performance improvement, it would be better to return an instance of
            //an iterator and use that instance throughout, rather than recreating one and
            //having to move it to the right position.
            int i = 0;

            for (; i < startIndex && rowIterator.MoveNext(); i++)
            {
                ;
            }

            int result = 0;

            while (rowIterator.MoveNext() && (i++ < endIndex))
            {
                Record rec = (Record)rowIterator.Current;
                result += rec.RecordSize;
                rv.VisitRecord(rec);
            }
            return(result);
        }
示例#10
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(axis);
            rv.VisitRecord(BeginRecord.instance);

            if (catSerRange != null)
            {
                rv.VisitRecord(catSerRange);
            }

            rv.VisitRecord(axcExt);
            if (catLab != null)
            {
                WriteStartBlock(rv);
                rv.VisitRecord(catLab);
            }
            axs.VisitContainedRecords(rv);

            foreach (CrtMlFrtAggregate crtmlfrt in crtmlfrtList)
            {
                crtmlfrt.VisitContainedRecords(rv);
            }

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#11
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     foreach (CFRecordsAggregate subAgg in _cfHeaders)
     {
         subAgg.VisitContainedRecords(rv);
     }
 }
示例#12
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            int nRegions = _mergedRegions.Count;
            if (nRegions < 1)
            {
                // no need to write a single empty MergeCellsRecord
                return;
            }

            int nFullMergedCellsRecords = nRegions / MAX_MERGED_REGIONS;
            int nLeftoverMergedRegions = nRegions % MAX_MERGED_REGIONS;

            CellRangeAddress[] cras = (CellRangeAddress[])_mergedRegions.ToArray(typeof(CellRangeAddress));

            for (int i = 0; i < nFullMergedCellsRecords; i++)
            {
                int startIx = i * MAX_MERGED_REGIONS;
                rv.VisitRecord(new MergeCellsRecord(cras, startIx, MAX_MERGED_REGIONS));
            }
            if (nLeftoverMergedRegions > 0)
            {
                int startIx = nFullMergedCellsRecords * MAX_MERGED_REGIONS;
                rv.VisitRecord(new MergeCellsRecord(cras, startIx, nLeftoverMergedRegions));
            }
        }
示例#13
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(dat);
     rv.VisitRecord(BeginRecord.instance);
     ld.VisitContainedRecords(rv);
     WriteEndBlock(rv);
     rv.VisitRecord(EndRecord.instance);
 }
示例#14
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(dat);
     rv.VisitRecord(BeginRecord.instance);
     ld.VisitContainedRecords(rv);
     WriteEndBlock(rv);
     rv.VisitRecord(EndRecord.instance);
 }
示例#15
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     for (int i = 0; i < _cfHeaders.Count; i++)
     {
         CFRecordsAggregate subAgg = (CFRecordsAggregate)_cfHeaders[i];
         subAgg.VisitContainedRecords(rv);
     }
 }
示例#16
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(_pls);
     for (int i = 0; i < _plsContinues.Length; i++)
     {
         rv.VisitRecord(_plsContinues[i]);
     }
 }
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     for (int i = 0; i < _cfHeaders.Count; i++)
     {
         CFRecordsAggregate subAgg = (CFRecordsAggregate)_cfHeaders[i];
         subAgg.VisitContainedRecords(rv);
     }
 }
示例#18
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(_pls);
     for (int i = 0; i < _plsContinues.Length; i++)
     {
         rv.VisitRecord(_plsContinues[i]);
     }
 }
示例#19
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(header);
     foreach (CFRuleBase rule in rules)
     {
         rv.VisitRecord(rule);
     }
 }
示例#20
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(chartForamt);
            rv.VisitRecord(BeginRecord.instance);

            rv.VisitRecord(chartTypeRecord);
            if (bopPopCustom != null)
            {
                rv.VisitRecord(bopPopCustom);
            }
            rv.VisitRecord(crtLink);
            if (seriesList != null)
            {
                rv.VisitRecord(crtLink);
            }
            if (chart3d != null)
            {
                rv.VisitRecord(chart3d);
            }
            if (ld != null)
            {
                ld.VisitContainedRecords(rv);
            }
            if (dropBar1 != null)
            {
                dropBar1.VisitContainedRecords(rv);
                dropBar2.VisitContainedRecords(rv);
            }
            foreach (KeyValuePair <CrtLineRecord, LineFormatRecord> kv in dicLines)
            {
                rv.VisitRecord(kv.Key);
                rv.VisitRecord(kv.Value);
            }
            if (dft1 != null)
            {
                dft1.VisitContainedRecords(rv);
                if (dft2 != null)
                {
                    dft2.VisitContainedRecords(rv);
                }
            }

            if (dataLabExtContents != null)
            {
                rv.VisitRecord(dataLabExtContents);
            }
            if (ss != null)
            {
                ss.VisitContainedRecords(rv);
            }
            foreach (ShapePropsAggregate shape in shapeList)
            {
                shape.VisitContainedRecords(rv);
            }

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#21
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);
     rv.VisitRecord(shapProps);
     foreach (ContinueFrt12Record cr in continues)
     {
         rv.VisitRecord(cr);
     }
 }
示例#22
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(header);
     for (int i = 0; i < rules.Count; i++)
     {
         CFRuleRecord rule = (CFRuleRecord)rules[i];
         rv.VisitRecord(rule);
     }
 }
示例#23
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);
     rv.VisitRecord(crtmlFrt);
     foreach (CrtMlFrtContinueRecord cr in continues)
     {
         rv.VisitRecord(cr);
     }
 }
示例#24
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            // Replicates record order from Excel 2007, though this is not critical

            VisitIfPresent(_protectRecord, rv);
            VisitIfPresent(_objectProtectRecord, rv);
            VisitIfPresent(_scenarioProtectRecord, rv);
            VisitIfPresent(_passwordRecord, rv);
        }
示例#25
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(text);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(pos);

            if (fontX != null)
            {
                rv.VisitRecord(fontX);
            }

            if (alRuns != null)
            {
                rv.VisitRecord(alRuns);
            }

            rv.VisitRecord(brai);

            if (seriesText != null)
            {
                rv.VisitRecord(seriesText);
            }

            if (frame != null)
            {
                frame.VisitContainedRecords(rv);
            }

            if (objectLink != null)
            {
                rv.VisitRecord(objectLink);
            }

            if (dataLab != null)
            {
                rv.VisitRecord(dataLab);
            }

            if (crtLayout != null)
            {
                rv.VisitRecord(crtLayout);
            }

            if (textProps != null)
            {
                textProps.VisitContainedRecords(rv);
            }

            if (crtMlFrt != null)
            {
                crtMlFrt.VisitContainedRecords(rv);
            }

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#26
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(dimensions);
     foreach (KeyValuePair<SeriesIndexRecord, List<Record>> kv in dicData)
     {
         rv.VisitRecord(kv.Key);
         foreach (Record r in kv.Value)
             rv.VisitRecord(r);
     }
 }
示例#27
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);//??
     rv.VisitRecord(yMult);
     rv.VisitRecord(startObject);
     IsInStartObject = true;
     attachedLabel.VisitContainedRecords(rv);
     IsInStartObject = false;
     rv.VisitRecord(endObject);
 }
示例#28
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);
     if(textPropsStream!=null)
         rv.VisitRecord(textPropsStream);
     if (richTextStream != null)
         rv.VisitRecord(richTextStream);
     foreach (ContinueFrt12Record cr in continues)
         rv.VisitRecord(cr);
 }
示例#29
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);//??
     rv.VisitRecord(yMult);
     rv.VisitRecord(startObject);
     IsInStartObject = true;
     attachedLabel.VisitContainedRecords(rv);
     IsInStartObject = false;
     rv.VisitRecord(endObject);
 }
示例#30
0
 private static void VisitIfPresent(PageBreakRecord r, RecordVisitor rv)
 {
     if (r != null)
     {
         if (r.IsEmpty)
         {
             // its OK to not serialize empty page break records
             return;
         }
         rv.VisitRecord(r);
     }
 }
示例#31
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     if (_validationList.Count == 0)
     {
         return;
     }
     rv.VisitRecord(_headerRec);
     for (int i = 0; i < _validationList.Count; i++)
     {
         rv.VisitRecord((Record)_validationList[i]);
     }
 }
示例#32
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     if (_validationList.Count == 0)
     {
         return;
     }
     rv.VisitRecord(_headerRec);
     for (int i = 0; i < _validationList.Count; i++)
     {
         rv.VisitRecord((Record)_validationList[i]);
     }
 }
示例#33
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(dimensions);
     foreach (KeyValuePair <SeriesIndexRecord, List <Record> > kv in dicData)
     {
         rv.VisitRecord(kv.Key);
         foreach (Record r in kv.Value)
         {
             rv.VisitRecord(r);
         }
     }
 }
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(axisPraent);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(pos);
            if (axes != null)
                axes.VisitContainedRecords(rv);
            foreach (CRTAggregate crt in crtList)
                crt.VisitContainedRecords(rv);

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#35
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(dataFormat);
            rv.VisitRecord(BeginRecord.instance);

            if (chart3DBarShape != null)
            {
                rv.VisitRecord(chart3DBarShape);
            }
            if (lineFormat != null)
            {
                rv.VisitRecord(lineFormat);
                rv.VisitRecord(areaFormat);
                rv.VisitRecord(pieFormat);
            }

            if (serFmt != null)
            {
                rv.VisitRecord(serFmt);
            }

            if (gelFrame != null)
            {
                gelFrame.VisitContainedRecords(rv);
            }
            if (markerFormat != null)
            {
                rv.VisitRecord(markerFormat);
            }

            if (attachedLabel != null)
            {
                rv.VisitRecord(attachedLabel);
            }
            if (shapeProps1 != null)
            {
                shapeProps1.VisitContainedRecords(rv);
            }
            if (shapeProps2 != null)
            {
                shapeProps2.VisitContainedRecords(rv);
            }
            if (crtMlFrt != null)
            {
                crtMlFrt.VisitContainedRecords(rv);
            }

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#36
0
        /// <summary>
        /// Visit each of the atomic BIFF records contained in this {@link RecordAggregate} in the order
        /// that they should be written to file.  Implementors may or may not return the actual
        /// {@link Record}s being used to manage POI's internal implementation.  Callers should not
        /// assume either way, and therefore only attempt to modify those {@link Record}s after cloning
        /// </summary>
        /// <param name="rv"></param>
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(_formulaRecord);
            Record sharedFormulaRecord = _sharedValueManager.GetRecordForFirstCell(this);

            if (sharedFormulaRecord != null)
            {
                rv.VisitRecord(sharedFormulaRecord);
            }
            if (_formulaRecord.HasCachedResultString && _stringRecord != null)
            {
                rv.VisitRecord(_stringRecord);
            }
        }
示例#37
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(gelFrame1);
     if (gelFrame2 != null)
         rv.VisitRecord(gelFrame2);
     foreach (ContinueRecord cr in continues)
         rv.VisitRecord(cr);
     if (picF != null)
     {
         rv.VisitRecord(BeginRecord.instance);
         rv.VisitRecord(picF);
         rv.VisitRecord(EndRecord.instance);
     }
 }
示例#38
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(axis);
            rv.VisitRecord(BeginRecord.instance);

            if (catSerRange != null)
                rv.VisitRecord(catSerRange);

            axs.VisitContainedRecords(rv);
            if (crtmlfrt != null)
                crtmlfrt.VisitContainedRecords(rv);

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#39
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     if (dataLabExt != null)
     {
         rv.VisitRecord(dataLabExt);
         rv.VisitRecord(startObject);
         IsInStartObject = true;
     }
     attachedLabel.VisitContainedRecords(rv);
     if (endObject != null)
     {
         IsInStartObject = false;
         rv.VisitRecord(endObject);
     }
 }
示例#40
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(dropBar);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(lineFormat);
            rv.VisitRecord(areaFormat);

            if (gelFrame != null)
                gelFrame.VisitContainedRecords(rv);
            if (shapProps != null)
                shapProps.VisitContainedRecords(rv);

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#41
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);//??
     rv.VisitRecord(frtFontList);
     rv.VisitRecord(startObject);
     IsInStartObject = true;
     foreach (KeyValuePair<FontRecord, FbiRecord> kv in dicFonts)
     {
         rv.VisitRecord(kv.Key);
         if (kv.Value != null)
             rv.VisitRecord(kv.Value);
     }
     IsInStartObject = false;
     rv.VisitRecord(endObject);
 }
示例#42
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            PositionTrackingVisitor stv = new PositionTrackingVisitor(rv, 0);
            //DBCells are serialized before row records.
            int blockCount = this.RowBlockCount;

            for (int blockIndex = 0; blockIndex < blockCount; blockIndex++)
            {
                // Serialize a block of rows.
                // Hold onto the position of the first row in the block
                int pos = 0;
                // Hold onto the size of this block that was serialized
                int rowBlockSize = VisitRowRecordsForBlock(blockIndex, rv);
                pos += rowBlockSize;
                // Serialize a block of cells for those rows
                int          startRowNumber = GetStartRowNumberForBlock(blockIndex);
                int          endRowNumber   = GetEndRowNumberForBlock(blockIndex);
                DBCellRecord cellRecord     = new DBCellRecord();
                // Note: Cell references start from the second row...
                int cellRefOffset = (rowBlockSize - RowRecord.ENCODED_SIZE);
                for (int row = startRowNumber; row <= endRowNumber; row++)
                {
                    if (_valuesAgg.RowHasCells(row))
                    {
                        stv.Position = 0;
                        _valuesAgg.VisitCellsForRow(row, stv);
                        int rowCellSize = stv.Position;
                        pos += rowCellSize;
                        // Add the offset to the first cell for the row into the
                        // DBCellRecord.
                        cellRecord.AddCellOffset((short)cellRefOffset);
                        cellRefOffset = rowCellSize;
                    }
                }
                // Calculate Offset from the start of a DBCellRecord to the first Row
                cellRecord.RowOffset = (pos);
                rv.VisitRecord(cellRecord);
            }
            foreach (Record _hyperlinkRecord in _hyperlinkRecordRecords)
            {
                rv.VisitRecord(_hyperlinkRecord);
            }
            foreach (Record _unknownRecord in _unknownRecords)
            {
                // Potentially breaking the file here since we don't know exactly where to write these records
                rv.VisitRecord(_unknownRecord);
            }
        }
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     VisitIfPresent(_rowBreaksRecord, rv);
     VisitIfPresent(_columnBreaksRecord, rv);
     VisitIfPresent(header, rv);
     VisitIfPresent(footer, rv);
     VisitIfPresent(_hCenter, rv);
     VisitIfPresent(_vCenter, rv);
     VisitIfPresent(_leftMargin, rv);
     VisitIfPresent(_rightMargin, rv);
     VisitIfPresent(_topMargin, rv);
     VisitIfPresent(_bottomMargin, rv);
     VisitIfPresent(_pls, rv);
     VisitIfPresent(printSetup, rv);
     VisitIfPresent(_bitmap, rv);
 }
示例#44
0
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     WriteStartBlock(rv);
     if (textPropsStream != null)
     {
         rv.VisitRecord(textPropsStream);
     }
     if (richTextStream != null)
     {
         rv.VisitRecord(richTextStream);
     }
     foreach (ContinueFrt12Record cr in continues)
     {
         rv.VisitRecord(cr);
     }
 }
示例#45
0
            public override void VisitContainedRecords(RecordVisitor rv)
            {
                rv.VisitRecord(legendException);
                if (attachedLabel != null)
                {
                    rv.VisitRecord(BeginRecord.instance);
                    attachedLabel.VisitContainedRecords(rv);
                    if (textProps != null)
                    {
                        textProps.VisitContainedRecords(rv);
                    }

                    WriteEndBlock(rv);
                    rv.VisitRecord(EndRecord.instance);
                }
            }
示例#46
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(axisPraent);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(pos);
            if (axes != null)
            {
                axes.VisitContainedRecords(rv);
            }
            foreach (CRTAggregate crt in crtList)
            {
                crt.VisitContainedRecords(rv);
            }

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#47
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            if (dataLabExt != null)
            {
                rv.VisitRecord(dataLabExt);
                rv.VisitRecord(startObject);
                IsInStartObject = true;
            }

            rv.VisitRecord(defaultText);
            attachedLabel.VisitContainedRecords(rv);

            if (endObject != null)
            {
                rv.VisitRecord(endObject);
                IsInStartObject = false;
            }
        }
示例#48
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(frame);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(lineFormat);
            rv.VisitRecord(areaFormat);
            if (gelFrame != null)
                gelFrame.VisitContainedRecords(rv);

            //TODO: write StartBlockRecord

            if (shapeProps != null)
            {
                //WriteStartBlock(rv);
                shapeProps.VisitContainedRecords(rv);
            }
            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
示例#49
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            if (ivaxis != null)
                ivaxis.VisitContainedRecords(rv);
            if (dvaxis != null)
                dvaxis.VisitContainedRecords(rv);
            dvaxisSecond.VisitContainedRecords(rv);
            if (seriesAxis != null)
                seriesAxis.VisitContainedRecords(rv);

            foreach (AttachedLabelAggregate al in attachedLabelList)
                al.VisitContainedRecords(rv);
            if (plotArea != null)
            {
                rv.VisitRecord(plotArea);
                if (frame != null)
                    frame.VisitContainedRecords(rv);
            }
        }
示例#50
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(legend);
            rv.VisitRecord(BeginRecord.instance);
            rv.VisitRecord(pos);
            attachedLabel.VisitContainedRecords(rv);

            if (frame != null)
                frame.VisitContainedRecords(rv);

            if (crtLayout != null)
                rv.VisitRecord(crtLayout);

            if (textProps != null)
                textProps.VisitContainedRecords(rv);

            if (crtMlFrt != null)
                crtMlFrt.VisitContainedRecords(rv);
            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     if (_recs.Count==0)
     {
         return;
     }
     rv.VisitRecord(_bofRec);
     for (int i = 0; i < _recs.Count; i++)
     {
         RecordBase rb = _recs[i];
         if (rb is RecordAggregate)
         {
             ((RecordAggregate)rb).VisitContainedRecords(rv);
         }
         else
         {
             rv.VisitRecord((Record)rb);
         }
     }
     rv.VisitRecord(EOFRecord.instance);
 }
示例#52
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            if (ifmt != null) rv.VisitRecord(ifmt);
            if (tick != null) rv.VisitRecord(tick);
            if (fontx != null) rv.VisitRecord(fontx);
            for (int i = 0; i < axisLines.Count; i++)
            {
                rv.VisitRecord(axisLines[i]);
                rv.VisitRecord(lineFormats[i]);
            }

            if (areaFormat != null) rv.VisitRecord(areaFormat);
            if (gelFrame != null) gelFrame.VisitContainedRecords(rv);
            foreach (ShapePropsAggregate shape in shapes)
                shape.VisitContainedRecords(rv);
            if (textProps != null)
            {
                rv.VisitRecord(textProps);
                foreach (ContinueFrt12Record c in continues)
                    rv.VisitRecord(c);
            }
        }
示例#53
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            rv.VisitRecord(axis);
            rv.VisitRecord(BeginRecord.instance);

            if (catSerRange != null)
                rv.VisitRecord(catSerRange);

            rv.VisitRecord(axcExt);
            if (catLab != null)
            {
                WriteStartBlock(rv);
                rv.VisitRecord(catLab);
            }
            axs.VisitContainedRecords(rv);

            foreach (CrtMlFrtAggregate crtmlfrt in crtmlfrtList)
                crtmlfrt.VisitContainedRecords(rv);

            WriteEndBlock(rv);
            rv.VisitRecord(EndRecord.instance);
        }
        private int VisitRowRecordsForBlock(int blockIndex, RecordVisitor rv)
        {
            int startIndex = blockIndex * DBCellRecord.BLOCK_SIZE;
            int endIndex = startIndex + DBCellRecord.BLOCK_SIZE;

            IEnumerator rowIterator = _rowRecords.Values.GetEnumerator();

            //Given that we basically iterate through the rows in order,
            //For a performance improvement, it would be better to return an instance of
            //an iterator and use that instance throughout, rather than recreating one and
            //having to move it to the right position.
            int i = 0;
            for (; i < startIndex && rowIterator.MoveNext(); i++) ;

            int result = 0;
            while (rowIterator.MoveNext() && (i++ < endIndex))
            {
                Record rec = (Record)rowIterator.Current;
                result += rec.RecordSize;
                rv.VisitRecord(rec);
            }
            return result;
        }
示例#55
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            VisitIfPresent(_rowBreaksRecord, rv);
            VisitIfPresent(_columnBreaksRecord, rv);
            // Write out empty header / footer records if these are missing
            if (header == null)
            {
                rv.VisitRecord(new HeaderRecord(""));
            }
            else
            {
                rv.VisitRecord(header);
            }
            if (footer == null)
            {
                rv.VisitRecord(new FooterRecord(""));
            }
            else
            {
                rv.VisitRecord(footer);
            }
            VisitIfPresent(_hCenter, rv);
            VisitIfPresent(_vCenter, rv);
            VisitIfPresent(_leftMargin, rv);
            VisitIfPresent(_rightMargin, rv);
            VisitIfPresent(_topMargin, rv);
            VisitIfPresent(_bottomMargin, rv);
		    foreach (RecordAggregate pls in _plsRecords) {
			    pls.VisitContainedRecords(rv);
		    }
            VisitIfPresent(printSetup, rv);
            
            VisitIfPresent(_printSize, rv);
            VisitIfPresent(_headerFooter, rv);
            VisitIfPresent(_bitmap, rv);
        }
示例#56
0
        public void VisitCellsForRow(int rowIndex, RecordVisitor rv)
        {

            CellValueRecordInterface[] rowCells = records[rowIndex];
            if (rowCells == null)
            {
                throw new ArgumentException("Row [" + rowIndex + "] is empty");
            }
            for (int i = 0; i < rowCells.Length; i++)
            {
                RecordBase cvr = (RecordBase)rowCells[i];
                if (cvr == null)
                {
                    continue;
                }
                int nBlank = CountBlanks(rowCells, i);
                if (nBlank > 1)
                {
                    rv.VisitRecord(CreateMBR(rowCells, i, nBlank));
                    i += nBlank - 1;
                }
                else if (cvr is RecordAggregate)
                {
                    RecordAggregate agg = (RecordAggregate)cvr;
                    agg.VisitContainedRecords(rv);
                }
                else
                {
                    rv.VisitRecord((Record)cvr);
                }
            }
        }
 /// <summary>
 /// Visit each of the atomic BIFF records contained in this {@link RecordAggregate} in the order
 /// that they should be written to file.  Implementors may or may not return the actual
 /// {@link Record}s being used to manage POI's internal implementation.  Callers should not
 /// assume either way, and therefore only attempt to modify those {@link Record}s after cloning
 /// </summary>
 /// <param name="rv"></param>
 public override void VisitContainedRecords(RecordVisitor rv)
 {
     rv.VisitRecord(_formulaRecord);
     Record sharedFormulaRecord = _sharedValueManager.GetRecordForFirstCell(this);
     if (sharedFormulaRecord != null)
     {
         rv.VisitRecord(sharedFormulaRecord);
     }
     if (_formulaRecord.HasCachedResultString && _stringRecord != null)
     {
         rv.VisitRecord(_stringRecord);
     }
 }
示例#58
0
 private static void VisitIfPresent(PageBreakRecord r, RecordVisitor rv)
 {
     if (r != null)
     {
         if (r.IsEmpty)
         {
             // its OK to not serialize empty page break records
             return;
         }
         rv.VisitRecord(r);
     }
 }
示例#59
0
 private static void VisitIfPresent(Record r, RecordVisitor rv)
 {
     if (r != null)
     {
         rv.VisitRecord(r);
     }
 }
示例#60
0
        public override void VisitContainedRecords(RecordVisitor rv)
        {
            // Replicates record order from Excel 2007, though this is not critical

            VisitIfPresent(_protectRecord, rv);
            VisitIfPresent(_objectProtectRecord, rv);
            VisitIfPresent(_scenarioProtectRecord, rv);
            VisitIfPresent(_passwordRecord, rv);
        }