diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2009-04-23 10:42:05 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2009-04-23 10:42:05 +0000 |
commit | d4420993d60255a2624b522cd085d0129d232bf7 (patch) | |
tree | 205dbc978d16cd7e9ab48d861d18f15928a4035d /dbaccess/source/ui | |
parent | 7599f68cee9141cd16ca7697872b5f83c6ae9ad9 (diff) |
CWS-TOOLING: integrate CWS dbaperf1
2009-04-02 09:12:25 +0200 oj r270372 : CWS-TOOLING: rebase CWS dbaperf1 to trunk@270033 (milestone: DEV300:m45)
2009-03-17 10:20:34 +0100 oj r269577 : add parameter
2009-03-17 10:20:05 +0100 oj r269576 : add parameter
2009-03-12 12:32:24 +0100 oj r269387 : add missing ++
2009-03-11 12:53:35 +0100 oj r269315 : compile error
2009-03-06 08:52:11 +0100 oj r268968 : #i99264# remove duplicate code
2009-03-06 08:20:08 +0100 oj r268966 : add missingheader
2009-03-06 08:17:41 +0100 oj r268965 : add header
2009-03-06 08:15:07 +0100 oj r268964 : #i99708# remove duplicate code
2009-03-06 07:24:11 +0100 oj r268963 : #i99708# remove duplicate code
2009-03-06 07:22:24 +0100 oj r268962 : #i99708# use tenary operator
2009-03-06 07:19:21 +0100 oj r268961 : remove unused rtl_logs
2009-03-06 07:15:55 +0100 oj r268960 : #i99708# extract getLength from for loop
2009-03-06 07:15:35 +0100 oj r268959 : #i99708# extract getLength from for loop
2009-03-06 07:14:57 +0100 oj r268958 : remove unused rtl_logs
2009-03-06 07:13:01 +0100 oj r268957 : insert DBG_ helper
2009-03-06 07:12:17 +0100 oj r268956 : remove unused rtl_logs
2009-03-06 07:10:26 +0100 oj r268955 : remove unused rtl_logs
2009-03-06 07:04:51 +0100 oj r268954 : #i99708# use tenary operator
2009-03-05 12:04:46 +0100 oj r268895 : comment RTL_LOG out
2009-03-05 09:05:07 +0100 oj r268874 : add rtl logfile
2009-03-04 14:21:18 +0100 oj r268828 : #i99708# make static inplace and some method calls in for loop removed
2009-03-04 14:20:34 +0100 oj r268827 : #i99708# impl double check pattern for getInfohelper
2009-03-02 09:31:42 +0100 oj r268636 : add rtl logfile
2009-03-02 08:18:37 +0100 oj r268633 : add rtl logfile
2009-02-27 11:22:16 +0100 oj r268570 : #i99709# change algorithm for marking objects
2009-02-27 11:17:04 +0100 oj r268568 : #i99708# some improvements to load forms, controls faster and replacement of size() call with !empty() which is much faster
2009-02-24 10:09:35 +0100 sb r268383 : #i99290# no longer care to set a sensible context class loader for native threads attached to the VM
2009-02-23 13:44:04 +0100 oj r268354 : #i76606# seekrow changes
2009-02-23 12:27:30 +0100 oj r268349 : deleted
2009-02-20 15:14:23 +0100 oj r268325 : #i76606# some code changes
2009-02-19 14:15:25 +0100 oj r268284 : #i76606# use of simple prep stmt instead of full blown rowset, when source and dest connection are the same use insert into ... ( select ... )
2009-02-19 11:27:55 +0100 oj r268265 : #i76606# insert some RTL_LOG and setObject impl
2009-02-18 14:45:37 +0100 oj r268222 : #i99363# insert RTL_LOG
2009-02-18 14:45:18 +0100 oj r268221 : #i99363# insert RTL_LOG
2009-02-18 11:14:54 +0100 oj r268207 : #i99363# call some impl_ methods to avoid duplicate cechCache calls
2009-02-18 11:10:47 +0100 oj r268206 : #i99363# make isCount inline
2009-02-18 10:33:22 +0100 oj r268203 : #i99363# use bookmarkable if available and inserted some RTL_LOG
2009-02-18 10:32:57 +0100 oj r268202 : #i99363# use bookmarkable if available and inserted some RTL_LOG
2009-02-17 07:29:05 +0100 oj r267843 : #i96897# remove some dll public
2009-02-16 15:01:04 +0100 oj r267816 : #i96897# remove some dll public
2009-02-16 14:25:53 +0100 oj r267810 : #i99264# remove duplicate code
2009-02-16 14:25:33 +0100 oj r267809 : #i99264# remove duplicate code
2009-02-16 14:24:59 +0100 oj r267808 : #i99264# remove duplicate code
2009-02-13 10:56:17 +0100 oj r267703 : #i99191# comment the contextclassloader
2009-02-13 10:32:40 +0100 oj r267700 : reduce call to resultset meta data
2009-02-13 10:27:31 +0100 oj r267699 : reduce call to resultset meta data
2009-02-13 10:27:08 +0100 oj r267698 : reduce call to resultset meta data
Diffstat (limited to 'dbaccess/source/ui')
-rw-r--r-- | dbaccess/source/ui/browser/brwctrlr.cxx | 194 | ||||
-rw-r--r-- | dbaccess/source/ui/browser/unodatbr.cxx | 89 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/DExport.hxx | 31 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/brwctrlr.hxx | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/DExport.cxx | 204 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/HtmlReader.cxx | 87 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/RowSetDrop.cxx | 22 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/RtfReader.cxx | 65 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/TableCopyHelper.cxx | 10 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/TokenWriter.cxx | 81 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/UITools.cxx | 37 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/UpdateHelperImpl.hxx | 19 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/WCopyTable.cxx | 31 | ||||
-rw-r--r-- | dbaccess/source/ui/uno/copytablewizard.cxx | 1932 |
14 files changed, 1440 insertions, 1366 deletions
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx index 679a4d4f20e7..50f0e4594c7f 100644 --- a/dbaccess/source/ui/browser/brwctrlr.cxx +++ b/dbaccess/source/ui/browser/brwctrlr.cxx @@ -194,6 +194,7 @@ #ifndef DBAUI_QUERYORDER_HXX #include "queryorder.hxx" #endif +#include <rtl/logfile.hxx> #include <svx/svxdlg.hxx> //CHINA001 //#include <svx/fmresids.hrc> //CHINA001 @@ -422,6 +423,7 @@ void SAL_CALL SbaXDataBrowserController::FormControllerImpl::disposing(const ::c //------------------------------------------------------------------ Sequence< Type > SAL_CALL SbaXDataBrowserController::getTypes( ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::getTypes" ); return ::comphelper::concatSequences( SbaXDataBrowserController_Base::getTypes(), m_pFormControllerImpl->getTypes() @@ -431,6 +433,7 @@ Sequence< Type > SAL_CALL SbaXDataBrowserController::getTypes( ) throw (Runtime //------------------------------------------------------------------ Sequence< sal_Int8 > SAL_CALL SbaXDataBrowserController::getImplementationId( ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::getImplementationId" ); static ::cppu::OImplementationId * pId = 0; if (! pId) { @@ -447,6 +450,7 @@ Sequence< sal_Int8 > SAL_CALL SbaXDataBrowserController::getImplementationId( ) //------------------------------------------------------------------ Any SAL_CALL SbaXDataBrowserController::queryInterface(const Type& _rType) throw (RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::queryInterface" ); // check for our additional interfaces Any aRet = SbaXDataBrowserController_Base::queryInterface(_rType); @@ -481,6 +485,7 @@ SbaXDataBrowserController::SbaXDataBrowserController(const Reference< ::com::sun ,m_bClosingKillOpen( sal_False ) ,m_bErrorOccured( sal_False ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::SbaXDataBrowserController" ); DBG_CTOR(SbaXDataBrowserController,NULL); // create the form controller aggregate @@ -499,6 +504,7 @@ SbaXDataBrowserController::SbaXDataBrowserController(const Reference< ::com::sun //------------------------------------------------------------------------------ SbaXDataBrowserController::~SbaXDataBrowserController() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::~SbaXDataBrowserController" ); // deleteView(); // release the aggregated form controller if (m_xFormControllerImpl.is()) @@ -513,6 +519,7 @@ SbaXDataBrowserController::~SbaXDataBrowserController() // ----------------------------------------------------------------------- void SbaXDataBrowserController::startFrameListening( const Reference< XFrame >& _rxFrame ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::startFrameListening" ); SbaXDataBrowserController_Base::startFrameListening( _rxFrame ); Reference< XFrameActionListener > xAggListener; @@ -526,6 +533,7 @@ void SbaXDataBrowserController::startFrameListening( const Reference< XFrame >& // ----------------------------------------------------------------------- void SbaXDataBrowserController::stopFrameListening( const Reference< XFrame >& _rxFrame ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::stopFrameListening" ); SbaXDataBrowserController_Base::stopFrameListening( _rxFrame ); Reference< XFrameActionListener > xAggListener; @@ -539,6 +547,7 @@ void SbaXDataBrowserController::stopFrameListening( const Reference< XFrame >& _ // ----------------------------------------------------------------------------- sal_Bool SbaXDataBrowserController::reloadForm(const Reference< XLoadable >& _rxLoadable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::reloadForm" ); WaitObject aWO(getBrowserView()); setLoadingStarted(); @@ -555,6 +564,7 @@ sal_Bool SbaXDataBrowserController::reloadForm(const Reference< XLoadable >& _rx // ----------------------------------------------------------------------------- void SbaXDataBrowserController::initFormatter() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::initFormatter" ); // --------------------------------------------------------------- // create a formatter working with the connections format supplier Reference< ::com::sun::star::util::XNumberFormatsSupplier > xSupplier(::dbtools::getNumberFormats(::dbtools::getConnection(m_xRowSet), sal_True,getORB())); @@ -573,6 +583,7 @@ void SbaXDataBrowserController::initFormatter() // ----------------------------------------------------------------------------- void SbaXDataBrowserController::describeSupportedFeatures() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::describeSupportedFeatures" ); SbaXDataBrowserController_Base::describeSupportedFeatures(); implDescribeSupportedFeature( ".uno:FormSlots/undoRecord", ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS ); implDescribeSupportedFeature( ".uno:FormController/undoRecord", ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS ); @@ -596,6 +607,7 @@ void SbaXDataBrowserController::describeSupportedFeatures() //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::Construct(Window* pParent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::Construct" ); // --------------------------------------------- // create/initialize the form and the grid model m_xRowSet = CreateForm(); @@ -712,34 +724,40 @@ sal_Bool SbaXDataBrowserController::Construct(Window* pParent) //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::LoadForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::LoadForm" ); reloadForm( m_xLoadable ); return sal_True; } //------------------------------------------------------------------------------ void SbaXDataBrowserController::AddColumnListener(const Reference< XPropertySet > & /*xCol*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::AddColumnListener" ); // we're not interested in any column properties ... } //------------------------------------------------------------------------------ void SbaXDataBrowserController::RemoveColumnListener(const Reference< XPropertySet > & /*xCol*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::RemoveColumnListener" ); } //------------------------------------------------------------------------------ Reference< XRowSet > SbaXDataBrowserController::CreateForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::CreateForm" ); return Reference< XRowSet > (getORB()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.form.component.Form")), UNO_QUERY); } //------------------------------------------------------------------------------ Reference< ::com::sun::star::form::XFormComponent > SbaXDataBrowserController::CreateGridModel() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::CreateGridModel" ); return Reference< ::com::sun::star::form::XFormComponent > (getORB()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.form.component.GridControl")), UNO_QUERY); } // ------------------------------------------------------------------------- void SbaXDataBrowserController::addModelListeners(const Reference< ::com::sun::star::awt::XControlModel > & _xGridControlModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::addModelListeners" ); // ... all the grid columns addColumnListeners(_xGridControlModel); @@ -756,6 +774,7 @@ void SbaXDataBrowserController::addModelListeners(const Reference< ::com::sun::s // ------------------------------------------------------------------------- void SbaXDataBrowserController::removeModelListeners(const Reference< XControlModel > & _xGridControlModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::removeModelListeners" ); // every single column model Reference< XIndexContainer > xColumns(_xGridControlModel, UNO_QUERY); if (xColumns.is()) @@ -780,6 +799,7 @@ void SbaXDataBrowserController::removeModelListeners(const Reference< XControlMo // ------------------------------------------------------------------------- void SbaXDataBrowserController::addControlListeners(const Reference< ::com::sun::star::awt::XControl > & _xGridControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::addControlListeners" ); // to ge the 'modified' for the current cell Reference< XModifyBroadcaster > xBroadcaster(getBrowserView()->getGridControl(), UNO_QUERY); if (xBroadcaster.is()) @@ -799,6 +819,7 @@ void SbaXDataBrowserController::addControlListeners(const Reference< ::com::sun: // ------------------------------------------------------------------------- void SbaXDataBrowserController::removeControlListeners(const Reference< ::com::sun::star::awt::XControl > & _xGridControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::removeControlListeners" ); Reference< XModifyBroadcaster > xBroadcaster(_xGridControl, UNO_QUERY); if (xBroadcaster.is()) xBroadcaster->removeModifyListener(static_cast<XModifyListener*>(this)); @@ -815,6 +836,7 @@ void SbaXDataBrowserController::removeControlListeners(const Reference< ::com::s //------------------------------------------------------------------ void SAL_CALL SbaXDataBrowserController::focusGained(const FocusEvent& /*e*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::focusGained" ); // notify our activate listeners (registered on the form controller aggregate) EventObject aEvt(*this); ::cppu::OInterfaceIteratorHelper aIter(m_pFormControllerImpl->m_aActivateListeners); @@ -825,6 +847,7 @@ void SAL_CALL SbaXDataBrowserController::focusGained(const FocusEvent& /*e*/) th //------------------------------------------------------------------ void SAL_CALL SbaXDataBrowserController::focusLost(const FocusEvent& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::focusLost" ); // some general checks if (!getBrowserView() || !getBrowserView()->getGridControl().is()) return; @@ -859,18 +882,21 @@ void SAL_CALL SbaXDataBrowserController::focusLost(const FocusEvent& e) throw( R // ------------------------------------------------------------------------- void SbaXDataBrowserController::disposingGridControl(const ::com::sun::star::lang::EventObject& /*Source*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::disposingGridControl" ); removeControlListeners(getBrowserView()->getGridControl()); } // ------------------------------------------------------------------------- void SbaXDataBrowserController::disposingGridModel(const ::com::sun::star::lang::EventObject& /*Source*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::disposingGridModel" ); removeModelListeners(getControlModel()); } // ------------------------------------------------------------------------- void SbaXDataBrowserController::disposingFormModel(const ::com::sun::star::lang::EventObject& Source) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::disposingFormModel" ); Reference< XPropertySet > xSourceSet(Source.Source, UNO_QUERY); if (xSourceSet.is()) { @@ -899,12 +925,14 @@ void SbaXDataBrowserController::disposingFormModel(const ::com::sun::star::lang: // ------------------------------------------------------------------------- void SbaXDataBrowserController::disposingColumnModel(const ::com::sun::star::lang::EventObject& Source) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::disposingColumnModel" ); RemoveColumnListener(Reference< XPropertySet > (Source.Source, UNO_QUERY)); } // ------------------------------------------------------------------------- void SbaXDataBrowserController::disposing(const EventObject& Source) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::disposing" ); // if it's a component other than our aggregate, forward it to the aggregate if ( m_xFormControllerImpl != Source.Source ) { @@ -945,6 +973,7 @@ void SbaXDataBrowserController::disposing(const EventObject& Source) throw( Runt // ----------------------------------------------------------------------- void SAL_CALL SbaXDataBrowserController::setIdentifier( const ::rtl::OUString& _Identifier ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::setIdentifier" ); ::osl::MutexGuard aGuard( getMutex() ); m_sModuleIdentifier = _Identifier; } @@ -952,6 +981,7 @@ void SAL_CALL SbaXDataBrowserController::setIdentifier( const ::rtl::OUString& _ // ----------------------------------------------------------------------- ::rtl::OUString SAL_CALL SbaXDataBrowserController::getIdentifier( ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::getIdentifier" ); ::osl::MutexGuard aGuard( getMutex() ); return m_sModuleIdentifier; } @@ -959,6 +989,7 @@ void SAL_CALL SbaXDataBrowserController::setIdentifier( const ::rtl::OUString& _ // ----------------------------------------------------------------------- void SbaXDataBrowserController::propertyChange(const PropertyChangeEvent& evt) throw ( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::propertyChange" ); Reference< XPropertySet > xSource(evt.Source, UNO_QUERY); if (!xSource.is()) return; @@ -983,37 +1014,40 @@ void SbaXDataBrowserController::propertyChange(const PropertyChangeEvent& evt) t InvalidateAll(); } + // the filter or the sort criterias have changed ? -> update our parser - if (m_xParser.is()) + if (evt.PropertyName.equals(PROPERTY_ACTIVECOMMAND)) { - if (evt.PropertyName.equals(PROPERTY_ACTIVECOMMAND)) - { + initializeParser(); + if (m_xParser.is()) DO_SAFE( m_xParser->setElementaryQuery(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new query to my parser !" ); - } - else if (evt.PropertyName.equals(PROPERTY_FILTER)) + } + else if (evt.PropertyName.equals(PROPERTY_FILTER)) + { + initializeParser(); + if ( m_xParser.is() && m_xParser->getFilter() != ::comphelper::getString(evt.NewValue)) { - if (m_xParser->getFilter() != ::comphelper::getString(evt.NewValue)) - { - DO_SAFE( m_xParser->setFilter(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new filter to my parser !" ); - } - InvalidateFeature(ID_BROWSER_REMOVEFILTER); + DO_SAFE( m_xParser->setFilter(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new filter to my parser !" ); } - else if (evt.PropertyName.equals(PROPERTY_HAVING_CLAUSE)) + InvalidateFeature(ID_BROWSER_REMOVEFILTER); + } + else if (evt.PropertyName.equals(PROPERTY_HAVING_CLAUSE)) + { + initializeParser(); + if ( m_xParser.is() && m_xParser->getHavingClause() != ::comphelper::getString(evt.NewValue)) { - if (m_xParser->getHavingClause() != ::comphelper::getString(evt.NewValue)) - { - DO_SAFE( m_xParser->setHavingClause(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new filter to my parser !" ); - } - InvalidateFeature(ID_BROWSER_REMOVEFILTER); + DO_SAFE( m_xParser->setHavingClause(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new filter to my parser !" ); } - else if (evt.PropertyName.equals(PROPERTY_ORDER)) + InvalidateFeature(ID_BROWSER_REMOVEFILTER); + } + else if (evt.PropertyName.equals(PROPERTY_ORDER)) + { + initializeParser(); + if ( m_xParser.is() && m_xParser->getOrder() != ::comphelper::getString(evt.NewValue)) { - if (m_xParser->getOrder() != ::comphelper::getString(evt.NewValue)) - { - DO_SAFE( m_xParser->setOrder(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new order to my parser !" ); - } - InvalidateFeature(ID_BROWSER_REMOVEFILTER); + DO_SAFE( m_xParser->setOrder(::comphelper::getString(evt.NewValue)), "SbaXDataBrowserController::propertyChange : could not forward the new order to my parser !" ); } + InvalidateFeature(ID_BROWSER_REMOVEFILTER); } // a new record count ? -> may be our search availability has changed @@ -1030,12 +1064,14 @@ void SbaXDataBrowserController::propertyChange(const PropertyChangeEvent& evt) t //------------------------------------------------------------------------ void SbaXDataBrowserController::modified(const ::com::sun::star::lang::EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::modified" ); setCurrentModified( sal_True ); } // ----------------------------------------------------------------------- void SbaXDataBrowserController::elementInserted(const ::com::sun::star::container::ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::elementInserted" ); DBG_ASSERT(Reference< XInterface >(evt.Source, UNO_QUERY).get() == Reference< XInterface >(getControlModel(), UNO_QUERY).get(), "SbaXDataBrowserController::elementInserted: where did this come from (not from the grid model)?!"); Reference< XPropertySet > xNewColumn(evt.Element,UNO_QUERY); @@ -1046,6 +1082,7 @@ void SbaXDataBrowserController::elementInserted(const ::com::sun::star::containe // ----------------------------------------------------------------------- void SbaXDataBrowserController::elementRemoved(const ::com::sun::star::container::ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::elementRemoved" ); DBG_ASSERT(Reference< XInterface >(evt.Source, UNO_QUERY).get() == Reference< XInterface >(getControlModel(), UNO_QUERY).get(), "SbaXDataBrowserController::elementRemoved: where did this come from (not from the grid model)?!"); Reference< XPropertySet > xOldColumn(evt.Element,UNO_QUERY); @@ -1056,6 +1093,7 @@ void SbaXDataBrowserController::elementRemoved(const ::com::sun::star::container // ----------------------------------------------------------------------- void SbaXDataBrowserController::elementReplaced(const ::com::sun::star::container::ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::elementReplaced" ); DBG_ASSERT(Reference< XInterface >(evt.Source, UNO_QUERY).get() == Reference< XInterface >(getControlModel(), UNO_QUERY).get(), "SbaXDataBrowserController::elementReplaced: where did this come from (not from the grid model)?!"); Reference< XPropertySet > xOldColumn(evt.ReplacedElement,UNO_QUERY); @@ -1070,6 +1108,7 @@ void SbaXDataBrowserController::elementReplaced(const ::com::sun::star::containe // ----------------------------------------------------------------------- sal_Bool SbaXDataBrowserController::suspend(sal_Bool /*bSuspend*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::suspend" ); // have a pending open operation ? if (PendingLoad()) { @@ -1120,6 +1159,7 @@ sal_Bool SbaXDataBrowserController::suspend(sal_Bool /*bSuspend*/) throw( Runtim // ----------------------------------------------------------------------- void SbaXDataBrowserController::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::disposing" ); // and dispose the aggregate if (m_xFormControllerImpl.is()) { @@ -1219,6 +1259,7 @@ void SbaXDataBrowserController::disposing() //------------------------------------------------------------------------------ void SbaXDataBrowserController::frameAction(const ::com::sun::star::frame::FrameActionEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::frameAction" ); ::osl::MutexGuard aGuard( getMutex() ); SbaXDataBrowserController_Base::frameAction( aEvent ); @@ -1256,6 +1297,7 @@ void SbaXDataBrowserController::frameAction(const ::com::sun::star::frame::Frame //------------------------------------------------------------------------------ void SbaXDataBrowserController::errorOccured(const ::com::sun::star::sdb::SQLErrorEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::errorOccured" ); SQLExceptionInfo aInfo(aEvent.Reason); if ( aInfo.isValid() ) { @@ -1270,6 +1312,7 @@ void SbaXDataBrowserController::errorOccured(const ::com::sun::star::sdb::SQLErr //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::approveParameter(const ::com::sun::star::form::DatabaseParameterEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::approveParameter" ); if (aEvent.Source != getRowSet()) { // not my data source -> allow anything @@ -1355,12 +1398,14 @@ sal_Bool SbaXDataBrowserController::approveParameter(const ::com::sun::star::for //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::approveReset(const ::com::sun::star::lang::EventObject& /*rEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::approveReset" ); return sal_True; } //------------------------------------------------------------------------------ void SbaXDataBrowserController::resetted(const ::com::sun::star::lang::EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::resetted" ); DBG_ASSERT(rEvent.Source == getControlModel(), "SbaXDataBrowserController::resetted : where did this come from ?"); (void)rEvent; setCurrentModified( sal_False ); @@ -1369,6 +1414,7 @@ void SbaXDataBrowserController::resetted(const ::com::sun::star::lang::EventObje //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::confirmDelete(const ::com::sun::star::sdb::RowChangeEvent& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::confirmDelete" ); if (QueryBox(getBrowserView(), ModuleRes(QUERY_BRW_DELETE_ROWS)).Execute() != RET_YES) return sal_False; @@ -1377,6 +1423,7 @@ sal_Bool SbaXDataBrowserController::confirmDelete(const ::com::sun::star::sdb::R //------------------------------------------------------------------------------ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::GetState" ); FeatureState aReturn; // (disabled automatically) @@ -1390,7 +1437,10 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const { case ID_BROWSER_REMOVEFILTER: if (!m_xParser.is()) - break; + { + aReturn.bEnabled = false; + return aReturn; + } // any filter or sort order set ? aReturn.bEnabled = m_xParser->getFilter().getLength() || m_xParser->getHavingClause().getLength() || m_xParser->getOrder().getLength(); return aReturn; @@ -1463,7 +1513,8 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const case ID_BROWSER_AUTOFILTER: { // a native statement can't be filtered or sorted - if (!m_xParser.is()) + const Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); + if ( !::comphelper::getBOOL(xFormSet->getPropertyValue(PROPERTY_ESCAPE_PROCESSING))) break; Reference< XPropertySet > xCurrentField = getBoundField(); @@ -1471,8 +1522,7 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const break; aReturn.bEnabled = ::comphelper::getBOOL(xCurrentField->getPropertyValue(PROPERTY_ISSEARCHABLE)); - Reference< XRowSet > xRow = getRowSet(); - Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); + const Reference< XRowSet > xRow = getRowSet(); if(aReturn.bEnabled && xRow.is()) // check if we stand on a valid row aReturn.bEnabled = !(xRow->isBeforeFirst() || xRow->isAfterLast() || xRow->rowDeleted() || ::comphelper::getINT32(xFormSet->getPropertyValue(PROPERTY_ROWCOUNT)) == 0); } @@ -1480,17 +1530,19 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const case ID_BROWSER_ORDERCRIT: case ID_BROWSER_FILTERCRIT: - if (!m_xParser.is()) - break; { + const Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); + if ( !::comphelper::getBOOL(xFormSet->getPropertyValue(PROPERTY_ESCAPE_PROCESSING))) + break; + Reference< XPropertySet > xCurrentField = getBoundField(); // we are not in the handle column aReturn.bEnabled = getBrowserView()->getVclControl()->GetCurColumnId() != 0 && xCurrentField.is() && ::comphelper::getBOOL(xCurrentField->getPropertyValue(PROPERTY_ISSEARCHABLE)); - Reference< XRowSet > xRow = getRowSet(); - Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); + const Reference< XRowSet > xRow = getRowSet(); + if(aReturn.bEnabled && xRow.is()) // check if we stand on a valid row aReturn.bEnabled = !(xRow->isBeforeFirst() || xRow->isAfterLast() || xRow->rowDeleted() || ::comphelper::getINT32(xFormSet->getPropertyValue(PROPERTY_ROWCOUNT)) == 0); // a native statement can't be filtered or sorted @@ -1578,6 +1630,7 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const //------------------------------------------------------------------------------ void SbaXDataBrowserController::applyParserOrder(const ::rtl::OUString& _rOldOrder) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::applyParserOrder" ); Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); if (!m_xLoadable.is()) { @@ -1620,6 +1673,7 @@ void SbaXDataBrowserController::applyParserOrder(const ::rtl::OUString& _rOldOrd //------------------------------------------------------------------------------ void SbaXDataBrowserController::applyParserFilter(const ::rtl::OUString& _rOldFilter, sal_Bool _bOldFilterApplied,const ::rtl::OUString& _sOldHaving) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::applyParserFilter" ); Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); if (!m_xLoadable.is()) { @@ -1668,6 +1722,7 @@ void SbaXDataBrowserController::applyParserFilter(const ::rtl::OUString& _rOldFi //------------------------------------------------------------------------------ void SbaXDataBrowserController::ExecuteFilterSortCrit(sal_Bool bFilter) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::ExecuteFilterSortCrit" ); if (!SaveModified()) return; @@ -1678,8 +1733,9 @@ void SbaXDataBrowserController::ExecuteFilterSortCrit(sal_Bool bFilter) getRowSet()->rowDeleted()) return; - ::rtl::OUString sOldVal = bFilter ? m_xParser->getFilter() : m_xParser->getOrder(); - ::rtl::OUString sOldHaving = m_xParser->getHavingClause(); + initializeParser(); + const ::rtl::OUString sOldVal = bFilter ? m_xParser->getFilter() : m_xParser->getOrder(); + const ::rtl::OUString sOldHaving = m_xParser->getHavingClause(); try { Reference< ::com::sun::star::sdbcx::XColumnsSupplier> xSup = getColumnsSupplier(); @@ -1736,6 +1792,7 @@ void SbaXDataBrowserController::ExecuteFilterSortCrit(sal_Bool bFilter) //------------------------------------------------------------------------------ void SbaXDataBrowserController::ExecuteSearch() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::ExecuteSearch" ); // calculate the control source of the active field Reference< ::com::sun::star::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY); DBG_ASSERT(xGrid.is(), "SbaXDataBrowserController::ExecuteSearch : the control should have an ::com::sun::star::form::XGrid interface !"); @@ -1794,6 +1851,7 @@ void SbaXDataBrowserController::ExecuteSearch() //------------------------------------------------------------------------------ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< PropertyValue >& _rArgs) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::Execute" ); sal_Bool bSortUp = sal_True; switch (nId) @@ -1915,7 +1973,8 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property if (!xField.is()) break; - ::rtl::OUString sOldSort = m_xParser->getOrder(); + initializeParser(); + const ::rtl::OUString sOldSort = m_xParser->getOrder(); sal_Bool bParserSuccess = sal_False; HANDLE_SQL_ERRORS( m_xParser->setOrder(::rtl::OUString()); m_xParser->appendOrderByColumn(xField, bSortUp), @@ -1945,6 +2004,7 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property sal_Bool bHaving = sal_False; ::rtl::OUString sName; xField->getPropertyValue(PROPERTY_NAME) >>= sName; + initializeParser(); Reference< XColumnsSupplier > xColumnsSupplier(m_xParser, UNO_QUERY); Reference< ::com::sun::star::container::XNameAccess > xCols = xColumnsSupplier.is() ? xColumnsSupplier->getColumns() : Reference< ::com::sun::star::container::XNameAccess > (); if ( xCols.is() && xCols->hasByName(sName) ) @@ -1955,8 +2015,8 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property xProp->getPropertyValue(sAgg) >>= bHaving; } - ::rtl::OUString sOldFilter = m_xParser->getFilter(); - ::rtl::OUString sOldHaving = m_xParser->getHavingClause(); + const ::rtl::OUString sOldFilter = m_xParser->getFilter(); + const ::rtl::OUString sOldHaving = m_xParser->getHavingClause(); Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); sal_Bool bApplied = ::comphelper::getBOOL(xFormSet->getPropertyValue(PROPERTY_APPLYFILTER)); @@ -2086,6 +2146,7 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::SaveModified(sal_Bool bAskFor) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::SaveModified" ); if ( bAskFor && GetState(ID_BROWSER_SAVERECORD).bEnabled ) { getBrowserView()->getVclControl()->GrabFocus(); @@ -2136,6 +2197,7 @@ sal_Bool SbaXDataBrowserController::SaveModified(sal_Bool bAskFor) //------------------------------------------------------------------------------ sal_Bool SbaXDataBrowserController::CommitCurrent() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::CommitCurrent" ); if (!getBrowserView()) return sal_True; @@ -2157,6 +2219,7 @@ sal_Bool SbaXDataBrowserController::CommitCurrent() //------------------------------------------------------------------------------ void SbaXDataBrowserController::setCurrentModified( sal_Bool _bSet ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::setCurrentModified" ); m_bCurrentlyModified = _bSet; InvalidateFeature( ID_BROWSER_SAVERECORD ); InvalidateFeature( ID_BROWSER_UNDORECORD ); @@ -2165,12 +2228,14 @@ void SbaXDataBrowserController::setCurrentModified( sal_Bool _bSet ) //------------------------------------------------------------------------------ void SbaXDataBrowserController::RowChanged() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::RowChanged" ); setCurrentModified( sal_False ); } //------------------------------------------------------------------------------ void SbaXDataBrowserController::ColumnChanged() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::ColumnChanged" ); InvalidateFeature(ID_BROWSER_SORTUP); InvalidateFeature(ID_BROWSER_SORTDOWN); InvalidateFeature(ID_BROWSER_ORDERCRIT); @@ -2184,12 +2249,14 @@ void SbaXDataBrowserController::ColumnChanged() //------------------------------------------------------------------------------ void SbaXDataBrowserController::SelectionChanged() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::SelectionChanged" ); // not interested in } //------------------------------------------------------------------------------ void SbaXDataBrowserController::CellActivated() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::CellActivated" ); m_aInvalidateClipboard.Start(); OnInvalidateClipboard( NULL ); } @@ -2197,6 +2264,7 @@ void SbaXDataBrowserController::CellActivated() //------------------------------------------------------------------------------ void SbaXDataBrowserController::CellDeactivated() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::CellDeactivated" ); m_aInvalidateClipboard.Stop(); OnInvalidateClipboard( NULL ); } @@ -2262,6 +2330,7 @@ IMPL_LINK(SbaXDataBrowserController, OnInvalidateClipboard, AutoTimer*, _pTimer) // ------------------------------------------------------------------------- Reference< XPropertySet > SbaXDataBrowserController::getBoundField(sal_uInt16 nViewPos) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::SaveData" ); Reference< XPropertySet > xEmptyReturn; // get the current column from the grid @@ -2464,27 +2533,41 @@ IMPL_LINK(SbaXDataBrowserController, OnAsyncGetCellFocus, void*, EMPTYARG) //------------------------------------------------------------------------------ void SbaXDataBrowserController::criticalFail() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::criticalFail" ); InvalidateAll(); } //------------------------------------------------------------------------------ void SbaXDataBrowserController::LoadFinished(sal_Bool /*bWasSynch*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::LoadFinished" ); if (isValid() && !loadingCancelled()) { // -------------------------------- // switch the control to alive mode getBrowserView()->getGridControl()->setDesignMode(sal_False); + // ------------------------------- + InvalidateAll(); + + m_aAsyncGetCellFocus.Call(); + } +} +// ----------------------------------------------------------------------------- +void SbaXDataBrowserController::initializeParser() const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::initializeParser" ); + if ( !m_xParser.is() ) + { // ---------------------------------------------- // create a parser (needed for filtering/sorting) try { - Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); + const Reference< XPropertySet > xFormSet(getRowSet(), UNO_QUERY); if (::comphelper::getBOOL(xFormSet->getPropertyValue(PROPERTY_ESCAPE_PROCESSING))) { // (only if the statement isn't native) // (it is allowed to use the PROPERTY_ISPASSTHROUGH : _after_ loading a form it is valid) - Reference<XMultiServiceFactory> xFactory(::dbtools::getConnection(getRowSet()),UNO_QUERY); + const Reference<XMultiServiceFactory> xFactory(::dbtools::getConnection(getRowSet()),UNO_QUERY); if ( xFactory.is() ) m_xParser.set(xFactory->createInstance(SERVICE_NAME_SINGLESELECTQUERYCOMPOSER),UNO_QUERY); } @@ -2500,20 +2583,16 @@ void SbaXDataBrowserController::LoadFinished(sal_Bool /*bWasSynch*/) } catch(Exception&) { - DBG_WARNING("SbaXDataBrowserController::LoadFinished: something went wrong while creating the parser !"); + DBG_WARNING("SbaXDataBrowserController::initializeParser: something went wrong while creating the parser !"); m_xParser = NULL; // no further handling, we ignore the error } - - // ------------------------------- - InvalidateAll(); - - m_aAsyncGetCellFocus.Call(); } } //------------------------------------------------------------------------------ void SbaXDataBrowserController::loaded(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::loaded" ); // not interested in // we're loading within an separate thread and have a handling for it's "finished event" } @@ -2521,12 +2600,14 @@ void SbaXDataBrowserController::loaded(const EventObject& /*aEvent*/) throw( Run //------------------------------------------------------------------------------ void SbaXDataBrowserController::unloading(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::unloading" ); // not interested in } //------------------------------------------------------------------------------ void SbaXDataBrowserController::unloaded(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::unloaded" ); InvalidateAll(); // do this asynchron, there are other listeners reacting on this message ... // (it's a little hack : the grid columns are listening to this event, too, and their bound field may @@ -2546,12 +2627,14 @@ void SbaXDataBrowserController::unloaded(const EventObject& /*aEvent*/) throw( R //------------------------------------------------------------------------------ void SbaXDataBrowserController::reloading(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::reloading" ); // not interested in } //------------------------------------------------------------------------------ void SbaXDataBrowserController::reloaded(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::reloaded" ); InvalidateAll(); // do this asynchronously, there are other listeners reacting on this message ... // (it's a little hack : the grid columns are listening to this event, too, and their bound field may @@ -2562,6 +2645,7 @@ void SbaXDataBrowserController::reloaded(const EventObject& /*aEvent*/) throw( R //------------------------------------------------------------------------------ void SbaXDataBrowserController::enterFormAction() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::enterFormAction" ); if (!m_nFormActionNestingLevel) // first action -> reset flag m_bErrorOccured = false; @@ -2572,6 +2656,7 @@ void SbaXDataBrowserController::enterFormAction() //------------------------------------------------------------------------------ void SbaXDataBrowserController::leaveFormAction() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::leaveFormAction" ); DBG_ASSERT(m_nFormActionNestingLevel > 0, "SbaXDataBrowserController::leaveFormAction : invalid call !"); --m_nFormActionNestingLevel; } @@ -2579,21 +2664,32 @@ void SbaXDataBrowserController::leaveFormAction() // ------------------------------------------------------------------------- sal_Bool SbaXDataBrowserController::isLoaded() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::isLoaded" ); return m_xLoadable.is() && m_xLoadable->isLoaded(); } // ------------------------------------------------------------------------- sal_Bool SbaXDataBrowserController::isValidCursor() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::isValidCursor" ); if (!m_xColumnsSupplier.is()) return sal_False; Reference< ::com::sun::star::container::XNameAccess > xCols = m_xColumnsSupplier->getColumns(); if (!xCols.is() || !xCols->hasElements()) return sal_False; - Reference<XPropertySet> xProp(m_xRowSet,UNO_QUERY); - return ::cppu::any2bool(xProp->getPropertyValue(PROPERTY_ISNEW)) || !(m_xRowSet->isBeforeFirst() || m_xRowSet->isAfterLast()) || - (m_xParser.is() && (m_xParser->getFilter().getLength() || m_xParser->getHavingClause().getLength() || m_xParser->getOrder().getLength())); + sal_Bool bIsValid = !(m_xRowSet->isBeforeFirst() || m_xRowSet->isAfterLast()); + if ( !bIsValid ) + { + Reference<XPropertySet> xProp(m_xRowSet,UNO_QUERY); + bIsValid = ::cppu::any2bool(xProp->getPropertyValue(PROPERTY_ISNEW)); + if ( !bIsValid ) + { + initializeParser(); + bIsValid = (m_xParser.is() && (m_xParser->getFilter().getLength() || m_xParser->getHavingClause().getLength() || m_xParser->getOrder().getLength())); + } + } // if ( !bIsValid ) + return bIsValid; } //================================================================== @@ -2935,6 +3031,7 @@ IMPL_LINK(LoadFormThread::ThreadStopper, OnDeleteInMainThread, LoadFormThread::T // ----------------------------------------------------------------------------- sal_Int16 SbaXDataBrowserController::getCurrentColumnPosition() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::getCurrentColumnPosition" ); Reference< ::com::sun::star::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY); sal_Int16 nViewPos = -1; try @@ -2948,6 +3045,7 @@ sal_Int16 SbaXDataBrowserController::getCurrentColumnPosition() // ----------------------------------------------------------------------------- void SbaXDataBrowserController::setCurrentColumnPosition( sal_Int16 _nPos ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::setCurrentColumnPosition" ); Reference< ::com::sun::star::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY); try { @@ -2959,6 +3057,7 @@ void SbaXDataBrowserController::setCurrentColumnPosition( sal_Int16 _nPos ) // ----------------------------------------------------------------------------- void SbaXDataBrowserController::BeforeDrop() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::BeforeDrop" ); Reference< ::com::sun::star::sdb::XSQLErrorBroadcaster > xFormError(getRowSet(), UNO_QUERY); if (xFormError.is()) xFormError->removeSQLErrorListener((::com::sun::star::sdb::XSQLErrorListener*)this); @@ -2966,6 +3065,7 @@ void SbaXDataBrowserController::BeforeDrop() // ----------------------------------------------------------------------------- void SbaXDataBrowserController::AfterDrop() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::AfterDrop" ); Reference< ::com::sun::star::sdb::XSQLErrorBroadcaster > xFormError(getRowSet(), UNO_QUERY); if (xFormError.is()) xFormError->addSQLErrorListener((::com::sun::star::sdb::XSQLErrorListener*)this); @@ -2973,6 +3073,7 @@ void SbaXDataBrowserController::AfterDrop() // ----------------------------------------------------------------------------- void SbaXDataBrowserController::addColumnListeners(const Reference< ::com::sun::star::awt::XControlModel > & _xGridControlModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::addColumnListeners" ); // ... all the grid columns Reference< ::com::sun::star::container::XIndexContainer > xColumns(_xGridControlModel, UNO_QUERY); if (xColumns.is()) @@ -2988,6 +3089,7 @@ void SbaXDataBrowserController::addColumnListeners(const Reference< ::com::sun:: // ----------------------------------------------------------------------------- sal_Bool SbaXDataBrowserController::InitializeGridModel(const Reference< ::com::sun::star::form::XFormComponent > & /*xGrid*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::InitializeGridModel" ); return sal_True; } //.................................................................. diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx index 86dc62eda2de..57a4a9270c25 100644 --- a/dbaccess/source/ui/browser/unodatbr.cxx +++ b/dbaccess/source/ui/browser/unodatbr.cxx @@ -133,6 +133,7 @@ #include <vcl/toolbox.hxx> #include <vcl/waitobj.hxx> #include <vcl/wrkwin.hxx> +#include <rtl/logfile.hxx> #include <memory> @@ -194,21 +195,25 @@ void SafeRemovePropertyListener(const Reference< XPropertySet > & xSet, const :: //------------------------------------------------------------------------- ::rtl::OUString SAL_CALL SbaTableQueryBrowser::getImplementationName() throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getImplementationName" ); return getImplementationName_Static(); } //------------------------------------------------------------------------- ::comphelper::StringSequence SAL_CALL SbaTableQueryBrowser::getSupportedServiceNames() throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getSupportedServiceNames" ); return getSupportedServiceNames_Static(); } // ------------------------------------------------------------------------- ::rtl::OUString SbaTableQueryBrowser::getImplementationName_Static() throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getImplementationName_Static" ); return ::rtl::OUString::createFromAscii("org.openoffice.comp.dbu.ODatasourceBrowser"); } //------------------------------------------------------------------------- ::comphelper::StringSequence SbaTableQueryBrowser::getSupportedServiceNames_Static() throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getSupportedServiceNames_Static" ); ::comphelper::StringSequence aSupported(1); aSupported.getArray()[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdb.DataSourceBrowser"); return aSupported; @@ -216,6 +221,7 @@ void SafeRemovePropertyListener(const Reference< XPropertySet > & xSet, const :: //------------------------------------------------------------------------- Reference< XInterface > SAL_CALL SbaTableQueryBrowser::Create(const Reference<XMultiServiceFactory >& _rxFactory) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::Create" ); ::vos::OGuard aGuard(Application::GetSolarMutex()); return *(new SbaTableQueryBrowser(_rxFactory)); } @@ -238,6 +244,7 @@ SbaTableQueryBrowser::SbaTableQueryBrowser(const Reference< XMultiServiceFactory ,m_bInSuspend(sal_False) ,m_bEnableBrowser(sal_True) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::SbaTableQueryBrowser" ); DBG_CTOR(SbaTableQueryBrowser,NULL); } @@ -257,6 +264,7 @@ SbaTableQueryBrowser::~SbaTableQueryBrowser() //------------------------------------------------------------------------------ Any SAL_CALL SbaTableQueryBrowser::queryInterface(const Type& _rType) throw (RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::queryInterface" ); if ( _rType.equals( XScriptInvocationContext::static_type() ) ) { OSL_PRECOND( !!m_aDocScriptSupport, "SbaTableQueryBrowser::queryInterface: did not initialize this, yet!" ); @@ -274,6 +282,7 @@ Any SAL_CALL SbaTableQueryBrowser::queryInterface(const Type& _rType) throw (Run //------------------------------------------------------------------------------ Sequence< Type > SAL_CALL SbaTableQueryBrowser::getTypes( ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getTypes" ); Sequence< Type > aTypes( ::comphelper::concatSequences( SbaXDataBrowserController::getTypes(), SbaTableQueryBrowser_Base::getTypes() @@ -297,6 +306,7 @@ Sequence< Type > SAL_CALL SbaTableQueryBrowser::getTypes( ) throw (RuntimeExcep //------------------------------------------------------------------------------ Sequence< sal_Int8 > SAL_CALL SbaTableQueryBrowser::getImplementationId( ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getImplementationId" ); static ::cppu::OImplementationId * pId = 0; if (! pId) { @@ -313,6 +323,7 @@ Sequence< sal_Int8 > SAL_CALL SbaTableQueryBrowser::getImplementationId( ) thro //------------------------------------------------------------------------------ void SAL_CALL SbaTableQueryBrowser::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::disposing" ); ::vos::OGuard aGuard(Application::GetSolarMutex()); // doin' a lot of VCL stuff here -> lock the SolarMutex @@ -351,6 +362,7 @@ void SAL_CALL SbaTableQueryBrowser::disposing() //------------------------------------------------------------------------------ sal_Bool SbaTableQueryBrowser::Construct(Window* pParent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::Construct" ); if (!SbaXDataBrowserController::Construct(pParent)) return sal_False; @@ -419,6 +431,7 @@ sal_Bool SbaTableQueryBrowser::Construct(Window* pParent) // ------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::InitializeForm(const Reference< ::com::sun::star::sdbc::XRowSet > & _rxForm) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::InitializeForm" ); if(!m_pCurrentlyDisplayed) return sal_True; @@ -475,6 +488,7 @@ sal_Bool SbaTableQueryBrowser::InitializeForm(const Reference< ::com::sun::star: //------------------------------------------------------------------------------ void SbaTableQueryBrowser::initializePreviewMode() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::initializePreviewMode" ); if ( getBrowserView() && getBrowserView()->getVclControl() ) { getBrowserView()->getVclControl()->AlwaysEnableInput( FALSE ); @@ -493,6 +507,7 @@ void SbaTableQueryBrowser::initializePreviewMode() //------------------------------------------------------------------------------ sal_Bool SbaTableQueryBrowser::InitializeGridModel(const Reference< ::com::sun::star::form::XFormComponent > & xGrid) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::InitializeGridModel" ); try { Reference< ::com::sun::star::form::XGridColumnFactory > xColFactory(xGrid, UNO_QUERY); @@ -723,6 +738,7 @@ Reference<XPropertySet> getColumnHelper(SvLBoxEntry* _pCurrentlyDisplayed,const // ----------------------------------------------------------------------- void SbaTableQueryBrowser::transferChangedControlProperty(const ::rtl::OUString& _rProperty, const Any& _rNewValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::transferChangedControlProperty" ); if(m_pCurrentlyDisplayed) { DBTreeListUserData* pData = static_cast<DBTreeListUserData*>(m_pCurrentlyDisplayed->GetUserData()); @@ -736,6 +752,7 @@ void SbaTableQueryBrowser::transferChangedControlProperty(const ::rtl::OUString& // ----------------------------------------------------------------------- void SbaTableQueryBrowser::propertyChange(const PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::propertyChange" ); SbaXDataBrowserController::propertyChange(evt); try @@ -844,6 +861,7 @@ void SbaTableQueryBrowser::propertyChange(const PropertyChangeEvent& evt) throw( // ----------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::suspend(sal_Bool bSuspend) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::suspend" ); vos::OGuard aSolarGuard( Application::GetSolarMutex() ); ::osl::MutexGuard aGuard( getMutex() ); if ( getView() && getView()->IsInModalMode() ) @@ -868,6 +886,7 @@ sal_Bool SbaTableQueryBrowser::suspend(sal_Bool bSuspend) throw( RuntimeExceptio // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::statusChanged( const FeatureStateEvent& _rEvent ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::statusChanged" ); // search the external dispatcher causing this call Reference< XDispatch > xSource(_rEvent.Source, UNO_QUERY); ExternalFeaturesMap::iterator aLoop; @@ -922,6 +941,7 @@ void SAL_CALL SbaTableQueryBrowser::statusChanged( const FeatureStateEvent& _rEv // ------------------------------------------------------------------------- void SbaTableQueryBrowser::checkDocumentDataSource() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::checkDocumentDataSource" ); SvLBoxEntry* pDataSourceEntry = NULL; SvLBoxEntry* pContainerEntry = NULL; SvLBoxEntry* pObjectEntry = getObjectEntry( m_aDocumentDataSource, &pDataSourceEntry, &pContainerEntry, sal_False ); @@ -959,6 +979,7 @@ void SbaTableQueryBrowser::checkDocumentDataSource() // ------------------------------------------------------------------------- void SbaTableQueryBrowser::extractDescriptorProps(const ::svx::ODataAccessDescriptor& _rDescriptor, ::rtl::OUString& _rDataSource, ::rtl::OUString& _rCommand, sal_Int32& _rCommandType, sal_Bool& _rEscapeProcessing) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::extractDescriptorProps" ); _rDataSource = _rDescriptor.getDataSource(); if ( _rDescriptor.has(daCommand) ) _rDescriptor[daCommand] >>= _rCommand; @@ -1010,6 +1031,7 @@ namespace // ------------------------------------------------------------------------- String SbaTableQueryBrowser::getDataSourceAcessor( SvLBoxEntry* _pDataSourceEntry ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getDataSourceAcessor" ); DBG_ASSERT( _pDataSourceEntry, "SbaTableQueryBrowser::getDataSourceAcessor: invalid entry!" ); DBTreeListUserData* pData = static_cast< DBTreeListUserData* >( _pDataSourceEntry->GetUserData() ); @@ -1023,6 +1045,7 @@ SvLBoxEntry* SbaTableQueryBrowser::getObjectEntry(const ::rtl::OUString& _rDataS SvLBoxEntry** _ppDataSourceEntry, SvLBoxEntry** _ppContainerEntry, sal_Bool _bExpandAncestors, const SharedConnection& _rxConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getObjectEntry" ); if (_ppDataSourceEntry) *_ppDataSourceEntry = NULL; if (_ppContainerEntry) @@ -1097,6 +1120,7 @@ SvLBoxEntry* SbaTableQueryBrowser::getObjectEntry(const ::svx::ODataAccessDescri SvLBoxEntry** _ppDataSourceEntry, SvLBoxEntry** _ppContainerEntry, sal_Bool _bExpandAncestors) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getObjectEntry" ); // extract the props from the descriptor ::rtl::OUString sDataSource; ::rtl::OUString sCommand; @@ -1110,6 +1134,7 @@ SvLBoxEntry* SbaTableQueryBrowser::getObjectEntry(const ::svx::ODataAccessDescri // ------------------------------------------------------------------------- void SbaTableQueryBrowser::connectExternalDispatches() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::connectExternalDispatches" ); Reference< XDispatchProvider > xProvider( getFrame(), UNO_QUERY ); DBG_ASSERT(xProvider.is(), "SbaTableQueryBrowser::connectExternalDispatches: no DispatchProvider !"); if (xProvider.is()) @@ -1176,6 +1201,7 @@ void SbaTableQueryBrowser::connectExternalDispatches() // ------------------------------------------------------------------------- void SbaTableQueryBrowser::implCheckExternalSlot( sal_uInt16 _nId ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implCheckExternalSlot" ); if ( !m_xMainToolbar.is() ) return; @@ -1198,6 +1224,7 @@ void SbaTableQueryBrowser::implCheckExternalSlot( sal_uInt16 _nId ) // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::disposing( const EventObject& _rSource ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::disposing" ); // our frame ? Reference< ::com::sun::star::frame::XFrame > xSourceFrame(_rSource.Source, UNO_QUERY); if (m_xCurrentFrameParent.is() && (xSourceFrame == m_xCurrentFrameParent)) @@ -1260,6 +1287,7 @@ void SAL_CALL SbaTableQueryBrowser::disposing( const EventObject& _rSource ) thr // ------------------------------------------------------------------------- void SbaTableQueryBrowser::implRemoveStatusListeners() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implRemoveStatusListeners" ); // clear all old dispatches for ( ExternalFeaturesMap::const_iterator aLoop = m_aExternalFeatures.begin(); aLoop != m_aExternalFeatures.end(); @@ -1284,6 +1312,7 @@ void SbaTableQueryBrowser::implRemoveStatusListeners() // ------------------------------------------------------------------------- sal_Bool SAL_CALL SbaTableQueryBrowser::select( const Any& _rSelection ) throw (IllegalArgumentException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::select" ); ::vos::OGuard aGuard(Application::GetSolarMutex()); // doin' a lot of VCL stuff here -> lock the SolarMutex @@ -1313,6 +1342,7 @@ sal_Bool SAL_CALL SbaTableQueryBrowser::select( const Any& _rSelection ) throw ( // ------------------------------------------------------------------------- Any SAL_CALL SbaTableQueryBrowser::getSelection( ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getSelection" ); Any aReturn; try @@ -1340,18 +1370,21 @@ Any SAL_CALL SbaTableQueryBrowser::getSelection( ) throw (RuntimeException) // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::addSelectionChangeListener( const Reference< XSelectionChangeListener >& _rxListener ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::addSelectionChangeListener" ); m_aSelectionListeners.addInterface(_rxListener); } // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::removeSelectionChangeListener( const Reference< XSelectionChangeListener >& _rxListener ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::removeSelectionChangeListener" ); m_aSelectionListeners.removeInterface(_rxListener); } // ------------------------------------------------------------------------- void SbaTableQueryBrowser::attachFrame(const Reference< ::com::sun::star::frame::XFrame > & _xFrame) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::attachFrame" ); implRemoveStatusListeners(); if (m_xCurrentFrameParent.is()) @@ -1396,6 +1429,7 @@ void SbaTableQueryBrowser::attachFrame(const Reference< ::com::sun::star::frame: // ------------------------------------------------------------------------- void SbaTableQueryBrowser::addModelListeners(const Reference< ::com::sun::star::awt::XControlModel > & _xGridControlModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::addModelListeners" ); SbaXDataBrowserController::addModelListeners(_xGridControlModel); Reference< XPropertySet > xSourceSet(_xGridControlModel, UNO_QUERY); if (xSourceSet.is()) @@ -1413,6 +1447,7 @@ void SbaTableQueryBrowser::addModelListeners(const Reference< ::com::sun::star:: // ------------------------------------------------------------------------- void SbaTableQueryBrowser::removeModelListeners(const Reference< ::com::sun::star::awt::XControlModel > & _xGridControlModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::removeModelListeners" ); SbaXDataBrowserController::removeModelListeners(_xGridControlModel); Reference< XPropertySet > xSourceSet(_xGridControlModel, UNO_QUERY); if (xSourceSet.is()) @@ -1428,6 +1463,7 @@ void SbaTableQueryBrowser::removeModelListeners(const Reference< ::com::sun::sta // ------------------------------------------------------------------------- void SbaTableQueryBrowser::RowChanged() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::RowChanged" ); if(getBrowserView()) { SbaGridControl* pControl = getBrowserView()->getVclControl(); @@ -1440,6 +1476,7 @@ void SbaTableQueryBrowser::RowChanged() // ------------------------------------------------------------------------- void SbaTableQueryBrowser::ColumnChanged() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::ColumnChanged" ); if(getBrowserView()) { SbaGridControl* pControl = getBrowserView()->getVclControl(); @@ -1451,6 +1488,7 @@ void SbaTableQueryBrowser::ColumnChanged() //------------------------------------------------------------------------------ void SbaTableQueryBrowser::AddColumnListener(const Reference< XPropertySet > & xCol) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::AddColumnListener" ); SbaXDataBrowserController::AddColumnListener(xCol); SafeAddPropertyListener(xCol, PROPERTY_WIDTH, static_cast<XPropertyChangeListener*>(this)); SafeAddPropertyListener(xCol, PROPERTY_HIDDEN, static_cast<XPropertyChangeListener*>(this)); @@ -1461,6 +1499,7 @@ void SbaTableQueryBrowser::AddColumnListener(const Reference< XPropertySet > & x //------------------------------------------------------------------------------ void SbaTableQueryBrowser::RemoveColumnListener(const Reference< XPropertySet > & xCol) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::RemoveColumnListener" ); SbaXDataBrowserController::RemoveColumnListener(xCol); SafeRemovePropertyListener(xCol, PROPERTY_WIDTH, static_cast<XPropertyChangeListener*>(this)); SafeRemovePropertyListener(xCol, PROPERTY_HIDDEN, static_cast<XPropertyChangeListener*>(this)); @@ -1471,6 +1510,7 @@ void SbaTableQueryBrowser::RemoveColumnListener(const Reference< XPropertySet > //------------------------------------------------------------------------------ void SbaTableQueryBrowser::criticalFail() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::criticalFail" ); SbaXDataBrowserController::criticalFail(); unloadAndCleanup( sal_False ); } @@ -1478,6 +1518,7 @@ void SbaTableQueryBrowser::criticalFail() //------------------------------------------------------------------------------ void SbaTableQueryBrowser::LoadFinished(sal_Bool _bWasSynch) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::LoadFinished" ); SbaXDataBrowserController::LoadFinished(_bWasSynch); m_sQueryCommand = ::rtl::OUString(); @@ -1518,6 +1559,7 @@ void SbaTableQueryBrowser::LoadFinished(sal_Bool _bWasSynch) //------------------------------------------------------------------------------ sal_Bool SbaTableQueryBrowser::getExternalSlotState( sal_uInt16 _nId ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getExternalSlotState" ); sal_Bool bEnabled = sal_False; ExternalFeaturesMap::const_iterator aPos = m_aExternalFeatures.find( _nId ); if ( ( m_aExternalFeatures.end() != aPos ) && aPos->second.xDispatcher.is() ) @@ -1528,6 +1570,7 @@ sal_Bool SbaTableQueryBrowser::getExternalSlotState( sal_uInt16 _nId ) const //------------------------------------------------------------------------------ FeatureState SbaTableQueryBrowser::GetState(sal_uInt16 nId) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::GetState" ); FeatureState aReturn; // (disabled automatically) @@ -1723,6 +1766,7 @@ FeatureState SbaTableQueryBrowser::GetState(sal_uInt16 nId) const //------------------------------------------------------------------------------ void SbaTableQueryBrowser::Execute(sal_uInt16 nId, const Sequence< PropertyValue >& aArgs) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::Execute" ); switch (nId) { default: @@ -1913,6 +1957,7 @@ void SbaTableQueryBrowser::implAddDatasource(const String& _rDbName, Image& _rDb String& _rQueryName, Image& _rQueryImage, String& _rTableName, Image& _rTableImage, const SharedConnection& _rxConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implAddDatasource" ); vos::OGuard aGuard( Application::GetSolarMutex() ); // initialize the names/images if necessary if (!_rQueryName.Len()) @@ -1966,6 +2011,7 @@ void SbaTableQueryBrowser::implAddDatasource(const String& _rDbName, Image& _rDb // ------------------------------------------------------------------------- void SbaTableQueryBrowser::initializeTreeModel() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::initializeTreeModel" ); if (m_xDatabaseContext.is()) { Image aDBImage, aQueriesImage, aTablesImage; @@ -1984,6 +2030,7 @@ sal_Bool SbaTableQueryBrowser::populateTree(const Reference<XNameAccess>& _xName SvLBoxEntry* _pParent, EntryType _eEntryType) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::populateTree" ); DBTreeListUserData* pData = static_cast<DBTreeListUserData*>(_pParent->GetUserData()); if(pData) // don't ask if the nameaccess is already set see OnExpandEntry views and tables pData->xContainer = _xNameAccess; @@ -2014,6 +2061,7 @@ sal_Bool SbaTableQueryBrowser::populateTree(const Reference<XNameAccess>& _xName //------------------------------------------------------------------------------ void SbaTableQueryBrowser::implAppendEntry( SvLBoxEntry* _pParent, const String& _rName, void* _pUserData, EntryType _eEntryType ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implAppendEntry" ); ::std::auto_ptr< ImageProvider > pImageProvider( getImageProviderFor( _pParent ) ); Image aImage, aImageHC; @@ -2030,6 +2078,7 @@ void SbaTableQueryBrowser::implAppendEntry( SvLBoxEntry* _pParent, const String& //------------------------------------------------------------------------------ IMPL_LINK(SbaTableQueryBrowser, OnExpandEntry, SvLBoxEntry*, _pParent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::OnExpandEntry" ); if (_pParent->HasChilds()) // nothing to to ... return 1L; @@ -2132,6 +2181,7 @@ IMPL_LINK(SbaTableQueryBrowser, OnExpandEntry, SvLBoxEntry*, _pParent) //------------------------------------------------------------------------------ sal_Bool SbaTableQueryBrowser::ensureEntryObject( SvLBoxEntry* _pEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::ensureEntryObject" ); DBG_ASSERT(_pEntry, "SbaTableQueryBrowser::ensureEntryObject: invalid argument!"); if (!_pEntry) return sal_False; @@ -2191,6 +2241,7 @@ sal_Bool SbaTableQueryBrowser::ensureEntryObject( SvLBoxEntry* _pEntry ) //------------------------------------------------------------------------------ sal_Bool SbaTableQueryBrowser::implSelect(const ::svx::ODataAccessDescriptor& _rDescriptor,sal_Bool _bSelectDirect) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implSelect(_rDescriptor,_bSelectDirect)" ); // extract the props ::rtl::OUString sDataSource; ::rtl::OUString sCommand; @@ -2206,6 +2257,7 @@ sal_Bool SbaTableQueryBrowser::implSelect(const ::svx::ODataAccessDescriptor& _r sal_Bool SbaTableQueryBrowser::implLoadAnything(const ::rtl::OUString& _rDataSourceName, const ::rtl::OUString& _rCommand, const sal_Int32 _nCommandType, const sal_Bool _bEscapeProcessing, const SharedConnection& _rxConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implLoadAnything" ); Reference<XPropertySet> xProp(getRowSet(),UNO_QUERY); if(xProp.is()) { @@ -2287,6 +2339,7 @@ sal_Bool SbaTableQueryBrowser::implSelect(const ::rtl::OUString& _rDataSourceNam const SharedConnection& _rxConnection ,sal_Bool _bSelectDirect) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implSelect(_rDataSourceName,_rCommand,...)" ); if (_rDataSourceName.getLength() && _rCommand.getLength() && (-1 != _nCommandType)) { SvLBoxEntry* pDataSource = NULL; @@ -2332,6 +2385,7 @@ IMPL_LINK(SbaTableQueryBrowser, OnSelectionChange, void*, /*NOINTERESTEDIN*/) //------------------------------------------------------------------------------ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implSelect(_pEntry)" ); if ( !_pEntry ) return false; @@ -2525,6 +2579,7 @@ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry ) // ----------------------------------------------------------------------------- SvLBoxEntry* SbaTableQueryBrowser::getEntryFromContainer(const Reference<XNameAccess>& _rxNameAccess) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getEntryFromContainer" ); DBTreeListBox& rListBox = m_pTreeView->getListBox(); SvLBoxEntry* pContainer = NULL; SvLBoxEntry* pDSLoop = rListBox.FirstChild(NULL); @@ -2549,6 +2604,7 @@ SvLBoxEntry* SbaTableQueryBrowser::getEntryFromContainer(const Reference<XNameAc // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::elementInserted( const ContainerEvent& _rEvent ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::elementInserted" ); vos::OGuard aSolarGuard( Application::GetSolarMutex() ); Reference< XNameAccess > xNames(_rEvent.Source, UNO_QUERY); @@ -2597,6 +2653,7 @@ void SAL_CALL SbaTableQueryBrowser::elementInserted( const ContainerEvent& _rEve // ------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::isCurrentlyDisplayedChanged(const String& _sName,SvLBoxEntry* _pContainer) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::isCurrentlyDisplayedChanged" ); return m_pCurrentlyDisplayed && getEntryType(m_pCurrentlyDisplayed) == getChildType(_pContainer) && m_pTreeView->getListBox().GetParent(m_pCurrentlyDisplayed) == _pContainer @@ -2605,6 +2662,7 @@ sal_Bool SbaTableQueryBrowser::isCurrentlyDisplayedChanged(const String& _sName, // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::elementRemoved( const ContainerEvent& _rEvent ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::elementRemoved" ); ::vos::OGuard aSolarGuard(Application::GetSolarMutex()); Reference< XNameAccess > xNames(_rEvent.Source, UNO_QUERY); @@ -2714,6 +2772,7 @@ void SAL_CALL SbaTableQueryBrowser::elementRemoved( const ContainerEvent& _rEven // ------------------------------------------------------------------------- void SAL_CALL SbaTableQueryBrowser::elementReplaced( const ContainerEvent& _rEvent ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::elementReplaced" ); ::vos::OGuard aSolarGuard(Application::GetSolarMutex()); Reference< XNameAccess > xNames(_rEvent.Source, UNO_QUERY); @@ -2786,6 +2845,7 @@ void SAL_CALL SbaTableQueryBrowser::elementReplaced( const ContainerEvent& _rEve // ------------------------------------------------------------------------- void SbaTableQueryBrowser::impl_releaseConnection( SharedConnection& _rxConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::impl_releaseConnection" ); // remove as event listener Reference< XComponent > xComponent( _rxConnection, UNO_QUERY ); if ( xComponent.is() ) @@ -2814,6 +2874,7 @@ void SbaTableQueryBrowser::impl_releaseConnection( SharedConnection& _rxConnecti // ------------------------------------------------------------------------- void SbaTableQueryBrowser::disposeConnection( SvLBoxEntry* _pDSEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::disposeConnection" ); DBG_ASSERT( _pDSEntry, "SbaTableQueryBrowser::disposeConnection: invalid entry (NULL)!" ); DBG_ASSERT( impl_isDataSourceEntry( _pDSEntry ), "SbaTableQueryBrowser::disposeConnection: invalid entry (not top-level)!" ); @@ -2828,6 +2889,7 @@ void SbaTableQueryBrowser::disposeConnection( SvLBoxEntry* _pDSEntry ) // ------------------------------------------------------------------------- void SbaTableQueryBrowser::closeConnection(SvLBoxEntry* _pDSEntry,sal_Bool _bDisposeConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::closeConnection" ); DBG_ASSERT(_pDSEntry, "SbaTableQueryBrowser::closeConnection: invalid entry (NULL)!"); DBG_ASSERT( impl_isDataSourceEntry( _pDSEntry ), "SbaTableQueryBrowser::closeConnection: invalid entry (not top-level)!"); @@ -2864,6 +2926,7 @@ void SbaTableQueryBrowser::closeConnection(SvLBoxEntry* _pDSEntry,sal_Bool _bDis // ------------------------------------------------------------------------- void SbaTableQueryBrowser::unloadAndCleanup( sal_Bool _bDisposeConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::unloadAndCleanup" ); if (!m_pCurrentlyDisplayed) // nothing to do return; @@ -2951,6 +3014,7 @@ namespace // ------------------------------------------------------------------------- void SbaTableQueryBrowser::impl_initialize() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::impl_initialize" ); ::vos::OGuard aGuard(Application::GetSolarMutex()); // doin' a lot of VCL stuff here -> lock the SolarMutex @@ -3130,12 +3194,14 @@ void SbaTableQueryBrowser::impl_initialize() // ------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::haveExplorer() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::haveExplorer" ); return m_pTreeView && m_pTreeView->IsVisible(); } // ------------------------------------------------------------------------- void SbaTableQueryBrowser::hideExplorer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::hideExplorer" ); if (!haveExplorer()) return; if (!getBrowserView()) @@ -3151,6 +3217,7 @@ void SbaTableQueryBrowser::hideExplorer() // ------------------------------------------------------------------------- void SbaTableQueryBrowser::showExplorer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::showExplorer" ); if (haveExplorer()) return; @@ -3167,6 +3234,7 @@ void SbaTableQueryBrowser::showExplorer() // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::ensureConnection(SvLBoxEntry* _pAnyEntry, SharedConnection& _rConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::ensureConnection" ); SvLBoxEntry* pDSEntry = m_pTreeView->getListBox().GetRootLevelParent(_pAnyEntry); DBTreeListUserData* pDSData = pDSEntry @@ -3179,6 +3247,7 @@ sal_Bool SbaTableQueryBrowser::ensureConnection(SvLBoxEntry* _pAnyEntry, SharedC // ----------------------------------------------------------------------------- ::std::auto_ptr< ImageProvider > SbaTableQueryBrowser::getImageProviderFor( SvLBoxEntry* _pAnyEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getImageProviderFor" ); ::std::auto_ptr< ImageProvider > pImageProvider( new ImageProvider ); SharedConnection xConnection; if ( getExistentConnectionFor( _pAnyEntry, xConnection ) ) @@ -3189,6 +3258,7 @@ sal_Bool SbaTableQueryBrowser::ensureConnection(SvLBoxEntry* _pAnyEntry, SharedC // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::getExistentConnectionFor( SvLBoxEntry* _pAnyEntry, SharedConnection& _rConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getExistentConnectionFor" ); SvLBoxEntry* pDSEntry = m_pTreeView->getListBox().GetRootLevelParent( _pAnyEntry ); DBTreeListUserData* pDSData = pDSEntry @@ -3203,6 +3273,7 @@ sal_Bool SbaTableQueryBrowser::getExistentConnectionFor( SvLBoxEntry* _pAnyEntry // ----------------------------------------------------------------------------- bool SbaTableQueryBrowser::impl_isDataSourceEntry( SvLBoxEntry* _pEntry ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::impl_isDataSourceEntry" ); return m_pTreeModel->GetRootLevelParent( _pEntry ) == _pEntry; } #endif @@ -3210,6 +3281,7 @@ bool SbaTableQueryBrowser::impl_isDataSourceEntry( SvLBoxEntry* _pEntry ) const // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::ensureConnection( SvLBoxEntry* _pDSEntry, void* pDSData, SharedConnection& _rConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::ensureConnection" ); DBG_ASSERT( impl_isDataSourceEntry( _pDSEntry ), "SbaTableQueryBrowser::ensureConnection: this entry does not denote a data source!" ); if(_pDSEntry) { @@ -3312,6 +3384,7 @@ IMPL_LINK( SbaTableQueryBrowser, OnTreeEntryCompare, const SvSortData*, _pSortDa // ----------------------------------------------------------------------------- void SbaTableQueryBrowser::implAdministrate( SvLBoxEntry* _pApplyTo ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implAdministrate" ); OSL_PRECOND( _pApplyTo, "SbaTableQueryBrowser::implAdministrate: illegal entry!" ); if ( !_pApplyTo ) return; @@ -3369,6 +3442,7 @@ void SbaTableQueryBrowser::implAdministrate( SvLBoxEntry* _pApplyTo ) // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::requestQuickHelp( const SvLBoxEntry* _pEntry, String& _rText ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::requestQuickHelp" ); const DBTreeListUserData* pData = static_cast< const DBTreeListUserData* >( _pEntry->GetUserData() ); if ( ( pData->eType == etDatasource ) && pData->sAccessor.Len() ) { @@ -3381,6 +3455,7 @@ sal_Bool SbaTableQueryBrowser::requestQuickHelp( const SvLBoxEntry* _pEntry, Str // ----------------------------------------------------------------------------- PopupMenu* SbaTableQueryBrowser::getContextMenu( Control& _rControl ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getContextMenu" ); OSL_PRECOND( &m_pTreeView->getListBox() == &_rControl, "SbaTableQueryBrowser::getContextMenu: where does this come from?" ); if ( &m_pTreeView->getListBox() != &_rControl ) @@ -3392,18 +3467,21 @@ PopupMenu* SbaTableQueryBrowser::getContextMenu( Control& _rControl ) const // ----------------------------------------------------------------------------- IController& SbaTableQueryBrowser::getCommandController() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getCommandController" ); return *this; } // ----------------------------------------------------------------------------- ::cppu::OInterfaceContainerHelper* SbaTableQueryBrowser::getContextMenuInterceptors() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getContextMenuInterceptors" ); return &m_aContextMenuInterceptors; } // ----------------------------------------------------------------------------- Any SbaTableQueryBrowser::getCurrentSelection( Control& _rControl ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getCurrentSelection" ); OSL_PRECOND( &m_pTreeView->getListBox() == &_rControl, "SbaTableQueryBrowser::getCurrentSelection: where does this come from?" ); @@ -3445,6 +3523,7 @@ Any SbaTableQueryBrowser::getCurrentSelection( Control& _rControl ) const // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::implGetQuerySignature( ::rtl::OUString& _rCommand, sal_Bool& _bEscapeProcessing ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::implGetQuerySignature" ); _rCommand = ::rtl::OUString(); _bEscapeProcessing = sal_False; @@ -3493,6 +3572,7 @@ sal_Bool SbaTableQueryBrowser::implGetQuerySignature( ::rtl::OUString& _rCommand //------------------------------------------------------------------------------ void SbaTableQueryBrowser::frameAction(const ::com::sun::star::frame::FrameActionEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::frameAction" ); if (aEvent.Frame == m_xCurrentFrameParent) { if(aEvent.Action == FrameAction_COMPONENT_DETACHING) @@ -3507,6 +3587,7 @@ void SbaTableQueryBrowser::frameAction(const ::com::sun::star::frame::FrameActio // ----------------------------------------------------------------------------- void SbaTableQueryBrowser::clearGridColumns(const Reference< XNameContainer >& _xColContainer) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::clearGridColumns" ); // first we have to clear the grid Sequence< ::rtl::OUString > aNames = _xColContainer->getElementNames(); const ::rtl::OUString* pIter = aNames.getConstArray(); @@ -3522,6 +3603,7 @@ void SbaTableQueryBrowser::clearGridColumns(const Reference< XNameContainer >& _ // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::isHiContrast() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::isHiContrast" ); sal_Bool bRet = sal_False; if ( m_pTreeView ) bRet = m_pTreeView->getListBox().GetBackground().GetColor().IsDark(); @@ -3530,6 +3612,7 @@ sal_Bool SbaTableQueryBrowser::isHiContrast() const // ----------------------------------------------------------------------------- void SbaTableQueryBrowser::loadMenu(const Reference< XFrame >& _xFrame) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::loadMenu" ); if ( m_bShowMenu ) { OGenericUnoController::loadMenu(_xFrame); @@ -3551,6 +3634,7 @@ void SbaTableQueryBrowser::loadMenu(const Reference< XFrame >& _xFrame) // ----------------------------------------------------------------------------- ::rtl::OUString SbaTableQueryBrowser::getPrivateTitle() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getPrivateTitle" ); ::rtl::OUString sTitle; if ( m_pCurrentlyDisplayed ) { @@ -3575,6 +3659,7 @@ void SbaTableQueryBrowser::loadMenu(const Reference< XFrame >& _xFrame) // ----------------------------------------------------------------------------- sal_Bool SbaTableQueryBrowser::preReloadForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::preReloadForm" ); sal_Bool bIni = sal_False; if ( !m_pCurrentlyDisplayed ) { @@ -3603,6 +3688,7 @@ sal_Bool SbaTableQueryBrowser::preReloadForm() // ----------------------------------------------------------------------------- void SbaTableQueryBrowser::postReloadForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::postReloadForm" ); InitializeGridModel(getFormComponent()); LoadFinished(sal_True); //updateTitle(); @@ -3611,6 +3697,7 @@ void SbaTableQueryBrowser::postReloadForm() //------------------------------------------------------------------------------ Reference< XEmbeddedScripts > SAL_CALL SbaTableQueryBrowser::getScriptContainer() throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::getScriptContainer" ); Reference< XEmbeddedScripts > xScripts( m_xCurrentDatabaseDocument, UNO_QUERY ); OSL_ENSURE( xScripts.is() || !m_xCurrentDatabaseDocument.is(), "SbaTableQueryBrowser::getScriptContainer: invalid database document!" ); @@ -3620,6 +3707,7 @@ Reference< XEmbeddedScripts > SAL_CALL SbaTableQueryBrowser::getScriptContainer( //------------------------------------------------------------------------------ void SAL_CALL SbaTableQueryBrowser::registerContextMenuInterceptor( const Reference< XContextMenuInterceptor >& _Interceptor ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::registerContextMenuInterceptor" ); if ( _Interceptor.is() ) m_aContextMenuInterceptors.addInterface( _Interceptor ); } @@ -3627,6 +3715,7 @@ void SAL_CALL SbaTableQueryBrowser::registerContextMenuInterceptor( const Refere //------------------------------------------------------------------------------ void SAL_CALL SbaTableQueryBrowser::releaseContextMenuInterceptor( const Reference< XContextMenuInterceptor >& _Interceptor ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaTableQueryBrowser::releaseContextMenuInterceptor" ); m_aContextMenuInterceptors.removeInterface( _Interceptor ); } diff --git a/dbaccess/source/ui/inc/DExport.hxx b/dbaccess/source/ui/inc/DExport.hxx index 2160351d6e7d..63aeee18cc8c 100644 --- a/dbaccess/source/ui/inc/DExport.hxx +++ b/dbaccess/source/ui/inc/DExport.hxx @@ -30,49 +30,22 @@ #ifndef DBAUI_DATABASEEXPORT_HXX #define DBAUI_DATABASEEXPORT_HXX -#ifndef _COM_SUN_STAR_SDBC_XRESULTSET_HPP_ #include <com/sun/star/sdbc/XResultSet.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATA_HPP_ #include <com/sun/star/sdbc/XResultSetMetaData.hpp> -#endif -#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ #include <com/sun/star/beans/XPropertySet.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_ #include <com/sun/star/util/XNumberFormatter.hpp> -#endif -#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ #include <com/sun/star/container/XNameAccess.hpp> -#endif -#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ #include <com/sun/star/container/XIndexAccess.hpp> -#endif -#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_ #include <com/sun/star/lang/Locale.hpp> -#endif -#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ #include <com/sun/star/lang/XMultiServiceFactory.hpp> -#endif +#include <com/sun/star/util/Date.hpp> #include <vector> -#ifndef _STRING_HXX #include <tools/string.hxx> -#endif -#ifndef _COMPHELPER_STLTYPES_HXX_ #include <comphelper/stl_types.hxx> -#endif -#ifndef DBAUI_TYPEINFO_HXX #include "TypeInfo.hxx" -#endif -#ifndef DBAUI_WIZ_TYPESELECT_HXX #include "WTypeSelect.hxx" -#endif -#ifndef _DBAUI_COMMON_TYPES_HXX_ #include "commontypes.hxx" -#endif -#ifndef DBAUI_IUPDATEHELPER_HXX #include "IUpdateHelper.hxx" -#endif #include "WTypeSelect.hxx" namespace com { namespace sun { namespace star { @@ -117,9 +90,9 @@ namespace dbaui ::boost::shared_ptr<IUpdateHelper> m_pUpdateHelper; ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > m_xResultSet; // - ::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 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> m_xFactory; + ::com::sun::star::util::Date m_aNullDate; SvNumberFormatter* m_pFormatter; SvStream& m_rInputStream; diff --git a/dbaccess/source/ui/inc/brwctrlr.hxx b/dbaccess/source/ui/inc/brwctrlr.hxx index 04d73cf778ec..19a0971e4981 100644 --- a/dbaccess/source/ui/inc/brwctrlr.hxx +++ b/dbaccess/source/ui/inc/brwctrlr.hxx @@ -98,7 +98,8 @@ namespace dbaui ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > m_xGridModel; // the model of our grid ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > m_xFormatter; // a number formatter working with the connection's NumberFormatsSupplier ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > m_xFormControllerImpl; - ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer > m_xParser; // for sorting 'n filtering + mutable ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer > + m_xParser; // for sorting 'n filtering AutoTimer m_aInvalidateClipboard; // for testing the state of the CUT/COPY/PASTE-slots @@ -337,6 +338,7 @@ namespace dbaui // execute the search slot void ExecuteSearch(); + void initializeParser() const; // changes the mutable member m_xParser void applyParserFilter(const ::rtl::OUString& _rOldFilter, sal_Bool _bOldFilterApplied,const ::rtl::OUString& _sOldHaving = ::rtl::OUString()); void applyParserOrder(const ::rtl::OUString& _rOldOrder); diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx index b366695301a0..dc71f6588828 100644 --- a/dbaccess/source/ui/misc/DExport.cxx +++ b/dbaccess/source/ui/misc/DExport.cxx @@ -34,128 +34,48 @@ #include "DExport.hxx" #include "moduledbu.hxx" -#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_ #include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XDATADESCRIPTORFACTORY_HPP_ #include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XAPPEND_HPP_ #include <com/sun/star/sdbcx/XAppend.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_KEYTYPE_HPP_ #include <com/sun/star/sdbcx/KeyType.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_ #include <com/sun/star/sdbc/DataType.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_ #include <com/sun/star/sdbc/ColumnValue.hpp> -#endif -#ifndef _COM_SUN_STAR_SDB_COMMANDTYPE_HPP_ #include <com/sun/star/sdb/CommandType.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATASUPPLIER_HPP_ #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XROW_HPP_ #include <com/sun/star/sdbc/XRow.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_NUMBERFORMAT_HPP_ #include <com/sun/star/util/NumberFormat.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTYPES_HPP_ #include <com/sun/star/util/XNumberFormatTypes.hpp> -#endif -#ifndef DBACCESS_SHARED_DBUSTRINGS_HRC #include "dbustrings.hrc" -#endif -#ifndef _DBU_MISC_HRC_ #include "dbu_misc.hrc" -#endif -#ifndef _DBHELPER_DBCONVERSION_HXX_ #include <connectivity/dbconversion.hxx> -#endif -#ifndef _SFXHTML_HXX #include <sfx2/sfxhtml.hxx> -#endif -#ifndef _NUMUNO_HXX #include <svtools/numuno.hxx> -#endif -#ifndef _CONNECTIVITY_DBTOOLS_HXX_ #include <connectivity/dbtools.hxx> -#endif -#ifndef _COMPHELPER_EXTRACT_HXX_ #include <comphelper/extract.hxx> -#endif -#ifndef DBAUI_TYPEINFO_HXX #include "TypeInfo.hxx" -#endif -#ifndef DBAUI_FIELDDESCRIPTIONS_HXX #include "FieldDescriptions.hxx" -#endif -#ifndef DBAUI_TOOLS_HXX #include "UITools.hxx" -#endif -#ifndef _UTL_CONFIGMGR_HXX_ #include <unotools/configmgr.hxx> -#endif #include <memory> -#ifndef _TOOLS_DEBUG_HXX #include <tools/debug.hxx> -#endif -#ifndef TOOLS_DIAGNOSE_EX_H #include <tools/diagnose_ex.h> -#endif -#ifndef INCLUDED_I18NPOOL_MSLANGID_HXX #include <i18npool/mslangid.hxx> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_ #include <com/sun/star/awt/FontDescriptor.hpp> -#endif -#ifndef DBAUI_WIZ_COPYTABLEDIALOG_HXX #include "WCopyTable.hxx" -#endif -#ifndef DBAUI_WIZ_EXTENDPAGES_HXX #include "WExtendPages.hxx" -#endif -#ifndef DBAUI_WIZARD_CPAGE_HXX #include "WCPage.hxx" -#endif -#ifndef INCLUDED_SVTOOLS_SYSLOCALE_HXX #include <svtools/syslocale.hxx> -#endif -#ifndef _DBHELPER_DBEXCEPTION_HXX_ #include <connectivity/dbexception.hxx> -#endif -#ifndef _CONNECTIVITY_FILE_VALUE_HXX_ #include <connectivity/FValue.hxx> -#endif -#ifndef _COM_SUN_STAR_SDBC_SQLWARNING_HPP_ #include <com/sun/star/sdbc/SQLWarning.hpp> -#endif -#ifndef _COM_SUN_STAR_SDB_SQLCONTEXT_HPP_ #include <com/sun/star/sdb/SQLContext.hpp> -#endif -#ifndef _COM_SUN_STAR_SDB_APPLICATION_COPYTABLEOPERATION_HPP_ #include <com/sun/star/sdb/application/CopyTableOperation.hpp> -#endif -#ifndef _DBAUI_SQLMESSAGE_HXX_ #include "sqlmessage.hxx" -#endif -#ifndef DBAUI_UPDATEHELPERIMPL_HXX #include "UpdateHelperImpl.hxx" -#endif -#ifndef _SV_MSGBOX_HXX #include <vcl/msgbox.hxx> -#endif -#ifndef _CPPUHELPER_EXC_HLP_HXX_ #include <cppuhelper/exc_hlp.hxx> -#endif - +#include <rtl/logfile.hxx> using namespace dbaui; using namespace utl; @@ -205,6 +125,7 @@ ODatabaseExport::ODatabaseExport(sal_Int32 nRows, ,m_bCheckOnly(sal_False) ,m_bAppendFirstLine(false) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::ODatabaseExport" ); DBG_CTOR(ODatabaseExport,NULL); m_nRows += nRows; @@ -261,6 +182,7 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection, ,m_bCheckOnly(sal_False) ,m_bAppendFirstLine(false) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::ODatabaseExport" ); DBG_CTOR(ODatabaseExport,NULL); try { @@ -281,8 +203,9 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection, { ::connectivity::ORowSetValue aValue; ::std::vector<sal_Int32> aTypes; - Reference<XResultSetMetaData> xResultSetMetaData = Reference<XResultSetMetaDataSupplier>(xSet,UNO_QUERY)->getMetaData(); - Reference<XRow> xRow(xSet,UNO_QUERY); + ::std::vector<sal_Bool> aNullable; + Reference<XResultSetMetaData> xResultSetMetaData = Reference<XResultSetMetaDataSupplier>(xSet,UNO_QUERY_THROW)->getMetaData(); + Reference<XRow> xRow(xSet,UNO_QUERY_THROW); while(xSet->next()) { if ( aTypes.empty() ) @@ -291,18 +214,23 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection, if ( nCount < 1 ) nCount = 18; aTypes.reserve(nCount+1); + aNullable.reserve(nCount+1); aTypes.push_back(-1); + aNullable.push_back(sal_False); for (sal_Int32 j = 1; j <= nCount ; ++j) + { + aNullable.push_back(xResultSetMetaData->isNullable(j) != ColumnValue::NO_NULLS ); aTypes.push_back(xResultSetMetaData->getColumnType(j)); + } } sal_Int32 nPos = 1; OSL_ENSURE((nPos) < static_cast<sal_Int32>(aTypes.size()),"aTypes: Illegal index for vector"); - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); ::rtl::OUString sTypeName = aValue; ++nPos; OSL_ENSURE((nPos) < static_cast<sal_Int32>(aTypes.size()),"aTypes: Illegal index for vector"); - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); sal_Int32 nType = aValue; ++nPos; @@ -314,43 +242,43 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection, m_pTypeInfo->nType = nType; OSL_ENSURE((nPos) < static_cast<sal_Int32>(aTypes.size()),"aTypes: Illegal index for vector"); - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->nPrecision = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->aLiteralPrefix = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->aLiteralSuffix = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->aCreateParams = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->bNullable = (sal_Int32)aValue == ColumnValue::NULLABLE; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->bCaseSensitive = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->nSearchType = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->bUnsigned = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->bCurrency = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->bAutoIncrement = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->aLocalTypeName = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->nMinimumScale = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); m_pTypeInfo->nMaximumScale = aValue; // check if values are less than zero like it happens in a oracle jdbc driver @@ -382,6 +310,7 @@ ODatabaseExport::~ODatabaseExport() // ----------------------------------------------------------------------------- void ODatabaseExport::insertValueIntoColumn() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::insertValueIntoColumn" ); DBG_CHKTHIS(ODatabaseExport,NULL); if(m_nColumnPos < sal_Int32(m_vDestVector.size())) { @@ -399,7 +328,7 @@ void ODatabaseExport::insertValueIntoColumn() // if(m_nDefToken != LANGUAGE_DONTKNOW) // falls Sprache anders als Systemsprache // m_pNF->ChangeIntl((LanguageType)m_nDefToken); - if(!m_sTextToken.Len() && m_xResultSetMetaData->isNullable(nPos)) + if ( !m_sTextToken.Len() && pField->IsNullable() ) m_pUpdateHelper->updateNull(nPos,pField->GetType()); else { @@ -408,11 +337,7 @@ void ODatabaseExport::insertValueIntoColumn() OSL_ENSURE((nNewPos) < static_cast<sal_Int32>(m_vColumnTypes.size()),"Illegal index for vector"); if (m_vColumnTypes[nNewPos] != DataType::VARCHAR && m_vColumnTypes[nNewPos] != DataType::CHAR && m_vColumnTypes[nNewPos] != DataType::LONGVARCHAR ) { - Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); - Reference<XPropertySet> xNumberFormatSettings = xSupplier->getNumberFormatSettings(); - com::sun::star::util::Date aNullDate; - xNumberFormatSettings->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NullDate"))) >>= aNullDate; - + RTL_LOGFILE_CONTEXT_TRACE( aLogger, "ODatabaseExport::insertValueIntoColumn != DataType::VARCHAR" ); ensureFormatter(); bool bNumberFormatError = false; if ( m_pFormatter && m_sNumToken.Len() ) @@ -424,6 +349,7 @@ void ODatabaseExport::insertValueIntoColumn() } else { + Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); Reference<XNumberFormatTypes> xNumType(xSupplier->getNumberFormats(),UNO_QUERY); sal_Int16 nFormats[] = { NumberFormat::DATETIME ,NumberFormat::DATETIME @@ -457,6 +383,7 @@ void ODatabaseExport::insertValueIntoColumn() { try { + Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); Reference< XNumberFormats > xFormats = xSupplier->getNumberFormats(); Reference<XPropertySet> xProp = xFormats->getByKey(nNumberFormat); sal_Int16 nType = 0; @@ -465,7 +392,7 @@ void ODatabaseExport::insertValueIntoColumn() { case NumberFormat::DATE: case NumberFormat::DATETIME: - fOutNumber = ::dbtools::DBTypeConversion::toStandardDbDate(aNullDate,fOutNumber); + fOutNumber = ::dbtools::DBTypeConversion::toStandardDbDate(m_aNullDate,fOutNumber); break; default: ; @@ -491,6 +418,7 @@ void ODatabaseExport::insertValueIntoColumn() // ----------------------------------------------------------------------------- sal_Int16 ODatabaseExport::CheckString(const String& aCheckToken, sal_Int16 _nOldNumberFormat) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::CheckString" ); DBG_CHKTHIS(ODatabaseExport,NULL); double fOutNumber = 0.0; sal_Int16 nNumberFormat = 0; @@ -627,6 +555,7 @@ sal_Int16 ODatabaseExport::CheckString(const String& aCheckToken, sal_Int16 _nOl // ----------------------------------------------------------------------------- void ODatabaseExport::SetColumnTypes(const TColumnVector* _pList,const OTypeInfoMap* _pInfoMap) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::SetColumnTypes" ); DBG_CHKTHIS(ODatabaseExport,NULL); if(_pList && _pInfoMap) { @@ -700,6 +629,7 @@ void ODatabaseExport::SetColumnTypes(const TColumnVector* _pList,const OTypeInfo // ----------------------------------------------------------------------------- void ODatabaseExport::CreateDefaultColumn(const ::rtl::OUString& _rColumnName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::CreateDefaultColumn" ); DBG_CHKTHIS(ODatabaseExport,NULL); Reference< XDatabaseMetaData> xDestMetaData(m_xConnection->getMetaData()); sal_Int32 nMaxNameLen(xDestMetaData->getMaxColumnNameLength()); @@ -752,41 +682,44 @@ void ODatabaseExport::CreateDefaultColumn(const ::rtl::OUString& _rColumnName) // ----------------------------------------------------------------------------- sal_Bool ODatabaseExport::createRowSet() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::createRowSet" ); DBG_CHKTHIS(ODatabaseExport,NULL); - Reference<XResultSet> xDestSet(m_xFactory->createInstance(::rtl::OUString::createFromAscii("com.sun.star.sdb.RowSet")),UNO_QUERY); - Reference<XPropertySet > xProp(xDestSet,UNO_QUERY); - if(xProp.is()) - { - ::rtl::OUString sDestName = ::dbtools::composeTableName( - m_xConnection->getMetaData(), m_xTable, ::dbtools::eInDataManipulation, false, false, false ); - - xProp->setPropertyValue(PROPERTY_ACTIVE_CONNECTION,makeAny(m_xConnection.getTyped())); - xProp->setPropertyValue(PROPERTY_COMMAND_TYPE,makeAny(CommandType::TABLE)); - xProp->setPropertyValue(PROPERTY_COMMAND,makeAny(sDestName)); - xProp->setPropertyValue(PROPERTY_IGNORERESULT,::cppu::bool2any(sal_True)); - Reference<XRowSet> xRowSet(xProp,UNO_QUERY); - xRowSet->execute(); - - Reference< XResultSetMetaDataSupplier> xSrcMetaSup(xRowSet,UNO_QUERY_THROW); - m_xResultSetMetaData = xSrcMetaSup->getMetaData(); - - if ( ::dbtools::canInsert(xProp) ) - { - m_pUpdateHelper.reset(new ORowUpdateHelper(xRowSet)); - OSL_ENSURE(m_xResultSetMetaData.is(),"No ResultSetMetaData!"); - TPositions::iterator aIter = m_vColumns.begin(); - for (;aIter != m_vColumns.end() ; ++aIter) - aIter->first = aIter->second; - } - else + //Reference<XResultSet> xDestSet(m_xFactory->createInstance(::rtl::OUString::createFromAscii("com.sun.star.sdb.RowSet")),UNO_QUERY); + //Reference<XPropertySet > xProp(xDestSet,UNO_QUERY); + //if(xProp.is()) + //{ + // ::rtl::OUString sDestName = ::dbtools::composeTableName( + // m_xConnection->getMetaData(), m_xTable, ::dbtools::eInDataManipulation, false, false, false ); + + // xProp->setPropertyValue(PROPERTY_ACTIVE_CONNECTION,makeAny(m_xConnection.getTyped())); + // xProp->setPropertyValue(PROPERTY_COMMAND_TYPE,makeAny(CommandType::TABLE)); + // xProp->setPropertyValue(PROPERTY_COMMAND,makeAny(sDestName)); + // xProp->setPropertyValue(PROPERTY_IGNORERESULT,::cppu::bool2any(sal_True)); + // xProp->setPropertyValue(PROPERTY_FETCHSIZE,sal_Int32(1)); + // Reference<XRowSet> xRowSet(xProp,UNO_QUERY); + // xRowSet->execute(); + + // Reference< XResultSetMetaDataSupplier> xSrcMetaSup(xRowSet,UNO_QUERY_THROW); + // m_xResultSetMetaData = xSrcMetaSup->getMetaData(); + + // if ( ::dbtools::canInsert(xProp) ) + // { + // m_pUpdateHelper.reset(new ORowUpdateHelper(xRowSet)); + // OSL_ENSURE(m_xResultSetMetaData.is(),"No ResultSetMetaData!"); + // TPositions::iterator aIter = m_vColumns.begin(); + // for (;aIter != m_vColumns.end() ; ++aIter) + // aIter->first = aIter->second; + // } + // else m_pUpdateHelper.reset(new OParameterUpdateHelper(createPreparedStatment(m_xConnection->getMetaData(),m_xTable,m_vColumns))); - } + //} return m_pUpdateHelper.get() != NULL; } // ----------------------------------------------------------------------------- sal_Bool ODatabaseExport::executeWizard(const ::rtl::OUString& _rTableName,const Any& _aTextColor,const FontDescriptor& _rFont) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::executeWizard" ); DBG_CHKTHIS(ODatabaseExport,NULL); bool bHaveDefaultTable = ( m_sDefaultTableName.getLength() != 0 ); @@ -852,6 +785,7 @@ sal_Bool ODatabaseExport::executeWizard(const ::rtl::OUString& _rTableName,const //--------------------------------------------------------------------------------- void ODatabaseExport::showErrorDialog(const ::com::sun::star::sdbc::SQLException& e) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::showErrorDialog" ); if(!m_bDontAskAgain) { String aMsg(e.Message); @@ -868,6 +802,7 @@ void ODatabaseExport::showErrorDialog(const ::com::sun::star::sdbc::SQLException // ----------------------------------------------------------------------------- void ODatabaseExport::adjustFormat() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::adjustFormat" ); if ( m_sTextToken.Len() ) { sal_Int32 nNewPos = m_bIsAutoIncrement ? m_nColumnPos+1 : m_nColumnPos; @@ -890,6 +825,7 @@ void ODatabaseExport::adjustFormat() // ----------------------------------------------------------------------------- void ODatabaseExport::eraseTokens() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::eraseTokens" ); m_sTextToken.Erase(); m_sNumToken.Erase(); m_sValToken.Erase(); @@ -897,12 +833,15 @@ void ODatabaseExport::eraseTokens() // ----------------------------------------------------------------------------- void ODatabaseExport::ensureFormatter() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::ensureFormatter" ); if ( !m_pFormatter ) { Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); Reference< XUnoTunnel > xTunnel(xSupplier,UNO_QUERY); SvNumberFormatsSupplierObj* pSupplierImpl = (SvNumberFormatsSupplierObj*)sal::static_int_cast< sal_IntPtr >(xTunnel->getSomething(SvNumberFormatsSupplierObj::getUnoTunnelId())); m_pFormatter = pSupplierImpl ? pSupplierImpl->GetNumberFormatter() : NULL; + Reference<XPropertySet> xNumberFormatSettings = xSupplier->getNumberFormatSettings(); + xNumberFormatSettings->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NullDate"))) >>= m_aNullDate; } } // ----------------------------------------------------------------------------- @@ -910,6 +849,7 @@ Reference< XPreparedStatement > ODatabaseExport::createPreparedStatment( const R ,const Reference<XPropertySet>& _xDestTable ,const TPositions& _rvColumns) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ODatabaseExport::createPreparedStatment" ); ::rtl::OUString aSql(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INSERT INTO "))); ::rtl::OUString sComposedTableName = ::dbtools::composeTableName( _xMetaData, _xDestTable, ::dbtools::eInDataManipulation, false, false, true ); diff --git a/dbaccess/source/ui/misc/HtmlReader.cxx b/dbaccess/source/ui/misc/HtmlReader.cxx index 5d86ec271179..5da5c7bf7d36 100644 --- a/dbaccess/source/ui/misc/HtmlReader.cxx +++ b/dbaccess/source/ui/misc/HtmlReader.cxx @@ -30,117 +30,44 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_dbaccess.hxx" -#ifndef DBAUI_HTMLREADER_HXX #include "HtmlReader.hxx" -#endif -#ifndef _DBHELPER_DBCONVERSION_HXX_ #include <connectivity/dbconversion.hxx> -#endif -#ifndef _CONNECTIVITY_DBTOOLS_HXX_ #include <connectivity/dbtools.hxx> -#endif -#ifndef _TOOLS_TENCCVT_HXX #include <tools/tenccvt.hxx> -#endif -#ifndef _COMPHELPER_EXTRACT_HXX_ #include <comphelper/extract.hxx> -#endif -#ifndef _DBU_MISC_HRC_ #include "dbu_misc.hrc" -#endif -#ifndef DBACCESS_SHARED_DBUSTRINGS_HRC #include "dbustrings.hrc" -#endif -#ifndef _SFXHTML_HXX #include <sfx2/sfxhtml.hxx> -#endif -#ifndef _TOOLS_DEBUG_HXX #include <tools/debug.hxx> -#endif -#ifndef _TOOLS_TENCCVT_HXX #include <tools/tenccvt.hxx> -#endif -#ifndef _DBAUI_MODULE_DBU_HXX_ #include "moduledbu.hxx" -#endif -#ifndef _COM_SUN_STAR_SDBCX_XDATADESCRIPTORFACTORY_HPP_ #include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XAPPEND_HPP_ #include <com/sun/star/sdbcx/XAppend.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_ #include <com/sun/star/sdbc/DataType.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_ #include <com/sun/star/sdbc/ColumnValue.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_ #include <com/sun/star/awt/FontDescriptor.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTWEIGHT_HPP_ #include <com/sun/star/awt/FontWeight.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_ #include <com/sun/star/awt/FontStrikeout.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_ #include <com/sun/star/awt/FontSlant.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_ #include <com/sun/star/awt/FontUnderline.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_NUMBERFORMAT_HPP_ #include <com/sun/star/util/NumberFormat.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTYPES_HPP_ #include <com/sun/star/util/XNumberFormatTypes.hpp> -#endif -#ifndef _HTMLTOKN_H #include <svtools/htmltokn.h> -#endif -#ifndef _HTMLKYWD_HXX #include <svtools/htmlkywd.hxx> -#endif -#ifndef _TOOLS_COLOR_HXX #include <tools/color.hxx> -#endif -#ifndef DBAUI_WIZ_COPYTABLEDIALOG_HXX #include "WCopyTable.hxx" -#endif -#ifndef DBAUI_WIZ_EXTENDPAGES_HXX #include "WExtendPages.hxx" -#endif -#ifndef DBAUI_WIZ_NAMEMATCHING_HXX #include "WNameMatch.hxx" -#endif -#ifndef DBAUI_WIZ_COLUMNSELECT_HXX #include "WColumnSelect.hxx" -#endif -#ifndef DBAUI_ENUMTYPES_HXX #include "QEnumTypes.hxx" -#endif -#ifndef DBAUI_WIZARD_CPAGE_HXX #include "WCPage.hxx" -#endif -#ifndef TOOLS_INETMIME_HXX #include <tools/inetmime.hxx> -#endif -#ifndef _INETTYPE_HXX #include <svtools/inettype.hxx> -#endif -#ifndef _RTL_TENCINFO_H #include <rtl/tencinfo.h> -#endif -#ifndef DBAUI_TOOLS_HXX #include "UITools.hxx" -#endif -#ifndef _SV_SVAPP_HXX #include <vcl/svapp.hxx> -#endif +#include <rtl/logfile.hxx> using namespace dbaui; using namespace ::com::sun::star::uno; @@ -182,6 +109,7 @@ OHTMLReader::OHTMLReader(SvStream& rIn,const SharedConnection& _rxConnection, ,m_bMetaOptions(sal_False) ,m_bSDNum(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::OHTMLReader" ); DBG_CTOR(OHTMLReader,NULL); SetSrcEncoding( GetExtendedCompatibilityTextEncoding( RTL_TEXTENCODING_ISO_8859_1 ) ); // If the file starts with a BOM, switch to UCS2. @@ -203,6 +131,7 @@ OHTMLReader::OHTMLReader(SvStream& rIn, ,m_bMetaOptions(sal_False) ,m_bSDNum(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::OHTMLReader" ); DBG_CTOR(OHTMLReader,NULL); SetSrcEncoding( GetExtendedCompatibilityTextEncoding( RTL_TEXTENCODING_ISO_8859_1 ) ); // If the file starts with a BOM, switch to UCS2. @@ -216,6 +145,7 @@ OHTMLReader::~OHTMLReader() // --------------------------------------------------------------------------- SvParserState OHTMLReader::CallParser() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::CallParser" ); DBG_CHKTHIS(OHTMLReader,NULL); rInput.Seek(STREAM_SEEK_TO_BEGIN); rInput.ResetError(); @@ -226,6 +156,7 @@ SvParserState OHTMLReader::CallParser() // ----------------------------------------------------------------------------- void OHTMLReader::NextToken( int nToken ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::NextToken" ); DBG_CHKTHIS(OHTMLReader,NULL); if(m_bError || !m_nRows) // falls Fehler oder keine Rows mehr zur "Uberpr"ufung dann gleich zur"uck return; @@ -396,6 +327,7 @@ void OHTMLReader::NextToken( int nToken ) // ----------------------------------------------------------------------------- void OHTMLReader::fetchOptions() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::fetchOptions" ); m_bInTbl = TRUE; const HTMLOptions* options = GetOptions(); sal_Int16 nArrLen = options->Count(); @@ -420,6 +352,7 @@ void OHTMLReader::fetchOptions() //--------------------------------------------------------------------------------- void OHTMLReader::TableDataOn(SvxCellHorJustify& eVal,int nToken) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::TableDataOn" ); DBG_CHKTHIS(OHTMLReader,NULL); sal_Bool bHorJustifyCenterTH = (nToken == HTML_TABLEHEADER_ON); const HTMLOptions* pHtmlOptions = GetOptions(); @@ -453,6 +386,7 @@ void OHTMLReader::TableDataOn(SvxCellHorJustify& eVal,int nToken) //--------------------------------------------------------------------------------- void OHTMLReader::TableFontOn(FontDescriptor& _rFont,sal_Int32 &_rTextColor) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::TableFontOn" ); DBG_CHKTHIS(OHTMLReader,NULL); const HTMLOptions* pHtmlOptions = GetOptions(); sal_Int16 nArrLen = pHtmlOptions->Count(); @@ -502,6 +436,7 @@ void OHTMLReader::TableFontOn(FontDescriptor& _rFont,sal_Int32 &_rTextColor) // --------------------------------------------------------------------------- sal_Int16 OHTMLReader::GetWidthPixel( const HTMLOption* pOption ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::GetWidthPixel" ); DBG_CHKTHIS(OHTMLReader,NULL); const String& rOptVal = pOption->GetString(); if ( rOptVal.Search('%') != STRING_NOTFOUND ) @@ -523,6 +458,7 @@ sal_Int16 OHTMLReader::GetWidthPixel( const HTMLOption* pOption ) // --------------------------------------------------------------------------- sal_Bool OHTMLReader::CreateTable(int nToken) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::CreateTable" ); DBG_CHKTHIS(OHTMLReader,NULL); String aTempName(ModuleRes(STR_TBL_TITLE)); aTempName = aTempName.GetToken(0,' '); @@ -637,6 +573,7 @@ sal_Bool OHTMLReader::CreateTable(int nToken) // ----------------------------------------------------------------------------- void OHTMLReader::setTextEncoding() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::setTextEncoding" ); DBG_CHKTHIS(OHTMLReader,NULL); m_bMetaOptions = sal_True; USHORT nContentOption = HTML_O_CONTENT; @@ -657,12 +594,14 @@ void OHTMLReader::setTextEncoding() // ----------------------------------------------------------------------------- void OHTMLReader::release() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::release" ); DBG_CHKTHIS(OHTMLReader,NULL); ReleaseRef(); } // ----------------------------------------------------------------------------- TypeSelectionPageFactory OHTMLReader::getTypeSelectionPageFactory() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLReader::getTypeSelectionPageFactory" ); DBG_CHKTHIS(OHTMLReader,NULL); return &OWizHTMLExtend::Create; } diff --git a/dbaccess/source/ui/misc/RowSetDrop.cxx b/dbaccess/source/ui/misc/RowSetDrop.cxx index 3098e4b88eb6..54b7c4cf36a6 100644 --- a/dbaccess/source/ui/misc/RowSetDrop.cxx +++ b/dbaccess/source/ui/misc/RowSetDrop.cxx @@ -31,31 +31,16 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_dbaccess.hxx" -#ifndef DBAUI_TOKENWRITER_HXX #include "TokenWriter.hxx" -#endif -#ifndef _COM_SUN_STAR_SDBC_XCOLUMNLOCATE_HPP_ #include <com/sun/star/sdbc/XColumnLocate.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATASUPPLIER_HPP_ #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp> -#endif -#ifndef _DBU_MISC_HRC_ #include "dbu_misc.hrc" -#endif -#ifndef _DBAUI_SQLMESSAGE_HXX_ #include "sqlmessage.hxx" -#endif -#ifndef _SV_MSGBOX_HXX #include <vcl/msgbox.hxx> -#endif -#ifndef DBACCESS_SHARED_DBUSTRINGS_HRC #include "dbustrings.hrc" -#endif -#ifndef _COM_SUN_STAR_SDBC_XROWUPDATE_HPP_ #include <com/sun/star/sdbc/XRowUpdate.hpp> -#endif #include <functional> +#include <rtl/logfile.hxx> using namespace dbaui; using namespace ::com::sun::star::uno; @@ -80,11 +65,13 @@ ORowSetImportExport::ORowSetImportExport( Window* _pParent, ,m_pParent(_pParent) ,m_bAlreadyAsked(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORowSetImportExport::ORowSetImportExport" ); OSL_ENSURE(_pParent,"Window can't be null!"); } // ----------------------------------------------------------------------------- void ORowSetImportExport::initialize() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORowSetImportExport::initialize" ); ODatabaseImportExport::initialize(); // do namemapping Reference<XColumnLocate> xColumnLocate(m_xResultSet,UNO_QUERY); @@ -124,11 +111,13 @@ void ORowSetImportExport::initialize() // ----------------------------------------------------------------------------- BOOL ORowSetImportExport::Write() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORowSetImportExport::Write" ); return TRUE; } // ----------------------------------------------------------------------------- BOOL ORowSetImportExport::Read() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORowSetImportExport::Read" ); // check if there is any column to copy if(::std::find_if(m_aColumnMapping.begin(),m_aColumnMapping.end(), ::std::bind2nd(::std::greater<sal_Int32>(),0)) == m_aColumnMapping.end()) @@ -183,6 +172,7 @@ BOOL ORowSetImportExport::Read() // ----------------------------------------------------------------------------- sal_Bool ORowSetImportExport::insertNewRow() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORowSetImportExport::insertNewRow" ); try { m_xTargetResultSetUpdate->moveToInsertRow(); diff --git a/dbaccess/source/ui/misc/RtfReader.cxx b/dbaccess/source/ui/misc/RtfReader.cxx index 8f77e5d9a51d..34540ad11684 100644 --- a/dbaccess/source/ui/misc/RtfReader.cxx +++ b/dbaccess/source/ui/misc/RtfReader.cxx @@ -30,90 +30,34 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_dbaccess.hxx" -#ifndef DBAUI_RTFREADER_HXX #include "RtfReader.hxx" -#endif -#ifndef _TOOLS_DEBUG_HXX #include <tools/debug.hxx> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XDATADESCRIPTORFACTORY_HPP_ #include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XAPPEND_HPP_ #include <com/sun/star/sdbcx/XAppend.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_ #include <com/sun/star/sdbc/DataType.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_ #include <com/sun/star/sdbc/ColumnValue.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_ #include <com/sun/star/awt/FontDescriptor.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTWEIGHT_HPP_ #include <com/sun/star/awt/FontWeight.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_ #include <com/sun/star/awt/FontStrikeout.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_ #include <com/sun/star/awt/FontSlant.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_ #include <com/sun/star/awt/FontUnderline.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_NUMBERFORMAT_HPP_ #include <com/sun/star/util/NumberFormat.hpp> -#endif -#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTYPES_HPP_ #include <com/sun/star/util/XNumberFormatTypes.hpp> -#endif -#ifndef DBACCESS_SHARED_DBUSTRINGS_HRC #include "dbustrings.hrc" -#endif -#ifndef _RTFTOKEN_H #include <svtools/rtftoken.h> -#endif -#ifndef _DBU_MISC_HRC_ #include "dbu_misc.hrc" -#endif -#ifndef _SV_MSGBOX_HXX #include <vcl/msgbox.hxx> -#endif -#ifndef _DBHELPER_DBCONVERSION_HXX_ #include <connectivity/dbconversion.hxx> -#endif -#ifndef _CONNECTIVITY_DBTOOLS_HXX_ #include <connectivity/dbtools.hxx> -#endif -#ifndef _COMPHELPER_EXTRACT_HXX_ #include <comphelper/extract.hxx> -#endif -#ifndef _TOOLS_COLOR_HXX #include <tools/color.hxx> -#endif -#ifndef DBAUI_WIZ_EXTENDPAGES_HXX #include "WExtendPages.hxx" -#endif -#ifndef _DBAUI_MODULE_DBU_HXX_ #include "moduledbu.hxx" -#endif -#ifndef DBAUI_ENUMTYPES_HXX #include "QEnumTypes.hxx" -#endif -//#ifndef DBAUI_WIZARD_CPAGE_HXX -//#include "WCPage.hxx" -//#endif -#ifndef DBAUI_TOOLS_HXX #include "UITools.hxx" -#endif -#ifndef _SV_SVAPP_HXX #include <vcl/svapp.hxx> -#endif +#include <rtl/logfile.hxx> using namespace dbaui; using namespace ::com::sun::star::uno; @@ -136,6 +80,7 @@ ORTFReader::ORTFReader( SvStream& rIn, :SvRTFParser(rIn) ,ODatabaseExport( _rxConnection, _rxNumberF, _rM, pList, _pInfoMap, rIn ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::ORTFReader" ); DBG_CTOR(ORTFReader,NULL); m_bAppendFirstLine = false; } @@ -151,6 +96,7 @@ ORTFReader::ORTFReader(SvStream& rIn, :SvRTFParser(rIn) ,ODatabaseExport( nRows, _rColumnPositions, _rxNumberF, _rM, pList, _pInfoMap, _bAutoIncrementEnabled, rIn ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::ORTFReader" ); DBG_CTOR(ORTFReader,NULL); m_bAppendFirstLine = false; } @@ -162,6 +108,7 @@ ORTFReader::~ORTFReader() // --------------------------------------------------------------------------- SvParserState ORTFReader::CallParser() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::CallParser" ); DBG_CHKTHIS(ORTFReader,NULL); rInput.Seek(STREAM_SEEK_TO_BEGIN); rInput.ResetError(); @@ -172,6 +119,7 @@ SvParserState ORTFReader::CallParser() // --------------------------------------------------------------------------- void ORTFReader::NextToken( int nToken ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::NextToken" ); DBG_CHKTHIS(ORTFReader,NULL); if(m_bError || !m_nRows) // falls Fehler oder keine Rows mehr zur "Uberpr"ufung dann gleich zur"uck return; @@ -326,6 +274,7 @@ void ORTFReader::NextToken( int nToken ) // --------------------------------------------------------------------------- sal_Bool ORTFReader::CreateTable(int nToken) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::CreateTable" ); DBG_CHKTHIS(ORTFReader,NULL); String aTableName(ModuleRes(STR_TBL_TITLE)); aTableName = aTableName.GetToken(0,' '); @@ -412,6 +361,7 @@ sal_Bool ORTFReader::CreateTable(int nToken) // ----------------------------------------------------------------------------- void ORTFReader::release() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::release" ); DBG_CHKTHIS(ORTFReader,NULL); ReleaseRef(); } @@ -419,6 +369,7 @@ void ORTFReader::release() // ----------------------------------------------------------------------------- TypeSelectionPageFactory ORTFReader::getTypeSelectionPageFactory() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFReader::getTypeSelectionPageFactory" ); DBG_CHKTHIS(ORTFReader,NULL); return &OWizRTFExtend::Create; } diff --git a/dbaccess/source/ui/misc/TableCopyHelper.cxx b/dbaccess/source/ui/misc/TableCopyHelper.cxx index b2760e4d2e51..4b1258677037 100644 --- a/dbaccess/source/ui/misc/TableCopyHelper.cxx +++ b/dbaccess/source/ui/misc/TableCopyHelper.cxx @@ -140,6 +140,7 @@ #ifndef DBAUI_DBEXCHANGE_HXX #include "dbexchange.hxx" #endif +#include <rtl/logfile.hxx> //........................................................................ namespace dbaui { @@ -162,6 +163,7 @@ using namespace ::com::sun::star::ucb; OTableCopyHelper::OTableCopyHelper(OGenericUnoController* _pControler) :m_pController(_pControler) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::OTableCopyHelper" ); } // ----------------------------------------------------------------------------- @@ -174,6 +176,7 @@ void OTableCopyHelper::insertTable(sal_Int32 _nCommandType ,const ::rtl::OUString& _sDestDataSourceName ,const Reference<XConnection>& _xDestConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::insertTable" ); if ( CommandType::QUERY != _nCommandType && CommandType::TABLE != _nCommandType ) { DBG_ERROR( "OTableCopyHelper::insertTable: invalid call (no supported format found)!" ); @@ -230,6 +233,7 @@ void OTableCopyHelper::insertTable(sal_Int32 _nCommandType void OTableCopyHelper::pasteTable( const ::svx::ODataAccessDescriptor& _rPasteData, const ::rtl::OUString& _sDestDataSourceName, const SharedConnection& _xDestConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::pasteTable" ); Reference<XConnection> xSrcConnection; ::rtl::OUString sCommand, sSrcDataSourceName = _rPasteData.getDataSource(); @@ -285,6 +289,7 @@ void OTableCopyHelper::pasteTable( SotFormatStringId _nFormatId ,const ::rtl::OUString& _sDestDataSourceName ,const SharedConnection& _xConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::pasteTable" ); if ( _nFormatId == SOT_FORMATSTR_ID_DBACCESS_TABLE || _nFormatId == SOT_FORMATSTR_ID_DBACCESS_QUERY ) { if ( ODataAccessObjectTransferable::canExtractObjectDescriptor(_rTransData.GetDataFlavorExVector()) ) @@ -327,6 +332,7 @@ void OTableCopyHelper::pasteTable( const TransferableDataHelper& _rTransData ,const ::rtl::OUString& _sDestDataSourceName ,const SharedConnection& _xConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::pasteTable" ); if ( _rTransData.HasFormat(SOT_FORMATSTR_ID_DBACCESS_TABLE) || _rTransData.HasFormat(SOT_FORMATSTR_ID_DBACCESS_QUERY) ) pasteTable( SOT_FORMATSTR_ID_DBACCESS_TABLE,_rTransData,_sDestDataSourceName,_xConnection); else if ( _rTransData.HasFormat(SOT_FORMATSTR_ID_HTML) ) @@ -338,6 +344,7 @@ void OTableCopyHelper::pasteTable( const TransferableDataHelper& _rTransData // ----------------------------------------------------------------------------- sal_Bool OTableCopyHelper::copyTagTable(OTableCopyHelper::DropDescriptor& _rDesc, sal_Bool _bCheck,const SharedConnection& _xConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::copyTagTable" ); Reference<XEventListener> xEvt; ODatabaseImportExport* pImport = NULL; if ( _rDesc.bHtml ) @@ -360,6 +367,7 @@ sal_Bool OTableCopyHelper::copyTagTable(OTableCopyHelper::DropDescriptor& _rDesc // ----------------------------------------------------------------------------- sal_Bool OTableCopyHelper::isTableFormat(const TransferableDataHelper& _rClipboard) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::isTableFormat" ); sal_Bool bTableFormat = _rClipboard.HasFormat(SOT_FORMATSTR_ID_DBACCESS_TABLE) || _rClipboard.HasFormat(SOT_FORMATSTR_ID_DBACCESS_QUERY) || _rClipboard.HasFormat(SOT_FORMAT_RTF) @@ -372,6 +380,7 @@ sal_Bool OTableCopyHelper::copyTagTable(const TransferableDataHelper& _aDroppedD ,DropDescriptor& _rAsyncDrop ,const SharedConnection& _xConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::copyTagTable" ); sal_Bool bRet = sal_False; sal_Bool bHtml = _aDroppedData.HasFormat(SOT_FORMATSTR_ID_HTML); if ( bHtml || _aDroppedData.HasFormat(SOT_FORMAT_RTF) ) @@ -407,6 +416,7 @@ void OTableCopyHelper::asyncCopyTagTable( DropDescriptor& _rDesc ,const ::rtl::OUString& _sDestDataSourceName ,const SharedConnection& _xConnection) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OTableCopyHelper::asyncCopyTagTable" ); if ( _rDesc.aHtmlRtfStorage.Is() ) { copyTagTable(_rDesc,sal_False,_xConnection); diff --git a/dbaccess/source/ui/misc/TokenWriter.cxx b/dbaccess/source/ui/misc/TokenWriter.cxx index 0910808a5f9d..09f9f45d6ffd 100644 --- a/dbaccess/source/ui/misc/TokenWriter.cxx +++ b/dbaccess/source/ui/misc/TokenWriter.cxx @@ -30,101 +30,42 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_dbaccess.hxx" -#ifndef DBAUI_TOKENWRITER_HXX #include "TokenWriter.hxx" -#endif -#ifndef _TOOLS_DEBUG_HXX #include <tools/debug.hxx> -#endif -#ifndef TOOLS_DIAGNOSE_EX_H #include <tools/diagnose_ex.h> -#endif -#ifndef DBAUI_RTFREADER_HXX #include "RtfReader.hxx" -#endif -#ifndef DBAUI_HTMLREADER_HXX #include "HtmlReader.hxx" -#endif -#ifndef DBACCESS_SHARED_DBUSTRINGS_HRC #include "dbustrings.hrc" -#endif -#ifndef _CONNECTIVITY_DBTOOLS_HXX_ #include <connectivity/dbtools.hxx> -#endif -#ifndef _COMPHELPER_TYPES_HXX_ #include <comphelper/types.hxx> -#endif -#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_ #include <com/sun/star/sdbc/XConnection.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATASUPPLIER_HPP_ #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XROWSET_HPP_ #include <com/sun/star/sdbc/XRowSet.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_ #include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDB_XQUERIESSUPPLIER_HPP_ #include <com/sun/star/sdb/XQueriesSupplier.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XDATASOURCE_HPP_ #include <com/sun/star/sdbc/XDataSource.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTWEIGHT_HPP_ #include <com/sun/star/awt/FontWeight.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_ #include <com/sun/star/awt/FontStrikeout.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_ #include <com/sun/star/awt/FontSlant.hpp> -#endif -#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_ #include <com/sun/star/awt/FontUnderline.hpp> -#endif #include <com/sun/star/document/XDocumentProperties.hpp> -#ifndef _HTMLKYWD_HXX #include <svtools/htmlkywd.hxx> -#endif -#ifndef _RTFKEYWD_HXX #include <svtools/rtfkeywd.hxx> -#endif -#ifndef _TOOLS_COLOR_HXX #include <tools/color.hxx> -#endif -#ifndef _HTMLOUT_HXX #include <svtools/htmlout.hxx> -#endif -#ifndef _FRMHTMLW_HXX #include <sfx2/frmhtmlw.hxx> -#endif -#ifndef _NUMUNO_HXX #include <svtools/numuno.hxx> -#endif -#ifndef _SV_SVAPP_HXX #include <vcl/svapp.hxx> -#endif -#ifndef DBAUI_TOOLS_HXX #include "UITools.hxx" -#endif -#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_ #include <toolkit/helper/vclunohelper.hxx> -#endif -#ifndef _SV_OUTDEV_HXX #include <vcl/outdev.hxx> -#endif -#ifndef _RTFOUT_HXX #include <svtools/rtfout.hxx> -#endif #include <svx/htmlcfg.hxx> #include <connectivity/formattedcolumnvalue.hxx> #include <svtools/syslocale.hxx> #include <comphelper/componentcontext.hxx> +#include <rtl/logfile.hxx> using namespace dbaui; using namespace dbtools; @@ -170,6 +111,7 @@ ODatabaseImportExport::ODatabaseImportExport(const ::svx::ODataAccessDescriptor& ,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(); @@ -200,6 +142,7 @@ ODatabaseImportExport::ODatabaseImportExport( const ::dbtools::SharedConnection& ,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 @@ -226,6 +169,7 @@ ODatabaseImportExport::~ODatabaseImportExport() // ----------------------------------------------------------------------------- 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); @@ -247,6 +191,7 @@ void ODatabaseImportExport::dispose() // ----------------------------------------------------------------------------- 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) @@ -261,12 +206,14 @@ void SAL_CALL ODatabaseImportExport::disposing( const EventObject& Source ) thro // ----------------------------------------------------------------------------- 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 ) { @@ -312,6 +259,7 @@ void ODatabaseImportExport::impl_initFromDescriptor( const ODataAccessDescriptor // ----------------------------------------------------------------------------- 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; @@ -423,6 +371,7 @@ BOOL ODatabaseImportExport::Read() // ----------------------------------------------------------------------------- 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); @@ -434,6 +383,7 @@ void ODatabaseImportExport::impl_initializeRowMember_throw() //====================================================================== BOOL ORTFImportExport::Write() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFImportExport::Write" ); ODatabaseImportExport::Write(); (*m_pStream) << '{' << sRTF_RTF; (*m_pStream) << sRTF_ANSI << ODatabaseImportExport::sNewLine; @@ -691,6 +641,7 @@ BOOL ORTFImportExport::Write() //------------------------------------------------------------------- BOOL ORTFImportExport::Read() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "ORTFImportExport::Read" ); ODatabaseImportExport::Read(); SvParserState eState = SVPAR_ERROR; if ( m_pStream ) @@ -745,6 +696,7 @@ OHTMLImportExport::OHTMLImportExport(const ::svx::ODataAccessDescriptor& _aDataD ,m_bCheckFont(FALSE) #endif { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::OHTMLImportExport" ); // set HTML configuration SvxHtmlOptions* pHtmlOptions = SvxHtmlOptions::Get(); m_eDestEnc = pHtmlOptions->GetTextEncoding(); @@ -754,6 +706,7 @@ OHTMLImportExport::OHTMLImportExport(const ::svx::ODataAccessDescriptor& _aDataD //------------------------------------------------------------------- BOOL OHTMLImportExport::Write() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::Write" ); ODatabaseImportExport::Write(); if(m_xObject.is()) { @@ -772,6 +725,7 @@ BOOL OHTMLImportExport::Write() //------------------------------------------------------------------- BOOL OHTMLImportExport::Read() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::Read" ); ODatabaseImportExport::Read(); SvParserState eState = SVPAR_ERROR; if ( m_pStream ) @@ -793,6 +747,7 @@ BOOL OHTMLImportExport::Read() //------------------------------------------------------------------- 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::createFromAscii( "com.sun.star.document.DocumentProperties")), @@ -811,6 +766,7 @@ void OHTMLImportExport::WriteHeader() //----------------------------------------------------------------------- void OHTMLImportExport::WriteBody() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::WriteBody" ); IncIndent(1); TAG_ON_LF( sHTML_style ); @@ -849,6 +805,7 @@ void OHTMLImportExport::WriteBody() //----------------------------------------------------------------------- void OHTMLImportExport::WriteTables() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::WriteTables" ); ::rtl::OString aStrOut = sHTML_table; aStrOut = aStrOut + " "; aStrOut = aStrOut + sHTML_frame; @@ -1023,6 +980,7 @@ void OHTMLImportExport::WriteTables() 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; @@ -1098,6 +1056,7 @@ void OHTMLImportExport::WriteCell( sal_Int32 nFormat,sal_Int32 nWidthPixel,sal_I //----------------------------------------------------------------------- void OHTMLImportExport::FontOn() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::FontOn" ); #ifdef DBG_UTIL m_bCheckFont = TRUE; #endif @@ -1128,6 +1087,7 @@ void OHTMLImportExport::FontOn() //----------------------------------------------------------------------- inline void OHTMLImportExport::FontOff() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OHTMLImportExport::FontOff" ); DBG_ASSERT(m_bCheckFont,"Kein FontOn() gerufen"); TAG_OFF( sHTML_font ); #ifdef DBG_UTIL @@ -1137,6 +1097,7 @@ inline void OHTMLImportExport::FontOff() //----------------------------------------------------------------------- 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 ) diff --git a/dbaccess/source/ui/misc/UITools.cxx b/dbaccess/source/ui/misc/UITools.cxx index c5bfe2470b49..e38da91c606c 100644 --- a/dbaccess/source/ui/misc/UITools.cxx +++ b/dbaccess/source/ui/misc/UITools.cxx @@ -97,6 +97,7 @@ #ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATA_HPP_ #include <com/sun/star/sdbc/XResultSetMetaData.hpp> #endif +#include <com/sun/star/sdbc/ColumnValue.hpp> #ifndef _COM_SUN_STAR_TASK_XINTERACTIONHANDLER_HPP_ #include <com/sun/star/task/XInteractionHandler.hpp> #endif @@ -686,6 +687,7 @@ void fillTypeInfo( const Reference< ::com::sun::star::sdbc::XConnection>& _rxCo Reference<XResultSetMetaData> xResultSetMetaData = Reference<XResultSetMetaDataSupplier>(xRs,UNO_QUERY)->getMetaData(); ::connectivity::ORowSetValue aValue; ::std::vector<sal_Int32> aTypes; + ::std::vector<sal_Bool> aNullable; // Loop on the result set until we reach end of file while (xRs->next()) { @@ -699,55 +701,58 @@ void fillTypeInfo( const Reference< ::com::sun::star::sdbc::XConnection>& _rxCo aTypes.reserve(nCount+1); aTypes.push_back(-1); for (sal_Int32 j = 1; j <= nCount ; ++j) + { aTypes.push_back(xResultSetMetaData->getColumnType(j)); + aNullable.push_back(xResultSetMetaData->isNullable(j) != ColumnValue::NO_NULLS); + } } - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->aTypeName = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->nType = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->nPrecision = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->aLiteralPrefix = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->aLiteralSuffix = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->aCreateParams = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->bNullable = (sal_Int32)aValue == ColumnValue::NULLABLE; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->bCaseSensitive = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->nSearchType = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->bUnsigned = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->bCurrency = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->bAutoIncrement = (sal_Bool)aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->aLocalTypeName = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->nMinimumScale = aValue; ++nPos; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); pInfo->nMaximumScale = aValue; nPos = 18; - aValue.fill(nPos,aTypes[nPos],xRow); + aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); // check if values are less than zero like it happens in a oracle jdbc driver if( pInfo->nPrecision < 0) diff --git a/dbaccess/source/ui/misc/UpdateHelperImpl.hxx b/dbaccess/source/ui/misc/UpdateHelperImpl.hxx index ed40973dafa8..a0a9e63fc183 100644 --- a/dbaccess/source/ui/misc/UpdateHelperImpl.hxx +++ b/dbaccess/source/ui/misc/UpdateHelperImpl.hxx @@ -30,24 +30,14 @@ #ifndef DBAUI_UPDATEHELPERIMPL_HXX #define DBAUI_UPDATEHELPERIMPL_HXX -#ifndef _COM_SUN_STAR_SDBC_XRESULTSETUPDATE_HPP_ #include <com/sun/star/sdbc/XResultSetUpdate.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XROWUPDATE_HPP_ #include <com/sun/star/sdbc/XRowUpdate.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XPARAMETERS_HPP_ #include <com/sun/star/sdbc/XParameters.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XPREPAREDSTATEMENT_HPP_ #include <com/sun/star/sdbc/XPreparedStatement.hpp> -#endif -#ifndef _COM_SUN_STAR_SDBC_XROWSET_HPP_ #include <com/sun/star/sdbc/XRowSet.hpp> -#endif -#ifndef DBAUI_IUPDATEHELPER_HXX +#include <com/sun/star/sdbc/XResultSetMetaData.hpp> #include "IUpdateHelper.hxx" -#endif +#include <rtl/logfile.hxx> namespace dbaui { @@ -102,18 +92,22 @@ namespace dbaui virtual ~OParameterUpdateHelper() {} virtual void updateString(sal_Int32 _nPos, const ::rtl::OUString& _sValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OParameterUpdateHelper::updateString" ); m_xParameters->setString(_nPos, _sValue); } virtual void updateDouble(sal_Int32 _nPos,const double& _nValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OParameterUpdateHelper::updateDouble" ); m_xParameters->setDouble(_nPos, _nValue); } virtual void updateInt(sal_Int32 _nPos,const sal_Int32& _nValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OParameterUpdateHelper::updateInt" ); m_xParameters->setInt(_nPos, _nValue); } virtual void updateNull(sal_Int32 _nPos, ::sal_Int32 sqlType) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OParameterUpdateHelper::updateNull" ); m_xParameters->setNull(_nPos,sqlType); } virtual void moveToInsertRow() @@ -121,6 +115,7 @@ namespace dbaui } virtual void insertRow() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OParameterUpdateHelper::insertRow" ); m_xPrepared->executeUpdate(); } }; diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx index ca3408bd0285..0cd8ae2dbeb4 100644 --- a/dbaccess/source/ui/misc/WCopyTable.cxx +++ b/dbaccess/source/ui/misc/WCopyTable.cxx @@ -64,6 +64,7 @@ #include <comphelper/types.hxx> #include <connectivity/dbtools.hxx> +#include <rtl/logfile.hxx> #include <rtl/ustrbuf.hxx> #include <tools/debug.hxx> #include <tools/diagnose_ex.h> @@ -585,6 +586,7 @@ OCopyTableWizard::OCopyTableWizard( Window * pParent, const ::rtl::OUString& _rD ,m_ePressed( WIZARD_NONE ) ,m_bCreatePrimaryKeyColumn(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::OCopyTableWizard" ); DBG_CTOR(OCopyTableWizard,NULL); construct(); @@ -668,6 +670,7 @@ OCopyTableWizard::OCopyTableWizard( Window* pParent, const ::rtl::OUString& _rDe ,m_ePressed( WIZARD_NONE ) ,m_bCreatePrimaryKeyColumn(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::OCopyTableWizard" ); DBG_CTOR(OCopyTableWizard,NULL); construct(); ODatabaseExport::TColumnVector::const_iterator aIter = _rSourceColVec.begin(); @@ -695,6 +698,7 @@ OCopyTableWizard::OCopyTableWizard( Window* pParent, const ::rtl::OUString& _rDe // ----------------------------------------------------------------------------- void OCopyTableWizard::construct() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::construct" ); AddButton( &m_pbHelp, WIZARDDIALOG_BUTTON_STDOFFSET_X ); AddButton( &m_pbCancel, WIZARDDIALOG_BUTTON_STDOFFSET_X ); AddButton( &m_pbPrev ); @@ -790,6 +794,7 @@ IMPL_LINK( OCopyTableWizard, ImplNextHdl, PushButton*, EMPTYARG ) // ----------------------------------------------------------------------- sal_Bool OCopyTableWizard::CheckColumns(sal_Int32& _rnBreakPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::CheckColumns" ); sal_Bool bRet = sal_True; m_vColumnPos.clear(); m_vColumnTypes.clear(); @@ -959,12 +964,14 @@ IMPL_LINK( OCopyTableWizard, ImplOKHdl, OKButton*, EMPTYARG ) //------------------------------------------------------------------------ sal_Bool OCopyTableWizard::shouldCreatePrimaryKey() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::shouldCreatePrimaryKey" ); return m_bCreatePrimaryKeyColumn; } // ----------------------------------------------------------------------- void OCopyTableWizard::setCreatePrimaryKey( bool _bDoCreate, const ::rtl::OUString& _rSuggestedName ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::setCreatePrimaryKey" ); m_bCreatePrimaryKeyColumn = _bDoCreate; if ( _rSuggestedName.getLength() ) m_aKeyName = _rSuggestedName; @@ -996,6 +1003,7 @@ IMPL_LINK( OCopyTableWizard, ImplActivateHdl, WizardDialog*, EMPTYARG ) // ----------------------------------------------------------------------- void OCopyTableWizard::CheckButtons() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::CheckButtons" ); if(GetCurLevel() == 0) // erste Seite hat kein PrevButton { if(m_nPageCount > 1) @@ -1019,6 +1027,7 @@ void OCopyTableWizard::CheckButtons() // ----------------------------------------------------------------------- void OCopyTableWizard::EnableButton(Wizard_Button_Style eStyle,sal_Bool bEnable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::EnableButton" ); // CheckButtons(); Button* pButton; if(eStyle == WIZARD_NEXT) @@ -1033,18 +1042,21 @@ void OCopyTableWizard::EnableButton(Wizard_Button_Style eStyle,sal_Bool bEnable) // ----------------------------------------------------------------------- long OCopyTableWizard::DeactivatePage() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::DeactivatePage" ); OWizardPage* pPage = (OWizardPage*)GetPage(GetCurLevel()); return pPage ? pPage->LeavePage() : sal_False; } // ----------------------------------------------------------------------- void OCopyTableWizard::AddWizardPage(OWizardPage* pPage) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::AddWizardPage" ); AddPage(pPage); ++m_nPageCount; } // ----------------------------------------------------------------------------- void OCopyTableWizard::insertColumn(sal_Int32 _nPos,OFieldDescription* _pField) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::insertColumn" ); OSL_ENSURE(_pField,"FieldDescrioption is null!"); if ( _pField ) { @@ -1062,6 +1074,7 @@ void OCopyTableWizard::insertColumn(sal_Int32 _nPos,OFieldDescription* _pField) // ----------------------------------------------------------------------------- void OCopyTableWizard::replaceColumn(sal_Int32 _nPos,OFieldDescription* _pField,const ::rtl::OUString& _sOldName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::replaceColumn" ); OSL_ENSURE(_pField,"FieldDescrioption is null!"); if ( _pField ) { @@ -1075,12 +1088,14 @@ void OCopyTableWizard::replaceColumn(sal_Int32 _nPos,OFieldDescription* _pField, // ----------------------------------------------------------------------------- void OCopyTableWizard::impl_loadSourceData() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::impl_loadSourceData" ); loadData( m_rSourceObject, m_vSourceColumns, m_vSourceVec ); } // ----------------------------------------------------------------------------- void OCopyTableWizard::loadData( const ICopyTableSourceObject& _rSourceObject, ODatabaseExport::TColumns& _rColumns, ODatabaseExport::TColumnVector& _rColVector ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::loadData" ); for ( ODatabaseExport::TColumns::iterator col = _rColumns.begin(); col != _rColumns.end(); ++col ) delete col->second; @@ -1141,12 +1156,14 @@ void OCopyTableWizard::loadData( const ICopyTableSourceObject& _rSourceObject, // ----------------------------------------------------------------------------- void OCopyTableWizard::clearDestColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::clearDestColumns" ); clearColumns(m_vDestColumns,m_aDestVec); } // ----------------------------------------------------------------------------- void OCopyTableWizard::appendColumns( Reference<XColumnsSupplier>& _rxColSup, const ODatabaseExport::TColumnVector* _pVec, sal_Bool _bKeyColumns) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::appendColumns" ); // now append the columns OSL_ENSURE(_rxColSup.is(),"No columns supplier"); if(!_rxColSup.is()) @@ -1196,6 +1213,7 @@ void OCopyTableWizard::appendColumns( Reference<XColumnsSupplier>& _rxColSup, co // ----------------------------------------------------------------------------- void OCopyTableWizard::appendKey( Reference<XKeysSupplier>& _rxSup, const ODatabaseExport::TColumnVector* _pVec) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::appendKey" ); if(!_rxSup.is()) return; // the database doesn't support keys OSL_ENSURE(_rxSup.is(),"No XKeysSupplier!"); @@ -1223,6 +1241,7 @@ void OCopyTableWizard::appendKey( Reference<XKeysSupplier>& _rxSup, const ODatab // ----------------------------------------------------------------------------- Reference< XPropertySet > OCopyTableWizard::createView() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::createView" ); ::rtl::OUString sCommand( m_rSourceObject.getSelectStatement() ); OSL_ENSURE( sCommand.getLength(), "OCopyTableWizard::createView: no statement in the source object!" ); // there are legitimate cases in which getSelectStatement does not provide a statement, @@ -1232,6 +1251,7 @@ Reference< XPropertySet > OCopyTableWizard::createView() const // ----------------------------------------------------------------------------- Reference< XPropertySet > OCopyTableWizard::createTable() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::createTable" ); Reference< XPropertySet > xTable; Reference<XTablesSupplier> xSup( m_xDestConnection, UNO_QUERY ); @@ -1356,6 +1376,7 @@ Reference< XPropertySet > OCopyTableWizard::createTable() // ----------------------------------------------------------------------------- bool OCopyTableWizard::supportsPrimaryKey( const Reference< XConnection >& _rxConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::supportsPrimaryKey" ); OSL_PRECOND( _rxConnection.is(), "OCopyTableWizard::supportsPrimaryKey: invalid connection!" ); bool bSupports( false ); @@ -1377,6 +1398,7 @@ bool OCopyTableWizard::supportsPrimaryKey( const Reference< XConnection >& _rxCo // ----------------------------------------------------------------------------- bool OCopyTableWizard::supportsViews( const Reference< XConnection >& _rxConnection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::supportsViews" ); OSL_PRECOND( _rxConnection.is(), "OCopyTableWizard::supportsViews: invalid connection!" ); if ( !_rxConnection.is() ) return false; @@ -1419,6 +1441,7 @@ bool OCopyTableWizard::supportsViews( const Reference< XConnection >& _rxConnect // ----------------------------------------------------------------------------- sal_Int32 OCopyTableWizard::getMaxColumnNameLength() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::getMaxColumnNameLength" ); sal_Int32 nLen = 0; if ( m_xDestConnection.is() ) { @@ -1437,11 +1460,13 @@ sal_Int32 OCopyTableWizard::getMaxColumnNameLength() const // ----------------------------------------------------------------------------- void OCopyTableWizard::setOperation( const sal_Int16 _nOperation ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::setOperation" ); m_nOperation = _nOperation; } // ----------------------------------------------------------------------------- sal_Int16 OCopyTableWizard::getOperation() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::getOperation" ); return m_nOperation; } // ----------------------------------------------------------------------------- @@ -1450,6 +1475,7 @@ sal_Int16 OCopyTableWizard::getOperation() const const ::rtl::OUString& _sExtraChars, sal_Int32 _nMaxNameLen) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::convertColumnName" ); ::rtl::OUString sAlias = _sColumnName; if ( isSQL92CheckEnabled( m_xDestConnection ) ) sAlias = ::dbtools::convertName2SQLName(_sColumnName,_sExtraChars); @@ -1484,12 +1510,14 @@ sal_Int16 OCopyTableWizard::getOperation() const // ----------------------------------------------------------------------------- void OCopyTableWizard::removeColumnNameFromNameMap(const ::rtl::OUString& _sName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::removeColumnNameFromNameMap" ); m_mNameMapping.erase(_sName); } // ----------------------------------------------------------------------------- sal_Bool OCopyTableWizard::supportsType(sal_Int32 _nDataType,sal_Int32& _rNewDataType) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::supportsType" ); sal_Bool bRet = m_aDestTypeInfo.find(_nDataType) != m_aDestTypeInfo.end(); if ( bRet ) _rNewDataType = _nDataType; @@ -1499,6 +1527,7 @@ sal_Bool OCopyTableWizard::supportsType(sal_Int32 _nDataType,sal_Int32& _rNewDat // ----------------------------------------------------------------------------- TOTypeInfoSP OCopyTableWizard::convertType(const TOTypeInfoSP& _pType,sal_Bool& _bNotConvert) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::convertType" ); if ( !m_bInterConnectionCopy ) // no need to convert if the source and destination connection are the same return _pType; @@ -1577,6 +1606,7 @@ TOTypeInfoSP OCopyTableWizard::convertType(const TOTypeInfoSP& _pType,sal_Bool& // ----------------------------------------------------------------------------- ::rtl::OUString OCopyTableWizard::createUniqueName(const ::rtl::OUString& _sName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::createUniqueName" ); ::rtl::OUString sName = _sName; Sequence< ::rtl::OUString > aColumnNames( m_rSourceObject.getColumnNames() ); if ( aColumnNames.getLength() ) @@ -1598,6 +1628,7 @@ TOTypeInfoSP OCopyTableWizard::convertType(const TOTypeInfoSP& _pType,sal_Bool& // ----------------------------------------------------------------------------- void OCopyTableWizard::showColumnTypeNotSupported(const ::rtl::OUString& _rColumnName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::showColumnTypeNotSupported" ); String sMessage( ModuleRes( STR_UNKNOWN_TYPE_FOUND ) ); sMessage.SearchAndReplaceAscii("#1",_rColumnName); diff --git a/dbaccess/source/ui/uno/copytablewizard.cxx b/dbaccess/source/ui/uno/copytablewizard.cxx index 476f87d4a7a8..511edcd4bb07 100644 --- a/dbaccess/source/ui/uno/copytablewizard.cxx +++ b/dbaccess/source/ui/uno/copytablewizard.cxx @@ -73,6 +73,7 @@ #include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/implbase1.hxx> #include <rtl/ustrbuf.hxx> +#include <rtl/logfile.hxx> #include <svtools/genericunodialog.hxx> #include <tools/diagnose_ex.h> #include <unotools/sharedunocomponent.hxx> @@ -291,6 +292,11 @@ namespace dbaui */ void impl_doCopy_nothrow(); + /** creates the INSERT INTO statement + @param _xTable The destination table. + */ + ::rtl::OUString impl_getSelectStatement_nothrow(const Reference< XPropertySet >& _xTable); + /** creates the statement which, when executed, will produce the source data to copy If the source object refers to a query which contains parameters, those parameters @@ -344,1143 +350,1223 @@ private: sal_Int16 m_nOverrideExecutionResult; }; - //========================================================================= - //= MethodGuard - //========================================================================= - class CopyTableAccessGuard - { - public: - CopyTableAccessGuard( CopyTableWizard& _rWizard ) - :m_rWizard( _rWizard ) - { - m_rWizard.getMutex().acquire(); - if ( !m_rWizard.isInitialized() ) - throw NotInitializedException(); - } - - ~CopyTableAccessGuard() - { - m_rWizard.getMutex().release(); - } - - private: - CopyTableWizard& m_rWizard; - }; - - //========================================================================= - //------------------------------------------------------------------------- - CopyTableWizard::CopyTableWizard( const Reference< XMultiServiceFactory >& _rxORB ) - :CopyTableWizard_Base( _rxORB ) - ,m_aContext( _rxORB ) - ,m_nOperation( CopyTableOperation::CopyDefinitionAndData ) - ,m_sDestinationTable() - ,m_aPrimaryKeyName( sal_False, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ID" ) )) - ,m_xSourceConnection() - ,m_nCommandType( CommandType::COMMAND ) - ,m_pSourceObject() - ,m_aSourceSelection() - ,m_bSourceSelectionBookmarks( true ) - ,m_xDestConnection() - ,m_aCopyTableListeners( m_aMutex ) - ,m_nOverrideExecutionResult( -1 ) +//========================================================================= +//= MethodGuard +//========================================================================= +class CopyTableAccessGuard +{ +public: + CopyTableAccessGuard( CopyTableWizard& _rWizard ) + :m_rWizard( _rWizard ) { + m_rWizard.getMutex().acquire(); + if ( !m_rWizard.isInitialized() ) + throw NotInitializedException(); } - //------------------------------------------------------------------------- - CopyTableWizard::~CopyTableWizard() + ~CopyTableAccessGuard() { - acquire(); - - // protect some members whose dtor might potentially throw - try { m_xSourceConnection.clear(); } - catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } - try { m_xDestConnection.clear(); } - catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } - - // TODO: shouldn't we have explicit disposal support? If a listener is registered - // at our instance, and perhaps holds this our instance by a hard ref, then we'll never - // destroyed. - // However, adding XComponent support to the GenericUNODialog probably requires - // some thinking - would it break existing clients which do not call a dispose, then? + m_rWizard.getMutex().release(); } - //------------------------------------------------------------------------- - Reference< XInterface > CopyTableWizard::Create( const Reference< XMultiServiceFactory >& _rxFactory ) - { - return *( new CopyTableWizard( _rxFactory ) ); - } +private: + CopyTableWizard& m_rWizard; +}; + +//========================================================================= +//------------------------------------------------------------------------- +CopyTableWizard::CopyTableWizard( const Reference< XMultiServiceFactory >& _rxORB ) + :CopyTableWizard_Base( _rxORB ) + ,m_aContext( _rxORB ) + ,m_nOperation( CopyTableOperation::CopyDefinitionAndData ) + ,m_sDestinationTable() + ,m_aPrimaryKeyName( sal_False, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ID" ) )) + ,m_xSourceConnection() + ,m_nCommandType( CommandType::COMMAND ) + ,m_pSourceObject() + ,m_aSourceSelection() + ,m_bSourceSelectionBookmarks( true ) + ,m_xDestConnection() + ,m_aCopyTableListeners( m_aMutex ) + ,m_nOverrideExecutionResult( -1 ) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::CopyTableWizard" ); +} - //------------------------------------------------------------------------- - ::rtl::OUString SAL_CALL CopyTableWizard::getImplementationName() throw(RuntimeException) - { - return getImplementationName_Static(); - } +//------------------------------------------------------------------------- +CopyTableWizard::~CopyTableWizard() +{ + acquire(); + + // protect some members whose dtor might potentially throw + try { m_xSourceConnection.clear(); } + catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } + try { m_xDestConnection.clear(); } + catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } + + // TODO: shouldn't we have explicit disposal support? If a listener is registered + // at our instance, and perhaps holds this our instance by a hard ref, then we'll never + // destroyed. + // However, adding XComponent support to the GenericUNODialog probably requires + // some thinking - would it break existing clients which do not call a dispose, then? +} - //------------------------------------------------------------------------- - ::rtl::OUString CopyTableWizard::getImplementationName_Static() throw(RuntimeException) - { - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.dbu.CopyTableWizard" ) ); - } +//------------------------------------------------------------------------- +Reference< XInterface > CopyTableWizard::Create( const Reference< XMultiServiceFactory >& _rxFactory ) +{ + return *( new CopyTableWizard( _rxFactory ) ); +} - //------------------------------------------------------------------------- - ::comphelper::StringSequence SAL_CALL CopyTableWizard::getSupportedServiceNames() throw(RuntimeException) - { - return getSupportedServiceNames_Static(); - } +//------------------------------------------------------------------------- +::rtl::OUString SAL_CALL CopyTableWizard::getImplementationName() throw(RuntimeException) +{ + return getImplementationName_Static(); +} - //------------------------------------------------------------------------- - ::comphelper::StringSequence CopyTableWizard::getSupportedServiceNames_Static() throw(RuntimeException) - { - ::comphelper::StringSequence aSupported(1); - aSupported.getArray()[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.application.CopyTableWizard" ) ); - return aSupported; - } +//------------------------------------------------------------------------- +::rtl::OUString CopyTableWizard::getImplementationName_Static() throw(RuntimeException) +{ + return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.dbu.CopyTableWizard" ) ); +} - //------------------------------------------------------------------------- - Reference< XPropertySetInfo > SAL_CALL CopyTableWizard::getPropertySetInfo() throw(RuntimeException) - { - Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) ); - return xInfo; - } +//------------------------------------------------------------------------- +::comphelper::StringSequence SAL_CALL CopyTableWizard::getSupportedServiceNames() throw(RuntimeException) +{ + return getSupportedServiceNames_Static(); +} - //-------------------------------------------------------------------- - ::sal_Int16 SAL_CALL CopyTableWizard::getOperation() throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - return m_nOperation; - } +//------------------------------------------------------------------------- +::comphelper::StringSequence CopyTableWizard::getSupportedServiceNames_Static() throw(RuntimeException) +{ + ::comphelper::StringSequence aSupported(1); + aSupported.getArray()[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.application.CopyTableWizard" ) ); + return aSupported; +} - //-------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::setOperation( ::sal_Int16 _operation ) throw (IllegalArgumentException, RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - - if ( ( _operation != CopyTableOperation::CopyDefinitionAndData ) - && ( _operation != CopyTableOperation::CopyDefinitionOnly ) - && ( _operation != CopyTableOperation::CreateAsView ) - && ( _operation != CopyTableOperation::AppendData ) - ) - throw IllegalArgumentException( ::rtl::OUString(), *this, 1 ); - - if ( ( _operation == CopyTableOperation::CreateAsView ) - && !OCopyTableWizard::supportsViews( m_xDestConnection ) - ) - throw IllegalArgumentException( - String( ModuleRes( STR_CTW_NO_VIEWS_SUPPORT ) ), - *this, - 1 - ); +//------------------------------------------------------------------------- +Reference< XPropertySetInfo > SAL_CALL CopyTableWizard::getPropertySetInfo() throw(RuntimeException) +{ + Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) ); + return xInfo; +} - m_nOperation = _operation; - } +//-------------------------------------------------------------------- +::sal_Int16 SAL_CALL CopyTableWizard::getOperation() throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::getOperation" ); + CopyTableAccessGuard aGuard( *this ); + return m_nOperation; +} - //-------------------------------------------------------------------- - ::rtl::OUString SAL_CALL CopyTableWizard::getDestinationTableName() throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - return m_sDestinationTable; - } +//-------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::setOperation( ::sal_Int16 _operation ) throw (IllegalArgumentException, RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::setOperation" ); + CopyTableAccessGuard aGuard( *this ); + + if ( ( _operation != CopyTableOperation::CopyDefinitionAndData ) + && ( _operation != CopyTableOperation::CopyDefinitionOnly ) + && ( _operation != CopyTableOperation::CreateAsView ) + && ( _operation != CopyTableOperation::AppendData ) + ) + throw IllegalArgumentException( ::rtl::OUString(), *this, 1 ); + + if ( ( _operation == CopyTableOperation::CreateAsView ) + && !OCopyTableWizard::supportsViews( m_xDestConnection ) + ) + throw IllegalArgumentException( + String( ModuleRes( STR_CTW_NO_VIEWS_SUPPORT ) ), + *this, + 1 + ); - //-------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::setDestinationTableName( const ::rtl::OUString& _destinationTableName ) throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - m_sDestinationTable = _destinationTableName; - } + m_nOperation = _operation; +} - //-------------------------------------------------------------------- - Optional< ::rtl::OUString > SAL_CALL CopyTableWizard::getCreatePrimaryKey() throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - return m_aPrimaryKeyName; - } +//-------------------------------------------------------------------- +::rtl::OUString SAL_CALL CopyTableWizard::getDestinationTableName() throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::getDestinationTableName" ); + CopyTableAccessGuard aGuard( *this ); + return m_sDestinationTable; +} - //-------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::setCreatePrimaryKey( const Optional< ::rtl::OUString >& _newPrimaryKey ) throw (IllegalArgumentException, RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); +//-------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::setDestinationTableName( const ::rtl::OUString& _destinationTableName ) throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::setDestinationTableName" ); + CopyTableAccessGuard aGuard( *this ); + m_sDestinationTable = _destinationTableName; +} - if ( _newPrimaryKey.IsPresent && !OCopyTableWizard::supportsPrimaryKey( m_xDestConnection ) ) - throw IllegalArgumentException( - String( ModuleRes( STR_CTW_NO_PRIMARY_KEY_SUPPORT ) ), - *this, - 1 - ); +//-------------------------------------------------------------------- +Optional< ::rtl::OUString > SAL_CALL CopyTableWizard::getCreatePrimaryKey() throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::getCreatePrimaryKey" ); + CopyTableAccessGuard aGuard( *this ); + return m_aPrimaryKeyName; +} - m_aPrimaryKeyName = _newPrimaryKey; - } +//-------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::setCreatePrimaryKey( const Optional< ::rtl::OUString >& _newPrimaryKey ) throw (IllegalArgumentException, RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::setCreatePrimaryKey" ); + CopyTableAccessGuard aGuard( *this ); + + if ( _newPrimaryKey.IsPresent && !OCopyTableWizard::supportsPrimaryKey( m_xDestConnection ) ) + throw IllegalArgumentException( + String( ModuleRes( STR_CTW_NO_PRIMARY_KEY_SUPPORT ) ), + *this, + 1 + ); - //-------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::addCopyTableListener( const Reference< XCopyTableListener >& _rxListener ) throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - if ( _rxListener.is() ) - m_aCopyTableListeners.addInterface( _rxListener ); - } + m_aPrimaryKeyName = _newPrimaryKey; +} - //-------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::removeCopyTableListener( const Reference< XCopyTableListener >& _rxListener ) throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - if ( _rxListener.is() ) - m_aCopyTableListeners.removeInterface( _rxListener ); - } +//-------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::addCopyTableListener( const Reference< XCopyTableListener >& _rxListener ) throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::addCopyTableListener" ); + CopyTableAccessGuard aGuard( *this ); + if ( _rxListener.is() ) + m_aCopyTableListeners.addInterface( _rxListener ); +} - //-------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::setTitle( const ::rtl::OUString& _rTitle ) throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); - CopyTableWizard_DialogBase::setTitle( _rTitle ); - } +//-------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::removeCopyTableListener( const Reference< XCopyTableListener >& _rxListener ) throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::removeCopyTableListener" ); + CopyTableAccessGuard aGuard( *this ); + if ( _rxListener.is() ) + m_aCopyTableListeners.removeInterface( _rxListener ); +} - //-------------------------------------------------------------------- - ::sal_Int16 SAL_CALL CopyTableWizard::execute( ) throw (RuntimeException) - { - CopyTableAccessGuard aGuard( *this ); +//-------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::setTitle( const ::rtl::OUString& _rTitle ) throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::setTitle" ); + CopyTableAccessGuard aGuard( *this ); + CopyTableWizard_DialogBase::setTitle( _rTitle ); +} - m_nOverrideExecutionResult = -1; - sal_Int16 nExecutionResult = CopyTableWizard_DialogBase::execute(); - if ( m_nOverrideExecutionResult ) - nExecutionResult = m_nOverrideExecutionResult; +//-------------------------------------------------------------------- +::sal_Int16 SAL_CALL CopyTableWizard::execute( ) throw (RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::execute" ); + CopyTableAccessGuard aGuard( *this ); - return nExecutionResult; - } + m_nOverrideExecutionResult = -1; + sal_Int16 nExecutionResult = CopyTableWizard_DialogBase::execute(); + if ( m_nOverrideExecutionResult ) + nExecutionResult = m_nOverrideExecutionResult; - //------------------------------------------------------------------------- - OCopyTableWizard& CopyTableWizard::impl_getDialog_throw() - { - OCopyTableWizard* pWizard = dynamic_cast< OCopyTableWizard* >( m_pDialog ); - if ( !pWizard ) - throw DisposedException( ::rtl::OUString(), *this ); - return *pWizard; - } + return nExecutionResult; +} - //------------------------------------------------------------------------- - const OCopyTableWizard& CopyTableWizard::impl_getDialog_throw() const - { - const OCopyTableWizard* pWizard = dynamic_cast< const OCopyTableWizard* >( m_pDialog ); - if ( !pWizard ) - throw DisposedException( ::rtl::OUString(), *const_cast< CopyTableWizard* >( this ) ); - return *pWizard; - } +//------------------------------------------------------------------------- +OCopyTableWizard& CopyTableWizard::impl_getDialog_throw() +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_getDialog_throw" ); + OCopyTableWizard* pWizard = dynamic_cast< OCopyTableWizard* >( m_pDialog ); + if ( !pWizard ) + throw DisposedException( ::rtl::OUString(), *this ); + return *pWizard; +} - //------------------------------------------------------------------------- - void CopyTableWizard::impl_attributesToDialog_nothrow( OCopyTableWizard& _rDialog ) const - { - // primary key column - _rDialog.setCreatePrimaryKey( m_aPrimaryKeyName.IsPresent, m_aPrimaryKeyName.Value ); +//------------------------------------------------------------------------- +const OCopyTableWizard& CopyTableWizard::impl_getDialog_throw() const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_getDialog_throw" ); + const OCopyTableWizard* pWizard = dynamic_cast< const OCopyTableWizard* >( m_pDialog ); + if ( !pWizard ) + throw DisposedException( ::rtl::OUString(), *const_cast< CopyTableWizard* >( this ) ); + return *pWizard; +} - // everything else was passed at construction time already - } +//------------------------------------------------------------------------- +void CopyTableWizard::impl_attributesToDialog_nothrow( OCopyTableWizard& _rDialog ) const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_attributesToDialog_nothrow" ); + // primary key column + _rDialog.setCreatePrimaryKey( m_aPrimaryKeyName.IsPresent, m_aPrimaryKeyName.Value ); - //------------------------------------------------------------------------- - void CopyTableWizard::impl_dialogToAttributes_nothrow( const OCopyTableWizard& _rDialog ) - { - m_aPrimaryKeyName.IsPresent = _rDialog.shouldCreatePrimaryKey(); - if ( m_aPrimaryKeyName.IsPresent ) - m_aPrimaryKeyName.Value = _rDialog.getPrimaryKeyName(); - else - m_aPrimaryKeyName.Value = ::rtl::OUString(); + // everything else was passed at construction time already +} - m_sDestinationTable = _rDialog.getName(); +//------------------------------------------------------------------------- +void CopyTableWizard::impl_dialogToAttributes_nothrow( const OCopyTableWizard& _rDialog ) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_dialogToAttributes_nothrow" ); + m_aPrimaryKeyName.IsPresent = _rDialog.shouldCreatePrimaryKey(); + if ( m_aPrimaryKeyName.IsPresent ) + m_aPrimaryKeyName.Value = _rDialog.getPrimaryKeyName(); + else + m_aPrimaryKeyName.Value = ::rtl::OUString(); - m_nOperation = _rDialog.getOperation(); - } + m_sDestinationTable = _rDialog.getName(); - //------------------------------------------------------------------------- - namespace - { - //..................................................................... - /** tries to obtain the InteractionHandler associated with a given data source + m_nOperation = _rDialog.getOperation(); +} - If the data source is a sdb-level data source, it will have a DatabaseDocument associated - with it. This doocument may have an InteractionHandler used while loading it. +//------------------------------------------------------------------------- +namespace +{ + //..................................................................... + /** tries to obtain the InteractionHandler associated with a given data source - @throws RuntimeException - if it occures during invoking any of the data source's methods, or if any of the involved - components violates its contract by not providing the required interfaces - */ - InteractionHandler lcl_getInteractionHandler_throw( const Reference< XDataSource >& _rxDataSource, const InteractionHandler& _rFallback ) - { - InteractionHandler xHandler( _rFallback ); + If the data source is a sdb-level data source, it will have a DatabaseDocument associated + with it. This doocument may have an InteractionHandler used while loading it. - // try to obtain the document model - Reference< XModel > xDocumentModel; - Reference< XDocumentDataSource > xDocDataSource( _rxDataSource, UNO_QUERY ); - if ( xDocDataSource.is() ) - xDocumentModel.set( xDocDataSource->getDatabaseDocument(), UNO_QUERY_THROW ); + @throws RuntimeException + if it occures during invoking any of the data source's methods, or if any of the involved + components violates its contract by not providing the required interfaces + */ + InteractionHandler lcl_getInteractionHandler_throw( const Reference< XDataSource >& _rxDataSource, const InteractionHandler& _rFallback ) + { + InteractionHandler xHandler( _rFallback ); - // see whether the document model can provide a handler - if ( xDocumentModel.is() ) - { - ::comphelper::NamedValueCollection aModelArgs( xDocumentModel->getArgs() ); - xHandler = aModelArgs.getOrDefault( "InteractionHandler", xHandler ); - } + // try to obtain the document model + Reference< XModel > xDocumentModel; + Reference< XDocumentDataSource > xDocDataSource( _rxDataSource, UNO_QUERY ); + if ( xDocDataSource.is() ) + xDocumentModel.set( xDocDataSource->getDatabaseDocument(), UNO_QUERY_THROW ); - return xHandler; + // see whether the document model can provide a handler + if ( xDocumentModel.is() ) + { + ::comphelper::NamedValueCollection aModelArgs( xDocumentModel->getArgs() ); + xHandler = aModelArgs.getOrDefault( "InteractionHandler", xHandler ); } - //..................................................................... - /** tries to obtain the InteractionHandler associated with a given connection - If the connection belongs to a sdb-level data source, then this data source - is examined for an interaction handler. Else, <NULL/> is returned. + return xHandler; + } + //..................................................................... + /** tries to obtain the InteractionHandler associated with a given connection - @throws RuntimeException - if it occures during invoking any of the data source's methods, or if any of the involved - components violates its contract by not providing the required interfaces - */ - InteractionHandler lcl_getInteractionHandler_throw( const Reference< XConnection >& _rxConnection, const InteractionHandler& _rFallback ) - { - // try whether there is a data source which the connection belongs to - Reference< XDataSource > xDataSource; - Reference< XChild > xAsChild( _rxConnection, UNO_QUERY ); - if ( xAsChild.is() ) - xDataSource = xDataSource.query( xAsChild->getParent() ); + If the connection belongs to a sdb-level data source, then this data source + is examined for an interaction handler. Else, <NULL/> is returned. - if ( xDataSource.is() ) - return lcl_getInteractionHandler_throw( xDataSource, _rFallback ); + @throws RuntimeException + if it occures during invoking any of the data source's methods, or if any of the involved + components violates its contract by not providing the required interfaces + */ + InteractionHandler lcl_getInteractionHandler_throw( const Reference< XConnection >& _rxConnection, const InteractionHandler& _rFallback ) + { + // try whether there is a data source which the connection belongs to + Reference< XDataSource > xDataSource; + Reference< XChild > xAsChild( _rxConnection, UNO_QUERY ); + if ( xAsChild.is() ) + xDataSource = xDataSource.query( xAsChild->getParent() ); - return _rFallback; - } + if ( xDataSource.is() ) + return lcl_getInteractionHandler_throw( xDataSource, _rFallback ); + + return _rFallback; } +} - //------------------------------------------------------------------------- - Reference< XPropertySet > CopyTableWizard::impl_ensureDataAccessDescriptor_throw( - const Sequence< Any >& _rAllArgs, const sal_Int16 _nArgPos, SharedConnection& _out_rxConnection, - InteractionHandler& _out_rxDocInteractionHandler ) const +//------------------------------------------------------------------------- +Reference< XPropertySet > CopyTableWizard::impl_ensureDataAccessDescriptor_throw( + const Sequence< Any >& _rAllArgs, const sal_Int16 _nArgPos, SharedConnection& _out_rxConnection, + InteractionHandler& _out_rxDocInteractionHandler ) const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_ensureDataAccessDescriptor_throw" ); + Reference< XPropertySet > xDescriptor; + _rAllArgs[ _nArgPos ] >>= xDescriptor; + + // the descriptor must be non-NULL, of course + bool bIsValid = xDescriptor.is(); + + // it must support the proper service + if ( bIsValid ) { - Reference< XPropertySet > xDescriptor; - _rAllArgs[ _nArgPos ] >>= xDescriptor; + Reference< XServiceInfo > xSI( xDescriptor, UNO_QUERY ); + bIsValid = ( xSI.is() + && xSI->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.DataAccessDescriptor" ) ) ) + ); + } - // the descriptor must be non-NULL, of course - bool bIsValid = xDescriptor.is(); + // it must be able to provide a connection + if ( bIsValid ) + { + _out_rxConnection = impl_extractConnection_throw( xDescriptor, _out_rxDocInteractionHandler ); + bIsValid = _out_rxConnection.is(); + } - // it must support the proper service - if ( bIsValid ) - { - Reference< XServiceInfo > xSI( xDescriptor, UNO_QUERY ); - bIsValid = ( xSI.is() - && xSI->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.DataAccessDescriptor" ) ) ) - ); - } + if ( !bIsValid ) + { + throw IllegalArgumentException( + String( ModuleRes( STR_CTW_INVALID_DATA_ACCESS_DESCRIPTOR ) ), + *const_cast< CopyTableWizard* >( this ), + _nArgPos + 1 + ); + } - // it must be able to provide a connection - if ( bIsValid ) - { - _out_rxConnection = impl_extractConnection_throw( xDescriptor, _out_rxDocInteractionHandler ); - bIsValid = _out_rxConnection.is(); - } + return xDescriptor; +} - if ( !bIsValid ) +//------------------------------------------------------------------------- +namespace +{ + bool lcl_hasNonEmptyStringValue_throw( const Reference< XPropertySet >& _rxDescriptor, + const Reference< XPropertySetInfo > _rxPSI, const ::rtl::OUString& _rPropertyName ) + { + ::rtl::OUString sValue; + if ( _rxPSI->hasPropertyByName( _rPropertyName ) ) { - throw IllegalArgumentException( - String( ModuleRes( STR_CTW_INVALID_DATA_ACCESS_DESCRIPTOR ) ), - *const_cast< CopyTableWizard* >( this ), - _nArgPos + 1 - ); + OSL_VERIFY( _rxDescriptor->getPropertyValue( _rPropertyName ) >>= sValue ); } + return sValue.getLength() > 0; + } +} - return xDescriptor; +//------------------------------------------------------------------------- +void CopyTableWizard::impl_checkForUnsupportedSettings_throw( const Reference< XPropertySet >& _rxSourceDescriptor ) const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_checkForUnsupportedSettings_throw" ); + OSL_PRECOND( _rxSourceDescriptor.is(), "CopyTableWizard::impl_checkForUnsupportedSettings_throw: illegal argument!" ); + Reference< XPropertySetInfo > xPSI( _rxSourceDescriptor->getPropertySetInfo(), UNO_SET_THROW ); + ::rtl::OUString sUnsupportedSetting; + + // in theory, we could allow to use a mere result set as copy source. However, since this is currently + // not implemented at all, we report this in the initialization phase already + if ( xPSI->hasPropertyByName( PROPERTY_RESULT_SET ) ) + { + Reference< XResultSet > xSource( _rxSourceDescriptor->getPropertyValue( PROPERTY_RESULT_SET ), UNO_QUERY ); + if ( xSource.is() ) + sUnsupportedSetting = PROPERTY_RESULT_SET; } - //------------------------------------------------------------------------- - namespace + if ( sUnsupportedSetting.getLength() == 0 ) { - bool lcl_hasNonEmptyStringValue_throw( const Reference< XPropertySet >& _rxDescriptor, - const Reference< XPropertySetInfo > _rxPSI, const ::rtl::OUString& _rPropertyName ) + const ::rtl::OUString aSettings[] = { + PROPERTY_FILTER, PROPERTY_ORDER, PROPERTY_HAVING_CLAUSE, PROPERTY_GROUP_BY + }; + for ( size_t i=0; i < sizeof( aSettings ) / sizeof( aSettings[0] ); ++i ) { - ::rtl::OUString sValue; - if ( _rxPSI->hasPropertyByName( _rPropertyName ) ) + if ( lcl_hasNonEmptyStringValue_throw( _rxSourceDescriptor, xPSI, aSettings[i] ) ) { - OSL_VERIFY( _rxDescriptor->getPropertyValue( _rPropertyName ) >>= sValue ); + sUnsupportedSetting = aSettings[i]; + break; } - return sValue.getLength() > 0; } } - //------------------------------------------------------------------------- - void CopyTableWizard::impl_checkForUnsupportedSettings_throw( const Reference< XPropertySet >& _rxSourceDescriptor ) const + if ( sUnsupportedSetting.getLength() != 0 ) { - OSL_PRECOND( _rxSourceDescriptor.is(), "CopyTableWizard::impl_checkForUnsupportedSettings_throw: illegal argument!" ); - Reference< XPropertySetInfo > xPSI( _rxSourceDescriptor->getPropertySetInfo(), UNO_SET_THROW ); - ::rtl::OUString sUnsupportedSetting; + ::rtl::OUString sMessage( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported setting in the copy source descriptor: $name$." ) ) ); + // TODO: resource + sMessage = sMessage.replaceAt( sMessage.indexOfAsciiL( "$name$", 6 ), 6, sUnsupportedSetting ); + throw IllegalArgumentException( + sMessage, + *const_cast< CopyTableWizard* >( this ), + 1 + ); + } - // in theory, we could allow to use a mere result set as copy source. However, since this is currently - // not implemented at all, we report this in the initialization phase already - if ( xPSI->hasPropertyByName( PROPERTY_RESULT_SET ) ) - { - Reference< XResultSet > xSource( _rxSourceDescriptor->getPropertyValue( PROPERTY_RESULT_SET ), UNO_QUERY ); - if ( xSource.is() ) - sUnsupportedSetting = PROPERTY_RESULT_SET; - } +} - if ( sUnsupportedSetting.getLength() == 0 ) - { - const ::rtl::OUString aSettings[] = { - PROPERTY_FILTER, PROPERTY_ORDER, PROPERTY_HAVING_CLAUSE, PROPERTY_GROUP_BY - }; - for ( size_t i=0; i < sizeof( aSettings ) / sizeof( aSettings[0] ); ++i ) - { - if ( lcl_hasNonEmptyStringValue_throw( _rxSourceDescriptor, xPSI, aSettings[i] ) ) - { - sUnsupportedSetting = aSettings[i]; - break; - } - } - } +//------------------------------------------------------------------------- +::std::auto_ptr< ICopyTableSourceObject > CopyTableWizard::impl_extractSourceObject_throw( const Reference< XPropertySet >& _rxDescriptor, sal_Int32& _out_rCommandType ) const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_extractSourceObject_throw" ); + OSL_PRECOND( _rxDescriptor.is() && m_xSourceConnection.is(), "CopyTableWizard::impl_extractSourceObject_throw: illegal arguments!" ); + + impl_checkForUnsupportedSettings_throw( _rxDescriptor ); + + Reference< XPropertySetInfo > xPSI( _rxDescriptor->getPropertySetInfo(), UNO_SET_THROW ); + if ( !xPSI->hasPropertyByName( PROPERTY_COMMAND ) + || !xPSI->hasPropertyByName( PROPERTY_COMMAND_TYPE ) + ) + throw IllegalArgumentException( + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Expecting a table or query specification." ) ), + *const_cast< CopyTableWizard* >( this ), + 1 + ); - if ( sUnsupportedSetting.getLength() != 0 ) - { - ::rtl::OUString sMessage( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported setting in the copy source descriptor: $name$." ) ) ); - // TODO: resource - sMessage = sMessage.replaceAt( sMessage.indexOfAsciiL( "$name$", 6 ), 6, sUnsupportedSetting ); - throw IllegalArgumentException( - sMessage, - *const_cast< CopyTableWizard* >( this ), - 1 - ); - } + ::rtl::OUString sCommand; + _out_rCommandType = CommandType::COMMAND; + OSL_VERIFY( _rxDescriptor->getPropertyValue( PROPERTY_COMMAND ) >>= sCommand ); + OSL_VERIFY( _rxDescriptor->getPropertyValue( PROPERTY_COMMAND_TYPE ) >>= _out_rCommandType ); + ::std::auto_ptr< ICopyTableSourceObject > pSourceObject; + Reference< XNameAccess > xContainer; + switch ( _out_rCommandType ) + { + case CommandType::TABLE: + { + Reference< XTablesSupplier > xSuppTables( m_xSourceConnection.getTyped(), UNO_QUERY ); + if ( xSuppTables.is() ) + xContainer.set( xSuppTables->getTables(), UNO_SET_THROW ); } - - //------------------------------------------------------------------------- - ::std::auto_ptr< ICopyTableSourceObject > CopyTableWizard::impl_extractSourceObject_throw( const Reference< XPropertySet >& _rxDescriptor, sal_Int32& _out_rCommandType ) const + break; + case CommandType::QUERY: { - OSL_PRECOND( _rxDescriptor.is() && m_xSourceConnection.is(), "CopyTableWizard::impl_extractSourceObject_throw: illegal arguments!" ); + Reference< XQueriesSupplier > xSuppQueries( m_xSourceConnection.getTyped(), UNO_QUERY ); + if ( xSuppQueries.is() ) + xContainer.set( xSuppQueries->getQueries(), UNO_SET_THROW ); + } + break; + default: + throw IllegalArgumentException( + String( ModuleRes( STR_CTW_ONLY_TABLES_AND_QUERIES_SUPPORT ) ), + *const_cast< CopyTableWizard* >( this ), + 1 + ); + } - impl_checkForUnsupportedSettings_throw( _rxDescriptor ); + if ( xContainer.is() ) + { + pSourceObject.reset( new ObjectCopySource( m_xSourceConnection, + Reference< XPropertySet >( xContainer->getByName( sCommand ), UNO_QUERY_THROW ) ) ); + } + else + { + // our source connection is an SDBC level connection only, not a SDBCX level one + // Which means it cannot provide the to-be-copied object as component. - Reference< XPropertySetInfo > xPSI( _rxDescriptor->getPropertySetInfo(), UNO_SET_THROW ); - if ( !xPSI->hasPropertyByName( PROPERTY_COMMAND ) - || !xPSI->hasPropertyByName( PROPERTY_COMMAND_TYPE ) - ) + if ( _out_rCommandType == CommandType::QUERY ) + // we cannot copy a query if the connection cannot provide it ... throw IllegalArgumentException( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Expecting a table or query specification." ) ), + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "To copy a query, your connection must be able to provide queries." ) ), + // TODO: resource *const_cast< CopyTableWizard* >( this ), 1 ); + pSourceObject.reset( new NamedTableCopySource( m_xSourceConnection, sCommand ) ); + } - ::rtl::OUString sCommand; - _out_rCommandType = CommandType::COMMAND; - OSL_VERIFY( _rxDescriptor->getPropertyValue( PROPERTY_COMMAND ) >>= sCommand ); - OSL_VERIFY( _rxDescriptor->getPropertyValue( PROPERTY_COMMAND_TYPE ) >>= _out_rCommandType ); + return pSourceObject; +} - ::std::auto_ptr< ICopyTableSourceObject > pSourceObject; - Reference< XNameAccess > xContainer; - switch ( _out_rCommandType ) - { - case CommandType::TABLE: - { - Reference< XTablesSupplier > xSuppTables( m_xSourceConnection.getTyped(), UNO_QUERY ); - if ( xSuppTables.is() ) - xContainer.set( xSuppTables->getTables(), UNO_SET_THROW ); - } +//------------------------------------------------------------------------- +SharedConnection CopyTableWizard::impl_extractConnection_throw( const Reference< XPropertySet >& _rxDataSourceDescriptor, + InteractionHandler& _out_rxDocInteractionHandler ) const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_extractConnection_throw" ); + SharedConnection xConnection; + + OSL_PRECOND( _rxDataSourceDescriptor.is(), "CopyTableWizard::impl_extractConnection_throw: no descriptor!" ); + if ( !_rxDataSourceDescriptor.is() ) + return xConnection; + + InteractionHandler xInteractionHandler; + + do + { + Reference< XPropertySetInfo > xPSI( _rxDataSourceDescriptor->getPropertySetInfo(), UNO_SET_THROW ); + + // if there's an ActiveConnection, use it + if ( xPSI->hasPropertyByName( PROPERTY_ACTIVE_CONNECTION ) ) + { + Reference< XConnection > xPure; + OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_ACTIVE_CONNECTION ) >>= xPure ); + xConnection.reset( xPure, SharedConnection::NoTakeOwnership ); + } + if ( xConnection.is() ) + { + xInteractionHandler = lcl_getInteractionHandler_throw( xConnection.getTyped(), m_xInteractionHandler ); + OSL_POSTCOND( xInteractionHandler.is(), "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" ); break; - case CommandType::QUERY: + } + + // there could be a DataSourceName or a DatabaseLocation, describing the css.sdb.DataSource + ::rtl::OUString sDataSource, sDatabaseLocation; + if ( xPSI->hasPropertyByName( PROPERTY_DATASOURCENAME ) ) + OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATASOURCENAME ) >>= sDataSource ); + if ( xPSI->hasPropertyByName( PROPERTY_DATABASE_LOCATION ) ) + OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATABASE_LOCATION ) >>= sDatabaseLocation ); + + // need a DatabaseContext for loading the data source + Reference< XNameAccess > xDatabaseContext( m_aContext.createComponent( "com.sun.star.sdb.DatabaseContext" ), UNO_QUERY_THROW ); + Reference< XDataSource > xDataSource; + if ( sDataSource.getLength() ) + xDataSource.set( xDatabaseContext->getByName( sDataSource ), UNO_QUERY_THROW ); + if ( !xDataSource.is() && sDatabaseLocation.getLength() ) + xDataSource.set( xDatabaseContext->getByName( sDatabaseLocation ), UNO_QUERY_THROW ); + + if ( xDataSource.is() ) + { + // first, try connecting with completion + xInteractionHandler = lcl_getInteractionHandler_throw( xDataSource, m_xInteractionHandler ); + OSL_POSTCOND( xInteractionHandler.is(), "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" ); + if ( xInteractionHandler.is() ) { - Reference< XQueriesSupplier > xSuppQueries( m_xSourceConnection.getTyped(), UNO_QUERY ); - if ( xSuppQueries.is() ) - xContainer.set( xSuppQueries->getQueries(), UNO_SET_THROW ); - } - break; - default: - throw IllegalArgumentException( - String( ModuleRes( STR_CTW_ONLY_TABLES_AND_QUERIES_SUPPORT ) ), - *const_cast< CopyTableWizard* >( this ), - 1 - ); + Reference< XCompletedConnection > xInteractiveConnection( xDataSource, UNO_QUERY ); + if ( xInteractiveConnection.is() ) + xConnection.reset( xInteractiveConnection->connectWithCompletion( xInteractionHandler ), SharedConnection::TakeOwnership ); } - if ( xContainer.is() ) + // interactively connecting was not successful or possible -> connect without interaction + if ( !xConnection.is() ) { - pSourceObject.reset( new ObjectCopySource( m_xSourceConnection, - Reference< XPropertySet >( xContainer->getByName( sCommand ), UNO_QUERY_THROW ) ) ); + xConnection.reset( xDataSource->getConnection( ::rtl::OUString(), ::rtl::OUString() ), SharedConnection::TakeOwnership ); } - else - { - // our source connection is an SDBC level connection only, not a SDBCX level one - // Which means it cannot provide the to-be-copied object as component. + } - if ( _out_rCommandType == CommandType::QUERY ) - // we cannot copy a query if the connection cannot provide it ... - throw IllegalArgumentException( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "To copy a query, your connection must be able to provide queries." ) ), - // TODO: resource - *const_cast< CopyTableWizard* >( this ), - 1 - ); - pSourceObject.reset( new NamedTableCopySource( m_xSourceConnection, sCommand ) ); - } + if ( xConnection.is() ) + break; - return pSourceObject; + // finally, there could be a ConnectionResource/ConnectionInfo + ::rtl::OUString sConnectionResource; + Sequence< PropertyValue > aConnectionInfo; + if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_RESOURCE ) ) + OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_RESOURCE ) >>= sConnectionResource ); + if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_INFO ) ) + OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_INFO ) >>= aConnectionInfo ); + + Reference< XDriverManager > xDriverManager; + xDriverManager.set( m_aContext.createComponent( "com.sun.star.sdbc.ConnectionPool" ), UNO_QUERY ); + if ( !xDriverManager.is() ) + // no connection pool installed + xDriverManager.set( m_aContext.createComponent( "com.sun.star.sdbc.DriverManager" ), UNO_QUERY_THROW ); + + if ( aConnectionInfo.getLength() ) + xConnection.set( xDriverManager->getConnectionWithInfo( sConnectionResource, aConnectionInfo ), UNO_SET_THROW ); + else + xConnection.set( xDriverManager->getConnection( sConnectionResource ), UNO_SET_THROW ); } + while ( false ); + + if ( xInteractionHandler != m_xInteractionHandler ) + _out_rxDocInteractionHandler = xInteractionHandler; + + return xConnection; +} + +//------------------------------------------------------------------------- +::utl::SharedUNOComponent< XPreparedStatement > CopyTableWizard::impl_createSourceStatement_throw() const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_createSourceStatement_throw" ); + OSL_PRECOND( m_xSourceConnection.is(), "CopyTableWizard::impl_createSourceStatement_throw: illegal call!" ); + if ( !m_xSourceConnection.is() ) + throw RuntimeException( ::rtl::OUString(), *const_cast< CopyTableWizard* >( this ) ); - //------------------------------------------------------------------------- - SharedConnection CopyTableWizard::impl_extractConnection_throw( const Reference< XPropertySet >& _rxDataSourceDescriptor, - InteractionHandler& _out_rxDocInteractionHandler ) const + ::utl::SharedUNOComponent< XPreparedStatement > xStatement; + switch ( m_nCommandType ) { - SharedConnection xConnection; + case CommandType::TABLE: + xStatement.set( m_pSourceObject->getPreparedSelectStatement(), UNO_SET_THROW ); + break; - OSL_PRECOND( _rxDataSourceDescriptor.is(), "CopyTableWizard::impl_extractConnection_throw: no descriptor!" ); - if ( !_rxDataSourceDescriptor.is() ) - return xConnection; + case CommandType::QUERY: + { + ::rtl::OUString sQueryCommand( m_pSourceObject->getSelectStatement() ); + xStatement.set( m_pSourceObject->getPreparedSelectStatement(), UNO_SET_THROW ); - InteractionHandler xInteractionHandler; + // check whether we have to fill in parameter values + // create and fill a composer - do - { - Reference< XPropertySetInfo > xPSI( _rxDataSourceDescriptor->getPropertySetInfo(), UNO_SET_THROW ); + Reference< XMultiServiceFactory > xFactory( m_xSourceConnection, UNO_QUERY ); + ::utl::SharedUNOComponent< XSingleSelectQueryComposer > xComposer; + if ( xFactory.is() ) + // note: connections below the sdb-level are allowed to not support the XMultiServiceFactory interface + xComposer.set( xFactory->createInstance( SERVICE_NAME_SINGLESELECTQUERYCOMPOSER ), UNO_QUERY ); - // if there's an ActiveConnection, use it - if ( xPSI->hasPropertyByName( PROPERTY_ACTIVE_CONNECTION ) ) + if ( xComposer.is() ) { - Reference< XConnection > xPure; - OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_ACTIVE_CONNECTION ) >>= xPure ); - xConnection.reset( xPure, SharedConnection::NoTakeOwnership ); + xComposer->setQuery( sQueryCommand ); + + Reference< XParameters > xStatementParams( xStatement, UNO_QUERY ); + OSL_ENSURE( xStatementParams.is(), "CopyTableWizard::impl_createSourceStatement_throw: no access to the statement's parameters!" ); + // the statement should be a css.sdbc.PreparedStatement (this is what + // we created), and a prepared statement is required to support XParameters + if ( xStatementParams.is() ) + { + OSL_ENSURE( m_xInteractionHandler.is(), + "CopyTableWizard::impl_createSourceStatement_throw: no interaction handler for the parameters request!" ); + // we should always have an interaction handler - as last fallback, we create an own one in ::initialize + + if ( m_xInteractionHandler.is() ) + ::dbtools::askForParameters( xComposer, xStatementParams, m_xSourceConnection, m_xInteractionHandler ); + } } - if ( xConnection.is() ) + } + break; + + default: + // this should not have survived initialization phase + throw RuntimeException( ::rtl::OUString(), *const_cast< CopyTableWizard* >( this ) ); + } + + return xStatement; +} + +//------------------------------------------------------------------------- +namespace +{ + class ValueTransfer + { + public: + ValueTransfer( const sal_Int32& _rSourcePos, const sal_Int32& _rDestPos, const ::std::vector< sal_Int32 >& _rColTypes, + const Reference< XRow >& _rxSource, const Reference< XParameters >& _rxDest ) + :m_rSourcePos( _rSourcePos ) + ,m_rDestPos( _rDestPos ) + ,m_rColTypes( _rColTypes ) + ,m_xSource( _rxSource ) + ,m_xDest( _rxDest ) { - xInteractionHandler = lcl_getInteractionHandler_throw( xConnection.getTyped(), m_xInteractionHandler ); - OSL_POSTCOND( xInteractionHandler.is(), "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" ); - break; } - // there could be a DataSourceName or a DatabaseLocation, describing the css.sdb.DataSource - ::rtl::OUString sDataSource, sDatabaseLocation; - if ( xPSI->hasPropertyByName( PROPERTY_DATASOURCENAME ) ) - OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATASOURCENAME ) >>= sDataSource ); - if ( xPSI->hasPropertyByName( PROPERTY_DATABASE_LOCATION ) ) - OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATABASE_LOCATION ) >>= sDatabaseLocation ); + template< typename VALUE_TYPE > + void transferValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ), + void (SAL_CALL XParameters::*_pSetter)( sal_Int32, VALUE_TYPE ) ) + { + VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) ); + if ( m_xSource->wasNull() ) + m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] ); + else + (m_xDest.get()->*_pSetter)( m_rDestPos, value ); + } - // need a DatabaseContext for loading the data source - Reference< XNameAccess > xDatabaseContext( m_aContext.createComponent( "com.sun.star.sdb.DatabaseContext" ), UNO_QUERY_THROW ); - Reference< XDataSource > xDataSource; - if ( sDataSource.getLength() ) - xDataSource.set( xDatabaseContext->getByName( sDataSource ), UNO_QUERY_THROW ); - if ( !xDataSource.is() && sDatabaseLocation.getLength() ) - xDataSource.set( xDatabaseContext->getByName( sDatabaseLocation ), UNO_QUERY_THROW ); + template< typename VALUE_TYPE > + void transferComplexValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ), + void (SAL_CALL XParameters::*_pSetter)( sal_Int32, const VALUE_TYPE& ) ) + { + VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) ); + if ( m_xSource->wasNull() ) + m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] ); + else + (m_xDest.get()->*_pSetter)( m_rDestPos, value ); + } - if ( xDataSource.is() ) - { - // first, try connecting with completion - xInteractionHandler = lcl_getInteractionHandler_throw( xDataSource, m_xInteractionHandler ); - OSL_POSTCOND( xInteractionHandler.is(), "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" ); - if ( xInteractionHandler.is() ) - { - Reference< XCompletedConnection > xInteractiveConnection( xDataSource, UNO_QUERY ); - if ( xInteractiveConnection.is() ) - xConnection.reset( xInteractiveConnection->connectWithCompletion( xInteractionHandler ), SharedConnection::TakeOwnership ); - } + private: + const sal_Int32& m_rSourcePos; + const sal_Int32& m_rDestPos; + const ::std::vector< sal_Int32 > m_rColTypes; + const Reference< XRow > m_xSource; + const Reference< XParameters > m_xDest; + }; +} - // interactively connecting was not successful or possible -> connect without interaction - if ( !xConnection.is() ) +//------------------------------------------------------------------------- +bool CopyTableWizard::impl_processCopyError_nothrow( const CopyTableRowEvent& _rEvent ) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_processCopyError_nothrow" ); + Reference< XCopyTableListener > xListener; + try + { + ::cppu::OInterfaceIteratorHelper aIter( m_aCopyTableListeners ); + while ( aIter.hasMoreElements() ) + { + xListener.set( aIter.next(), UNO_QUERY_THROW ); + sal_Int16 nListenerChoice = xListener->copyRowError( _rEvent ); + switch ( nListenerChoice ) { - xConnection.reset( xDataSource->getConnection( ::rtl::OUString(), ::rtl::OUString() ), SharedConnection::TakeOwnership ); + case CopyTableContinuation::Proceed: return true; // continue copying + case CopyTableContinuation::CallNextHandler: continue; // continue the loop, ask next listener + case CopyTableContinuation::Cancel: return false; // cancel copying + case CopyTableContinuation::AskUser: break; // stop asking the listeners, ask the user + + default: + OSL_ENSURE( false, "CopyTableWizard::impl_processCopyError_nothrow: invalid listener response!" ); + // ask next listener + continue; } } + } + catch( const Exception& ) + { + DBG_UNHANDLED_EXCEPTION(); + } - if ( xConnection.is() ) - break; + // no listener felt responsible for the error, or a listener told to ask the user + + try + { + SQLContext aError; + aError.Context = *this; + aError.Message = String( ModuleRes( STR_ERROR_OCCURED_WHILE_COPYING ) ); - // finally, there could be a ConnectionResource/ConnectionInfo - ::rtl::OUString sConnectionResource; - Sequence< PropertyValue > aConnectionInfo; - if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_RESOURCE ) ) - OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_RESOURCE ) >>= sConnectionResource ); - if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_INFO ) ) - OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_INFO ) >>= aConnectionInfo ); - - Reference< XDriverManager > xDriverManager; - xDriverManager.set( m_aContext.createComponent( "com.sun.star.sdbc.ConnectionPool" ), UNO_QUERY ); - if ( !xDriverManager.is() ) - // no connection pool installed - xDriverManager.set( m_aContext.createComponent( "com.sun.star.sdbc.DriverManager" ), UNO_QUERY_THROW ); - - if ( aConnectionInfo.getLength() ) - xConnection.set( xDriverManager->getConnectionWithInfo( sConnectionResource, aConnectionInfo ), UNO_SET_THROW ); + ::dbtools::SQLExceptionInfo aInfo( _rEvent.Error ); + if ( aInfo.isValid() ) + aError.NextException = _rEvent.Error; else - xConnection.set( xDriverManager->getConnection( sConnectionResource ), UNO_SET_THROW ); + { + // a non-SQL exception happend + Exception aException; + OSL_VERIFY( _rEvent.Error >>= aException ); + SQLContext aContext; + aContext.Context = aException.Context; + aContext.Message = aException.Message; + aContext.Details = _rEvent.Error.getValueTypeName(); + aError.NextException <<= aContext; } - while ( false ); - if ( xInteractionHandler != m_xInteractionHandler ) - _out_rxDocInteractionHandler = xInteractionHandler; + ::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( makeAny( aError ) ) ); - return xConnection; - } + ::rtl::Reference< ::comphelper::OInteractionApprove > xYes = new ::comphelper::OInteractionApprove; + xRequest->addContinuation( xYes.get() ); + xRequest->addContinuation( new ::comphelper::OInteractionDisapprove ); - //------------------------------------------------------------------------- - ::utl::SharedUNOComponent< XPreparedStatement > CopyTableWizard::impl_createSourceStatement_throw() const + OSL_ENSURE( m_xInteractionHandler.is(), + "CopyTableWizard::impl_processCopyError_nothrow: we always should have an interaction handler!" ); + if ( m_xInteractionHandler.is() ) + m_xInteractionHandler->handle( xRequest.get() ); + + if ( xYes->wasSelected() ) + // continue copying + return true; + } + catch( const Exception& ) { - OSL_PRECOND( m_xSourceConnection.is(), "CopyTableWizard::impl_createSourceStatement_throw: illegal call!" ); - if ( !m_xSourceConnection.is() ) - throw RuntimeException( ::rtl::OUString(), *const_cast< CopyTableWizard* >( this ) ); + DBG_UNHANDLED_EXCEPTION(); + } - ::utl::SharedUNOComponent< XPreparedStatement > xStatement; - switch ( m_nCommandType ) - { - case CommandType::TABLE: - xStatement.set( m_pSourceObject->getPreparedSelectStatement(), UNO_SET_THROW ); - break; + // cancel copying + return false; +} - case CommandType::QUERY: - { - ::rtl::OUString sQueryCommand( m_pSourceObject->getSelectStatement() ); - xStatement.set( m_pSourceObject->getPreparedSelectStatement(), UNO_SET_THROW ); +//------------------------------------------------------------------------- +void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSourceResultSet, + const Reference< XPropertySet >& _rxDestTable ) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_copyRows_throw" ); + OSL_PRECOND( m_xDestConnection.is(), "CopyTableWizard::impl_copyRows_throw: illegal call!" ); + if ( !m_xDestConnection.is() ) + throw RuntimeException( ::rtl::OUString(), *this ); - // check whether we have to fill in parameter values - // create and fill a composer + Reference< XDatabaseMetaData > xDestMetaData( m_xDestConnection->getMetaData(), UNO_QUERY_THROW ); - Reference< XMultiServiceFactory > xFactory( m_xSourceConnection, UNO_QUERY ); - ::utl::SharedUNOComponent< XSingleSelectQueryComposer > xComposer; - if ( xFactory.is() ) - // note: connections below the sdb-level are allowed to not support the XMultiServiceFactory interface - xComposer.set( xFactory->createInstance( SERVICE_NAME_SINGLESELECTQUERYCOMPOSER ), UNO_QUERY ); + const OCopyTableWizard& rWizard = impl_getDialog_throw(); + ODatabaseExport::TPositions aColumnMapping = rWizard.GetColumnPositions(); + bool bAutoIncrement = rWizard.shouldCreatePrimaryKey(); - if ( xComposer.is() ) - { - xComposer->setQuery( sQueryCommand ); + Reference< XRow > xRow ( _rxSourceResultSet, UNO_QUERY_THROW ); + Reference< XRowLocate > xRowLocate ( _rxSourceResultSet, UNO_QUERY ); - Reference< XParameters > xStatementParams( xStatement, UNO_QUERY ); - OSL_ENSURE( xStatementParams.is(), "CopyTableWizard::impl_createSourceStatement_throw: no access to the statement's parameters!" ); - // the statement should be a css.sdbc.PreparedStatement (this is what - // we created), and a prepared statement is required to support XParameters - if ( xStatementParams.is() ) - { - OSL_ENSURE( m_xInteractionHandler.is(), - "CopyTableWizard::impl_createSourceStatement_throw: no interaction handler for the parameters request!" ); - // we should always have an interaction handler - as last fallback, we create an own one in ::initialize + bool bSelectedRecordsOnly = m_aSourceSelection.getLength() > 0; + if ( bSelectedRecordsOnly && m_bSourceSelectionBookmarks && !xRowLocate.is() ) + { + ::dbtools::throwGenericSQLException( + String( ModuleRes( STR_CTW_COPY_SOURCE_NEEDS_BOOKMARKS ) ), + *this + ); + } - if ( m_xInteractionHandler.is() ) - ::dbtools::askForParameters( xComposer, xStatementParams, m_xSourceConnection, m_xInteractionHandler ); - } - } - } - break; + Reference< XResultSetMetaDataSupplier > xSuppResMeta( _rxSourceResultSet, UNO_QUERY_THROW ); + Reference< XResultSetMetaData> xMeta( xSuppResMeta->getMetaData() ); - default: - // this should not have survived initialization phase - throw RuntimeException( ::rtl::OUString(), *const_cast< CopyTableWizard* >( this ) ); - } + // we need a vector which all types + sal_Int32 nCount = xMeta->getColumnCount(); + ::std::vector< sal_Int32 > aSourceColTypes; + aSourceColTypes.reserve( nCount + 1 ); + aSourceColTypes.push_back( -1 ); // just to avoid a everytime i-1 call - return xStatement; - } + for ( sal_Int32 k=1; k <= nCount; ++k ) + aSourceColTypes.push_back( xMeta->getColumnType( k ) ); - //------------------------------------------------------------------------- - namespace - { - class ValueTransfer - { - public: - ValueTransfer( const sal_Int32& _rSourcePos, const sal_Int32& _rDestPos, const ::std::vector< sal_Int32 >& _rColTypes, - const Reference< XRow >& _rxSource, const Reference< XParameters >& _rxDest ) - :m_rSourcePos( _rSourcePos ) - ,m_rDestPos( _rDestPos ) - ,m_rColTypes( _rColTypes ) - ,m_xSource( _rxSource ) - ,m_xDest( _rxDest ) - { - } + // now create, fill and execute the prepared statement + Reference< XPreparedStatement > xStatement( ODatabaseExport::createPreparedStatment( xDestMetaData, _rxDestTable, aColumnMapping ), UNO_SET_THROW ); + Reference< XParameters > xStatementParams( xStatement, UNO_QUERY_THROW ); - template< typename VALUE_TYPE > - void transferValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ), - void (SAL_CALL XParameters::*_pSetter)( sal_Int32, VALUE_TYPE ) ) - { - VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) ); - if ( m_xSource->wasNull() ) - m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] ); - else - (m_xDest.get()->*_pSetter)( m_rDestPos, value ); - } + sal_Int32 nRowCount = 0; + const Any* pSelectedRow = m_aSourceSelection.getConstArray(); + const Any* pSelEnd = pSelectedRow + m_aSourceSelection.getLength(); + bool bContinue = false; - template< typename VALUE_TYPE > - void transferComplexValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ), - void (SAL_CALL XParameters::*_pSetter)( sal_Int32, const VALUE_TYPE& ) ) - { - VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) ); - if ( m_xSource->wasNull() ) - m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] ); - else - (m_xDest.get()->*_pSetter)( m_rDestPos, value ); - } + CopyTableRowEvent aCopyEvent; + aCopyEvent.Source = *this; + aCopyEvent.SourceData = _rxSourceResultSet; - private: - const sal_Int32& m_rSourcePos; - const sal_Int32& m_rDestPos; - const ::std::vector< sal_Int32 > m_rColTypes; - const Reference< XRow > m_xSource; - const Reference< XParameters > m_xDest; - }; - } - - //------------------------------------------------------------------------- - bool CopyTableWizard::impl_processCopyError_nothrow( const CopyTableRowEvent& _rEvent ) + do // loop as long as there are more rows or the selection ends { - Reference< XCopyTableListener > xListener; - try + bContinue = false; + if ( bSelectedRecordsOnly ) { - ::cppu::OInterfaceIteratorHelper aIter( m_aCopyTableListeners ); - while ( aIter.hasMoreElements() ) + if ( pSelectedRow != pSelEnd ) { - xListener.set( aIter.next(), UNO_QUERY_THROW ); - sal_Int16 nListenerChoice = xListener->copyRowError( _rEvent ); - switch ( nListenerChoice ) + if ( m_bSourceSelectionBookmarks ) { - case CopyTableContinuation::Proceed: return true; // continue copying - case CopyTableContinuation::CallNextHandler: continue; // continue the loop, ask next listener - case CopyTableContinuation::Cancel: return false; // cancel copying - case CopyTableContinuation::AskUser: break; // stop asking the listeners, ask the user - - default: - OSL_ENSURE( false, "CopyTableWizard::impl_processCopyError_nothrow: invalid listener response!" ); - // ask next listener - continue; + xRowLocate->moveToBookmark( *pSelectedRow ); } + else + { + sal_Int32 nPos = 0; + OSL_VERIFY( *pSelectedRow >>= nPos ); + bContinue = _rxSourceResultSet->absolute( nPos ); + } + ++pSelectedRow; } } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } + else + bContinue = _rxSourceResultSet->next(); - // no listener felt responsible for the error, or a listener told to ask the user + if ( !bContinue ) + break; + ++nRowCount; + sal_Bool bInsertAutoIncrement = sal_True; + ODatabaseExport::TPositions::const_iterator aPosIter = aColumnMapping.begin(); + + aCopyEvent.Error.clear(); try { - SQLContext aError; - aError.Context = *this; - aError.Message = String( ModuleRes( STR_ERROR_OCCURED_WHILE_COPYING ) ); - - ::dbtools::SQLExceptionInfo aInfo( _rEvent.Error ); - if ( aInfo.isValid() ) - aError.NextException = _rEvent.Error; - else - { - // a non-SQL exception happend - Exception aException; - OSL_VERIFY( _rEvent.Error >>= aException ); - SQLContext aContext; - aContext.Context = aException.Context; - aContext.Message = aException.Message; - aContext.Details = _rEvent.Error.getValueTypeName(); - aError.NextException <<= aContext; - } + // notify listeners + m_aCopyTableListeners.notifyEach( &XCopyTableListener::copyingRow, aCopyEvent ); - ::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( makeAny( aError ) ) ); + sal_Int32 nDestColumn( 0 ); + sal_Int32 nSourceColumn( 1 ); + ValueTransfer aTransfer( nSourceColumn, nDestColumn, aSourceColTypes, xRow, xStatementParams ); - ::rtl::Reference< ::comphelper::OInteractionApprove > xYes = new ::comphelper::OInteractionApprove; - xRequest->addContinuation( xYes.get() ); - xRequest->addContinuation( new ::comphelper::OInteractionDisapprove ); - - OSL_ENSURE( m_xInteractionHandler.is(), - "CopyTableWizard::impl_processCopyError_nothrow: we always should have an interaction handler!" ); - if ( m_xInteractionHandler.is() ) - m_xInteractionHandler->handle( xRequest.get() ); - - if ( xYes->wasSelected() ) - // continue copying - return true; - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - // cancel copying - return false; - } - - //------------------------------------------------------------------------- - void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSourceResultSet, - const Reference< XPropertySet >& _rxDestTable ) - { - OSL_PRECOND( m_xDestConnection.is(), "CopyTableWizard::impl_copyRows_throw: illegal call!" ); - if ( !m_xDestConnection.is() ) - throw RuntimeException( ::rtl::OUString(), *this ); - - Reference< XDatabaseMetaData > xDestMetaData( m_xDestConnection->getMetaData(), UNO_QUERY_THROW ); + for ( ; aPosIter != aColumnMapping.end(); ++aPosIter ) + { + nDestColumn = aPosIter->first; + if ( nDestColumn == COLUMN_POSITION_NOT_FOUND ) + { + ++nSourceColumn; + // otherwise we don't get the correct value when only the 2nd source column was selected + continue; + } - const OCopyTableWizard& rWizard = impl_getDialog_throw(); - ODatabaseExport::TPositions aColumnMapping = rWizard.GetColumnPositions(); - bool bAutoIncrement = rWizard.shouldCreatePrimaryKey(); + if ( bAutoIncrement && bInsertAutoIncrement ) + { + xStatementParams->setInt( 1, nRowCount ); + bInsertAutoIncrement = sal_False; + continue; + } - Reference< XRow > xRow ( _rxSourceResultSet, UNO_QUERY_THROW ); - Reference< XRowLocate > xRowLocate ( _rxSourceResultSet, UNO_QUERY ); + if ( ( nSourceColumn < 1 ) || ( nSourceColumn >= (sal_Int32)aSourceColTypes.size() ) ) + { // ( we have to check here against 1 because the parameters are 1 based) + ::dbtools::throwSQLException( + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Internal error: invalid column type index." ) ), + ::dbtools::SQL_INVALID_DESCRIPTOR_INDEX, + *this + ); + } - bool bSelectedRecordsOnly = m_aSourceSelection.getLength() > 0; - if ( bSelectedRecordsOnly && m_bSourceSelectionBookmarks && !xRowLocate.is() ) - { - ::dbtools::throwGenericSQLException( - String( ModuleRes( STR_CTW_COPY_SOURCE_NEEDS_BOOKMARKS ) ), - *this - ); - } + switch ( aSourceColTypes[ nSourceColumn ] ) + { + case DataType::DOUBLE: + case DataType::REAL: + aTransfer.transferValue( &XRow::getDouble, &XParameters::setDouble ); + break; - Reference< XResultSetMetaDataSupplier > xSuppResMeta( _rxSourceResultSet, UNO_QUERY_THROW ); - Reference< XResultSetMetaData> xMeta( xSuppResMeta->getMetaData() ); + case DataType::CHAR: + case DataType::VARCHAR: + case DataType::LONGVARCHAR: + case DataType::DECIMAL: + case DataType::NUMERIC: + aTransfer.transferComplexValue( &XRow::getString, &XParameters::setString ); + break; - // we need a vector which all types - sal_Int32 nCount = xMeta->getColumnCount(); - ::std::vector< sal_Int32 > aSourceColTypes; - aSourceColTypes.reserve( nCount + 1 ); - aSourceColTypes.push_back( -1 ); // just to avoid a everytime i-1 call + case DataType::BIGINT: + aTransfer.transferValue( &XRow::getLong, &XParameters::setLong ); + break; - for ( sal_Int32 k=1; k <= nCount; ++k ) - aSourceColTypes.push_back( xMeta->getColumnType( k ) ); + case DataType::FLOAT: + aTransfer.transferValue( &XRow::getFloat, &XParameters::setFloat ); + break; - // now create, fill and execute the prepared statement - Reference< XPreparedStatement > xStatement( ODatabaseExport::createPreparedStatment( xDestMetaData, _rxDestTable, aColumnMapping ), UNO_SET_THROW ); - Reference< XParameters > xStatementParams( xStatement, UNO_QUERY_THROW ); + case DataType::LONGVARBINARY: + case DataType::BINARY: + case DataType::VARBINARY: + aTransfer.transferComplexValue( &XRow::getBytes, &XParameters::setBytes ); + break; - sal_Int32 nRowCount = 0; - const Any* pSelectedRow = m_aSourceSelection.getConstArray(); - const Any* pSelEnd = pSelectedRow + m_aSourceSelection.getLength(); - bool bContinue = false; + case DataType::DATE: + aTransfer.transferComplexValue( &XRow::getDate, &XParameters::setDate ); + break; - CopyTableRowEvent aCopyEvent; - aCopyEvent.Source = *this; - aCopyEvent.SourceData = _rxSourceResultSet; + case DataType::TIME: + aTransfer.transferComplexValue( &XRow::getTime, &XParameters::setTime ); + break; - do // loop as long as there are more rows or the selection ends - { - bContinue = false; - if ( bSelectedRecordsOnly ) - { - if ( pSelectedRow != pSelEnd ) - { - if ( m_bSourceSelectionBookmarks ) - { - xRowLocate->moveToBookmark( *pSelectedRow ); - } - else - { - sal_Int32 nPos = 0; - OSL_VERIFY( *pSelectedRow >>= nPos ); - bContinue = _rxSourceResultSet->absolute( nPos ); - } - ++pSelectedRow; - } - } - else - bContinue = _rxSourceResultSet->next(); + case DataType::TIMESTAMP: + aTransfer.transferComplexValue( &XRow::getTimestamp, &XParameters::setTimestamp ); + break; - if ( !bContinue ) - break; + case DataType::BIT: + case DataType::BOOLEAN: + aTransfer.transferValue( &XRow::getBoolean, &XParameters::setBoolean ); + break; - ++nRowCount; - sal_Bool bInsertAutoIncrement = sal_True; - ODatabaseExport::TPositions::const_iterator aPosIter = aColumnMapping.begin(); + case DataType::TINYINT: + aTransfer.transferValue( &XRow::getByte, &XParameters::setByte ); + break; - aCopyEvent.Error.clear(); - try - { - // notify listeners - m_aCopyTableListeners.notifyEach( &XCopyTableListener::copyingRow, aCopyEvent ); + case DataType::SMALLINT: + aTransfer.transferValue( &XRow::getShort, &XParameters::setShort ); + break; - sal_Int32 nDestColumn( 0 ); - sal_Int32 nSourceColumn( 1 ); - ValueTransfer aTransfer( nSourceColumn, nDestColumn, aSourceColTypes, xRow, xStatementParams ); + case DataType::INTEGER: + aTransfer.transferValue( &XRow::getInt, &XParameters::setInt ); + break; - for ( ; aPosIter != aColumnMapping.end(); ++aPosIter ) - { - nDestColumn = aPosIter->first; - if ( nDestColumn == COLUMN_POSITION_NOT_FOUND ) + default: { - ++nSourceColumn; - // otherwise we don't get the correct value when only the 2nd source column was selected - continue; - } + ::rtl::OUString aMessage( String( ModuleRes( STR_CTW_UNSUPPORTED_COLUMN_TYPE ) ) ); - if ( bAutoIncrement && bInsertAutoIncrement ) - { - xStatementParams->setInt( 1, nRowCount ); - bInsertAutoIncrement = sal_False; - continue; - } + aMessage.replaceAt( aMessage.indexOfAsciiL( "$type$", 6 ), 6, ::rtl::OUString::valueOf( aSourceColTypes[ nSourceColumn ] ) ); + aMessage.replaceAt( aMessage.indexOfAsciiL( "$pos$", 5 ), 5, ::rtl::OUString::valueOf( nSourceColumn ) ); - if ( ( nSourceColumn < 1 ) || ( nSourceColumn >= (sal_Int32)aSourceColTypes.size() ) ) - { // ( we have to check here against 1 because the parameters are 1 based) ::dbtools::throwSQLException( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Internal error: invalid column type index." ) ), - ::dbtools::SQL_INVALID_DESCRIPTOR_INDEX, + aMessage, + ::dbtools::SQL_INVALID_SQL_DATA_TYPE, *this ); } - - switch ( aSourceColTypes[ nSourceColumn ] ) - { - case DataType::DOUBLE: - case DataType::REAL: - aTransfer.transferValue( &XRow::getDouble, &XParameters::setDouble ); - break; - - case DataType::CHAR: - case DataType::VARCHAR: - case DataType::LONGVARCHAR: - case DataType::DECIMAL: - case DataType::NUMERIC: - aTransfer.transferComplexValue( &XRow::getString, &XParameters::setString ); - break; - - case DataType::BIGINT: - aTransfer.transferValue( &XRow::getLong, &XParameters::setLong ); - break; - - case DataType::FLOAT: - aTransfer.transferValue( &XRow::getFloat, &XParameters::setFloat ); - break; - - case DataType::LONGVARBINARY: - case DataType::BINARY: - case DataType::VARBINARY: - aTransfer.transferComplexValue( &XRow::getBytes, &XParameters::setBytes ); - break; - - case DataType::DATE: - aTransfer.transferComplexValue( &XRow::getDate, &XParameters::setDate ); - break; - - case DataType::TIME: - aTransfer.transferComplexValue( &XRow::getTime, &XParameters::setTime ); - break; - - case DataType::TIMESTAMP: - aTransfer.transferComplexValue( &XRow::getTimestamp, &XParameters::setTimestamp ); - break; - - case DataType::BIT: - case DataType::BOOLEAN: - aTransfer.transferValue( &XRow::getBoolean, &XParameters::setBoolean ); - break; - - case DataType::TINYINT: - aTransfer.transferValue( &XRow::getByte, &XParameters::setByte ); - break; - - case DataType::SMALLINT: - aTransfer.transferValue( &XRow::getShort, &XParameters::setShort ); - break; - - case DataType::INTEGER: - aTransfer.transferValue( &XRow::getInt, &XParameters::setInt ); - break; - - default: - { - ::rtl::OUString aMessage( String( ModuleRes( STR_CTW_UNSUPPORTED_COLUMN_TYPE ) ) ); - - aMessage.replaceAt( aMessage.indexOfAsciiL( "$type$", 6 ), 6, ::rtl::OUString::valueOf( aSourceColTypes[ nSourceColumn ] ) ); - aMessage.replaceAt( aMessage.indexOfAsciiL( "$pos$", 5 ), 5, ::rtl::OUString::valueOf( nSourceColumn ) ); - - ::dbtools::throwSQLException( - aMessage, - ::dbtools::SQL_INVALID_SQL_DATA_TYPE, - *this - ); - } - } - ++nSourceColumn; } - xStatement->executeUpdate(); - - // notify listeners - m_aCopyTableListeners.notifyEach( &XCopyTableListener::copiedRow, aCopyEvent ); - } - catch( const Exception& ) - { - aCopyEvent.Error = ::cppu::getCaughtException(); + ++nSourceColumn; } + xStatement->executeUpdate(); - if ( aCopyEvent.Error.hasValue() ) - bContinue = impl_processCopyError_nothrow( aCopyEvent ); + // notify listeners + m_aCopyTableListeners.notifyEach( &XCopyTableListener::copiedRow, aCopyEvent ); } - while( bContinue ); + catch( const Exception& ) + { + aCopyEvent.Error = ::cppu::getCaughtException(); + } + + if ( aCopyEvent.Error.hasValue() ) + bContinue = impl_processCopyError_nothrow( aCopyEvent ); } - //------------------------------------------------------------------------- - void CopyTableWizard::impl_doCopy_nothrow() + while( bContinue ); +} +//------------------------------------------------------------------------- +void CopyTableWizard::impl_doCopy_nothrow() +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::impl_doCopy_nothrow" ); + Any aError; + + try { - Any aError; + OCopyTableWizard& rWizard( impl_getDialog_throw() ); - try + WaitObject aWO( rWizard.GetParent() ); + Reference< XPropertySet > xTable; + + switch ( rWizard.getOperation() ) { - OCopyTableWizard& rWizard( impl_getDialog_throw() ); + case CopyTableOperation::CopyDefinitionOnly: + case CopyTableOperation::CopyDefinitionAndData: + { + xTable = rWizard.createTable(); - WaitObject aWO( rWizard.GetParent() ); - Reference< XPropertySet > xTable; + if( !xTable.is() ) + { + OSL_ENSURE( false, "CopyTableWizard::impl_doCopy_nothrow: createTable should throw here, shouldn't it?" ); + break; + } + + if( CopyTableOperation::CopyDefinitionOnly == rWizard.getOperation() ) + break; + } + // run through - switch ( rWizard.getOperation() ) + case CopyTableOperation::AppendData: { - case CopyTableOperation::CopyDefinitionOnly: - case CopyTableOperation::CopyDefinitionAndData: + + if ( !xTable.is() ) { xTable = rWizard.createTable(); - - if( !xTable.is() ) + if ( !xTable.is() ) { OSL_ENSURE( false, "CopyTableWizard::impl_doCopy_nothrow: createTable should throw here, shouldn't it?" ); break; } - - if( CopyTableOperation::CopyDefinitionOnly == rWizard.getOperation() ) - break; } - // run through - case CopyTableOperation::AppendData: + bool bServerCopy = CommandType::TABLE == m_nCommandType && m_xSourceConnection.getTyped() == m_xDestConnection.getTyped() && !m_aSourceSelection.getLength(); + try { - - if ( !xTable.is() ) + if ( bServerCopy ) { - xTable = rWizard.createTable(); - if ( !xTable.is() ) - { - OSL_ENSURE( false, "CopyTableWizard::impl_doCopy_nothrow: createTable should throw here, shouldn't it?" ); - break; - } + m_xDestConnection->createStatement()->executeUpdate( impl_getSelectStatement_nothrow(xTable) ); } + } + catch( const Exception& e ) + { + (void)e; + bServerCopy = false; + } + if ( !bServerCopy ) + { ::utl::SharedUNOComponent< XPreparedStatement > xStatement( impl_createSourceStatement_throw(), UNO_SET_THROW ); Reference< XResultSet > xSourceResultSet( xStatement->executeQuery() ); impl_copyRows_throw( xSourceResultSet, xTable ); } - break; - - case CopyTableOperation::CreateAsView: - rWizard.createView(); - break; - - default: - OSL_ENSURE( false, "CopyTableWizard::impl_doCopy_nothrow: What operation, please?" ); - break; } - } - catch( const Exception& ) - { - aError = ::cppu::getCaughtException(); + break; - // silence the error of the user cancelling the parameter's dialog - SQLException aSQLError; - if ( ( aError >>= aSQLError ) && ( aSQLError.ErrorCode == ::dbtools::ParameterInteractionCancelled ) ) - { - aError.clear(); - m_nOverrideExecutionResult = RET_CANCEL; - } + case CopyTableOperation::CreateAsView: + rWizard.createView(); + break; + + default: + OSL_ENSURE( false, "CopyTableWizard::impl_doCopy_nothrow: What operation, please?" ); + break; } + } + catch( const Exception& ) + { + aError = ::cppu::getCaughtException(); - if ( aError.hasValue() && m_xInteractionHandler.is() ) + // silence the error of the user cancelling the parameter's dialog + SQLException aSQLError; + if ( ( aError >>= aSQLError ) && ( aSQLError.ErrorCode == ::dbtools::ParameterInteractionCancelled ) ) { - try - { - ::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( aError ) ); - m_xInteractionHandler->handle( xRequest.get() ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } + aError.clear(); + m_nOverrideExecutionResult = RET_CANCEL; } } - //------------------------------------------------------------------------- - void SAL_CALL CopyTableWizard::initialize( const Sequence< Any >& _rArguments ) throw (Exception, RuntimeException) + if ( aError.hasValue() && m_xInteractionHandler.is() ) { - ::osl::MutexGuard aGuard( m_aMutex ); - if ( isInitialized() ) - throw AlreadyInitializedException( ::rtl::OUString(), *this ); - - sal_Int32 nArgCount( _rArguments.getLength() ); - if ( ( nArgCount != 2 ) && ( nArgCount != 3 ) ) - throw IllegalArgumentException( - String( ModuleRes( STR_CTW_ILLEGAL_PARAMETER_COUNT ) ), - *this, - 1 - ); - try { - if ( nArgCount == 3 ) - { // ->createWithInteractionHandler - if ( !( _rArguments[2] >>= m_xInteractionHandler ) ) - throw IllegalArgumentException( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The given interaction handler is invalid." ) ), - // TODO: resource - *this, - 3 - ); - } - if ( !m_xInteractionHandler.is() ) - m_xInteractionHandler.set( m_aContext.createComponent( "com.sun.star.sdb.InteractionHandler" ), UNO_QUERY_THROW ); - - InteractionHandler xSourceDocHandler; - Reference< XPropertySet > xSourceDescriptor( impl_ensureDataAccessDescriptor_throw( _rArguments, 0, m_xSourceConnection, xSourceDocHandler ) ); - m_pSourceObject = impl_extractSourceObject_throw( xSourceDescriptor, m_nCommandType ); - - InteractionHandler xDestDocHandler; - impl_ensureDataAccessDescriptor_throw( _rArguments, 1, m_xDestConnection, xDestDocHandler ); - - if ( xDestDocHandler.is() && !m_xInteractionHandler.is() ) - m_xInteractionHandler = xDestDocHandler; + ::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( aError ) ); + m_xInteractionHandler->handle( xRequest.get() ); } - catch( const RuntimeException& ) { throw; } - catch( const IllegalArgumentException& ) { throw; } - catch( const SQLException& ) { throw; } catch( const Exception& ) { - throw WrappedTargetException( - String( ModuleRes( STR_CTW_ERROR_DURING_INITIALIZATION ) ), - *this, - ::cppu::getCaughtException() - ); + DBG_UNHANDLED_EXCEPTION(); } } - - //------------------------------------------------------------------------- - ::cppu::IPropertyArrayHelper& CopyTableWizard::getInfoHelper() +} +// ----------------------------------------------------------------------------- +::rtl::OUString CopyTableWizard::impl_getSelectStatement_nothrow(const Reference< XPropertySet >& _xTable) +{ + const Reference<XColumnsSupplier> xDestColsSup(_xTable,UNO_QUERY_THROW); + const Sequence< ::rtl::OUString> aDestColumnNames = xDestColsSup->getColumns()->getElementNames(); + const Sequence< ::rtl::OUString > aColumnNames = m_pSourceObject->getColumnNames(); + const Reference< XDatabaseMetaData > xDestMetaData( m_xDestConnection->getMetaData(), UNO_QUERY_THROW ); + const ::rtl::OUString sQuote = xDestMetaData->getIdentifierQuoteString(); + ::rtl::OUStringBuffer sColumns; + // 1st check if the columns matching + const OCopyTableWizard& rWizard = impl_getDialog_throw(); + ODatabaseExport::TPositions aColumnMapping = rWizard.GetColumnPositions(); + ODatabaseExport::TPositions::const_iterator aPosIter = aColumnMapping.begin(); + for ( sal_Int32 i = 0; aPosIter != aColumnMapping.end() ; ++aPosIter,++i ) { - return *getArrayHelper(); - } + if ( COLUMN_POSITION_NOT_FOUND != aPosIter->second ) + { + if ( sColumns.getLength() ) + sColumns.appendAscii(","); + sColumns.append(sQuote); + sColumns.append(aDestColumnNames[aPosIter->second - 1]); + sColumns.append(sQuote); + } + } // for ( ; aPosIter != aColumnMapping.end() ; ++aPosIter ) + ::rtl::OUStringBuffer sSql; + sSql.appendAscii("INSERT INTO "); + const ::rtl::OUString sComposedTableName = ::dbtools::composeTableName( xDestMetaData, _xTable, ::dbtools::eInDataManipulation, false, false, true ); + sSql.append( sComposedTableName ); + sSql.appendAscii(" ( "); + sSql.append( sColumns ); + sSql.appendAscii(" ) ( "); + sSql.append( m_pSourceObject->getSelectStatement()); + sSql.appendAscii(" )"); + + return sSql.makeStringAndClear(); +} +//------------------------------------------------------------------------- +void SAL_CALL CopyTableWizard::initialize( const Sequence< Any >& _rArguments ) throw (Exception, RuntimeException) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::initialize" ); + ::osl::MutexGuard aGuard( m_aMutex ); + if ( isInitialized() ) + throw AlreadyInitializedException( ::rtl::OUString(), *this ); + + sal_Int32 nArgCount( _rArguments.getLength() ); + if ( ( nArgCount != 2 ) && ( nArgCount != 3 ) ) + throw IllegalArgumentException( + String( ModuleRes( STR_CTW_ILLEGAL_PARAMETER_COUNT ) ), + *this, + 1 + ); - //------------------------------------------------------------------------------ - ::cppu::IPropertyArrayHelper* CopyTableWizard::createArrayHelper( ) const + try { - Sequence< Property > aProps; - describeProperties( aProps ); - return new ::cppu::OPropertyArrayHelper( aProps ); - } + if ( nArgCount == 3 ) + { // ->createWithInteractionHandler + if ( !( _rArguments[2] >>= m_xInteractionHandler ) ) + throw IllegalArgumentException( + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The given interaction handler is invalid." ) ), + // TODO: resource + *this, + 3 + ); + } + if ( !m_xInteractionHandler.is() ) + m_xInteractionHandler.set( m_aContext.createComponent( "com.sun.star.sdb.InteractionHandler" ), UNO_QUERY_THROW ); - //------------------------------------------------------------------------------ - Dialog* CopyTableWizard::createDialog( Window* _pParent ) + InteractionHandler xSourceDocHandler; + Reference< XPropertySet > xSourceDescriptor( impl_ensureDataAccessDescriptor_throw( _rArguments, 0, m_xSourceConnection, xSourceDocHandler ) ); + m_pSourceObject = impl_extractSourceObject_throw( xSourceDescriptor, m_nCommandType ); + + InteractionHandler xDestDocHandler; + impl_ensureDataAccessDescriptor_throw( _rArguments, 1, m_xDestConnection, xDestDocHandler ); + + if ( xDestDocHandler.is() && !m_xInteractionHandler.is() ) + m_xInteractionHandler = xDestDocHandler; + } + catch( const RuntimeException& ) { throw; } + catch( const IllegalArgumentException& ) { throw; } + catch( const SQLException& ) { throw; } + catch( const Exception& ) { - OSL_PRECOND( isInitialized(), "CopyTableWizard::createDialog: not initialized!" ); - // this should have been prevented in ::execute already - - OCopyTableWizard* pWizard = new OCopyTableWizard( - _pParent, - m_sDestinationTable, - m_nOperation, - *m_pSourceObject, - m_xSourceConnection.getTyped(), - m_xDestConnection.getTyped(), - m_aContext.getLegacyServiceFactory() + throw WrappedTargetException( + String( ModuleRes( STR_CTW_ERROR_DURING_INITIALIZATION ) ), + *this, + ::cppu::getCaughtException() ); + } +} - impl_attributesToDialog_nothrow( *pWizard ); +//------------------------------------------------------------------------- +::cppu::IPropertyArrayHelper& CopyTableWizard::getInfoHelper() +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::getInfoHelper" ); + return *getArrayHelper(); +} - return pWizard; - } +//------------------------------------------------------------------------------ +::cppu::IPropertyArrayHelper* CopyTableWizard::createArrayHelper( ) const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::createArrayHelper" ); + Sequence< Property > aProps; + describeProperties( aProps ); + return new ::cppu::OPropertyArrayHelper( aProps ); +} - //------------------------------------------------------------------------------ - void CopyTableWizard::executedDialog( sal_Int16 _nExecutionResult ) - { - CopyTableWizard_DialogBase::executedDialog( _nExecutionResult ); +//------------------------------------------------------------------------------ +Dialog* CopyTableWizard::createDialog( Window* _pParent ) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::createDialog" ); + OSL_PRECOND( isInitialized(), "CopyTableWizard::createDialog: not initialized!" ); + // this should have been prevented in ::execute already + + OCopyTableWizard* pWizard = new OCopyTableWizard( + _pParent, + m_sDestinationTable, + m_nOperation, + *m_pSourceObject, + m_xSourceConnection.getTyped(), + m_xDestConnection.getTyped(), + m_aContext.getLegacyServiceFactory() + ); + + impl_attributesToDialog_nothrow( *pWizard ); + + return pWizard; +} - if ( _nExecutionResult == RET_OK ) - impl_doCopy_nothrow(); +//------------------------------------------------------------------------------ +void CopyTableWizard::executedDialog( sal_Int16 _nExecutionResult ) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "uno", "Ocke.Janssen@sun.com", "CopyTableWizard::executedDialog" ); + CopyTableWizard_DialogBase::executedDialog( _nExecutionResult ); - // do this after impl_doCopy_nothrow: The attributes may change during copying, for instance - // if the user entered an unqualified table name - impl_dialogToAttributes_nothrow( impl_getDialog_throw() ); - } + if ( _nExecutionResult == RET_OK ) + impl_doCopy_nothrow(); + + // do this after impl_doCopy_nothrow: The attributes may change during copying, for instance + // if the user entered an unqualified table name + impl_dialogToAttributes_nothrow( impl_getDialog_throw() ); +} //........................................................................ } // namespace dbaui |