Tag: cws_src680_oj14 User: oj Date: 2006/07/04 01:12:07 Modified: dba/dbaccess/source/ui/misc/HtmlReader.cxx
Log: RESYNC: (1.22-1.25); FILE MERGED File Changes: Directory: /dba/dbaccess/source/ui/misc/ ======================================== File [changed]: HtmlReader.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/HtmlReader.cxx?r1=1.20.4.4&r2=1.20.4.5 Delta lines: +62 -82 --------------------- --- HtmlReader.cxx 25 Apr 2006 13:03:13 -0000 1.20.4.4 +++ HtmlReader.cxx 4 Jul 2006 08:12:04 -0000 1.20.4.5 @@ -140,7 +140,6 @@ using namespace ::com::sun::star::sdbcx; using namespace ::com::sun::star::awt; -#define CONTAINER_ENTRY_NOTFOUND ((ULONG)0xFFFFFFFF) #define DBAUI_HTML_FONTSIZES 8 // wie Export, HTML-Options #define HTML_META_NONE 0 #define HTML_META_AUTHOR 1 @@ -209,9 +208,10 @@ const Reference< ::com::sun::star::util::XNumberFormatter >& _rxNumberF, const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rM, const TColumnVector* pList, - const OTypeInfoMap* _pInfoMap) + const OTypeInfoMap* _pInfoMap, + sal_Bool _bAutoIncrementEnabled) : HTMLParser(rIn) - ,ODatabaseExport(nRows,_rColumnPositions,_rxNumberF,_rM,pList,_pInfoMap) + ,ODatabaseExport(nRows,_rColumnPositions,_rxNumberF,_rM,pList,_pInfoMap,_bAutoIncrementEnabled) ,m_nTableCount(0) ,m_nColumnWidth(87) ,m_bMetaOptions(sal_False) @@ -277,11 +277,11 @@ case HTML_TABLE_ON: ++m_nTableCount; { // es kann auch TD oder TH sein, wenn es vorher kein TABLE gab - const HTMLOptions* pOptions = GetOptions(); - sal_Int16 nArrLen = pOptions->Count(); + const HTMLOptions* pHtmlOptions = GetOptions(); + sal_Int16 nArrLen = pHtmlOptions->Count(); for ( sal_Int16 i = 0; i < nArrLen; i++ ) { - const HTMLOption* pOption = (*pOptions)[i]; + const HTMLOption* pOption = (*pHtmlOptions)[i]; switch( pOption->GetToken() ) { case HTML_O_WIDTH: @@ -304,11 +304,11 @@ } break; case HTML_TABLEROW_ON: - if ( m_xResultSetUpdate.is() ) + if ( m_pUpdateHelper.get() ) { try { - m_xResultSetUpdate->moveToInsertRow(); // sonst neue Zeile anh"angen + m_pUpdateHelper->moveToInsertRow(); // sonst neue Zeile anh"angen } catch(SQLException& e) // UpdateFehlerbehandlung @@ -321,34 +321,11 @@ break; case HTML_TEXTTOKEN: case HTML_SINGLECHAR: - if ( m_bInTbl && !m_bSDNum ) // wichtig, da wir sonst auch die Namen der Fonts bekommen + if ( m_bInTbl ) //&& !m_bSDNum ) // wichtig, da wir sonst auch die Namen der Fonts bekommen m_sTextToken += aToken; break; case HTML_TABLEDATA_ON: - { - m_bInTbl = TRUE; - String *pValue = NULL; - const HTMLOptions* pOptions = GetOptions(); - sal_Int16 nArrLen = pOptions->Count(); - for ( sal_Int16 i = 0; i < nArrLen; i++ ) - { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) - { - case HTML_O_SDVAL: - { - m_sTextToken = pOption->GetString(); - m_bSDNum = sal_True; - } - break; - case HTML_O_SDNUM: - { - // pValue = new String( pOption->GetString() ); - } - break; - } - } - } + fetchOptions(); break; case HTML_TABLEDATA_OFF: { @@ -362,12 +339,12 @@ showErrorDialog(e); } m_nColumnPos++; - m_sTextToken.Erase(); + eraseTokens(); m_bSDNum = m_bInTbl = sal_False; } break; case HTML_TABLEROW_OFF: - if ( !m_xResultSetUpdate.is() ) + if ( !m_pUpdateHelper.get() ) { m_bError = sal_True; break; @@ -376,8 +353,8 @@ { m_nRowCount++; if (m_bIsAutoIncrement) // if bSetAutoIncrement then I have to set the autoincrement - m_xRowUpdate->updateInt(1,m_nRowCount); - m_xResultSetUpdate->insertRow(); + m_pUpdateHelper->updateInt(1,m_nRowCount); + m_pUpdateHelper->insertRow(); } catch(SQLException& e) ////////////////////////////////////////////////////////////////////// @@ -406,54 +383,60 @@ break; case HTML_TABLEDATA_ON: case HTML_TABLEHEADER_ON: - m_bInTbl = TRUE; + fetchOptions(); break; case HTML_TEXTTOKEN: case HTML_SINGLECHAR: - if(m_bInTbl) + if ( m_bInTbl ) // && !m_bSDNum ) // wichtig, da wir sonst auch die Namen der Fonts bekommen m_sTextToken += aToken; break; case HTML_TABLEDATA_OFF: - if(m_sTextToken.Len()) - { - sal_Int32 nColPos = m_vColumns[m_nColumnPos].first; - if( nColPos != CONTAINER_ENTRY_NOTFOUND) - { - m_vFormatKey[nColPos] = CheckString(m_sTextToken,m_vFormatKey[nColPos]); - m_vColumnSize[nColPos] = ::std::max<sal_Int32>((sal_Int32)m_vColumnSize[nColPos],(sal_Int32)m_sTextToken.Len()); - } - m_sTextToken.Erase(); - } + adjustFormat(); m_nColumnPos++; - m_bInTbl = sal_False; + m_bSDNum = m_bInTbl = sal_False; break; case HTML_TABLEROW_OFF: - if(m_sTextToken.Len()) + adjustFormat(); + m_nColumnPos = 0; + m_nRows--; + break; + } + } +} +// ----------------------------------------------------------------------------- +void OHTMLReader::fetchOptions() +{ + m_bInTbl = TRUE; + const HTMLOptions* options = GetOptions(); + sal_Int16 nArrLen = options->Count(); + for ( sal_Int16 i = 0; i < nArrLen; i++ ) + { + const HTMLOption* pOption = (*options)[i]; + switch( pOption->GetToken() ) { - sal_Int32 nColPos = m_vColumns[m_nColumnPos].first; - if(nColPos != CONTAINER_ENTRY_NOTFOUND) + case HTML_O_SDVAL: { - m_vFormatKey[nColPos] = CheckString(m_sTextToken,m_vFormatKey[nColPos]); - m_vColumnSize[nColPos] = ::std::max<sal_Int32>((sal_Int32)m_vColumnSize[nColPos],(sal_Int32)m_sTextToken.Len()); - } - m_sTextToken.Erase(); + m_sValToken = pOption->GetString(); + //m_sTextToken = pOption->GetString(); + m_bSDNum = sal_True; } - m_nColumnPos = 0; - m_nRows--; + break; + case HTML_O_SDNUM: + m_sNumToken = pOption->GetString(); break; } } } //--------------------------------------------------------------------------------- -void OHTMLReader::TableDataOn(SvxCellHorJustify& eVal,String *pValue,int nToken) +void OHTMLReader::TableDataOn(SvxCellHorJustify& eVal,int nToken) { DBG_CHKTHIS(OHTMLReader,NULL); sal_Bool bHorJustifyCenterTH = (nToken == HTML_TABLEHEADER_ON); - const HTMLOptions* pOptions = GetOptions(); - sal_Int16 nArrLen = pOptions->Count(); + const HTMLOptions* pHtmlOptions = GetOptions(); + sal_Int16 nArrLen = pHtmlOptions->Count(); for ( sal_Int16 i = 0; i < nArrLen; i++ ) { - const HTMLOption* pOption = (*pOptions)[i]; + const HTMLOption* pOption = (*pHtmlOptions)[i]; switch( pOption->GetToken() ) { case HTML_O_ALIGN: @@ -472,12 +455,12 @@ break; case HTML_O_SDVAL: { - pValue = new String( pOption->GetString() ); + //pValue = new String( pOption->GetString() ); } break; case HTML_O_SDNUM: { - pValue = new String( pOption->GetString() ); + //pValue = new String( pOption->GetString() ); } break; case HTML_O_BGCOLOR: @@ -496,11 +479,11 @@ void OHTMLReader::TableFontOn(FontDescriptor& _rFont,sal_Int32 &_rTextColor) { DBG_CHKTHIS(OHTMLReader,NULL); - const HTMLOptions* pOptions = GetOptions(); - sal_Int16 nArrLen = pOptions->Count(); + const HTMLOptions* pHtmlOptions = GetOptions(); + sal_Int16 nArrLen = pHtmlOptions->Count(); for ( sal_Int16 i = 0; i < nArrLen; i++ ) { - const HTMLOption* pOption = (*pOptions)[i]; + const HTMLOption* pOption = (*pHtmlOptions)[i]; switch( pOption->GetToken() ) { case HTML_O_COLOR: @@ -576,8 +559,6 @@ String aColumnName; SvxCellHorJustify eVal; String *pValue=NULL; - sal_Int16 nWidth = 0; - sal_Int16 nHeight = 0; String aTableName; FontDescriptor aFont = ::dbaui::CreateFontDescriptor(Application::GetSettings().GetStyleSettings().GetAppFont()); @@ -608,7 +589,7 @@ DELETEZ(pValue); eVal = SVX_HOR_JUSTIFY_STANDARD; } - TableDataOn(eVal,pValue,nTmpToken2); + TableDataOn(eVal,nTmpToken2); bTableHeader = TRUE; break; case HTML_TABLEDATA_OFF: @@ -684,14 +665,13 @@ DBG_CHKTHIS(OHTMLReader,NULL); m_bMetaOptions = sal_True; USHORT nContentOption = HTML_O_CONTENT; - rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW; String aName, aContent; USHORT nAction = HTML_META_NONE; - BOOL bHTTPEquiv = FALSE, bChanged = FALSE; - const HTMLOptions *pOptions = GetOptions(&nContentOption); - for( USHORT i = pOptions->Count(); i; ) + BOOL bHTTPEquiv = FALSE; + const HTMLOptions *pHtmlOptions = GetOptions(&nContentOption); + for( USHORT i = pHtmlOptions->Count(); i; ) { - const HTMLOption *pOption = (*pOptions)[ --i ]; + const HTMLOption *pOption = (*pHtmlOptions)[ --i ]; switch( pOption->GetToken() ) { case HTML_O_HTTPEQUIV: --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
