2001-02-16 14:54:09 +00:00
/*************************************************************************
*
2005-09-08 14:39:55 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* $ RCSfile : TokenWriter . hxx , v $
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* $ Revision : 1.14 $
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* last change : $ Author : rt $ $ Date : 2005 - 09 - 08 15 : 39 : 55 $
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1 .
2001-02-16 14:54:09 +00:00
*
*
2005-09-08 14:39:55 +00:00
* GNU Lesser General Public License Version 2.1
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* Copyright 2005 by Sun Microsystems , Inc .
* 901 San Antonio Road , Palo Alto , CA 94303 , USA
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 , as published by the Free Software Foundation .
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* This library 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 for more details .
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:39:55 +00:00
* You should have received a copy of the GNU Lesser General Public
* License along with this library ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston ,
* MA 02111 - 1307 USA
2001-02-16 14:54:09 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef DBAUI_TOKENWRITER_HXX
# define DBAUI_TOKENWRITER_HXX
# ifndef DBAUI_DATABASEEXPORT_HXX
# include "DExport.hxx"
# endif
# ifndef _STREAM_HXX //autogen
# include <tools/stream.hxx>
# endif
# ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_
# include <com/sun/star/awt/FontDescriptor.hpp>
# endif
# ifndef _COM_SUN_STAR_SDBC_XRESULTSET_HPP_
# include <com/sun/star/sdbc/XResultSet.hpp>
# endif
2004-08-02 14:54:25 +00:00
# ifndef _COM_SUN_STAR_SDBC_XRESULTSETUPDATE_HPP_
# include <com/sun/star/sdbc/XResultSetUpdate.hpp>
# endif
2001-02-16 14:54:09 +00:00
# ifndef _COM_SUN_STAR_SDBC_XROW_HPP_
# include <com/sun/star/sdbc/XRow.hpp>
# endif
# ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
# include <com/sun/star/lang/XMultiServiceFactory.hpp>
# endif
2001-02-23 14:02:06 +00:00
# ifndef _COM_SUN_STAR_LANG_XEVENTLISTENER_HPP_
# include <com/sun/star/lang/XEventListener.hpp>
# endif
# ifndef _CPPUHELPER_IMPLBASE1_HXX_
# include <cppuhelper/implbase1.hxx>
# endif
# ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
# include <com/sun/star/beans/PropertyValue.hpp>
# endif
# ifndef _COM_SUN_STAR_SDB_COMMANDTYPE_HPP_
# include <com/sun/star/sdb/CommandType.hpp>
# endif
2001-10-02 06:55:27 +00:00
# ifndef _SVX_DATACCESSDESCRIPTOR_HXX_
# include <svx/dataaccessdescriptor.hxx>
# endif
# ifndef _DBAUI_MODULE_DBU_HXX_
# include "moduledbu.hxx"
# endif
2004-08-02 14:54:25 +00:00
# ifndef CONNECTIVITY_DATASOURCEHOLDER_HXX
# include <connectivity/DataSourceHolder.hxx>
# endif
# include <memory>
2001-02-16 14:54:09 +00:00
namespace dbaui
{
// =========================================================================
// ODatabaseImportExport Basisklasse f"ur Import/Export
// =========================================================================
class ODatabaseExport ;
2004-03-02 11:44:54 +00:00
typedef : : cppu : : WeakImplHelper1 < : : com : : sun : : star : : lang : : XEventListener > ODatabaseImportExport_BASE ;
class ODatabaseImportExport : public ODatabaseImportExport_BASE
2001-02-16 14:54:09 +00:00
{
2001-02-23 14:02:06 +00:00
void disposing ( ) ;
2001-02-16 14:54:09 +00:00
protected :
2001-10-02 06:55:27 +00:00
: : com : : sun : : star : : uno : : Sequence < : : com : : sun : : star : : uno : : Any > m_aSelection ;
SvStream * m_pStream ;
: : com : : sun : : star : : awt : : FontDescriptor m_aFont ;
2001-02-16 14:54:09 +00:00
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : beans : : XPropertySet > m_xObject ; // table/query
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XConnection > m_xConnection ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSet > m_xResultSet ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XRow > m_xRow ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSetMetaData > m_xResultSetMetaData ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > m_xFormatter ; // a number formatter working with the connection's NumberFormatsSupplier
2001-02-23 14:02:06 +00:00
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > m_xFactory ;
2004-08-02 14:54:25 +00:00
: : std : : auto_ptr < : : dbtools : : ODataSourceHolder > m_aDataSourceHolder ;
2001-02-23 14:02:06 +00:00
: : rtl : : OUString m_sName ;
: : rtl : : OUString m_sDataSourceName ;
sal_Int32 m_nCommandType ;
sal_Bool m_bDisposeConnection ;
2001-02-16 14:54:09 +00:00
2002-07-02 07:19:02 +00:00
# if defined UNX || defined MAC
static const char __FAR_DATA sNewLine ;
# else
static const char __FAR_DATA sNewLine [ ] ;
# endif
2001-02-16 14:54:09 +00:00
ODatabaseExport * m_pReader ;
sal_Int32 * m_pRowMarker ; // wenn gesetzt, dann nur diese Rows kopieren
2001-11-23 13:51:40 +00:00
sal_Bool m_bInInitialize ;
2002-05-28 07:08:11 +00:00
sal_Bool m_bCheckOnly ;
2001-02-16 14:54:09 +00:00
2001-02-23 14:02:06 +00:00
// export data
2004-08-02 14:54:25 +00:00
ODatabaseImportExport ( const : : svx : : ODataAccessDescriptor & _aDataDescriptor ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
2001-02-16 14:54:09 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const String & rExchange = String ( ) ) ;
2001-02-23 14:02:06 +00:00
// import data
2001-02-16 14:54:09 +00:00
ODatabaseImportExport ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XConnection > & _rxConnection ,
2001-02-23 14:02:06 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
2001-07-05 11:46:55 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ) ;
2001-02-16 14:54:09 +00:00
2001-02-23 14:02:06 +00:00
virtual ~ ODatabaseImportExport ( ) ;
2004-03-02 11:44:54 +00:00
virtual void initialize ( ) ;
2001-02-23 14:02:06 +00:00
public :
2001-02-16 14:54:09 +00:00
void setStream ( SvStream * _pStream ) { m_pStream = _pStream ; }
virtual BOOL Write ( ) = 0 ; // Export
virtual BOOL Read ( ) = 0 ; // Import
2004-03-02 11:44:54 +00:00
void initialize ( const : : svx : : ODataAccessDescriptor & _aDataDescriptor ) ;
2001-02-23 14:02:06 +00:00
virtual void SAL_CALL disposing ( const : : com : : sun : : star : : lang : : EventObject & Source ) throw ( : : com : : sun : : star : : uno : : RuntimeException ) ;
2002-05-28 07:08:11 +00:00
void enableCheckOnly ( ) { m_bCheckOnly = sal_True ; }
sal_Bool isCheckEnabled ( ) const { return m_bCheckOnly ; }
2001-02-16 14:54:09 +00:00
} ;
// =========================================================================
// RTF Im- und Export
// =========================================================================
class ORTFImportExport : public ODatabaseImportExport
{
public :
2001-02-23 14:02:06 +00:00
// export data
2004-08-02 14:54:25 +00:00
ORTFImportExport ( const : : svx : : ODataAccessDescriptor & _aDataDescriptor ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
2001-02-16 14:54:09 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const String & rExchange = String ( ) )
2004-08-02 14:54:25 +00:00
: ODatabaseImportExport ( _aDataDescriptor , _rM , _rxNumberF , rExchange ) { } ;
2001-02-23 14:02:06 +00:00
// import data
2001-02-16 14:54:09 +00:00
ORTFImportExport ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XConnection > & _rxConnection ,
2001-02-23 14:02:06 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM )
: ODatabaseImportExport ( _rxConnection , _rxNumberF , _rM )
2001-02-16 14:54:09 +00:00
{ }
virtual BOOL Write ( ) ;
virtual BOOL Read ( ) ;
} ;
// =========================================================================
// HTML Im- und Export
// =========================================================================
# define SBA_HTML_FONTSIZES 7
const sal_Int16 nIndentMax = 23 ;
class OHTMLImportExport : public ODatabaseImportExport
{
// default HtmlFontSz[1-7]
static const sal_Int16 nDefaultFontSize [ SBA_HTML_FONTSIZES ] ;
// HtmlFontSz[1-7] in s*3.ini [user]
static sal_Int16 nFontSize [ SBA_HTML_FONTSIZES ] ;
static const sal_Int16 nCellSpacing ;
static const char __FAR_DATA sIndentSource [ ] ;
char sIndent [ nIndentMax + 1 ] ;
sal_Int16 m_nIndent ;
# if DBG_UTIL
BOOL m_bCheckFont ;
# endif
void WriteHeader ( ) ;
void WriteBody ( ) ;
void WriteTables ( ) ;
2001-02-28 09:11:33 +00:00
void WriteCell ( sal_Int32 nFormat , sal_Int32 nWidthPixel , sal_Int32 nHeightPixel , const char * pChar , const String & rValue , const char * pHtmlTag ) ;
2001-02-16 14:54:09 +00:00
void IncIndent ( sal_Int16 nVal ) ;
const char * GetIndentStr ( ) { return sIndent ; }
void FontOn ( ) ;
inline void FontOff ( ) ;
public :
2001-02-23 14:02:06 +00:00
// export data
2004-08-02 14:54:25 +00:00
OHTMLImportExport ( const : : svx : : ODataAccessDescriptor & _aDataDescriptor ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
2001-02-16 14:54:09 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const String & rExchange = String ( ) ) ;
2001-02-23 14:02:06 +00:00
// import data
2001-02-16 14:54:09 +00:00
OHTMLImportExport ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XConnection > & _rxConnection ,
2001-02-23 14:02:06 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM )
: ODatabaseImportExport ( _rxConnection , _rxNumberF , _rM )
2001-02-16 14:54:09 +00:00
{ }
virtual BOOL Write ( ) ;
virtual BOOL Read ( ) ;
} ;
2001-10-02 06:55:27 +00:00
// =========================================================================
// normal RowSet Im- und Export
// =========================================================================
class ORowSetImportExport : public ODatabaseImportExport ,
public OModuleClient
{
: : std : : vector < sal_Int32 > m_aColumnMapping ;
: : std : : vector < sal_Int32 > m_aColumnTypes ;
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSetUpdate > m_xTargetResultSetUpdate ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XRowUpdate > m_xTargetRowUpdate ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSetMetaData > m_xTargetResultSetMetaData ; //
Window * m_pParent ;
sal_Bool m_bAlreadyAsked ;
sal_Bool insertNewRow ( ) ;
2004-03-02 11:44:54 +00:00
protected :
virtual void initialize ( ) ;
2001-10-02 06:55:27 +00:00
public :
// export data
ORowSetImportExport ( Window * _pParent ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSetUpdate > & _xResultSetUpdate ,
2004-08-02 14:54:25 +00:00
const : : svx : : ODataAccessDescriptor & _aDataDescriptor ,
2001-10-02 06:55:27 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
const String & rExchange = String ( ) ) ;
// import data
ORowSetImportExport ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XConnection > & _rxConnection ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
const String & rExchange = String ( ) )
: ODatabaseImportExport ( _rxConnection , NULL , _rM )
{ }
2004-03-02 11:44:54 +00:00
2001-10-02 06:55:27 +00:00
virtual BOOL Write ( ) ;
virtual BOOL Read ( ) ;
} ;
2001-02-16 14:54:09 +00:00
}
# endif // DBAUI_TOKENWRITER_HXX