summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/misc/TokenWriter.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ui/misc/TokenWriter.cxx')
-rw-r--r--dbaccess/source/ui/misc/TokenWriter.cxx1109
1 files changed, 0 insertions, 1109 deletions
diff --git a/dbaccess/source/ui/misc/TokenWriter.cxx b/dbaccess/source/ui/misc/TokenWriter.cxx
deleted file mode 100644
index 78938c6a9..000000000
--- a/dbaccess/source/ui/misc/TokenWriter.cxx
+++ /dev/null
@@ -1,1109 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-#include "TokenWriter.hxx"
-#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
-#include <osl/diagnose.h>
-#include "RtfReader.hxx"
-#include "HtmlReader.hxx"
-#include "dbustrings.hrc"
-#include <connectivity/dbtools.hxx>
-#include <comphelper/types.hxx>
-#include <com/sun/star/sdbc/XConnection.hpp>
-#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
-#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
-#include <com/sun/star/sdbc/XRowSet.hpp>
-#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
-#include <com/sun/star/sdb/XQueriesSupplier.hpp>
-#include <com/sun/star/sdbc/XDataSource.hpp>
-#include <com/sun/star/awt/FontWeight.hpp>
-#include <com/sun/star/awt/FontStrikeout.hpp>
-#include <com/sun/star/awt/FontSlant.hpp>
-#include <com/sun/star/awt/FontUnderline.hpp>
-#include <com/sun/star/document/XDocumentProperties.hpp>
-#include <svtools/htmlkywd.hxx>
-#include <svtools/rtfkeywd.hxx>
-#include <tools/color.hxx>
-#include <svtools/htmlout.hxx>
-#include <sfx2/frmhtmlw.hxx>
-#include <svl/numuno.hxx>
-#include <vcl/svapp.hxx>
-#include "UITools.hxx"
-#include <toolkit/helper/vclunohelper.hxx>
-#include <vcl/outdev.hxx>
-#include <svtools/rtfout.hxx>
-#include <svtools/htmlcfg.hxx>
-#include <connectivity/formattedcolumnvalue.hxx>
-#include <unotools/syslocale.hxx>
-#include <comphelper/componentcontext.hxx>
-#include <rtl/logfile.hxx>
-
-using namespace dbaui;
-using namespace dbtools;
-using namespace svx;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::util;
-using ::com::sun::star::frame::XModel;
-
-#if defined(UNX)
-const char ODatabaseImportExport::sNewLine = '\012';
-#else
-const char ODatabaseImportExport::sNewLine[] = "\015\012";
-#endif
-
-const static char sMyBegComment[] = "<!-- ";
-const static char sMyEndComment[] = " -->";
-const static char sFontFamily[] = "font-family: ";
-const static char sFontSize[] = "font-size: ";
-
-#define SBA_FORMAT_SELECTION_COUNT 4
-#define CELL_X 1437
-
-DBG_NAME(ODatabaseImportExport)
-//======================================================================
-ODatabaseImportExport::ODatabaseImportExport(const ::svx::ODataAccessDescriptor& _aDataDescriptor,
- const Reference< XMultiServiceFactory >& _rM,
- const Reference< ::com::sun::star::util::XNumberFormatter >& _rxNumberF,
- const String& rExchange)
- :m_bBookmarkSelection( sal_False )
- ,m_xFormatter(_rxNumberF)
- ,m_xFactory(_rM)
- ,m_nCommandType(CommandType::TABLE)
- ,m_bNeedToReInitialize(sal_False)
- ,m_pReader(NULL)
- ,m_pRowMarker(NULL)
- ,m_bInInitialize(sal_False)
- ,m_bCheckOnly(sal_False)
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::ODatabaseImportExport" );
- DBG_CTOR(ODatabaseImportExport,NULL);
-
- m_eDestEnc = osl_getThreadTextEncoding();
-
- osl_incrementInterlockedCount( &m_refCount );
- impl_initFromDescriptor( _aDataDescriptor, false );
-
- xub_StrLen nCount = rExchange.GetTokenCount(char(11));
- if( nCount > SBA_FORMAT_SELECTION_COUNT && rExchange.GetToken(4).Len())
- {
- m_pRowMarker = new sal_Int32[nCount-SBA_FORMAT_SELECTION_COUNT];
- for(xub_StrLen i=SBA_FORMAT_SELECTION_COUNT;i<nCount;++i)
- m_pRowMarker[i-SBA_FORMAT_SELECTION_COUNT] = rExchange.GetToken(i,char(11)).ToInt32();
- }
- osl_decrementInterlockedCount( &m_refCount );
-}
-// -----------------------------------------------------------------------------
-// import data
-ODatabaseImportExport::ODatabaseImportExport( const ::dbtools::SharedConnection& _rxConnection,
- const Reference< XNumberFormatter >& _rxNumberF, const Reference< XMultiServiceFactory >& _rM )
- :m_bBookmarkSelection( sal_False )
- ,m_xConnection(_rxConnection)
- ,m_xFormatter(_rxNumberF)
- ,m_xFactory(_rM)
- ,m_nCommandType(::com::sun::star::sdb::CommandType::TABLE)
- ,m_bNeedToReInitialize(sal_False)
- ,m_pReader(NULL)
- ,m_pRowMarker(NULL)
- ,m_bInInitialize(sal_False)
- ,m_bCheckOnly(sal_False)
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::ODatabaseImportExport" );
- DBG_CTOR(ODatabaseImportExport,NULL);
- m_eDestEnc = osl_getThreadTextEncoding();
- try
- {
- SvtSysLocale aSysLocale;
- m_aLocale = aSysLocale.GetLocaleData().getLocale();
- }
- catch(Exception&)
- {
- }
-}
-//-------------------------------------------------------------------
-ODatabaseImportExport::~ODatabaseImportExport()
-{
- DBG_DTOR(ODatabaseImportExport,NULL);
- acquire();
-
- dispose();
-
- if(m_pReader)
- m_pReader->release();
- delete m_pRowMarker;
-}
-// -----------------------------------------------------------------------------
-void ODatabaseImportExport::dispose()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::disposing" );
- DBG_CHKTHIS(ODatabaseImportExport,NULL);
- // remove me as listener
- Reference< XComponent > xComponent(m_xConnection, UNO_QUERY);
- if (xComponent.is())
- {
- Reference< XEventListener> xEvt((::cppu::OWeakObject*)this,UNO_QUERY);
- xComponent->removeEventListener(xEvt);
- }
- m_xConnection.clear();
-
- ::comphelper::disposeComponent(m_xRow);
-
- m_xObject.clear();
- m_xResultSetMetaData.clear();
- m_xResultSet.clear();
- m_xRow.clear();
- m_xRowLocate.clear();
- m_xFormatter.clear();
-}
-// -----------------------------------------------------------------------------
-void SAL_CALL ODatabaseImportExport::disposing( const EventObject& Source ) throw(::com::sun::star::uno::RuntimeException)
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::disposing" );
- DBG_CHKTHIS(ODatabaseImportExport,NULL);
- Reference<XConnection> xCon(Source.Source,UNO_QUERY);
- if(m_xConnection.is() && m_xConnection == xCon)
- {
- m_xConnection.clear();
- dispose();
- m_bNeedToReInitialize = true;
- }
-}
-// -----------------------------------------------------------------------------
-void ODatabaseImportExport::initialize( const ODataAccessDescriptor& _aDataDescriptor )
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::initialize" );
- impl_initFromDescriptor( _aDataDescriptor, true );
-}
-
-// -----------------------------------------------------------------------------
-void ODatabaseImportExport::impl_initFromDescriptor( const ODataAccessDescriptor& _aDataDescriptor, bool _bPlusDefaultInit)
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::impl_initFromDescriptor" );
- DBG_CHKTHIS(ODatabaseImportExport,NULL);
- if ( !_bPlusDefaultInit )
- {
- m_sDataSourceName = _aDataDescriptor.getDataSource();
- _aDataDescriptor[daCommandType] >>= m_nCommandType;
- _aDataDescriptor[daCommand] >>= m_sName;
- // some additonal information
- if(_aDataDescriptor.has(daConnection))
- {
- Reference< XConnection > xPureConn( _aDataDescriptor[daConnection], UNO_QUERY );
- m_xConnection.reset( xPureConn, SharedConnection::NoTakeOwnership );
- Reference< XEventListener> xEvt((::cppu::OWeakObject*)this,UNO_QUERY);
- Reference< XComponent > xComponent(m_xConnection, UNO_QUERY);
- if (xComponent.is() && xEvt.is())
- xComponent->addEventListener(xEvt);
- }
-
- if ( _aDataDescriptor.has( daSelection ) )
- _aDataDescriptor[ daSelection ] >>= m_aSelection;
-
- if ( _aDataDescriptor.has( daBookmarkSelection ) )
- _aDataDescriptor[ daBookmarkSelection ] >>= m_bBookmarkSelection;
-
- if ( _aDataDescriptor.has( daCursor ) )
- {
- _aDataDescriptor[ daCursor ] >>= m_xResultSet;
- m_xRowLocate.set( m_xResultSet, UNO_QUERY );
- }
-
- if ( m_aSelection.getLength() != 0 )
- {
- if ( !m_xResultSet.is() )
- {
- OSL_FAIL( "ODatabaseImportExport::impl_initFromDescriptor: selection without result set is nonsense!" );
- m_aSelection.realloc( 0 );
- }
- }
-
- if ( m_aSelection.getLength() != 0 )
- {
- if ( m_bBookmarkSelection && !m_xRowLocate.is() )
- {
- OSL_FAIL( "ODatabaseImportExport::impl_initFromDescriptor: no XRowLocate -> no bookmars!" );
- m_aSelection.realloc( 0 );
- }
- }
- }
- else
- initialize();
-
- try
- {
- SvtSysLocale aSysLocale;
- m_aLocale = aSysLocale.GetLocaleData().getLocale();
- }
- catch(Exception&)
- {
- }
-}
-// -----------------------------------------------------------------------------
-void ODatabaseImportExport::initialize()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::initialize" );
- DBG_CHKTHIS(ODatabaseImportExport,NULL);
- m_bInInitialize = sal_True;
- m_bNeedToReInitialize = false;
-
- if ( !m_xConnection.is() )
- { // we need a connection
- OSL_ENSURE(m_sDataSourceName.getLength(),"There must be a datsource name!");
- Reference<XNameAccess> xDatabaseContext = Reference< XNameAccess >(m_xFactory->createInstance(SERVICE_SDB_DATABASECONTEXT), UNO_QUERY);
- Reference< XEventListener> xEvt((::cppu::OWeakObject*)this,UNO_QUERY);
-
- Reference< XConnection > xConnection;
- SQLExceptionInfo aInfo = ::dbaui::createConnection( m_sDataSourceName, xDatabaseContext, m_xFactory, xEvt, xConnection );
- m_xConnection.reset( xConnection );
-
- if(aInfo.isValid() && aInfo.getType() == SQLExceptionInfo::SQL_EXCEPTION)
- throw *static_cast<const SQLException*>(aInfo);
- }
-
- Reference<XNameAccess> xNameAccess;
- switch(m_nCommandType)
- {
- case CommandType::TABLE:
- {
- // only for tables
- Reference<XTablesSupplier> xSup(m_xConnection,UNO_QUERY);
- if(xSup.is())
- xNameAccess = xSup->getTables();
- }
- break;
- case CommandType::QUERY:
- {
- Reference<XQueriesSupplier> xSup(m_xConnection,UNO_QUERY);
- if(xSup.is())
- xNameAccess = xSup->getQueries();
- }
- break;
- }
- if(xNameAccess.is() && xNameAccess->hasByName(m_sName))
- {
- Reference<XPropertySet> xSourceObject;
- xNameAccess->getByName(m_sName) >>= m_xObject;
- }
-
- if(m_xObject.is())
- {
- try
- {
- if(m_xObject->getPropertySetInfo()->hasPropertyByName(PROPERTY_FONT))
- m_xObject->getPropertyValue(PROPERTY_FONT) >>= m_aFont;
-
- // the result set may be already set with the datadescriptor
- if ( !m_xResultSet.is() )
- {
- m_xResultSet.set( m_xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.RowSet")) ), UNO_QUERY );
- Reference< XPropertySet > xProp( m_xResultSet, UNO_QUERY_THROW );
- xProp->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, makeAny( m_xConnection.getTyped() ) );
- xProp->setPropertyValue( PROPERTY_COMMAND_TYPE, makeAny( m_nCommandType ) );
- xProp->setPropertyValue( PROPERTY_COMMAND, makeAny( m_sName ) );
- Reference< XRowSet > xRowSet( xProp, UNO_QUERY );
- xRowSet->execute();
- }
- impl_initializeRowMember_throw();
- }
- catch(Exception& )
- {
- m_xRow = NULL;
- m_xResultSetMetaData = NULL;
- ::comphelper::disposeComponent(m_xResultSet);
- throw;
- }
- }
- if ( !m_aFont.Name.getLength() )
- {
- Font aApplicationFont = OutputDevice::GetDefaultFont(
- DEFAULTFONT_SANS_UNICODE,
- Application::GetSettings().GetUILanguage(),
- DEFAULTFONT_FLAGS_ONLYONE
- );
- m_aFont = VCLUnoHelper::CreateFontDescriptor( aApplicationFont );
- }
-
- m_bInInitialize = sal_False;
-}
-// -----------------------------------------------------------------------------
-sal_Bool ODatabaseImportExport::Write()
-{
- if ( m_bNeedToReInitialize )
- {
- if ( !m_bInInitialize )
- initialize();
- }
- return sal_True;
-}
-// -----------------------------------------------------------------------------
-sal_Bool ODatabaseImportExport::Read()
-{
- if ( m_bNeedToReInitialize )
- {
- if ( !m_bInInitialize )
- initialize();
- }
- return sal_True;
-}
-// -----------------------------------------------------------------------------
-void ODatabaseImportExport::impl_initializeRowMember_throw()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseImportExport::impl_initializeRowMember_throw" );
- if ( !m_xRow.is() && m_xResultSet.is() )
- {
- m_xRow.set( m_xResultSet, UNO_QUERY );
- m_xRowLocate.set( m_xResultSet, UNO_QUERY );
- m_xResultSetMetaData = Reference<XResultSetMetaDataSupplier>(m_xRow,UNO_QUERY)->getMetaData();
- Reference<XColumnsSupplier> xSup(m_xResultSet,UNO_QUERY_THROW);
- m_xRowSetColumns.set(xSup->getColumns(),UNO_QUERY_THROW);
- }
-}
-//======================================================================
-sal_Bool ORTFImportExport::Write()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFImportExport::Write" );
- ODatabaseImportExport::Write();
- (*m_pStream) << '{' << OOO_STRING_SVTOOLS_RTF_RTF;
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_ANSI << ODatabaseImportExport::sNewLine;
- rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252;
-
- sal_Bool bBold = ( ::com::sun::star::awt::FontWeight::BOLD == m_aFont.Weight );
- sal_Bool bItalic = ( ::com::sun::star::awt::FontSlant_ITALIC == m_aFont.Slant );
- sal_Bool bUnderline = ( ::com::sun::star::awt::FontUnderline::NONE != m_aFont.Underline );
- sal_Bool bStrikeout = ( ::com::sun::star::awt::FontStrikeout::NONE != m_aFont.Strikeout );
-
- sal_Int32 nColor = 0;
- if(m_xObject.is())
- m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= nColor;
- ::Color aColor(nColor);
-
- ByteString aFonts(String(m_aFont.Name),eDestEnc);
- if(!aFonts.Len())
- {
- String aName = Application::GetSettings().GetStyleSettings().GetAppFont().GetName();
- aFonts = ByteString (aName,eDestEnc);
- }
- ::rtl::OString aFormat("\\fcharset0\\fnil ");
- ByteString aFontNr;
-
- (*m_pStream) << "{\\fonttbl";
- xub_StrLen nTokenCount = aFonts.GetTokenCount();
- for(sal_uInt32 j=0;j<nTokenCount;++j)
- {
- (*m_pStream) << "\\f";
- m_pStream->WriteNumber(static_cast<sal_Int32>(j));
- (*m_pStream) << aFormat;
- (*m_pStream) << aFonts.GetToken(j).GetBuffer();
- (*m_pStream) << ';';
- }
- (*m_pStream) << '}' ;
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- // write the rtf color table
- (*m_pStream) << '{' << OOO_STRING_SVTOOLS_RTF_COLORTBL << OOO_STRING_SVTOOLS_RTF_RED;
- m_pStream->WriteNumber(static_cast<sal_uInt32>(aColor.GetRed()));
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_GREEN;
- m_pStream->WriteNumber(static_cast<sal_uInt32>(aColor.GetGreen()));
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_BLUE;
- m_pStream->WriteNumber(static_cast<sal_uInt32>(aColor.GetBlue()));
-
- (*m_pStream) << ";\\red255\\green255\\blue255;\\red192\\green192\\blue192;}"
- << ODatabaseImportExport::sNewLine;
-
- ::rtl::OString aTRRH("\\trrh-270\\pard\\intbl");
- ::rtl::OString aFS("\\fs20\\f0\\cf0\\cb2");
- ::rtl::OString aCell1("\\clbrdrl\\brdrs\\brdrcf0\\clbrdrt\\brdrs\\brdrcf0\\clbrdrb\\brdrs\\brdrcf0\\clbrdrr\\brdrs\\brdrcf0\\clshdng10000\\clcfpat2\\cellx");
-
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_TROWD << OOO_STRING_SVTOOLS_RTF_TRGAPH;
- m_pStream->WriteNumber(static_cast<sal_Int32>(40));
- (*m_pStream) << ODatabaseImportExport::sNewLine;
-
- if(m_xObject.is())
- {
- Reference<XColumnsSupplier> xColSup(m_xObject,UNO_QUERY);
- Reference<XNameAccess> xColumns = xColSup->getColumns();
- Sequence< ::rtl::OUString> aNames(xColumns->getElementNames());
- const ::rtl::OUString* pIter = aNames.getConstArray();
-
- sal_Int32 nCount = aNames.getLength();
- sal_Bool bUseResultMetaData = sal_False;
- if ( !nCount )
- {
- nCount = m_xResultSetMetaData->getColumnCount();
- bUseResultMetaData = sal_True;
- }
-
- for( sal_Int32 i=1; i<=nCount; ++i )
- {
- (*m_pStream) << aCell1;
- m_pStream->WriteNumber(i*CELL_X);
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- }
-
- // Spaltenbeschreibung
- (*m_pStream) << '{' << ODatabaseImportExport::sNewLine;
- (*m_pStream) << aTRRH;
-
-
- ::rtl::OString* pHorzChar = new ::rtl::OString[nCount];
-
- for ( sal_Int32 i=1; i <= nCount; ++i )
- {
- sal_Int32 nAlign = 0;
- ::rtl::OUString sColumnName;
- if ( bUseResultMetaData )
- sColumnName = m_xResultSetMetaData->getColumnName(i);
- else
- {
- sColumnName = *pIter;
- Reference<XPropertySet> xColumn;
- xColumns->getByName(sColumnName) >>= xColumn;
- xColumn->getPropertyValue(PROPERTY_ALIGN) >>= nAlign;
- ++pIter;
- }
-
- const char* pChar;
- switch( nAlign )
- {
- case 1: pChar = OOO_STRING_SVTOOLS_RTF_QC; break;
- case 2: pChar = OOO_STRING_SVTOOLS_RTF_QR; break;
- case 0:
- default:pChar = OOO_STRING_SVTOOLS_RTF_QL; break;
- }
-
- pHorzChar[i-1] = pChar; // um sp"ater nicht immer im ITEMSET zuw"uhlen
-
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- (*m_pStream) << '{';
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_QC; // column header always centered
-
- if ( bBold ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_B;
- if ( bItalic ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_I;
- if ( bUnderline ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_UL;
- if ( bStrikeout ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_STRIKE;
-
- (*m_pStream) << aFS;
- (*m_pStream) << ' ';
- RTFOutFuncs::Out_String(*m_pStream,sColumnName,eDestEnc);
-
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_CELL;
- (*m_pStream) << '}';
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_PARD << OOO_STRING_SVTOOLS_RTF_INTBL;
- }
-
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_ROW;
- (*m_pStream) << ODatabaseImportExport::sNewLine << '}';
- (*m_pStream) << ODatabaseImportExport::sNewLine;
-
- ::comphelper::ComponentContext aContext(m_xFactory);
- Reference< XRowSet > xRowSet(m_xRow,UNO_QUERY);
- sal_Int32 k=1;
- sal_Int32 kk=0;
- if ( m_aSelection.getLength() )
- {
- const Any* pSelIter = m_aSelection.getConstArray();
- const Any* pEnd = pSelIter + m_aSelection.getLength();
-
- sal_Bool bContinue = sal_True;
- for( ; pSelIter != pEnd && bContinue; ++pSelIter )
- {
- if ( m_bBookmarkSelection )
- {
- bContinue = m_xRowLocate->moveToBookmark( *pSelIter );
- }
- else
- {
- sal_Int32 nPos = -1;
- OSL_VERIFY( *pSelIter >>= nPos );
- bContinue = ( m_xResultSet->absolute( nPos ) );
- }
-
- if ( bContinue )
- appendRow( pHorzChar, nCount, k, kk );
- }
- }
- else
- {
- m_xResultSet->beforeFirst(); // set back before the first row
- while(m_xResultSet->next())
- {
- appendRow(pHorzChar,nCount,k,kk);
- }
- }
- delete [] pHorzChar;
- }
-
- (*m_pStream) << '}' << ODatabaseImportExport::sNewLine;
- (*m_pStream) << (sal_uInt8) 0;
- return ((*m_pStream).GetError() == SVSTREAM_OK);
-}
-// -----------------------------------------------------------------------------
-void ORTFImportExport::appendRow(::rtl::OString* pHorzChar,sal_Int32 _nColumnCount,sal_Int32& k,sal_Int32& kk)
-{
- if(!m_pRowMarker || m_pRowMarker[kk] == k)
- {
- ++kk;
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_TROWD << OOO_STRING_SVTOOLS_RTF_TRGAPH;
- m_pStream->WriteNumber(static_cast<sal_Int32>(40));
- (*m_pStream) << ODatabaseImportExport::sNewLine;
-
- static const ::rtl::OString aCell2("\\clbrdrl\\brdrs\\brdrcf2\\clbrdrt\\brdrs\\brdrcf2\\clbrdrb\\brdrs\\brdrcf2\\clbrdrr\\brdrs\\brdrcf2\\clshdng10000\\clcfpat1\\cellx");
- static const ::rtl::OString aTRRH("\\trrh-270\\pard\\intbl");
-
- for ( sal_Int32 i=1; i<=_nColumnCount; ++i )
- {
- (*m_pStream) << aCell2;
- m_pStream->WriteNumber(i*CELL_X);
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- }
-
- const sal_Bool bBold = ( ::com::sun::star::awt::FontWeight::BOLD == m_aFont.Weight );
- const sal_Bool bItalic = ( ::com::sun::star::awt::FontSlant_ITALIC == m_aFont.Slant );
- const sal_Bool bUnderline = ( ::com::sun::star::awt::FontUnderline::NONE != m_aFont.Underline );
- const sal_Bool bStrikeout = ( ::com::sun::star::awt::FontStrikeout::NONE != m_aFont.Strikeout );
- static const ::rtl::OString aFS2("\\fs20\\f1\\cf0\\cb1");
- ::comphelper::ComponentContext aContext(m_xFactory);
- Reference< XRowSet > xRowSet(m_xRow,UNO_QUERY);
-
- (*m_pStream) << '{';
- (*m_pStream) << aTRRH;
- for ( sal_Int32 i=1; i <= _nColumnCount; ++i )
- {
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- (*m_pStream) << '{';
- (*m_pStream) << pHorzChar[i-1];
-
- if ( bBold ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_B;
- if ( bItalic ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_I;
- if ( bUnderline ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_UL;
- if ( bStrikeout ) (*m_pStream) << OOO_STRING_SVTOOLS_RTF_STRIKE;
-
- (*m_pStream) << aFS2;
- (*m_pStream) << ' ';
-
- try
- {
- Reference<XPropertySet> xColumn(m_xRowSetColumns->getByIndex(i-1),UNO_QUERY_THROW);
- dbtools::FormattedColumnValue aFormatedValue(aContext,xRowSet,xColumn);
- ::rtl::OUString sValue = aFormatedValue.getFormattedValue();
- if ( sValue.getLength() )
- RTFOutFuncs::Out_String(*m_pStream,sValue,m_eDestEnc);
- }
- catch (Exception&)
- {
- OSL_FAIL("RTF WRITE!");
- }
-
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_CELL;
- (*m_pStream) << '}';
- (*m_pStream) << ODatabaseImportExport::sNewLine;
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_PARD << OOO_STRING_SVTOOLS_RTF_INTBL;
- }
- (*m_pStream) << OOO_STRING_SVTOOLS_RTF_ROW << ODatabaseImportExport::sNewLine;
- (*m_pStream) << '}';
- }
- ++k;
-}
-//-------------------------------------------------------------------
-sal_Bool ORTFImportExport::Read()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFImportExport::Read" );
- ODatabaseImportExport::Read();
- SvParserState eState = SVPAR_ERROR;
- if ( m_pStream )
- {
- m_pReader = new ORTFReader((*m_pStream),m_xConnection,m_xFormatter,m_xFactory);
- ((ORTFReader*)m_pReader)->AddRef();
- if ( isCheckEnabled() )
- m_pReader->enableCheckOnly();
- eState = ((ORTFReader*)m_pReader)->CallParser();
- m_pReader->release();
- m_pReader = NULL;
- }
-
- return eState != SVPAR_ERROR;
-}
-//-------------------------------------------------------------------
-//===================================================================
-const sal_Int16 OHTMLImportExport::nDefaultFontSize[SBA_HTML_FONTSIZES] =
-{
- HTMLFONTSZ1_DFLT, HTMLFONTSZ2_DFLT, HTMLFONTSZ3_DFLT, HTMLFONTSZ4_DFLT,
- HTMLFONTSZ5_DFLT, HTMLFONTSZ6_DFLT, HTMLFONTSZ7_DFLT
-};
-
-sal_Int16 OHTMLImportExport::nFontSize[SBA_HTML_FONTSIZES] = { 0 };
-
-const sal_Int16 OHTMLImportExport::nCellSpacing = 0;
-const char OHTMLImportExport::sIndentSource[nIndentMax+1] = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
-
-//========================================================================
-// Macros for HTML-Export
-//========================================================================
-#define OUT_PROLOGUE() ((*m_pStream) << sHTML30_Prologue << ODatabaseImportExport::sNewLine << ODatabaseImportExport::sNewLine)
-#define TAG_ON( tag ) HTMLOutFuncs::Out_AsciiTag( (*m_pStream), tag )
-#define TAG_OFF( tag ) HTMLOutFuncs::Out_AsciiTag( (*m_pStream), tag, sal_False )
-#define OUT_STR( str ) HTMLOutFuncs::Out_String( (*m_pStream), str )
-#define OUT_LF() (*m_pStream) << ODatabaseImportExport::sNewLine << GetIndentStr()
-#define lcl_OUT_LF() (*m_pStream) << ODatabaseImportExport::sNewLine
-#define TAG_ON_LF( tag ) (TAG_ON( tag ) << ODatabaseImportExport::sNewLine << GetIndentStr())
-#define TAG_OFF_LF( tag ) (TAG_OFF( tag ) << ODatabaseImportExport::sNewLine << GetIndentStr())
-#define OUT_HR() TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_horzrule )
-#define OUT_COMMENT( comment ) ((*m_pStream) << sMyBegComment, OUT_STR( comment ) << sMyEndComment << ODatabaseImportExport::sNewLine << GetIndentStr())
-#define lcl_OUT_COMMENT( comment ) ((*m_pStream) << sMyBegComment, OUT_STR( comment ) << sMyEndComment << ODatabaseImportExport::sNewLine)
-
-//-------------------------------------------------------------------
-OHTMLImportExport::OHTMLImportExport(const ::svx::ODataAccessDescriptor& _aDataDescriptor,
- const Reference< XMultiServiceFactory >& _rM,
- const Reference< ::com::sun::star::util::XNumberFormatter >& _rxNumberF,
- const String& rExchange)
- : ODatabaseImportExport(_aDataDescriptor,_rM,_rxNumberF,rExchange)
- ,m_nIndent(0)
-#if OSL_DEBUG_LEVEL > 0
- ,m_bCheckFont(sal_False)
-#endif
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::OHTMLImportExport" );
- // set HTML configuration
- SvxHtmlOptions& rHtmlOptions = SvxHtmlOptions::Get();
- m_eDestEnc = rHtmlOptions.GetTextEncoding();
- strncpy( sIndent, sIndentSource ,std::min(sizeof(sIndent),sizeof(sIndentSource)));
- sIndent[0] = 0;
-}
-//-------------------------------------------------------------------
-sal_Bool OHTMLImportExport::Write()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::Write" );
- ODatabaseImportExport::Write();
- if(m_xObject.is())
- {
- (*m_pStream) << '<' << OOO_STRING_SVTOOLS_HTML_doctype << ' ' << OOO_STRING_SVTOOLS_HTML_doctype32 << '>' << ODatabaseImportExport::sNewLine << ODatabaseImportExport::sNewLine;
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_html );
- WriteHeader();
- OUT_LF();
- WriteBody();
- OUT_LF();
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_html );
-
- return ((*m_pStream).GetError() == SVSTREAM_OK);
- }
- return sal_False;
-}
-//-------------------------------------------------------------------
-sal_Bool OHTMLImportExport::Read()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::Read" );
- ODatabaseImportExport::Read();
- SvParserState eState = SVPAR_ERROR;
- if ( m_pStream )
- {
- m_pReader = new OHTMLReader((*m_pStream),m_xConnection,m_xFormatter,m_xFactory);
- ((OHTMLReader*)m_pReader)->AddRef();
- if ( isCheckEnabled() )
- m_pReader->enableCheckOnly();
- m_pReader->SetTableName(m_sDefaultTableName);
- eState = ((OHTMLReader*)m_pReader)->CallParser();
- m_pReader->release();
- m_pReader = NULL;
- }
-
- return eState != SVPAR_ERROR;
-}
-//-------------------------------------------------------------------
-void OHTMLImportExport::WriteHeader()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::WriteHeader" );
- uno::Reference<document::XDocumentProperties> xDocProps(
- m_xFactory->createInstance(::rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.DocumentProperties"))),
- uno::UNO_QUERY);
- if (xDocProps.is()) {
- xDocProps->setTitle(m_sName);
- }
-
- IncIndent(1); TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_head );
-
- SfxFrameHTMLWriter::Out_DocInfo( (*m_pStream), String(),
- xDocProps, sIndent );
- OUT_LF();
- IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_head );
-}
-//-----------------------------------------------------------------------
-void OHTMLImportExport::WriteBody()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::WriteBody" );
-
- IncIndent(1); TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_style );
-
- (*m_pStream) << sMyBegComment; OUT_LF();
- (*m_pStream) << OOO_STRING_SVTOOLS_HTML_body << " { " << sFontFamily << '\"' << ::rtl::OString(m_aFont.Name,m_aFont.Name.getLength(), gsl_getSystemTextEncoding()) << '\"';
- // TODO : think about the encoding of the font name
- (*m_pStream) << "; " << sFontSize;
- m_pStream->WriteNumber(static_cast<sal_Int32>(m_aFont.Height));
- (*m_pStream) << '}';
-
- OUT_LF();
- (*m_pStream) << sMyEndComment;
- IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_style );
- OUT_LF();
-
- // default Textcolour black
- (*m_pStream) << '<' << OOO_STRING_SVTOOLS_HTML_body << ' ' << OOO_STRING_SVTOOLS_HTML_O_text << '=';
- sal_Int32 nColor = 0;
- if(m_xObject.is())
- m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= nColor;
- ::Color aColor(nColor);
- HTMLOutFuncs::Out_Color( (*m_pStream), aColor );
-
- ::rtl::OString sOut( ' ' );
- sOut = sOut + OOO_STRING_SVTOOLS_HTML_O_bgcolor;
- sOut = sOut + "=";
- (*m_pStream) << sOut;
- HTMLOutFuncs::Out_Color( (*m_pStream), aColor );
-
- (*m_pStream) << '>'; OUT_LF();
-
- WriteTables();
-
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_body );
-}
-//-----------------------------------------------------------------------
-void OHTMLImportExport::WriteTables()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::WriteTables" );
- ::rtl::OString aStrOut = OOO_STRING_SVTOOLS_HTML_table;
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_frame;
- aStrOut = aStrOut + "=";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_TF_void;
-
- Sequence< ::rtl::OUString> aNames;
- Reference<XNameAccess> xColumns;
- sal_Bool bUseResultMetaData = sal_False;
- if(m_xObject.is())
- {
- Reference<XColumnsSupplier> xColSup(m_xObject,UNO_QUERY);
- xColumns = xColSup->getColumns();
- aNames = xColumns->getElementNames();
- if ( !aNames.getLength() )
- {
- sal_Int32 nCount = m_xResultSetMetaData->getColumnCount();
- aNames.realloc(nCount);
- for (sal_Int32 i= 0; i < nCount; ++i)
- aNames[i] = m_xResultSetMetaData->getColumnName(i+1);
- bUseResultMetaData = sal_True;
- }
- }
-
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_O_align;
- aStrOut = aStrOut + "=";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_AL_left;
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_O_cellspacing;
- aStrOut = aStrOut + "=";
- aStrOut = aStrOut + ::rtl::OString::valueOf((sal_Int32)nCellSpacing);
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_O_cols;
- aStrOut = aStrOut + "=";
- aStrOut = aStrOut + ::rtl::OString::valueOf(aNames.getLength());
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_O_border;
- aStrOut = aStrOut + "=1";
-
- IncIndent(1);
- TAG_ON( aStrOut );
-
- FontOn();
-
- TAG_ON( OOO_STRING_SVTOOLS_HTML_caption );
- TAG_ON( OOO_STRING_SVTOOLS_HTML_bold );
-
- (*m_pStream) << ::rtl::OString(m_sName,m_sName.getLength(), gsl_getSystemTextEncoding());
- // TODO : think about the encoding of the name
- TAG_OFF( OOO_STRING_SVTOOLS_HTML_bold );
- TAG_OFF( OOO_STRING_SVTOOLS_HTML_caption );
-
- FontOff();
- OUT_LF();
- // </FONT>
-
- IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_thead );
-
- IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
-
- if(m_xObject.is())
- {
- sal_Int32* pFormat = new sal_Int32[aNames.getLength()];
-
- const char **pHorJustify = new const char*[aNames.getLength()];
- sal_Int32 *pColWidth = new sal_Int32[aNames.getLength()];
-
-
- sal_Int32 nHeight = 0;
- m_xObject->getPropertyValue(PROPERTY_ROW_HEIGHT) >>= nHeight;
-
- // 1. die Spaltenbeschreibung rauspusten
- const ::rtl::OUString* pIter = aNames.getConstArray();
- const ::rtl::OUString* pEnd = pIter + aNames.getLength();
-
- for( sal_Int32 i=0;pIter != pEnd; ++pIter,++i )
- {
- sal_Int32 nAlign = 0;
- pFormat[i] = 0;
- pColWidth[i] = 100;
- if ( !bUseResultMetaData )
- {
- Reference<XPropertySet> xColumn;
- xColumns->getByName(*pIter) >>= xColumn;
- xColumn->getPropertyValue(PROPERTY_ALIGN) >>= nAlign;
- pFormat[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_FORMATKEY));
- pColWidth[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_WIDTH));
- }
-
- switch( nAlign )
- {
- case 1: pHorJustify[i] = OOO_STRING_SVTOOLS_HTML_AL_center; break;
- case 2: pHorJustify[i] = OOO_STRING_SVTOOLS_HTML_AL_right; break;
- default: pHorJustify[i] = OOO_STRING_SVTOOLS_HTML_AL_left; break;
- }
-
- if(i == aNames.getLength()-1)
- IncIndent(-1);
-
- WriteCell(pFormat[i],pColWidth[i],nHeight,pHorJustify[i],*pIter,OOO_STRING_SVTOOLS_HTML_tableheader);
- }
-
- IncIndent(-1);
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_thead );
-
- IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tbody );
-
- // 2. und jetzt die Daten
- ::comphelper::ComponentContext aContext(m_xFactory);
- Reference< XRowSet > xRowSet(m_xRow,UNO_QUERY);
- sal_Int32 j=1;
- sal_Int32 kk=0;
- m_xResultSet->beforeFirst(); // set back before the first row
- while(m_xResultSet->next())
- {
- IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
-
- if(!m_pRowMarker || m_pRowMarker[kk] == j)
- {
- ++kk;
- for(sal_Int32 i=1;i<=aNames.getLength();++i)
- {
- if(i == aNames.getLength())
- IncIndent(-1);
-
- String aValue;
- try
- {
- Reference<XPropertySet> xColumn(m_xRowSetColumns->getByIndex(i-1),UNO_QUERY_THROW);
- dbtools::FormattedColumnValue aFormatedValue(aContext,xRowSet,xColumn);
- ::rtl::OUString sValue = aFormatedValue.getFormattedValue();
- if (sValue.getLength())
- {
- aValue = sValue;
- }
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- WriteCell(pFormat[i-1],pColWidth[i-1],nHeight,pHorJustify[i-1],aValue,OOO_STRING_SVTOOLS_HTML_tabledata);
- }
- }
- ++j;
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
- }
-
- delete [] pFormat;
- delete [] pHorJustify;
- delete [] pColWidth;
- }
- else
- {
- IncIndent(-1);
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_thead );
-
- IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tbody );
- }
-
- IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tbody );
- IncIndent(-1); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_table );
-}
-//-----------------------------------------------------------------------
-void OHTMLImportExport::WriteCell( sal_Int32 nFormat,sal_Int32 nWidthPixel,sal_Int32 nHeightPixel,const char* pChar,
- const String& rValue,const char* pHtmlTag)
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::WriteCell" );
- ::rtl::OString aStrTD = pHtmlTag;
-
- nWidthPixel = nWidthPixel ? nWidthPixel : 86;
- nHeightPixel = nHeightPixel ? nHeightPixel : 17;
-
- // trotz der <TABLE COLS=n> und <COL WIDTH=x> Angaben noetig,
- // da die nicht von Netscape beachtet werden..
- // Spaltenbreite
- aStrTD = aStrTD + " ";
- aStrTD = aStrTD + OOO_STRING_SVTOOLS_HTML_O_width;
- aStrTD = aStrTD + "=";
- aStrTD = aStrTD + ::rtl::OString::valueOf((sal_Int32)nWidthPixel);
- // Zeilenhoehe
- aStrTD = aStrTD + " ";
- aStrTD = aStrTD + OOO_STRING_SVTOOLS_HTML_O_height;
- aStrTD = aStrTD + "=";
- aStrTD = aStrTD + ::rtl::OString::valueOf((sal_Int32)nHeightPixel);
-
- aStrTD = aStrTD + " ";
- aStrTD = aStrTD + OOO_STRING_SVTOOLS_HTML_O_align;
- aStrTD = aStrTD + "=";
- aStrTD = aStrTD + pChar;
-
- Reference< ::com::sun::star::util::XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier();
- SvNumberFormatsSupplierObj* pSupplierImpl = SvNumberFormatsSupplierObj::getImplementation( xSupplier );
- SvNumberFormatter* pFormatter = pSupplierImpl ? pSupplierImpl->GetNumberFormatter() : NULL;
- if(pFormatter)
- {
- double fVal = 0.0;
-
- try
- {
- fVal = m_xFormatter->convertStringToNumber(nFormat,rValue);
- HTMLOutFuncs::CreateTableDataOptionsValNum(sal_False, fVal,nFormat, *pFormatter);
- }
- catch(const Exception&)
- {
- HTMLOutFuncs::CreateTableDataOptionsValNum(sal_False, fVal,nFormat, *pFormatter);
- }
- }
-
- TAG_ON( aStrTD );
-
- FontOn();
-
- sal_Bool bBold = ( ::com::sun::star::awt::FontWeight::BOLD == m_aFont.Weight );
- sal_Bool bItalic = ( ::com::sun::star::awt::FontSlant_ITALIC == m_aFont.Slant );
- sal_Bool bUnderline = ( ::com::sun::star::awt::FontUnderline::NONE != m_aFont.Underline );
- sal_Bool bStrikeout = ( ::com::sun::star::awt::FontStrikeout::NONE != m_aFont.Strikeout );
-
- if ( bBold ) TAG_ON( OOO_STRING_SVTOOLS_HTML_bold );
- if ( bItalic ) TAG_ON( OOO_STRING_SVTOOLS_HTML_italic );
- if ( bUnderline ) TAG_ON( OOO_STRING_SVTOOLS_HTML_underline );
- if ( bStrikeout ) TAG_ON( OOO_STRING_SVTOOLS_HTML_strike );
-
- if ( !rValue.Len() )
- TAG_ON( OOO_STRING_SVTOOLS_HTML_linebreak ); // keine komplett leere Zelle
- else
- HTMLOutFuncs::Out_String( (*m_pStream), rValue ,m_eDestEnc);
-
-
- if ( bStrikeout ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_strike );
- if ( bUnderline ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_underline );
- if ( bItalic ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_italic );
- if ( bBold ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_bold );
-
- FontOff();
-
- TAG_OFF_LF( pHtmlTag );
-}
-//-----------------------------------------------------------------------
-void OHTMLImportExport::FontOn()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::FontOn" );
-#if OSL_DEBUG_LEVEL > 0
- m_bCheckFont = sal_True;
-#endif
-
- // <FONT FACE="xxx">
- ::rtl::OString aStrOut = "<";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_font;
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_O_face;
- aStrOut = aStrOut + "=";
- aStrOut = aStrOut + "\"";
- aStrOut = aStrOut + ::rtl::OString(m_aFont.Name,m_aFont.Name.getLength(),gsl_getSystemTextEncoding());
- // TODO : think about the encoding of the font name
- aStrOut = aStrOut + "\"";
- aStrOut = aStrOut + " ";
- aStrOut = aStrOut + OOO_STRING_SVTOOLS_HTML_O_color;
- aStrOut = aStrOut + "=";
- (*m_pStream) << aStrOut;
-
- sal_Int32 nColor = 0;
- if(m_xObject.is())
- m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= nColor;
- ::Color aColor(nColor);
-
- HTMLOutFuncs::Out_Color( (*m_pStream), aColor );
- (*m_pStream) << ">";
-}
-//-----------------------------------------------------------------------
-inline void OHTMLImportExport::FontOff()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::FontOff" );
- OSL_ENSURE(m_bCheckFont,"Kein FontOn() gerufen");
- TAG_OFF( OOO_STRING_SVTOOLS_HTML_font );
-#if OSL_DEBUG_LEVEL > 0
- m_bCheckFont = sal_False;
-#endif
-}
-//-----------------------------------------------------------------------
-void OHTMLImportExport::IncIndent( sal_Int16 nVal )
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::IncIndent" );
- sIndent[m_nIndent] = '\t';
- m_nIndent = m_nIndent + nVal;
- if ( m_nIndent < 0 )
- m_nIndent = 0;
- else if ( m_nIndent > nIndentMax )
- m_nIndent = nIndentMax;
- sIndent[m_nIndent] = 0;
-}
-// -----------------------------------------------------------------------------
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */