in main/oox/source/xls/worksheetfragment.cxx [227:336]
ContextHandlerRef WorksheetFragment::onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs )
{
switch( getCurrentElement() )
{
case XML_ROOT_CONTEXT: switch( getSheetType() )
{
case SHEETTYPE_WORKSHEET: return (nElement == XLS_TOKEN( worksheet )) ? this : 0;
case SHEETTYPE_CHARTSHEET: return 0;
case SHEETTYPE_MACROSHEET: return (nElement == XM_TOKEN( macrosheet )) ? this : 0;
case SHEETTYPE_DIALOGSHEET: return (nElement == XLS_TOKEN( dialogsheet )) ? this : 0;
case SHEETTYPE_MODULESHEET: return 0;
case SHEETTYPE_EMPTYSHEET: return 0;
}
break;
case XLS_TOKEN( worksheet ):
case XM_TOKEN( macrosheet ):
case XLS_TOKEN( dialogsheet ):
switch( nElement )
{
case XLS_TOKEN( sheetData ): return new SheetDataContext( *this );
case XLS_TOKEN( conditionalFormatting ): return new CondFormatContext( *this );
case XLS_TOKEN( dataValidations ): return new DataValidationsContext( *this );
case XLS_TOKEN( autoFilter ): return new AutoFilterContext( *this, getAutoFilters().createAutoFilter() );
case XLS_TOKEN( scenarios ): return new ScenariosContext( *this );
case XLS_TOKEN( sheetViews ):
case XLS_TOKEN( cols ):
case XLS_TOKEN( mergeCells ):
case XLS_TOKEN( hyperlinks ):
case XLS_TOKEN( rowBreaks ):
case XLS_TOKEN( colBreaks ):
case XLS_TOKEN( oleObjects ):
case XLS_TOKEN( controls ): return this;
case XLS_TOKEN( sheetPr ): getWorksheetSettings().importSheetPr( rAttribs ); return this;
case XLS_TOKEN( dimension ): importDimension( rAttribs ); break;
case XLS_TOKEN( sheetFormatPr ): importSheetFormatPr( rAttribs ); break;
case XLS_TOKEN( sheetProtection ): getWorksheetSettings().importSheetProtection( rAttribs ); break;
case XLS_TOKEN( phoneticPr ): getWorksheetSettings().importPhoneticPr( rAttribs ); break;
case XLS_TOKEN( printOptions ): getPageSettings().importPrintOptions( rAttribs ); break;
case XLS_TOKEN( pageMargins ): getPageSettings().importPageMargins( rAttribs ); break;
case XLS_TOKEN( pageSetup ): getPageSettings().importPageSetup( getRelations(), rAttribs ); break;
case XLS_TOKEN( headerFooter ): getPageSettings().importHeaderFooter( rAttribs ); return this;
case XLS_TOKEN( picture ): getPageSettings().importPicture( getRelations(), rAttribs ); break;
case XLS_TOKEN( drawing ): importDrawing( rAttribs ); break;
case XLS_TOKEN( legacyDrawing ): importLegacyDrawing( rAttribs ); break;
}
break;
case XLS_TOKEN( sheetPr ):
switch( nElement )
{
case XLS_TOKEN( tabColor ): getWorksheetSettings().importTabColor( rAttribs ); break;
case XLS_TOKEN( outlinePr ): getWorksheetSettings().importOutlinePr( rAttribs ); break;
case XLS_TOKEN( pageSetUpPr ): importPageSetUpPr( rAttribs ); break;
}
break;
case XLS_TOKEN( sheetViews ):
switch( nElement )
{
case XLS_TOKEN( sheetView ): getSheetViewSettings().importSheetView( rAttribs ); return this;
}
break;
case XLS_TOKEN( sheetView ):
switch( nElement )
{
case XLS_TOKEN( pane ): getSheetViewSettings().importPane( rAttribs ); break;
case XLS_TOKEN( selection ): getSheetViewSettings().importSelection( rAttribs ); break;
}
break;
case XLS_TOKEN( cols ):
if( nElement == XLS_TOKEN( col ) ) importCol( rAttribs );
break;
case XLS_TOKEN( mergeCells ):
if( nElement == XLS_TOKEN( mergeCell ) ) importMergeCell( rAttribs );
break;
case XLS_TOKEN( hyperlinks ):
if( nElement == XLS_TOKEN( hyperlink ) ) importHyperlink( rAttribs );
break;
case XLS_TOKEN( rowBreaks ):
if( nElement == XLS_TOKEN( brk ) ) importBrk( rAttribs, true );
break;
case XLS_TOKEN( colBreaks ):
if( nElement == XLS_TOKEN( brk ) ) importBrk( rAttribs, false );
break;
case XLS_TOKEN( headerFooter ):
switch( nElement )
{
case XLS_TOKEN( firstHeader ):
case XLS_TOKEN( firstFooter ):
case XLS_TOKEN( oddHeader ):
case XLS_TOKEN( oddFooter ):
case XLS_TOKEN( evenHeader ):
case XLS_TOKEN( evenFooter ): return this; // collect h/f contents in onCharacters()
}
break;
case XLS_TOKEN( oleObjects ):
if( nElement == XLS_TOKEN( oleObject ) ) importOleObject( rAttribs );
break;
case XLS_TOKEN( controls ):
if( nElement == XLS_TOKEN( control ) ) importControl( rAttribs );
break;
}
return 0;
}