diff options
Diffstat (limited to 'oox/source/drawingml/table/tablecontext.cxx')
-rw-r--r-- | oox/source/drawingml/table/tablecontext.cxx | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/oox/source/drawingml/table/tablecontext.cxx b/oox/source/drawingml/table/tablecontext.cxx index 87900526ac1a..f83e2877b2b6 100644 --- a/oox/source/drawingml/table/tablecontext.cxx +++ b/oox/source/drawingml/table/tablecontext.cxx @@ -41,58 +41,48 @@ TableContext::~TableContext() { } -uno::Reference< xml::sax::XFastContextHandler > SAL_CALL -TableContext::createFastChildContext( ::sal_Int32 aElementToken, const uno::Reference< xml::sax::XFastAttributeList >& xAttribs ) - throw ( xml::sax::SAXException, uno::RuntimeException) +ContextHandlerRef +TableContext::onCreateContext( ::sal_Int32 aElementToken, const AttributeList& rAttribs ) { - uno::Reference< xml::sax::XFastContextHandler > xRet; - switch( aElementToken ) { case A_TOKEN( tblPr ): // CT_TableProperties { - AttributeList aAttribs( xAttribs ); - mrTableProperties.isRtl() = aAttribs.getBool( XML_rtl, sal_False ); - mrTableProperties.isFirstRow() = aAttribs.getBool( XML_firstRow, sal_False ); - mrTableProperties.isFirstCol() = aAttribs.getBool( XML_firstCol, sal_False ); - mrTableProperties.isLastRow() = aAttribs.getBool( XML_lastRow, sal_False ); - mrTableProperties.isLastCol() = aAttribs.getBool( XML_lastCol, sal_False ); - mrTableProperties.isBandRow() = aAttribs.getBool( XML_bandRow, sal_False ); - mrTableProperties.isBandCol() = aAttribs.getBool( XML_bandCol, sal_False ); + mrTableProperties.isRtl() = rAttribs.getBool( XML_rtl, sal_False ); + mrTableProperties.isFirstRow() = rAttribs.getBool( XML_firstRow, sal_False ); + mrTableProperties.isFirstCol() = rAttribs.getBool( XML_firstCol, sal_False ); + mrTableProperties.isLastRow() = rAttribs.getBool( XML_lastRow, sal_False ); + mrTableProperties.isLastCol() = rAttribs.getBool( XML_lastCol, sal_False ); + mrTableProperties.isBandRow() = rAttribs.getBool( XML_bandRow, sal_False ); + mrTableProperties.isBandCol() = rAttribs.getBool( XML_bandCol, sal_False ); } break; case A_TOKEN( tableStyle ): // CT_TableStyle { boost::shared_ptr< TableStyle >& rTableStyle = mrTableProperties.getTableStyle(); rTableStyle.reset( new TableStyle() ); - xRet = new TableStyleContext( *this, xAttribs, *rTableStyle ); + return new TableStyleContext( *this, rAttribs.getFastAttributeList(), *rTableStyle ); } - break; case A_TOKEN( tableStyleId ): // ST_Guid - xRet.set( new oox::drawingml::GuidContext( *this, mrTableProperties.getStyleId() ) ); - break; + return new oox::drawingml::GuidContext( *this, mrTableProperties.getStyleId() ); case A_TOKEN( tblGrid ): // CT_TableGrid break; case A_TOKEN( gridCol ): // CT_TableCol { std::vector< sal_Int32 >& rvTableGrid( mrTableProperties.getTableGrid() ); - rvTableGrid.push_back( xAttribs->getOptionalValue( XML_w ).toInt32() ); + rvTableGrid.push_back( rAttribs.getString( XML_w ).get().toInt32() ); } break; case A_TOKEN( tr ): // CT_TableRow { std::vector< TableRow >& rvTableRows( mrTableProperties.getTableRows() ); rvTableRows.resize( rvTableRows.size() + 1 ); - xRet.set( new TableRowContext( *this, xAttribs, rvTableRows.back() ) ); + return new TableRowContext( *this, rAttribs.getFastAttributeList(), rvTableRows.back() ); } - break; } - if( !xRet.is() ) - xRet.set( this ); - - return xRet; + return this; } } } } |