diff options
author | Oliver Bolte <obo@openoffice.org> | 2005-03-18 09:00:50 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2005-03-18 09:00:50 +0000 |
commit | 234350f3495c3b3a495759a1cd121ef53ad4e914 (patch) | |
tree | ea066a52fa4eb3190c0e69d1592650fc94f42ef5 /svx/source/form/fmpgeimp.cxx | |
parent | 2045930f1d0a69127989e7375912066ed2af6d37 (diff) |
INTEGRATION: CWS dba25 (1.24.34); FILE MERGED
2005/03/02 10:02:14 fs 1.24.34.1: #b6231549# FindForm (now named findFormForDataSource): also care for embedded forms
Diffstat (limited to 'svx/source/form/fmpgeimp.cxx')
-rw-r--r-- | svx/source/form/fmpgeimp.cxx | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/svx/source/form/fmpgeimp.cxx b/svx/source/form/fmpgeimp.cxx index 2009eaa9db84..26f7c905a624 100644 --- a/svx/source/form/fmpgeimp.cxx +++ b/svx/source/form/fmpgeimp.cxx @@ -2,9 +2,9 @@ * * $RCSfile: fmpgeimp.cxx,v $ * - * $Revision: 1.24 $ + * $Revision: 1.25 $ * - * last change: $Author: vg $ $Date: 2005-02-17 10:55:38 $ + * last change: $Author: obo $ $Date: 2005-03-18 10:00:50 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -376,11 +376,9 @@ Reference< ::com::sun::star::form::XForm > FmFormPageImpl::getDefaultForm() } //------------------------------------------------------------------------------ -Reference< ::com::sun::star::form::XForm > FmFormPageImpl::SetDefaults(const Reference< ::com::sun::star::form::XFormComponent > & rContent, - const Reference< XDataSource > & rDatabase, - const ::rtl::OUString& rDBTitle, - const ::rtl::OUString& rCursorSource, - sal_Int32 nCommandType) +Reference< ::com::sun::star::form::XForm > FmFormPageImpl::placeInFormComponentHierarchy( + const Reference< XFormComponent > & rContent, const Reference< XDataSource > & rDatabase, + const ::rtl::OUString& rDBTitle, const ::rtl::OUString& rCursorSource, sal_Int32 nCommandType ) { // if the control already is child of a form, don't do anything if (!rContent.is() || rContent->getParent().is()) @@ -397,16 +395,16 @@ Reference< ::com::sun::star::form::XForm > FmFormPageImpl::SetDefaults(const Re validateCurForm(); // erst in der aktuellen form suchen - xForm = FindForm(xCurrentForm, rDatabase, rCursorSource, nCommandType); + xForm = findFormForDataSource( xCurrentForm, rDatabase, rCursorSource, nCommandType ); Reference< ::com::sun::star::container::XIndexAccess > xFormsByIndex(xForms, UNO_QUERY); - DBG_ASSERT(xFormsByIndex.is(), "FmFormPageImpl::SetDefaults : no index access for my forms collection !"); + DBG_ASSERT(xFormsByIndex.is(), "FmFormPageImpl::placeInFormComponentHierarchy : no index access for my forms collection !"); sal_Int32 nCount = xFormsByIndex->getCount(); for (sal_Int32 i = 0; !xForm.is() && i < nCount; i++) { Reference< ::com::sun::star::form::XForm > xToSearch; xFormsByIndex->getByIndex(i) >>= xToSearch; - xForm = FindForm(xToSearch, rDatabase, rCursorSource, nCommandType); + xForm = findFormForDataSource( xToSearch, rDatabase, rCursorSource, nCommandType ); } // wenn keine ::com::sun::star::form gefunden, dann eine neue erzeugen @@ -470,7 +468,7 @@ Reference< ::com::sun::star::form::XForm > FmFormPageImpl::SetDefaults(const Re } //------------------------------------------------------------------------------ -Reference< XForm > FmFormPageImpl::FindForm( +Reference< XForm > FmFormPageImpl::findFormForDataSource( const Reference< XForm > & rForm, const Reference< XDataSource > & _rxDatabase, const ::rtl::OUString& _rCursorSource, sal_Int32 nCommandType) { @@ -480,7 +478,7 @@ Reference< XForm > FmFormPageImpl::FindForm( if (!xDBForm.is() || !xFormProps.is()) return xResultForm; - OSL_ENSURE(_rxDatabase.is(), "FmFormPageImpl::FindForm: invalid data source!"); + OSL_ENSURE(_rxDatabase.is(), "FmFormPageImpl::findFormForDataSource: invalid data source!"); ::rtl::OUString sLookupName; // the name of the data source we're looking for ::rtl::OUString sFormDataSourceName; // the name of the data source the current connection in the form is based on try @@ -493,12 +491,12 @@ Reference< XForm > FmFormPageImpl::FindForm( if (0 == sFormDataSourceName.getLength()) { // check if it has an active connection - Reference< XConnection > xFormConnection = OStaticDataAccessTools().getRowSetConnection(xDBForm); + Reference< XConnection > xFormConnection; + xFormProps->getPropertyValue( FM_PROP_ACTIVE_CONNECTION ) >>= xFormConnection; + if ( !xFormConnection.is() ) + OStaticDataAccessTools().isEmbeddedInDatabase( xFormProps, xFormConnection ); if (xFormConnection.is()) { - OSL_ENSURE(sal_False, "FmFormPageImpl::FindForm: a connection without data source name?"); - // don't know if this is allowed to happen (don't think so, that's why asserting this). - // 05.06.2001 - 87688 - frank.schoenheit@sun.com Reference< XChild > xConnAsChild(xFormConnection, UNO_QUERY); if (xConnAsChild.is()) { @@ -517,7 +515,7 @@ Reference< XForm > FmFormPageImpl::FindForm( catch(const Exception& e) { e; - OSL_ENSURE(sal_False, "FmFormPageImpl::FindForm: caught an exception!"); + OSL_ENSURE(sal_False, "FmFormPageImpl::findFormForDataSource: caught an exception!"); } if (sLookupName == sFormDataSourceName) @@ -544,9 +542,9 @@ Reference< XForm > FmFormPageImpl::FindForm( { Reference< ::com::sun::star::form::XForm > xSearchForm; xComponents->getByIndex(i) >>= xSearchForm; - // jetzt innerhalb der ::com::sun::star::form weitersuchen + // continue searching in the sub form if (xSearchForm.is()) - xResultForm = FindForm(xSearchForm, _rxDatabase, _rCursorSource, nCommandType); + xResultForm = findFormForDataSource( xSearchForm, _rxDatabase, _rCursorSource, nCommandType ); } return xResultForm; } |