diff options
Diffstat (limited to 'writerfilter/source/dmapper/TablePropertiesHandler.hxx')
-rw-r--r-- | writerfilter/source/dmapper/TablePropertiesHandler.hxx | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.hxx b/writerfilter/source/dmapper/TablePropertiesHandler.hxx new file mode 100644 index 000000000000..68fe40689702 --- /dev/null +++ b/writerfilter/source/dmapper/TablePropertiesHandler.hxx @@ -0,0 +1,83 @@ +#ifndef INCLUDED_TABLEPROPERTIESHANDLER_HXX +#define INCLUDED_TABLEPROPERTIESHANDLER_HXX + +#include <PropertyMap.hxx> + +#include <resourcemodel/TableManager.hxx> +#include <WriterFilterDllApi.hxx> +#include <resourcemodel/WW8ResourceModel.hxx> + +#include <boost/shared_ptr.hpp> + +#include <vector> + +namespace writerfilter { +namespace dmapper { + + +typedef ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > Handle_t; +typedef TableManager<Handle_t , TablePropertyMapPtr > DomainMapperTableManager_Base_t; + +class TablePropertiesHandler +{ +private: + vector< PropertyMapPtr > m_rPropertiesStack; + PropertyMapPtr m_pCurrentProperties; + DomainMapperTableManager_Base_t *m_pTableManager; + bool m_bOOXML; + +public: + TablePropertiesHandler( bool bOOXML ); + virtual ~TablePropertiesHandler( ); + + bool sprm(Sprm & sprm); + + inline void SetTableManager( DomainMapperTableManager_Base_t *pTableManager ) + { + m_pTableManager = pTableManager; + }; + + inline void SetProperties( PropertyMapPtr pProperties ) + { + m_pCurrentProperties = pProperties; + }; + +private: + + inline void cellProps( TablePropertyMapPtr pProps ) + { + if ( m_pTableManager ) + m_pTableManager->cellProps( pProps ); + else + m_pCurrentProperties->insert( pProps, true ); + }; + + inline void cellPropsByCell( unsigned int i, TablePropertyMapPtr pProps ) + { + if ( m_pTableManager ) + m_pTableManager->cellPropsByCell( i, pProps ); + else + m_pCurrentProperties->insert( pProps, true ); + }; + + inline void insertRowProps( TablePropertyMapPtr pProps ) + { + if ( m_pTableManager ) + m_pTableManager->insertRowProps( pProps ); + else + m_pCurrentProperties->insert( pProps, true ); + }; + + inline void insertTableProps( TablePropertyMapPtr pProps ) + { + if ( m_pTableManager ) + m_pTableManager->insertTableProps( pProps ); + else + m_pCurrentProperties->insert( pProps, true ); + }; +}; +typedef boost::shared_ptr<TablePropertiesHandler> TablePropertiesHandlerPtr; + +} } + +#endif |