Exemplo n.º 1
0
        internal override DxfObject PopulateFromBuffer(DxfCodePairBufferReader buffer)
        {
            int code_280_index = 0;

            while (buffer.ItemsRemain)
            {
                var pair = buffer.Peek();
                if (pair.Code == 0)
                {
                    break;
                }

                while (this.TrySetExtensionData(pair, buffer))
                {
                    pair = buffer.Peek();
                }

                switch (pair.Code)
                {
                case 3:
                    this.Description = (pair.StringValue);
                    buffer.Advance();
                    break;

                case 7:
                    var style = DxfTableCellStyle.FromBuffer(buffer);
                    CellStyles.Add(style);
                    break;

                case 40:
                    this.HorizontalCellMargin = (pair.DoubleValue);
                    buffer.Advance();
                    break;

                case 41:
                    this.VerticalCellMargin = (pair.DoubleValue);
                    buffer.Advance();
                    break;

                case 70:
                    this.FlowDirection = (DxfFlowDirection)(pair.ShortValue);
                    buffer.Advance();
                    break;

                case 71:
                    this.Flags = (pair.ShortValue);
                    buffer.Advance();
                    break;

                case 280:
                    switch (code_280_index)
                    {
                    case 0:
                        this.Version = (DxfVersion)(pair.ShortValue);
                        code_280_index++;
                        break;

                    case 1:
                        this.IsTitleSuppressed = BoolShort(pair.ShortValue);
                        code_280_index++;
                        break;

                    default:
                        Debug.Assert(false, "Unexpected extra values for code 280");
                        break;
                    }

                    buffer.Advance();
                    break;

                case 281:
                    this.IsColumnHeadingSuppressed = BoolShort(pair.ShortValue);
                    buffer.Advance();
                    break;

                default:
                    if (!base.TrySetPair(pair))
                    {
                        ExcessCodePairs.Add(pair);
                    }

                    buffer.Advance();
                    break;
                }
            }

            return(PostParse());
        }