User: kz      
Date: 2008-04-03 16:48:05+0000
Modified:
   dba/dbaccess/source/filter/xml/xmlExport.cxx

Log:
 INTEGRATION: CWS dbodf11 (1.14.76); FILE MERGED
 2008/04/01 11:11:30 oj 1.14.76.7: RESYNC: (1.17-1.18); FILE MERGED
 2008/01/31 07:47:45 oj 1.14.76.6: #i85757# as odf 1.2 form
 2008/01/28 12:29:33 oj 1.14.76.5: namespace corrected
 2007/12/19 12:49:15 oj 1.14.76.4: RESYNC: (1.16-1.17); FILE MERGED
 2007/10/23 11:47:07 oj 1.14.76.3: merge
 2007/10/22 13:03:06 oj 1.14.76.2: RESYNC: (1.14-1.16); FILE MERGED
 2007/02/02 12:09:13 oj 1.14.76.1: export ODF format

File Changes:

Directory: /dba/dbaccess/source/filter/xml/
===========================================

File [changed]: xmlExport.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/filter/xml/xmlExport.cxx?r1=1.18&r2=1.19
Delta lines:  +290 -78
----------------------
--- xmlExport.cxx       2008-01-30 08:37:46+0000        1.18
+++ xmlExport.cxx       2008-04-03 16:48:03+0000        1.19
@@ -256,11 +256,11 @@
        GetMM100UnitConverter().setCoreMeasureUnit(MAP_10TH_MM);
     GetMM100UnitConverter().setXMLMeasureUnit(MAP_CM);
 
-       _GetNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), 
GetXMLToken((getExportFlags() & EXPORT_CONTENT) != 0 ? XML_N_OOO : 
XML_N_OFFICE), XML_NAMESPACE_OFFICE );
+       _GetNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), 
GetXMLToken(XML_N_OFFICE), XML_NAMESPACE_OFFICE );
        _GetNamespaceMap().Add( GetXMLToken(XML_NP_OOO), 
GetXMLToken(XML_N_OOO), XML_NAMESPACE_OOO );
     _GetNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG), 
XML_NAMESPACE_SVG );
 
-       _GetNamespaceMap().Add( GetXMLToken(XML_NP_DB), GetXMLToken(XML_N_DB), 
XML_NAMESPACE_DB );
+       _GetNamespaceMap().Add( GetXMLToken(XML_NP_DB), 
GetXMLToken(XML_N_DB_OASIS), XML_NAMESPACE_DB );
        
        if( (nExportFlag & 
(EXPORT_STYLES|EXPORT_MASTERSTYLES|EXPORT_AUTOSTYLES|EXPORT_FONTDECLS) ) != 0 )
                _GetNamespaceMap().Add( GetXMLToken(XML_NP_FO), 
GetXMLToken(XML_N_FO_COMPAT), XML_NAMESPACE_FO );
@@ -285,6 +285,13 @@
        m_xExportHelper = new 
SvXMLExportPropertyMapper(GetTableStylesPropertySetMapper());
        m_xColumnExportHelper = new 
OSpecialHanldeXMLExportPropertyMapper(GetColumnStylesPropertySetMapper());
 
+    //UniReference < XMLPropertySetMapper > xCellStylesPropertySetMapper = new 
XMLPropertySetMapper(OXMLHelper::GetCellStylesPropertySetMapper(),m_xPropHdlFactory);
+    //m_xCellExportHelper = new 
OSpecialHanldeXMLExportPropertyMapper(xCellStylesPropertySetMapper);
+    //m_xCellExportHelper = new 
OSpecialHanldeXMLExportPropertyMapper(GetCellStylesPropertySetMapper());
+    
//m_xCellExportHelper->ChainExportMapper(XMLTextParagraphExport::CreateParaExtPropMapper(*this));
+    m_xCellExportHelper = new 
OSpecialHanldeXMLExportPropertyMapper(GetCellStylesPropertySetMapper());
+    m_xRowExportHelper = new 
OSpecialHanldeXMLExportPropertyMapper(OXMLHelper::GetRowStylesPropertySetMapper());
+
        GetAutoStylePool()->AddFamily(
                XML_STYLE_FAMILY_TABLE_TABLE,
                rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_TABLE_STYLES_NAME ),
@@ -296,6 +303,18 @@
                rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_NAME ),
                m_xColumnExportHelper.get(),
                rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_PREFIX ));
+
+    GetAutoStylePool()->AddFamily(
+               XML_STYLE_FAMILY_TABLE_CELL,
+               rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_CELL_STYLES_NAME ),
+               m_xCellExportHelper.get(),
+               rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX ));
+
+    GetAutoStylePool()->AddFamily(
+               XML_STYLE_FAMILY_TABLE_ROW,
+               rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_ROW_STYLES_NAME ),
+               m_xRowExportHelper.get(),
+               rtl::OUString::createFromAscii( 
XML_STYLE_FAMILY_TABLE_ROW_STYLES_PREFIX ));
 }
 // 
-----------------------------------------------------------------------------
 IMPLEMENT_SERVICE_INFO1_STATIC( ODBExport, 
"com.sun.star.comp.sdb.DBExportFilter", "com.sun.star.document.ExportFilter")
@@ -305,15 +324,6 @@
        Reference<XPropertySet> xProp(getDataSource());
        if ( xProp.is() )
        {
-               ::rtl::OUString sValue;
-               xProp->getPropertyValue(PROPERTY_URL) >>= sValue;
-               AddAttribute(XML_NAMESPACE_DB, XML_CONNECTION_RESOURCE,sValue);
-
-               sal_Bool bSupress = sal_False;
-               xProp->getPropertyValue(PROPERTY_SUPPRESSVERSIONCL) >>= 
bSupress;
-               if ( bSupress )
-                       AddAttribute(XML_NAMESPACE_DB, 
XML_SUPPRESS_VERSION_COLUMNS,XML_TRUE);
-
                sal_Bool bAutoIncrementEnabled = sal_True;
                TStringPair aAutoIncrement;
 
@@ -331,7 +341,9 @@
         xSettingsState->getPropertyDefault( INFO_DECIMALDELIMITER ) >>= 
aDelimiter.sDecimal;
         xSettingsState->getPropertyDefault( INFO_THOUSANDSDELIMITER ) >>= 
aDelimiter.sThousand;
 
+        static ::rtl::OUString s_sTrue(::xmloff::token::GetXMLToken( XML_TRUE 
));
         // loop through the properties, and export only those which are not 
defaulted
+        TSettingsMap aSettingsMap;
         Sequence< Property > aProperties = xSettingsInfo->getProperties();
         const Property* pProperties = aProperties.getConstArray();
         const Property* pPropertiesEnd = pProperties + aProperties.getLength();
@@ -345,6 +357,7 @@
                 if ( PropertyState_DEFAULT_VALUE == ePropertyState )
                     continue;
             }
+            ::rtl::OUString sValue;
             Any aValue = xDataSourceSettings->getPropertyValue( 
pProperties->Name );
                        switch ( aValue.getValueTypeClass() )
                        {
@@ -371,24 +384,50 @@
                        ::xmloff::token::XMLTokenEnum eToken = 
XML_TOKEN_INVALID;
                        if ( pProperties->Name == INFO_JDBCDRIVERCLASS )
                                eToken = XML_JAVA_DRIVER_CLASS;
-                       else if ( pProperties->Name == INFO_TEXTFILEEXTENSION )
-                               eToken = XML_EXTENSION;
                        else if ( pProperties->Name == INFO_TEXTFILEHEADER )
+            {
+                if ( sValue == s_sTrue )
+                    continue;
                                eToken = XML_IS_FIRST_ROW_HEADER_LINE;
+            }
                        else if ( pProperties->Name == INFO_SHOWDELETEDROWS )
+            {
+                if ( sValue != s_sTrue )
+                    continue;
                                eToken = XML_SHOW_DELETED;
+            }
                        else if ( pProperties->Name == INFO_ALLOWLONGTABLENAMES 
)
+            {
+                if ( sValue == s_sTrue )
+                    continue;
                                eToken = XML_IS_TABLE_NAME_LENGTH_LIMITED;
+            }
                        else if ( pProperties->Name == INFO_ADDITIONALOPTIONS )
                                eToken = XML_SYSTEM_DRIVER_SETTINGS;
                        else if ( pProperties->Name == 
PROPERTY_ENABLESQL92CHECK )
+            {
+                if ( sValue != s_sTrue )
+                    continue;
                                eToken = XML_ENABLE_SQL92_CHECK;
+            }
                        else if ( pProperties->Name == INFO_APPEND_TABLE_ALIAS )
+            {
+                if ( sValue == s_sTrue )
+                    continue;
                                eToken = XML_APPEND_TABLE_ALIAS_NAME;
+            }
                        else if ( pProperties->Name == INFO_PARAMETERNAMESUBST )
+            {
+                if ( sValue == s_sTrue )
+                    continue;
                                eToken = XML_PARAMETER_NAME_SUBSTITUTION;
+            }
                        else if ( pProperties->Name == INFO_IGNOREDRIVER_PRIV )
+            {
+                if ( sValue == s_sTrue )
+                    continue;
                                eToken = XML_IGNORE_DRIVER_PRIVILEGES;
+            }
                        else if ( pProperties->Name == 
PROPERTY_BOOLEANCOMPARISONMODE )
                        {
                                sal_Int32 nValue = 0; 
@@ -401,10 +440,22 @@
                                        sValue = 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("equal-boolean"));
                                else if ( sValue.equalsAscii("3") )
                                        sValue = 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("equal-use-only-zero"));
+                if ( sValue.equalsAscii("equal-integer") )
+                    continue;
                                eToken = XML_BOOLEAN_COMPARISON_MODE;
                        }
                        else if ( pProperties->Name == INFO_USECATALOG )
+            {
+                if ( sValue != s_sTrue )
+                    continue;
                                eToken = XML_USE_CATALOG;
+            }
+            else if ( pProperties->Name == PROPERTY_SUPPRESSVERSIONCL )
+            {
+                if ( sValue == s_sTrue )
+                    continue;
+                               eToken = XML_SUPPRESS_VERSION_COLUMNS;
+            }
                        else if ( pProperties->Name == INFO_CONN_LDAP_BASEDN )
                                eToken = XML_BASE_DN;
                        else if ( pProperties->Name == INFO_CONN_LDAP_ROWCOUNT )
@@ -473,7 +524,7 @@
                                continue;
                        }
 
-                       AddAttribute(XML_NAMESPACE_DB, eToken,sValue);
+            aSettingsMap.insert(TSettingsMap::value_type(eToken,sValue));
                }
                if ( bAutoIncrementEnabled && (aAutoIncrement.first.getLength() 
|| aAutoIncrement.second.getLength()) )
                        m_aAutoIncrement.reset( new 
TStringPair(aAutoIncrement));
@@ -482,20 +533,147 @@
 
                SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, 
XML_DATASOURCE, sal_True, sal_True);
                
-               exportLogin();
+        exportConnectionData();
+        exportDriverSettings(aSettingsMap);
+        exportApplicationConnectionSettings(aSettingsMap);
+       }       
+}
+// 
-----------------------------------------------------------------------------
+void ODBExport::exportApplicationConnectionSettings(const TSettingsMap& 
_aSettings)
+{
+    const ::xmloff::token::XMLTokenEnum pSettings[] = { 
+        XML_IS_TABLE_NAME_LENGTH_LIMITED
+        ,XML_ENABLE_SQL92_CHECK
+        ,XML_APPEND_TABLE_ALIAS_NAME
+        ,XML_IGNORE_DRIVER_PRIVILEGES
+        ,XML_BOOLEAN_COMPARISON_MODE
+        ,XML_USE_CATALOG
+        ,XML_MAX_ROW_COUNT
+        ,XML_SUPPRESS_VERSION_COLUMNS
+    };
+    for (size_t i = 0; i< sizeof(pSettings)/sizeof(pSettings[0]); ++i)
+    {
+        TSettingsMap::const_iterator aFind = _aSettings.find(pSettings[i]);
+        if ( aFind != _aSettings.end() )
+            AddAttribute(XML_NAMESPACE_DB, aFind->first,aFind->second);
+    }
+    SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, 
XML_APPLICATION_CONNECTION_SETTINGS, sal_True, sal_True);
                
+    Reference<XPropertySet> xProp(getDataSource());
                Sequence< ::rtl::OUString> aValue;
                xProp->getPropertyValue(PROPERTY_TABLEFILTER) >>= aValue;
-               
exportSequence(aValue,XML_TABLE_FILTER,XML_TABLE_FILTER_PATTERN);
+    if ( aValue.getLength() )
+    {
+        SvXMLElementExport aElem2(*this,XML_NAMESPACE_DB, XML_TABLE_FILTER, 
sal_True, sal_True);
+           
exportSequence(aValue,XML_TABLE_INCLUDE_FILTER,XML_TABLE_FILTER_PATTERN);
+    }
 
                xProp->getPropertyValue(PROPERTY_TABLETYPEFILTER) >>= aValue;
+    if ( aValue.getLength() )
                exportSequence(aValue,XML_TABLE_TYPE_FILTER,XML_TABLE_TYPE);
 
+    exportDataSourceSettings();
+}
+// 
-----------------------------------------------------------------------------
+void ODBExport::exportJavaClassPath(const TSettingsMap& _aSettings)
+{
+    TSettingsMap::const_iterator aFind = _aSettings.find(XML_JAVA_CLASSPATH);
+    if ( aFind != _aSettings.end() )
+    {
+        AddAttribute(XML_NAMESPACE_XLINK, XML_HREF,aFind->second);
+        SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, XML_JAVA_CLASSPATH, 
sal_True, sal_True);
+    }
+}
+// 
-----------------------------------------------------------------------------
+void ODBExport::exportDriverSettings(const TSettingsMap& _aSettings)
+{
+    const ::xmloff::token::XMLTokenEnum pSettings[] = { 
+        XML_JAVA_DRIVER_CLASS
+        ,XML_SHOW_DELETED
+        ,XML_SYSTEM_DRIVER_SETTINGS
+        ,XML_BASE_DN
+        ,XML_IS_FIRST_ROW_HEADER_LINE
+        ,XML_PARAMETER_NAME_SUBSTITUTION
+    };
+    for (size_t i = 0; i< sizeof(pSettings)/sizeof(pSettings[0]); ++i)
+    {
+        TSettingsMap::const_iterator aFind = _aSettings.find(pSettings[i]);
+        if ( aFind != _aSettings.end() )
+            AddAttribute(XML_NAMESPACE_DB, aFind->first,aFind->second);
+    }
+    SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, XML_DRIVER_SETTINGS, 
sal_True, sal_True);
+    exportJavaClassPath(_aSettings);
                exportAutoIncrement();
                exportDelimiter();
                exportCharSet();
-               exportDataSourceSettings();
+}
+// 
-----------------------------------------------------------------------------
+void ODBExport::exportConnectionData()
+{
+    SvXMLElementExport aConnData(*this,XML_NAMESPACE_DB, XML_CONNECTION_DATA, 
sal_True, sal_True);
+
+    {
+        ::rtl::OUString sValue;
+        Reference<XPropertySet> xProp(getDataSource());
+           xProp->getPropertyValue(PROPERTY_URL) >>= sValue;
+        const dbaui::DATASOURCE_TYPE eType = m_aTypeCollection.getType(sValue);
+        if ( m_aTypeCollection.isFileSystemBased(eType) )
+        {
+            SvXMLElementExport aDatabaseDescription(*this,XML_NAMESPACE_DB, 
XML_DATABASE_DESCRIPTION, sal_True, sal_True);
+            {
+                
AddAttribute(XML_NAMESPACE_XLINK,XML_HREF,m_aTypeCollection.cutPrefix(sValue));
+                
AddAttribute(XML_NAMESPACE_DB,XML_MEDIA_TYPE,m_aTypeCollection.getMediaType(eType));
+                try
+                {
+                    ::rtl::OUString sExtension;
+                    if ( eType == dbaui::DST_MSACCESS )
+                        sExtension = 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("mdb"));
+                    else
+                    {
+                        Reference< XPropertySet > xDataSourceSettings;
+                               OSL_VERIFY( xProp->getPropertyValue( 
PROPERTY_SETTINGS ) >>= xDataSourceSettings );
+                        xDataSourceSettings->getPropertyValue( 
INFO_TEXTFILEEXTENSION ) >>= sExtension;
+                    }
+                    if ( sExtension.getLength() )
+                        
AddAttribute(XML_NAMESPACE_DB,XML_EXTENSION,sExtension);
+                }
+                catch(const Exception&)
+                {
+                    // nii
+                }
+                SvXMLElementExport aFileBasedDB(*this,XML_NAMESPACE_DB, 
XML_FILE_BASED_DATABASE, sal_True, sal_True);
        }       
+        }
+        else
+        {
+            String sDatabaseName,sHostName;
+            sal_Int32 nPort = -1;
+            
m_aTypeCollection.extractHostNamePort(sValue,sDatabaseName,sHostName,nPort);
+            if ( sHostName.Len() )
+            {
+                SvXMLElementExport 
aDatabaseDescription(*this,XML_NAMESPACE_DB, XML_DATABASE_DESCRIPTION, 
sal_True, sal_True);
+                {
+                    String sType = 
m_aTypeCollection.getDatasourcePrefix(eType);
+                    sType.EraseTrailingChars(':');
+                    AddAttribute(XML_NAMESPACE_DB,XML_TYPE,sType);
+                    AddAttribute(XML_NAMESPACE_DB,XML_HOSTNAME,sHostName);
+                    if ( nPort != -1 )
+                        
AddAttribute(XML_NAMESPACE_DB,XML_PORT,::rtl::OUString::valueOf(nPort));
+                    if ( sDatabaseName.Len() )
+                        
AddAttribute(XML_NAMESPACE_DB,XML_DATABASE_NAME,sDatabaseName);
+                    SvXMLElementExport aServerDB(*this,XML_NAMESPACE_DB, 
XML_SERVER_DATABASE, sal_True, sal_True);
+                }
+            }
+            else
+            {
+                   AddAttribute(XML_NAMESPACE_XLINK, XML_HREF,sValue);
+                SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, 
XML_CONNECTION_RESOURCE, sal_True, sal_True);
+            }
+        }
+        
+    }
+    
+    exportLogin();
 }
 // 
-----------------------------------------------------------------------------
 void ODBExport::exportDataSourceSettings()
@@ -671,7 +849,7 @@
                for(;pIter != pEnd;++pIter)
                {
                        Reference<XPropertySet> 
xProp(_xCollection->getByName(*pIter),UNO_QUERY);
-                       if ( _bExportContext && XML_TABLES != _eComponents )
+                       if ( _bExportContext && XML_TABLE_REPRESENTATIONS != 
_eComponents )
                                AddAttribute(XML_NAMESPACE_DB, XML_NAME,*pIter);
                        Reference< XNameAccess > xSub(xProp,UNO_QUERY);
                        if ( xSub.is() )
@@ -742,7 +920,7 @@
 
        exportStyleName(_xProp,GetAttrList());
 
-       SvXMLElementExport aComponents(*this,XML_NAMESPACE_DB, XML_TABLE, 
sal_True, sal_True);
+       SvXMLElementExport aComponents(*this,XML_NAMESPACE_DB, 
XML_TABLE_REPRESENTATION, sal_True, sal_True);
        Reference<XColumnsSupplier> xCol(_xProp,UNO_QUERY);
        exportColumns(xCol);
        exportFilter(_xProp,PROPERTY_FILTER,XML_FILTER_STATEMENT);
@@ -752,12 +930,19 @@
 void ODBExport::exportStyleName(XPropertySet* _xProp,SvXMLAttributeList& _rAtt)
 {
        Reference<XPropertySet> xFind(_xProp);
-       TPropertyStyleMap::iterator aFind = m_aAutoStyleNames.find(xFind);
-       if ( aFind != m_aAutoStyleNames.end() )
+    exportStyleName(XML_STYLE_NAME,xFind,_rAtt,m_aAutoStyleNames);
+    
exportStyleName(XML_DEFAULT_CELL_STYLE_NAME,xFind,_rAtt,m_aCellAutoStyleNames);
+    
exportStyleName(XML_DEFAULT_ROW_STYLE_NAME,xFind,_rAtt,m_aRowAutoStyleNames);
+}
+// 
-----------------------------------------------------------------------------
+void ODBExport::exportStyleName(const ::xmloff::token::XMLTokenEnum 
_eToken,const uno::Reference<beans::XPropertySet>& _xProp,SvXMLAttributeList& 
_rAtt,TPropertyStyleMap& _rMap)
+{
+       TPropertyStyleMap::iterator aFind = _rMap.find(_xProp);
+       if ( aFind != _rMap.end() )
        {
-               _rAtt.AddAttribute( GetNamespaceMap().GetQNameByKey( 
XML_NAMESPACE_DB, GetXMLToken(XML_STYLE_NAME) ),
+               _rAtt.AddAttribute( GetNamespaceMap().GetQNameByKey( 
XML_NAMESPACE_DB, GetXMLToken(_eToken) ),
                                                        aFind->second );
-        m_aAutoStyleNames.erase(aFind);
+        _rMap.erase(aFind);
        }
 }
 // 
-----------------------------------------------------------------------------
@@ -828,7 +1013,7 @@
                                        {
                                                AddAttribute(XML_NAMESPACE_DB, 
XML_NAME,*pIter);
                                                if ( bHidden )
-                                                       
AddAttribute(XML_NAMESPACE_DB, XML_VISIBILITY,XML_COLLAPSE);
+                                                       
AddAttribute(XML_NAMESPACE_DB, XML_VISIBLE,XML_FALSE);
                                        
                                                if ( sValue.getLength() )
                                                        
AddAttribute(XML_NAMESPACE_DB, XML_HELP_MESSAGE,sValue);
@@ -915,30 +1100,32 @@
                                pMemFunc.reset( new 
::comphelper::mem_fun1_t<ODBExport,XPropertySet* >(&ODBExport::exportTable) );
                        else
                                pMemFunc.reset( new 
::comphelper::mem_fun1_t<ODBExport,XPropertySet* >(&ODBExport::exportAutoStyle) 
);
-                       
exportCollection(xCollection,XML_TABLES,XML_TOKEN_INVALID,_bExportContext,*pMemFunc);
+                       
exportCollection(xCollection,XML_TABLE_REPRESENTATIONS,XML_TOKEN_INVALID,_bExportContext,*pMemFunc);
                }
        }
 }
 // 
-----------------------------------------------------------------------------
 void ODBExport::exportAutoStyle(XPropertySet* _xProp)
 {
-       ::std::vector< XMLPropertyState > aPropertyStates = 
m_xExportHelper->Filter(_xProp);
-       
+    typedef ::std::pair<TPropertyStyleMap*,sal_uInt16> TEnumMapperPair;
+    typedef ::std::pair< UniReference < SvXMLExportPropertyMapper> , 
TEnumMapperPair> TExportPropMapperPair;
        Reference<XColumnsSupplier> xSup(_xProp,UNO_QUERY);
        if ( xSup.is() )
        {
-               if ( !aPropertyStates.empty() )
-                       m_aAutoStyleNames.insert( 
TPropertyStyleMap::value_type(_xProp,GetAutoStylePool()->Add( 
XML_STYLE_FAMILY_TABLE_TABLE, aPropertyStates )));
-        try
-        {
-            awt::FontDescriptor aFont;
-            _xProp->getPropertyValue(PROPERTY_FONT) >>= aFont;
-                       
GetFontAutoStylePool()->Add(aFont.Name,aFont.StyleName,aFont.Family,aFont.Pitch,aFont.CharSet
 );
-        }
-        catch(Exception&)
+        const TExportPropMapperPair pExportHelper[] = {
+             
TExportPropMapperPair(m_xExportHelper,TEnumMapperPair(&m_aAutoStyleNames,XML_STYLE_FAMILY_TABLE_TABLE
 ))
+            
,TExportPropMapperPair(m_xCellExportHelper,TEnumMapperPair(&m_aCellAutoStyleNames,XML_STYLE_FAMILY_TABLE_CELL))
+            
,TExportPropMapperPair(m_xRowExportHelper,TEnumMapperPair(&m_aRowAutoStyleNames,XML_STYLE_FAMILY_TABLE_ROW))
+        };
+
+        ::std::vector< XMLPropertyState > aPropertyStates;
+        for (size_t i = 0 ; i < 
sizeof(pExportHelper)/sizeof(pExportHelper[0]); ++i)
         {
-            // not interested in
+            aPropertyStates = pExportHelper[i].first->Filter(_xProp);
+                   if ( !aPropertyStates.empty() )
+                           pExportHelper[i].second.first->insert( 
TPropertyStyleMap::value_type(_xProp,GetAutoStylePool()->Add( 
pExportHelper[i].second.second, aPropertyStates )));
         }
+
                Reference< XNameAccess > xCollection = xSup->getColumns();
         try
         {
@@ -955,17 +1142,23 @@
        }
        else 
        { // here I know I have a column
-               ::std::vector< XMLPropertyState > aPropStates = 
m_xColumnExportHelper->Filter( _xProp );
+        TExportPropMapperPair pExportHelper[] = {
+             
TExportPropMapperPair(m_xColumnExportHelper,TEnumMapperPair(&m_aAutoStyleNames,XML_STYLE_FAMILY_TABLE_COLUMN
 ))
+            
,TExportPropMapperPair(m_xCellExportHelper,TEnumMapperPair(&m_aCellAutoStyleNames,XML_STYLE_FAMILY_TABLE_CELL))
+        };
+        for (size_t i = 0 ; i < 
sizeof(pExportHelper)/sizeof(pExportHelper[0]); ++i)
+        {
+                   ::std::vector< XMLPropertyState > aPropStates = 
pExportHelper[i].first->Filter( _xProp );
                if ( !aPropStates.empty() )
                {
                        ::std::vector< XMLPropertyState >::iterator aItr = 
aPropStates.begin();
                        ::std::vector< XMLPropertyState >::iterator aEnd = 
aPropStates.end();
-                       UniReference < XMLPropertySetMapper > pColumnStyle = 
GetColumnStylesPropertySetMapper();
+                           const UniReference < XMLPropertySetMapper >& pStyle 
= pExportHelper[i].first->getPropertySetMapper();
                        while ( aItr != aEnd )
                        {
                                if ( aItr->mnIndex != -1 )
                                {
-                                       switch ( 
pColumnStyle->GetEntryContextId(aItr->mnIndex) )
+                                           switch ( 
pStyle->GetEntryContextId(aItr->mnIndex) )
                                        {
                                                case CTF_DB_NUMBERFORMAT:
                                                        {
@@ -982,9 +1175,9 @@
                                }
                                ++aItr;
                        }
-                       m_aAutoStyleNames.insert( 
TPropertyStyleMap::value_type(_xProp,GetAutoStylePool()->Add( 
XML_STYLE_FAMILY_TABLE_COLUMN, aPropStates )));
+                pExportHelper[i].second.first->insert( 
TPropertyStyleMap::value_type(_xProp,GetAutoStylePool()->Add( 
pExportHelper[i].second.second, aPropStates )));
+                   }
                }
-                       
        }
 }
 // 
-----------------------------------------------------------------------------
@@ -1018,6 +1211,16 @@
                                                                                
,GetMM100UnitConverter()
                                                                                
,GetNamespaceMap()
         );
+        GetAutoStylePool()->exportXML(XML_STYLE_FAMILY_TABLE_CELL
+                                                                               
,GetDocHandler()
+                                                                               
,GetMM100UnitConverter()
+                                                                               
,GetNamespaceMap()
+        );
+        GetAutoStylePool()->exportXML(XML_STYLE_FAMILY_TABLE_ROW
+                                                                               
,GetDocHandler()
+                                                                               
,GetMM100UnitConverter()
+                                                                               
,GetNamespaceMap()
+        );
                exportDataStyles();
        }
 }
@@ -1136,6 +1339,15 @@
        return m_xTableStylesPropertySetMapper;
 }
 // 
-----------------------------------------------------------------------------
+UniReference < XMLPropertySetMapper > 
ODBExport::GetCellStylesPropertySetMapper() const
+{
+       if ( !m_xCellStylesPropertySetMapper.is() )
+       {
+               m_xCellStylesPropertySetMapper = 
OXMLHelper::GetCellStylesPropertySetMapper();          
+       }
+       return m_xCellStylesPropertySetMapper;
+}
+// 
-----------------------------------------------------------------------------
 UniReference < XMLPropertySetMapper > 
ODBExport::GetColumnStylesPropertySetMapper() const
 {
        if ( !m_xColumnStylesPropertySetMapper.is() )




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to