196de5490SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
396de5490SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
496de5490SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
596de5490SAndrew Rist  * distributed with this work for additional information
696de5490SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
796de5490SAndrew Rist  * to you under the Apache License, Version 2.0 (the
896de5490SAndrew Rist  * "License"); you may not use this file except in compliance
996de5490SAndrew Rist  * with the License.  You may obtain a copy of the License at
1096de5490SAndrew Rist  *
1196de5490SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
1296de5490SAndrew Rist  *
1396de5490SAndrew Rist  * Unless required by applicable law or agreed to in writing,
1496de5490SAndrew Rist  * software distributed under the License is distributed on an
1596de5490SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1696de5490SAndrew Rist  * KIND, either express or implied.  See the License for the
1796de5490SAndrew Rist  * specific language governing permissions and limitations
1896de5490SAndrew Rist  * under the License.
1996de5490SAndrew Rist  *
2096de5490SAndrew Rist  *************************************************************/
2196de5490SAndrew Rist 
2296de5490SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25*b63233d8Sdamjan #include "precompiled_dbui.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #ifndef _SBA_FORMADAPTER_HXX
28cdf0e10cSrcweir #include "formadapter.hxx"
29cdf0e10cSrcweir #endif
30cdf0e10cSrcweir #ifndef _TOOLS_DEBUG_HXX //autogen
31cdf0e10cSrcweir #include <tools/debug.hxx>
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_
34cdf0e10cSrcweir #include <comphelper/types.hxx>
35cdf0e10cSrcweir #endif
36cdf0e10cSrcweir #ifndef _COMPHELPER_ENUMHELPER_HXX_
37cdf0e10cSrcweir #include <comphelper/enumhelper.hxx>
38cdf0e10cSrcweir #endif
39cdf0e10cSrcweir #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
40cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
41cdf0e10cSrcweir #endif
42cdf0e10cSrcweir #ifndef _STRING_HXX
43cdf0e10cSrcweir #include <tools/string.hxx>
44cdf0e10cSrcweir #endif
45cdf0e10cSrcweir #ifndef _DBU_BRW_HRC_
46cdf0e10cSrcweir #include "dbu_brw.hrc"
47cdf0e10cSrcweir #endif
48cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC
49cdf0e10cSrcweir #include "dbustrings.hrc"
50cdf0e10cSrcweir #endif
51cdf0e10cSrcweir #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
52cdf0e10cSrcweir #include <cppuhelper/typeprovider.hxx>
53cdf0e10cSrcweir #endif
54cdf0e10cSrcweir #ifndef _COMPHELPER_SEQUENCE_HXX_
55cdf0e10cSrcweir #include <comphelper/sequence.hxx>
56cdf0e10cSrcweir #endif
57cdf0e10cSrcweir 
58cdf0e10cSrcweir using namespace dbaui;
59cdf0e10cSrcweir using namespace ::com::sun::star::uno;
60cdf0e10cSrcweir using namespace ::com::sun::star::sdb;
61cdf0e10cSrcweir using namespace ::com::sun::star::sdbcx;
62cdf0e10cSrcweir using namespace ::com::sun::star::beans;
63cdf0e10cSrcweir using namespace ::com::sun::star::container;
64cdf0e10cSrcweir 
65cdf0e10cSrcweir //==================================================================
66cdf0e10cSrcweir // SbaXFormAdapter
67cdf0e10cSrcweir //==================================================================
68cdf0e10cSrcweir 
DBG_NAME(SbaXFormAdapter)69cdf0e10cSrcweir DBG_NAME(SbaXFormAdapter)
70cdf0e10cSrcweir // -------------------------------------------------------------------------
71cdf0e10cSrcweir SbaXFormAdapter::SbaXFormAdapter()
72cdf0e10cSrcweir 			:m_aLoadListeners(*this, m_aMutex)
73cdf0e10cSrcweir 			,m_aRowSetListeners(*this, m_aMutex)
74cdf0e10cSrcweir 			,m_aRowSetApproveListeners(*this, m_aMutex)
75cdf0e10cSrcweir 			,m_aErrorListeners(*this, m_aMutex)
76cdf0e10cSrcweir 			,m_aParameterListeners(*this, m_aMutex)
77cdf0e10cSrcweir 			,m_aSubmitListeners(*this, m_aMutex)
78cdf0e10cSrcweir 			,m_aResetListeners(*this, m_aMutex)
79cdf0e10cSrcweir 			,m_aPropertyChangeListeners(*this, m_aMutex)
80cdf0e10cSrcweir 			,m_aVetoablePropertyChangeListeners(*this, m_aMutex)
81cdf0e10cSrcweir             ,m_aPropertiesChangeListeners(*this, m_aMutex)
82cdf0e10cSrcweir 			,m_aDisposeListeners(m_aMutex)
83cdf0e10cSrcweir 			,m_aContainerListeners(m_aMutex)
84cdf0e10cSrcweir 			,m_nNamePropHandle(-1)
85cdf0e10cSrcweir {
86cdf0e10cSrcweir     DBG_CTOR(SbaXFormAdapter,NULL);
87cdf0e10cSrcweir 
88cdf0e10cSrcweir }
89cdf0e10cSrcweir 
90cdf0e10cSrcweir // -------------------------------------------------------------------------
~SbaXFormAdapter()91cdf0e10cSrcweir SbaXFormAdapter::~SbaXFormAdapter()
92cdf0e10cSrcweir {
93cdf0e10cSrcweir 
94cdf0e10cSrcweir     DBG_DTOR(SbaXFormAdapter,NULL);
95cdf0e10cSrcweir }
96cdf0e10cSrcweir 
97cdf0e10cSrcweir // -------------------------------------------------------------------------
getTypes()98cdf0e10cSrcweir Sequence< Type > SAL_CALL SbaXFormAdapter::getTypes(  ) throw (RuntimeException)
99cdf0e10cSrcweir {
100cdf0e10cSrcweir 	return ::comphelper::concatSequences(
101cdf0e10cSrcweir 		SbaXFormAdapter_BASE1::getTypes(),
102cdf0e10cSrcweir 		SbaXFormAdapter_BASE2::getTypes(),
103cdf0e10cSrcweir 		SbaXFormAdapter_BASE3::getTypes()
104cdf0e10cSrcweir 	);
105cdf0e10cSrcweir }
106cdf0e10cSrcweir 
107cdf0e10cSrcweir // -------------------------------------------------------------------------
getImplementationId()108cdf0e10cSrcweir Sequence< sal_Int8 > SAL_CALL SbaXFormAdapter::getImplementationId(  ) throw (RuntimeException)
109cdf0e10cSrcweir {
110cdf0e10cSrcweir 	static ::cppu::OImplementationId * pId = 0;
111cdf0e10cSrcweir 	if (! pId)
112cdf0e10cSrcweir 	{
113cdf0e10cSrcweir 		::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
114cdf0e10cSrcweir 		if (! pId)
115cdf0e10cSrcweir 		{
116cdf0e10cSrcweir 			static ::cppu::OImplementationId aId;
117cdf0e10cSrcweir 			pId = &aId;
118cdf0e10cSrcweir 		}
119cdf0e10cSrcweir 	}
120cdf0e10cSrcweir 	return pId->getImplementationId();
121cdf0e10cSrcweir }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir // -------------------------------------------------------------------------
queryInterface(const Type & _rType)124cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::queryInterface(const Type& _rType) throw (RuntimeException)
125cdf0e10cSrcweir {
126cdf0e10cSrcweir 	Any aReturn = SbaXFormAdapter_BASE1::queryInterface( _rType );
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 	if (!aReturn.hasValue())
129cdf0e10cSrcweir 		aReturn = SbaXFormAdapter_BASE2::queryInterface( _rType );
130cdf0e10cSrcweir 
131cdf0e10cSrcweir 	if (!aReturn.hasValue())
132cdf0e10cSrcweir 		aReturn = SbaXFormAdapter_BASE3::queryInterface( _rType );
133cdf0e10cSrcweir 
134cdf0e10cSrcweir 	return aReturn;
135cdf0e10cSrcweir }
136cdf0e10cSrcweir 
137cdf0e10cSrcweir // -------------------------------------------------------------------------
StopListening()138cdf0e10cSrcweir void SbaXFormAdapter::StopListening()
139cdf0e10cSrcweir {
140cdf0e10cSrcweir 	// log off all our multiplexers
141cdf0e10cSrcweir 	STOP_MULTIPLEXER_LISTENING(LoadListener, m_aLoadListeners, ::com::sun::star::form::XLoadable, m_xMainForm);
142cdf0e10cSrcweir 	STOP_MULTIPLEXER_LISTENING(RowSetListener, m_aRowSetListeners, ::com::sun::star::sdbc::XRowSet, m_xMainForm);
143cdf0e10cSrcweir 	STOP_MULTIPLEXER_LISTENING(RowSetApproveListener, m_aRowSetApproveListeners, ::com::sun::star::sdb::XRowSetApproveBroadcaster, m_xMainForm);
144cdf0e10cSrcweir 	STOP_MULTIPLEXER_LISTENING(SQLErrorListener, m_aErrorListeners, ::com::sun::star::sdb::XSQLErrorBroadcaster, m_xMainForm);
145cdf0e10cSrcweir 	STOP_MULTIPLEXER_LISTENING(SubmitListener, m_aSubmitListeners, ::com::sun::star::form::XSubmit, m_xMainForm);
146cdf0e10cSrcweir 	STOP_MULTIPLEXER_LISTENING(ResetListener, m_aResetListeners, ::com::sun::star::form::XReset, m_xMainForm);
147cdf0e10cSrcweir 
148cdf0e10cSrcweir 	if (m_aParameterListeners.getLength())
149cdf0e10cSrcweir 	{
150cdf0e10cSrcweir 		Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster >  xBroadcaster(m_xMainForm, UNO_QUERY);
151cdf0e10cSrcweir 		if (xBroadcaster.is())
152cdf0e10cSrcweir 			xBroadcaster->removeParameterListener(&m_aParameterListeners);
153cdf0e10cSrcweir 	}
154cdf0e10cSrcweir 
155cdf0e10cSrcweir 	STOP_PROPERTY_MULTIPLEXER_LISTENING(PropertyChangeListener, m_aPropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm);
156cdf0e10cSrcweir 	STOP_PROPERTY_MULTIPLEXER_LISTENING(VetoableChangeListener, m_aVetoablePropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm);
157cdf0e10cSrcweir 	if (m_aPropertiesChangeListeners.getLength())
158cdf0e10cSrcweir 	{
159cdf0e10cSrcweir 		Reference< ::com::sun::star::beans::XMultiPropertySet >  xBroadcaster(m_xMainForm, UNO_QUERY);
160cdf0e10cSrcweir 		if (xBroadcaster.is())
161cdf0e10cSrcweir 			xBroadcaster->removePropertiesChangeListener(&m_aPropertiesChangeListeners);
162cdf0e10cSrcweir 	}
163cdf0e10cSrcweir 
164cdf0e10cSrcweir 	// log off ourself
165cdf0e10cSrcweir 	Reference< ::com::sun::star::lang::XComponent >  xComp(m_xMainForm, UNO_QUERY);
166cdf0e10cSrcweir 	if (xComp.is())
167cdf0e10cSrcweir 		xComp->removeEventListener((::com::sun::star::lang::XEventListener*)(::com::sun::star::beans::XPropertyChangeListener*)this);
168cdf0e10cSrcweir }
169cdf0e10cSrcweir 
170cdf0e10cSrcweir // -------------------------------------------------------------------------
StartListening()171cdf0e10cSrcweir void SbaXFormAdapter::StartListening()
172cdf0e10cSrcweir {
173cdf0e10cSrcweir 	// log off all our multiplexers
174cdf0e10cSrcweir 	START_MULTIPLEXER_LISTENING(LoadListener, m_aLoadListeners, ::com::sun::star::form::XLoadable, m_xMainForm);
175cdf0e10cSrcweir 	START_MULTIPLEXER_LISTENING(RowSetListener, m_aRowSetListeners, ::com::sun::star::sdbc::XRowSet, m_xMainForm);
176cdf0e10cSrcweir 	START_MULTIPLEXER_LISTENING(RowSetApproveListener, m_aRowSetApproveListeners, ::com::sun::star::sdb::XRowSetApproveBroadcaster, m_xMainForm);
177cdf0e10cSrcweir 	START_MULTIPLEXER_LISTENING(SQLErrorListener, m_aErrorListeners, ::com::sun::star::sdb::XSQLErrorBroadcaster, m_xMainForm);
178cdf0e10cSrcweir 	START_MULTIPLEXER_LISTENING(SubmitListener, m_aSubmitListeners, ::com::sun::star::form::XSubmit, m_xMainForm);
179cdf0e10cSrcweir 	START_MULTIPLEXER_LISTENING(ResetListener, m_aResetListeners, ::com::sun::star::form::XReset, m_xMainForm);
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 	if (m_aParameterListeners.getLength())
182cdf0e10cSrcweir 	{
183cdf0e10cSrcweir 		Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster >  xBroadcaster(m_xMainForm, UNO_QUERY);
184cdf0e10cSrcweir 		if (xBroadcaster.is())
185cdf0e10cSrcweir 			xBroadcaster->addParameterListener(&m_aParameterListeners);
186cdf0e10cSrcweir 	}
187cdf0e10cSrcweir 
188cdf0e10cSrcweir 	START_PROPERTY_MULTIPLEXER_LISTENING(PropertyChangeListener, m_aPropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm);
189cdf0e10cSrcweir 	START_PROPERTY_MULTIPLEXER_LISTENING(VetoableChangeListener, m_aVetoablePropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm);
190cdf0e10cSrcweir 	if (m_aPropertiesChangeListeners.getLength())
191cdf0e10cSrcweir 	{
192cdf0e10cSrcweir 		Reference< ::com::sun::star::beans::XMultiPropertySet >  xBroadcaster(m_xMainForm, UNO_QUERY);
193cdf0e10cSrcweir 		::rtl::OUString sEmpty;
194cdf0e10cSrcweir 		if (xBroadcaster.is())
195cdf0e10cSrcweir 			xBroadcaster->addPropertiesChangeListener(::comphelper::StringSequence(&sEmpty, 1), &m_aPropertiesChangeListeners);
196cdf0e10cSrcweir 	}
197cdf0e10cSrcweir 
198cdf0e10cSrcweir 	// log off ourself
199cdf0e10cSrcweir 	Reference< ::com::sun::star::lang::XComponent >  xComp(m_xMainForm, UNO_QUERY);
200cdf0e10cSrcweir 	if (xComp.is())
201cdf0e10cSrcweir 		xComp->addEventListener((::com::sun::star::lang::XEventListener*)(::com::sun::star::beans::XPropertyChangeListener*)this);
202cdf0e10cSrcweir }
203cdf0e10cSrcweir 
204cdf0e10cSrcweir // -------------------------------------------------------------------------
AttachForm(const Reference<::com::sun::star::sdbc::XRowSet> & xNewMaster)205cdf0e10cSrcweir void SbaXFormAdapter::AttachForm(const Reference< ::com::sun::star::sdbc::XRowSet >& xNewMaster)
206cdf0e10cSrcweir {
207cdf0e10cSrcweir 	if (xNewMaster == m_xMainForm)
208cdf0e10cSrcweir 		return;
209cdf0e10cSrcweir 
210cdf0e10cSrcweir 	DBG_ASSERT(xNewMaster.get() != static_cast< ::com::sun::star::sdbc::XRowSet* >(this), "SbaXFormAdapter::AttachForm : invalid argument !");
211cdf0e10cSrcweir 
212cdf0e10cSrcweir 	if (m_xMainForm.is())
213cdf0e10cSrcweir 	{
214cdf0e10cSrcweir 		StopListening();
215cdf0e10cSrcweir 
216cdf0e10cSrcweir 		// if our old master is loaded we have to send an 'unloaded' event
217cdf0e10cSrcweir 		Reference< ::com::sun::star::form::XLoadable >  xLoadable(m_xMainForm, UNO_QUERY);
218cdf0e10cSrcweir 		if (xLoadable->isLoaded())
219cdf0e10cSrcweir 		{
220cdf0e10cSrcweir 			::com::sun::star::lang::EventObject aEvt(*this);
221cdf0e10cSrcweir 			::cppu::OInterfaceIteratorHelper aIt(m_aLoadListeners);
222cdf0e10cSrcweir 			while (aIt.hasMoreElements())
223cdf0e10cSrcweir 				((::com::sun::star::form::XLoadListener*)aIt.next())->unloaded(aEvt);
224cdf0e10cSrcweir 		}
225cdf0e10cSrcweir 	}
226cdf0e10cSrcweir 
227cdf0e10cSrcweir 	m_xMainForm = xNewMaster;
228cdf0e10cSrcweir 
229cdf0e10cSrcweir 	if (m_xMainForm.is())
230cdf0e10cSrcweir 	{
231cdf0e10cSrcweir 		StartListening();
232cdf0e10cSrcweir 
233cdf0e10cSrcweir 		// if our new master is loaded we have to send an 'loaded' event
234cdf0e10cSrcweir 		Reference< ::com::sun::star::form::XLoadable >  xLoadable(m_xMainForm, UNO_QUERY);
235cdf0e10cSrcweir 		if (xLoadable->isLoaded())
236cdf0e10cSrcweir 		{
237cdf0e10cSrcweir 			::com::sun::star::lang::EventObject aEvt(*this);
238cdf0e10cSrcweir 			::cppu::OInterfaceIteratorHelper aIt(m_aLoadListeners);
239cdf0e10cSrcweir 			while (aIt.hasMoreElements())
240cdf0e10cSrcweir 				((::com::sun::star::form::XLoadListener*)aIt.next())->loaded(aEvt);
241cdf0e10cSrcweir 		}
242cdf0e10cSrcweir 	}
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 	// TODO : perhaps _all_ of our listeners should be notified about our new state
245cdf0e10cSrcweir 	// (nearly every aspect of us may have changed with new master form)
246cdf0e10cSrcweir }
247cdf0e10cSrcweir 
248cdf0e10cSrcweir // ::com::sun::star::sdbc::XCloseable
249cdf0e10cSrcweir // -------------------------------------------------------------------------
close()250cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::close() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
251cdf0e10cSrcweir {
252cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XCloseable >  xIface(m_xMainForm, UNO_QUERY);
253cdf0e10cSrcweir 	if (xIface.is())
254cdf0e10cSrcweir 		xIface->close();
255cdf0e10cSrcweir }
256cdf0e10cSrcweir 
257cdf0e10cSrcweir // ::com::sun::star::sdbc::XResultSetMetaDataSupplier
258cdf0e10cSrcweir // -------------------------------------------------------------------------
getMetaData()259cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL SbaXFormAdapter::getMetaData() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
260cdf0e10cSrcweir {
261cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetMetaDataSupplier >  xIface(m_xMainForm, UNO_QUERY);
262cdf0e10cSrcweir 	if (xIface.is())
263cdf0e10cSrcweir 		return xIface->getMetaData();
264cdf0e10cSrcweir 	return Reference< ::com::sun::star::sdbc::XResultSetMetaData > ();
265cdf0e10cSrcweir }
266cdf0e10cSrcweir 
267cdf0e10cSrcweir // ::com::sun::star::sdbc::XColumnLocate
268cdf0e10cSrcweir // -------------------------------------------------------------------------
findColumn(const::rtl::OUString & columnName)269cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::findColumn(const ::rtl::OUString& columnName) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
270cdf0e10cSrcweir {
271cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XColumnLocate >  xIface(m_xMainForm, UNO_QUERY);
272cdf0e10cSrcweir 	if (xIface.is())
273cdf0e10cSrcweir 		return xIface->findColumn(columnName);
274cdf0e10cSrcweir 	return 0;
275cdf0e10cSrcweir }
276cdf0e10cSrcweir 
277cdf0e10cSrcweir // ::com::sun::star::sdbcx::XColumnsSupplier
278cdf0e10cSrcweir // -------------------------------------------------------------------------
getColumns()279cdf0e10cSrcweir Reference< ::com::sun::star::container::XNameAccess > SAL_CALL SbaXFormAdapter::getColumns() throw( RuntimeException )
280cdf0e10cSrcweir {
281cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XColumnsSupplier >  xIface(m_xMainForm, UNO_QUERY);
282cdf0e10cSrcweir 	if (xIface.is())
283cdf0e10cSrcweir 		return xIface->getColumns();
284cdf0e10cSrcweir 	return Reference< ::com::sun::star::container::XNameAccess > ();
285cdf0e10cSrcweir }
286cdf0e10cSrcweir 
287cdf0e10cSrcweir // ::com::sun::star::sdbc::XRow
288cdf0e10cSrcweir // -------------------------------------------------------------------------
wasNull()289cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::wasNull() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
290cdf0e10cSrcweir {
291cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
292cdf0e10cSrcweir 	if (xIface.is())
293cdf0e10cSrcweir 		return xIface->wasNull();
294cdf0e10cSrcweir 	return sal_True;
295cdf0e10cSrcweir }
296cdf0e10cSrcweir // -------------------------------------------------------------------------
getString(sal_Int32 columnIndex)297cdf0e10cSrcweir ::rtl::OUString SAL_CALL SbaXFormAdapter::getString(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
298cdf0e10cSrcweir {
299cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
300cdf0e10cSrcweir 	if (xIface.is())
301cdf0e10cSrcweir 		return xIface->getString(columnIndex);
302cdf0e10cSrcweir 	return ::rtl::OUString();
303cdf0e10cSrcweir }
304cdf0e10cSrcweir // -------------------------------------------------------------------------
getBoolean(sal_Int32 columnIndex)305cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::getBoolean(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
306cdf0e10cSrcweir {
307cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
308cdf0e10cSrcweir 	if (xIface.is())
309cdf0e10cSrcweir 		return xIface->getBoolean(columnIndex);
310cdf0e10cSrcweir 	return sal_False;
311cdf0e10cSrcweir }
312cdf0e10cSrcweir // -------------------------------------------------------------------------
getByte(sal_Int32 columnIndex)313cdf0e10cSrcweir sal_Int8 SAL_CALL SbaXFormAdapter::getByte(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
314cdf0e10cSrcweir {
315cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
316cdf0e10cSrcweir 	if (xIface.is())
317cdf0e10cSrcweir 		return xIface->getByte(columnIndex);
318cdf0e10cSrcweir 	return 0;
319cdf0e10cSrcweir }
320cdf0e10cSrcweir // -------------------------------------------------------------------------
getShort(sal_Int32 columnIndex)321cdf0e10cSrcweir sal_Int16 SAL_CALL SbaXFormAdapter::getShort(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
322cdf0e10cSrcweir {
323cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
324cdf0e10cSrcweir 	if (xIface.is())
325cdf0e10cSrcweir 		return xIface->getShort(columnIndex);
326cdf0e10cSrcweir 	return 0;
327cdf0e10cSrcweir }
328cdf0e10cSrcweir // -------------------------------------------------------------------------
getInt(sal_Int32 columnIndex)329cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getInt(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
330cdf0e10cSrcweir {
331cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
332cdf0e10cSrcweir 	if (xIface.is())
333cdf0e10cSrcweir 		return xIface->getInt(columnIndex);
334cdf0e10cSrcweir 	return 0;
335cdf0e10cSrcweir }
336cdf0e10cSrcweir // -------------------------------------------------------------------------
getLong(sal_Int32 columnIndex)337cdf0e10cSrcweir sal_Int64 SAL_CALL SbaXFormAdapter::getLong(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
338cdf0e10cSrcweir {
339cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
340cdf0e10cSrcweir 	if (xIface.is())
341cdf0e10cSrcweir 		return xIface->getLong(columnIndex);
342cdf0e10cSrcweir 	return 0;
343cdf0e10cSrcweir }
344cdf0e10cSrcweir // -------------------------------------------------------------------------
getFloat(sal_Int32 columnIndex)345cdf0e10cSrcweir float SAL_CALL SbaXFormAdapter::getFloat(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
346cdf0e10cSrcweir {
347cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
348cdf0e10cSrcweir 	if (xIface.is())
349cdf0e10cSrcweir 		return xIface->getFloat(columnIndex);
350cdf0e10cSrcweir 	return 0.0;
351cdf0e10cSrcweir }
352cdf0e10cSrcweir // -------------------------------------------------------------------------
getDouble(sal_Int32 columnIndex)353cdf0e10cSrcweir double SAL_CALL SbaXFormAdapter::getDouble(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
354cdf0e10cSrcweir {
355cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
356cdf0e10cSrcweir 	if (xIface.is())
357cdf0e10cSrcweir 		return xIface->getDouble(columnIndex);
358cdf0e10cSrcweir 	return 0.0;
359cdf0e10cSrcweir }
360cdf0e10cSrcweir // -------------------------------------------------------------------------
getBytes(sal_Int32 columnIndex)361cdf0e10cSrcweir Sequence< sal_Int8 > SAL_CALL SbaXFormAdapter::getBytes(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
362cdf0e10cSrcweir {
363cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
364cdf0e10cSrcweir 	if (xIface.is())
365cdf0e10cSrcweir 		return xIface->getBytes(columnIndex);
366cdf0e10cSrcweir 	return Sequence <sal_Int8> ();
367cdf0e10cSrcweir }
368cdf0e10cSrcweir // -------------------------------------------------------------------------
getDate(sal_Int32 columnIndex)369cdf0e10cSrcweir ::com::sun::star::util::Date SAL_CALL SbaXFormAdapter::getDate(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
370cdf0e10cSrcweir {
371cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
372cdf0e10cSrcweir 	if (xIface.is())
373cdf0e10cSrcweir 		return xIface->getDate(columnIndex);
374cdf0e10cSrcweir 	return ::com::sun::star::util::Date();
375cdf0e10cSrcweir }
376cdf0e10cSrcweir // -------------------------------------------------------------------------
getTime(sal_Int32 columnIndex)377cdf0e10cSrcweir ::com::sun::star::util::Time SAL_CALL SbaXFormAdapter::getTime(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
378cdf0e10cSrcweir {
379cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
380cdf0e10cSrcweir 	if (xIface.is())
381cdf0e10cSrcweir 		return xIface->getTime(columnIndex);
382cdf0e10cSrcweir 	return ::com::sun::star::util::Time();
383cdf0e10cSrcweir }
384cdf0e10cSrcweir // -------------------------------------------------------------------------
getTimestamp(sal_Int32 columnIndex)385cdf0e10cSrcweir ::com::sun::star::util::DateTime SAL_CALL SbaXFormAdapter::getTimestamp(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
386cdf0e10cSrcweir {
387cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
388cdf0e10cSrcweir 	if (xIface.is())
389cdf0e10cSrcweir 		return xIface->getTimestamp(columnIndex);
390cdf0e10cSrcweir 	return ::com::sun::star::util::DateTime();
391cdf0e10cSrcweir }
392cdf0e10cSrcweir // -------------------------------------------------------------------------
getBinaryStream(sal_Int32 columnIndex)393cdf0e10cSrcweir Reference< ::com::sun::star::io::XInputStream > SAL_CALL SbaXFormAdapter::getBinaryStream(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
394cdf0e10cSrcweir {
395cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
396cdf0e10cSrcweir 	if (xIface.is())
397cdf0e10cSrcweir 		return xIface->getBinaryStream(columnIndex);
398cdf0e10cSrcweir 	return Reference< ::com::sun::star::io::XInputStream > ();
399cdf0e10cSrcweir }
400cdf0e10cSrcweir // -------------------------------------------------------------------------
getCharacterStream(sal_Int32 columnIndex)401cdf0e10cSrcweir Reference< ::com::sun::star::io::XInputStream > SAL_CALL SbaXFormAdapter::getCharacterStream(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
402cdf0e10cSrcweir {
403cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
404cdf0e10cSrcweir 	if (xIface.is())
405cdf0e10cSrcweir 		return xIface->getCharacterStream(columnIndex);
406cdf0e10cSrcweir 	return Reference< ::com::sun::star::io::XInputStream > ();
407cdf0e10cSrcweir }
408cdf0e10cSrcweir // -------------------------------------------------------------------------
getObject(sal_Int32 columnIndex,const Reference<::com::sun::star::container::XNameAccess> & typeMap)409cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getObject(sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& typeMap) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
410cdf0e10cSrcweir {
411cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
412cdf0e10cSrcweir 	if (xIface.is())
413cdf0e10cSrcweir 		return xIface->getObject(columnIndex, typeMap);
414cdf0e10cSrcweir 	return Any();
415cdf0e10cSrcweir }
416cdf0e10cSrcweir // -------------------------------------------------------------------------
getRef(sal_Int32 columnIndex)417cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRef > SAL_CALL SbaXFormAdapter::getRef(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
418cdf0e10cSrcweir {
419cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
420cdf0e10cSrcweir 	if (xIface.is())
421cdf0e10cSrcweir 		return xIface->getRef(columnIndex);
422cdf0e10cSrcweir 	return Reference< ::com::sun::star::sdbc::XRef > ();
423cdf0e10cSrcweir }
424cdf0e10cSrcweir // -------------------------------------------------------------------------
getBlob(sal_Int32 columnIndex)425cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL SbaXFormAdapter::getBlob(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
426cdf0e10cSrcweir {
427cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
428cdf0e10cSrcweir 	if (xIface.is())
429cdf0e10cSrcweir 		return xIface->getBlob(columnIndex);
430cdf0e10cSrcweir 	return Reference< ::com::sun::star::sdbc::XBlob > ();
431cdf0e10cSrcweir }
432cdf0e10cSrcweir // -------------------------------------------------------------------------
getClob(sal_Int32 columnIndex)433cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XClob > SAL_CALL SbaXFormAdapter::getClob(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
434cdf0e10cSrcweir {
435cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
436cdf0e10cSrcweir 	if (xIface.is())
437cdf0e10cSrcweir 		return xIface->getClob(columnIndex);
438cdf0e10cSrcweir 	return Reference< ::com::sun::star::sdbc::XClob > ();
439cdf0e10cSrcweir }
440cdf0e10cSrcweir // -------------------------------------------------------------------------
getArray(sal_Int32 columnIndex)441cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XArray > SAL_CALL SbaXFormAdapter::getArray(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
442cdf0e10cSrcweir {
443cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRow >  xIface(m_xMainForm, UNO_QUERY);
444cdf0e10cSrcweir 	if (xIface.is())
445cdf0e10cSrcweir 		return xIface->getArray(columnIndex);
446cdf0e10cSrcweir 	return Reference< ::com::sun::star::sdbc::XArray > ();
447cdf0e10cSrcweir }
448cdf0e10cSrcweir 
449cdf0e10cSrcweir // ::com::sun::star::sdbcx::XRowLocate
450cdf0e10cSrcweir // -------------------------------------------------------------------------
getBookmark()451cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getBookmark() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
452cdf0e10cSrcweir {
453cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XRowLocate >  xIface(m_xMainForm, UNO_QUERY);
454cdf0e10cSrcweir 	if (xIface.is())
455cdf0e10cSrcweir 		return xIface->getBookmark();
456cdf0e10cSrcweir 	return Any();
457cdf0e10cSrcweir }
458cdf0e10cSrcweir // -------------------------------------------------------------------------
moveToBookmark(const Any & bookmark)459cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::moveToBookmark(const Any& bookmark) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
460cdf0e10cSrcweir {
461cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XRowLocate >  xIface(m_xMainForm, UNO_QUERY);
462cdf0e10cSrcweir 	if (xIface.is())
463cdf0e10cSrcweir 		return xIface->moveToBookmark(bookmark);
464cdf0e10cSrcweir 	return sal_False;
465cdf0e10cSrcweir }
466cdf0e10cSrcweir // -------------------------------------------------------------------------
moveRelativeToBookmark(const Any & bookmark,sal_Int32 rows)467cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::moveRelativeToBookmark(const Any& bookmark, sal_Int32 rows) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
468cdf0e10cSrcweir {
469cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XRowLocate >  xIface(m_xMainForm, UNO_QUERY);
470cdf0e10cSrcweir 	if (xIface.is())
471cdf0e10cSrcweir 		return xIface->moveRelativeToBookmark(bookmark,rows);
472cdf0e10cSrcweir 	return sal_False;
473cdf0e10cSrcweir }
474cdf0e10cSrcweir // -------------------------------------------------------------------------
compareBookmarks(const Any & _first,const Any & _second)475cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::compareBookmarks(const Any& _first, const Any& _second) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
476cdf0e10cSrcweir {
477cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XRowLocate >  xIface(m_xMainForm, UNO_QUERY);
478cdf0e10cSrcweir 	if (xIface.is())
479cdf0e10cSrcweir 		return xIface->compareBookmarks(_first, _second);
480cdf0e10cSrcweir 	return 0;
481cdf0e10cSrcweir }
482cdf0e10cSrcweir 
483cdf0e10cSrcweir // -------------------------------------------------------------------------
hasOrderedBookmarks()484cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::hasOrderedBookmarks() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
485cdf0e10cSrcweir {
486cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XRowLocate >  xIface(m_xMainForm, UNO_QUERY);
487cdf0e10cSrcweir 	if (xIface.is())
488cdf0e10cSrcweir 		return xIface->hasOrderedBookmarks();
489cdf0e10cSrcweir 	return sal_False;
490cdf0e10cSrcweir }
491cdf0e10cSrcweir 
492cdf0e10cSrcweir // -------------------------------------------------------------------------
hashBookmark(const Any & bookmark)493cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::hashBookmark(const Any& bookmark) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
494cdf0e10cSrcweir {
495cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XRowLocate >  xIface(m_xMainForm, UNO_QUERY);
496cdf0e10cSrcweir 	if (xIface.is())
497cdf0e10cSrcweir 		return xIface->hashBookmark(bookmark);
498cdf0e10cSrcweir 	return 0;
499cdf0e10cSrcweir }
500cdf0e10cSrcweir 
501cdf0e10cSrcweir // ::com::sun::star::sdbc::XRowUpdate
502cdf0e10cSrcweir // -------------------------------------------------------------------------
updateNull(sal_Int32 columnIndex)503cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateNull(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
504cdf0e10cSrcweir {
505cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
506cdf0e10cSrcweir 	if (xIface.is())
507cdf0e10cSrcweir 		xIface->updateNull(columnIndex);
508cdf0e10cSrcweir }
509cdf0e10cSrcweir // -------------------------------------------------------------------------
updateBoolean(sal_Int32 columnIndex,sal_Bool x)510cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateBoolean(sal_Int32 columnIndex, sal_Bool x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
511cdf0e10cSrcweir {
512cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
513cdf0e10cSrcweir 	if (xIface.is())
514cdf0e10cSrcweir 		xIface->updateBoolean(columnIndex, x);
515cdf0e10cSrcweir }
516cdf0e10cSrcweir // -------------------------------------------------------------------------
updateByte(sal_Int32 columnIndex,sal_Int8 x)517cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateByte(sal_Int32 columnIndex, sal_Int8 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
518cdf0e10cSrcweir {
519cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
520cdf0e10cSrcweir 	if (xIface.is())
521cdf0e10cSrcweir 		xIface->updateByte(columnIndex, x);
522cdf0e10cSrcweir }
523cdf0e10cSrcweir // -------------------------------------------------------------------------
updateShort(sal_Int32 columnIndex,sal_Int16 x)524cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateShort(sal_Int32 columnIndex, sal_Int16 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
525cdf0e10cSrcweir {
526cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
527cdf0e10cSrcweir 	if (xIface.is())
528cdf0e10cSrcweir 		xIface->updateShort(columnIndex, x);
529cdf0e10cSrcweir }
530cdf0e10cSrcweir // -------------------------------------------------------------------------
updateInt(sal_Int32 columnIndex,sal_Int32 x)531cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateInt(sal_Int32 columnIndex, sal_Int32 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
532cdf0e10cSrcweir {
533cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
534cdf0e10cSrcweir 	if (xIface.is())
535cdf0e10cSrcweir 		xIface->updateInt(columnIndex, x);
536cdf0e10cSrcweir }
537cdf0e10cSrcweir // -------------------------------------------------------------------------
updateLong(sal_Int32 columnIndex,sal_Int64 x)538cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateLong(sal_Int32 columnIndex, sal_Int64 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
539cdf0e10cSrcweir {
540cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
541cdf0e10cSrcweir 	if (xIface.is())
542cdf0e10cSrcweir 		xIface->updateLong(columnIndex, x);
543cdf0e10cSrcweir }
544cdf0e10cSrcweir // -------------------------------------------------------------------------
updateFloat(sal_Int32 columnIndex,float x)545cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateFloat(sal_Int32 columnIndex, float x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
546cdf0e10cSrcweir {
547cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
548cdf0e10cSrcweir 	if (xIface.is())
549cdf0e10cSrcweir 		xIface->updateFloat(columnIndex, x);
550cdf0e10cSrcweir }
551cdf0e10cSrcweir // -------------------------------------------------------------------------
updateDouble(sal_Int32 columnIndex,double x)552cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateDouble(sal_Int32 columnIndex, double x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
553cdf0e10cSrcweir {
554cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
555cdf0e10cSrcweir 	if (xIface.is())
556cdf0e10cSrcweir 		xIface->updateDouble(columnIndex, x);
557cdf0e10cSrcweir }
558cdf0e10cSrcweir // -------------------------------------------------------------------------
updateString(sal_Int32 columnIndex,const::rtl::OUString & x)559cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateString(sal_Int32 columnIndex, const ::rtl::OUString& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
560cdf0e10cSrcweir {
561cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
562cdf0e10cSrcweir 	if (xIface.is())
563cdf0e10cSrcweir 		xIface->updateString(columnIndex, x);
564cdf0e10cSrcweir }
565cdf0e10cSrcweir // -------------------------------------------------------------------------
updateBytes(sal_Int32 columnIndex,const Sequence<sal_Int8> & x)566cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateBytes(sal_Int32 columnIndex, const Sequence< sal_Int8 >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
567cdf0e10cSrcweir {
568cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
569cdf0e10cSrcweir 	if (xIface.is())
570cdf0e10cSrcweir 		xIface->updateBytes(columnIndex, x);
571cdf0e10cSrcweir }
572cdf0e10cSrcweir // -------------------------------------------------------------------------
updateDate(sal_Int32 columnIndex,const::com::sun::star::util::Date & x)573cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateDate(sal_Int32 columnIndex, const ::com::sun::star::util::Date& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
574cdf0e10cSrcweir {
575cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
576cdf0e10cSrcweir 	if (xIface.is())
577cdf0e10cSrcweir 		xIface->updateDate(columnIndex, x);
578cdf0e10cSrcweir }
579cdf0e10cSrcweir // -------------------------------------------------------------------------
updateTime(sal_Int32 columnIndex,const::com::sun::star::util::Time & x)580cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateTime(sal_Int32 columnIndex, const ::com::sun::star::util::Time& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
581cdf0e10cSrcweir {
582cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
583cdf0e10cSrcweir 	if (xIface.is())
584cdf0e10cSrcweir 		xIface->updateTime(columnIndex, x);
585cdf0e10cSrcweir }
586cdf0e10cSrcweir // -------------------------------------------------------------------------
updateTimestamp(sal_Int32 columnIndex,const::com::sun::star::util::DateTime & x)587cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateTimestamp(sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
588cdf0e10cSrcweir {
589cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
590cdf0e10cSrcweir 	if (xIface.is())
591cdf0e10cSrcweir 		xIface->updateTimestamp(columnIndex, x);
592cdf0e10cSrcweir }
593cdf0e10cSrcweir // -------------------------------------------------------------------------
updateBinaryStream(sal_Int32 columnIndex,const Reference<::com::sun::star::io::XInputStream> & x,sal_Int32 length)594cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateBinaryStream(sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
595cdf0e10cSrcweir {
596cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
597cdf0e10cSrcweir 	if (xIface.is())
598cdf0e10cSrcweir 		xIface->updateBinaryStream(columnIndex, x, length);
599cdf0e10cSrcweir }
600cdf0e10cSrcweir // -------------------------------------------------------------------------
updateCharacterStream(sal_Int32 columnIndex,const Reference<::com::sun::star::io::XInputStream> & x,sal_Int32 length)601cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateCharacterStream(sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
602cdf0e10cSrcweir {
603cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
604cdf0e10cSrcweir 	if (xIface.is())
605cdf0e10cSrcweir 		xIface->updateCharacterStream(columnIndex, x, length);
606cdf0e10cSrcweir }
607cdf0e10cSrcweir // -------------------------------------------------------------------------
updateObject(sal_Int32 columnIndex,const Any & x)608cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateObject(sal_Int32 columnIndex, const Any& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
609cdf0e10cSrcweir {
610cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
611cdf0e10cSrcweir 	if (xIface.is())
612cdf0e10cSrcweir 		xIface->updateObject(columnIndex, x);
613cdf0e10cSrcweir }
614cdf0e10cSrcweir // -------------------------------------------------------------------------
updateNumericObject(sal_Int32 columnIndex,const Any & x,sal_Int32 scale)615cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateNumericObject(sal_Int32 columnIndex, const Any& x, sal_Int32 scale) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
616cdf0e10cSrcweir {
617cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XRowUpdate >  xIface(m_xMainForm, UNO_QUERY);
618cdf0e10cSrcweir 	if (xIface.is())
619cdf0e10cSrcweir 		xIface->updateNumericObject(columnIndex, x, scale);
620cdf0e10cSrcweir }
621cdf0e10cSrcweir 
622cdf0e10cSrcweir // ::com::sun::star::sdbc::XResultSet
623cdf0e10cSrcweir // -------------------------------------------------------------------------
next()624cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::next() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
625cdf0e10cSrcweir {
626cdf0e10cSrcweir 	if (m_xMainForm.is())
627cdf0e10cSrcweir 		return m_xMainForm->next();
628cdf0e10cSrcweir 	return sal_False;
629cdf0e10cSrcweir }
630cdf0e10cSrcweir // -------------------------------------------------------------------------
isBeforeFirst()631cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isBeforeFirst() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
632cdf0e10cSrcweir {
633cdf0e10cSrcweir 	if (m_xMainForm.is())
634cdf0e10cSrcweir 		return m_xMainForm->isBeforeFirst();
635cdf0e10cSrcweir 	return sal_False;
636cdf0e10cSrcweir }
637cdf0e10cSrcweir // -------------------------------------------------------------------------
isAfterLast()638cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isAfterLast() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
639cdf0e10cSrcweir {
640cdf0e10cSrcweir 	if (m_xMainForm.is())
641cdf0e10cSrcweir 		return m_xMainForm->isAfterLast();
642cdf0e10cSrcweir 	return sal_False;
643cdf0e10cSrcweir }
644cdf0e10cSrcweir // -------------------------------------------------------------------------
isFirst()645cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isFirst() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
646cdf0e10cSrcweir {
647cdf0e10cSrcweir 	if (m_xMainForm.is())
648cdf0e10cSrcweir 		return m_xMainForm->isFirst();
649cdf0e10cSrcweir 	return sal_False;
650cdf0e10cSrcweir }
651cdf0e10cSrcweir // -------------------------------------------------------------------------
isLast()652cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isLast() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
653cdf0e10cSrcweir {
654cdf0e10cSrcweir 	if (m_xMainForm.is())
655cdf0e10cSrcweir 		return m_xMainForm->isLast();
656cdf0e10cSrcweir 	return sal_False;
657cdf0e10cSrcweir }
658cdf0e10cSrcweir // -------------------------------------------------------------------------
beforeFirst()659cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::beforeFirst() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
660cdf0e10cSrcweir {
661cdf0e10cSrcweir 	if (m_xMainForm.is())
662cdf0e10cSrcweir 		m_xMainForm->beforeFirst();
663cdf0e10cSrcweir }
664cdf0e10cSrcweir // -------------------------------------------------------------------------
afterLast()665cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::afterLast() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
666cdf0e10cSrcweir {
667cdf0e10cSrcweir 	if (m_xMainForm.is())
668cdf0e10cSrcweir 		m_xMainForm->afterLast();
669cdf0e10cSrcweir }
670cdf0e10cSrcweir // -------------------------------------------------------------------------
first()671cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::first() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
672cdf0e10cSrcweir {
673cdf0e10cSrcweir 	if (m_xMainForm.is())
674cdf0e10cSrcweir 		return m_xMainForm->first();
675cdf0e10cSrcweir 	return sal_False;
676cdf0e10cSrcweir }
677cdf0e10cSrcweir // -------------------------------------------------------------------------
last()678cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::last() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
679cdf0e10cSrcweir {
680cdf0e10cSrcweir 	if (m_xMainForm.is())
681cdf0e10cSrcweir 		return m_xMainForm->last();
682cdf0e10cSrcweir 	return sal_False;
683cdf0e10cSrcweir }
684cdf0e10cSrcweir // -------------------------------------------------------------------------
getRow()685cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
686cdf0e10cSrcweir {
687cdf0e10cSrcweir 	if (m_xMainForm.is())
688cdf0e10cSrcweir 		return m_xMainForm->getRow();
689cdf0e10cSrcweir 	return sal_False;
690cdf0e10cSrcweir }
691cdf0e10cSrcweir // -------------------------------------------------------------------------
absolute(sal_Int32 row)692cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::absolute(sal_Int32 row) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
693cdf0e10cSrcweir {
694cdf0e10cSrcweir 	if (m_xMainForm.is())
695cdf0e10cSrcweir 		return m_xMainForm->absolute(row);
696cdf0e10cSrcweir 	return sal_False;
697cdf0e10cSrcweir }
698cdf0e10cSrcweir // -------------------------------------------------------------------------
relative(sal_Int32 rows)699cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::relative(sal_Int32 rows) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
700cdf0e10cSrcweir {
701cdf0e10cSrcweir 	if (m_xMainForm.is())
702cdf0e10cSrcweir 		return m_xMainForm->relative(rows);
703cdf0e10cSrcweir 	return sal_False;
704cdf0e10cSrcweir }
705cdf0e10cSrcweir // -------------------------------------------------------------------------
previous()706cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::previous() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
707cdf0e10cSrcweir {
708cdf0e10cSrcweir 	if (m_xMainForm.is())
709cdf0e10cSrcweir 		return m_xMainForm->previous();
710cdf0e10cSrcweir 	return sal_False;
711cdf0e10cSrcweir }
712cdf0e10cSrcweir // -------------------------------------------------------------------------
refreshRow()713cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::refreshRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
714cdf0e10cSrcweir {
715cdf0e10cSrcweir 	if (m_xMainForm.is())
716cdf0e10cSrcweir 		m_xMainForm->refreshRow();
717cdf0e10cSrcweir }
718cdf0e10cSrcweir 
719cdf0e10cSrcweir // -------------------------------------------------------------------------
rowUpdated()720cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::rowUpdated() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
721cdf0e10cSrcweir {
722cdf0e10cSrcweir 	if (m_xMainForm.is())
723cdf0e10cSrcweir 		return m_xMainForm->rowUpdated();
724cdf0e10cSrcweir 	return sal_False;
725cdf0e10cSrcweir }
726cdf0e10cSrcweir // -------------------------------------------------------------------------
rowInserted()727cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::rowInserted() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
728cdf0e10cSrcweir {
729cdf0e10cSrcweir 	if (m_xMainForm.is())
730cdf0e10cSrcweir 		return m_xMainForm->rowInserted();
731cdf0e10cSrcweir 	return sal_False;
732cdf0e10cSrcweir }
733cdf0e10cSrcweir // -------------------------------------------------------------------------
rowDeleted()734cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::rowDeleted() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
735cdf0e10cSrcweir {
736cdf0e10cSrcweir 	if (m_xMainForm.is())
737cdf0e10cSrcweir 		return m_xMainForm->rowDeleted();
738cdf0e10cSrcweir 	return sal_False;
739cdf0e10cSrcweir }
740cdf0e10cSrcweir // -------------------------------------------------------------------------
getStatement()741cdf0e10cSrcweir Reference< XInterface > SAL_CALL SbaXFormAdapter::getStatement() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
742cdf0e10cSrcweir {
743cdf0e10cSrcweir 	if (m_xMainForm.is())
744cdf0e10cSrcweir 		return m_xMainForm->getStatement();
745cdf0e10cSrcweir 	return NULL;
746cdf0e10cSrcweir }
747cdf0e10cSrcweir 
748cdf0e10cSrcweir // ::com::sun::star::sdbc::XResultSetUpdate
749cdf0e10cSrcweir // -------------------------------------------------------------------------
insertRow()750cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::insertRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
751cdf0e10cSrcweir {
752cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetUpdate >  xIface(m_xMainForm, UNO_QUERY);
753cdf0e10cSrcweir 	if (xIface.is())
754cdf0e10cSrcweir 		xIface->insertRow();
755cdf0e10cSrcweir }
756cdf0e10cSrcweir // -------------------------------------------------------------------------
updateRow()757cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
758cdf0e10cSrcweir {
759cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetUpdate >  xIface(m_xMainForm, UNO_QUERY);
760cdf0e10cSrcweir 	if (xIface.is())
761cdf0e10cSrcweir 		xIface->updateRow();
762cdf0e10cSrcweir }
763cdf0e10cSrcweir // -------------------------------------------------------------------------
deleteRow()764cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::deleteRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
765cdf0e10cSrcweir {
766cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetUpdate >  xIface(m_xMainForm, UNO_QUERY);
767cdf0e10cSrcweir 	if (xIface.is())
768cdf0e10cSrcweir 		xIface->deleteRow();
769cdf0e10cSrcweir }
770cdf0e10cSrcweir // -------------------------------------------------------------------------
cancelRowUpdates()771cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::cancelRowUpdates() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
772cdf0e10cSrcweir {
773cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetUpdate >  xIface(m_xMainForm, UNO_QUERY);
774cdf0e10cSrcweir 	if (xIface.is())
775cdf0e10cSrcweir 		xIface->cancelRowUpdates();
776cdf0e10cSrcweir }
777cdf0e10cSrcweir // -------------------------------------------------------------------------
moveToInsertRow()778cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::moveToInsertRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
779cdf0e10cSrcweir {
780cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetUpdate >  xIface(m_xMainForm, UNO_QUERY);
781cdf0e10cSrcweir 	if (xIface.is())
782cdf0e10cSrcweir 		xIface->moveToInsertRow();
783cdf0e10cSrcweir }
784cdf0e10cSrcweir // -------------------------------------------------------------------------
moveToCurrentRow()785cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::moveToCurrentRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
786cdf0e10cSrcweir {
787cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XResultSetUpdate >  xIface(m_xMainForm, UNO_QUERY);
788cdf0e10cSrcweir 	if (xIface.is())
789cdf0e10cSrcweir 		xIface->moveToCurrentRow();
790cdf0e10cSrcweir }
791cdf0e10cSrcweir 
792cdf0e10cSrcweir // ::com::sun::star::sdbc::XRowSet
793cdf0e10cSrcweir // -------------------------------------------------------------------------
execute()794cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::execute() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
795cdf0e10cSrcweir {
796cdf0e10cSrcweir 	if (m_xMainForm.is())
797cdf0e10cSrcweir 		m_xMainForm->execute();
798cdf0e10cSrcweir }
799cdf0e10cSrcweir // -------------------------------------------------------------------------
IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter,sdbc,RowSetListener,m_aRowSetListeners,::com::sun::star::sdbc::XRowSet,m_xMainForm)800cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdbc, RowSetListener, m_aRowSetListeners, ::com::sun::star::sdbc::XRowSet, m_xMainForm)
801cdf0e10cSrcweir 
802cdf0e10cSrcweir // ::com::sun::star::sdbcx::XDeleteRows
803cdf0e10cSrcweir // -------------------------------------------------------------------------
804cdf0e10cSrcweir Sequence<sal_Int32> SAL_CALL SbaXFormAdapter::deleteRows(const Sequence< Any >& rows) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
805cdf0e10cSrcweir {
806cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbcx::XDeleteRows >  xIface(m_xMainForm, UNO_QUERY);
807cdf0e10cSrcweir 	if (xIface.is())
808cdf0e10cSrcweir 		return xIface->deleteRows(rows);
809cdf0e10cSrcweir 	return Sequence<sal_Int32>();
810cdf0e10cSrcweir }
811cdf0e10cSrcweir 
812cdf0e10cSrcweir // ::com::sun::star::sdbc::XWarningsSupplier
813cdf0e10cSrcweir // -------------------------------------------------------------------------
getWarnings()814cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getWarnings() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
815cdf0e10cSrcweir {
816cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XWarningsSupplier >  xIface(m_xMainForm, UNO_QUERY);
817cdf0e10cSrcweir 	if (xIface.is())
818cdf0e10cSrcweir 		return xIface->getWarnings();
819cdf0e10cSrcweir 	return Any();
820cdf0e10cSrcweir }
821cdf0e10cSrcweir // -------------------------------------------------------------------------
clearWarnings()822cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::clearWarnings() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
823cdf0e10cSrcweir {
824cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XWarningsSupplier >  xIface(m_xMainForm, UNO_QUERY);
825cdf0e10cSrcweir 	if (xIface.is())
826cdf0e10cSrcweir 		xIface->clearWarnings();
827cdf0e10cSrcweir }
828cdf0e10cSrcweir 
829cdf0e10cSrcweir // ::com::sun::star::sdb::XRowSetApproveBroadcaster
830cdf0e10cSrcweir // -------------------------------------------------------------------------
IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter,sdb,RowSetApproveListener,m_aRowSetApproveListeners,::com::sun::star::sdb::XRowSetApproveBroadcaster,m_xMainForm)831cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdb, RowSetApproveListener, m_aRowSetApproveListeners, ::com::sun::star::sdb::XRowSetApproveBroadcaster, m_xMainForm)
832cdf0e10cSrcweir 
833cdf0e10cSrcweir // com::sun::star::sdbc::XSQLErrorBroadcaster
834cdf0e10cSrcweir // -------------------------------------------------------------------------
835cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdb, SQLErrorListener, m_aErrorListeners, ::com::sun::star::sdb::XSQLErrorBroadcaster, m_xMainForm)
836cdf0e10cSrcweir 
837cdf0e10cSrcweir // ::com::sun::star::sdb::XResultSetAccess
838cdf0e10cSrcweir // -------------------------------------------------------------------------
839cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL SbaXFormAdapter::createResultSet() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
840cdf0e10cSrcweir {
841cdf0e10cSrcweir 	Reference< ::com::sun::star::sdb::XResultSetAccess >  xIface(m_xMainForm, UNO_QUERY);
842cdf0e10cSrcweir 	if (xIface.is())
843cdf0e10cSrcweir 		return xIface->createResultSet();
844cdf0e10cSrcweir 	return Reference< ::com::sun::star::sdbc::XResultSet > ();
845cdf0e10cSrcweir }
846cdf0e10cSrcweir 
847cdf0e10cSrcweir // com::sun::star::form::XLoadable
848cdf0e10cSrcweir // -------------------------------------------------------------------------
load()849cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::load() throw( RuntimeException )
850cdf0e10cSrcweir {
851cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XLoadable >  xIface(m_xMainForm, UNO_QUERY);
852cdf0e10cSrcweir 	if (xIface.is())
853cdf0e10cSrcweir 		xIface->load();
854cdf0e10cSrcweir }
855cdf0e10cSrcweir // -------------------------------------------------------------------------
unload()856cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::unload() throw( RuntimeException )
857cdf0e10cSrcweir {
858cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XLoadable >  xIface(m_xMainForm, UNO_QUERY);
859cdf0e10cSrcweir 	if (xIface.is())
860cdf0e10cSrcweir 		xIface->unload();
861cdf0e10cSrcweir }
862cdf0e10cSrcweir // -------------------------------------------------------------------------
reload()863cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::reload() throw( RuntimeException )
864cdf0e10cSrcweir {
865cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XLoadable >  xIface(m_xMainForm, UNO_QUERY);
866cdf0e10cSrcweir 	if (xIface.is())
867cdf0e10cSrcweir 		xIface->reload();
868cdf0e10cSrcweir }
869cdf0e10cSrcweir // -------------------------------------------------------------------------
isLoaded()870cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isLoaded() throw( RuntimeException )
871cdf0e10cSrcweir {
872cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XLoadable >  xIface(m_xMainForm, UNO_QUERY);
873cdf0e10cSrcweir 	if (xIface.is())
874cdf0e10cSrcweir 		return xIface->isLoaded();
875cdf0e10cSrcweir 	return sal_False;
876cdf0e10cSrcweir }
877cdf0e10cSrcweir // -------------------------------------------------------------------------
IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter,form,LoadListener,m_aLoadListeners,::com::sun::star::form::XLoadable,m_xMainForm)878cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, LoadListener, m_aLoadListeners, ::com::sun::star::form::XLoadable, m_xMainForm)
879cdf0e10cSrcweir 
880cdf0e10cSrcweir // ::com::sun::star::sdbc::XParameters
881cdf0e10cSrcweir // -------------------------------------------------------------------------
882cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setNull(sal_Int32 parameterIndex, sal_Int32 sqlType) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
883cdf0e10cSrcweir {
884cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
885cdf0e10cSrcweir 	if (xIface.is())
886cdf0e10cSrcweir 		xIface->setNull(parameterIndex, sqlType);
887cdf0e10cSrcweir }
888cdf0e10cSrcweir // -------------------------------------------------------------------------
setObjectNull(sal_Int32 parameterIndex,sal_Int32 sqlType,const::rtl::OUString & typeName)889cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setObjectNull(sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
890cdf0e10cSrcweir {
891cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
892cdf0e10cSrcweir 	if (xIface.is())
893cdf0e10cSrcweir 		xIface->setObjectNull(parameterIndex, sqlType, typeName);
894cdf0e10cSrcweir }
895cdf0e10cSrcweir // -------------------------------------------------------------------------
setBoolean(sal_Int32 parameterIndex,sal_Bool x)896cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBoolean(sal_Int32 parameterIndex, sal_Bool x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
897cdf0e10cSrcweir {
898cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
899cdf0e10cSrcweir 	if (xIface.is())
900cdf0e10cSrcweir 		xIface->setBoolean(parameterIndex, x);
901cdf0e10cSrcweir }
902cdf0e10cSrcweir // -------------------------------------------------------------------------
setByte(sal_Int32 parameterIndex,sal_Int8 x)903cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setByte(sal_Int32 parameterIndex, sal_Int8 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
904cdf0e10cSrcweir {
905cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
906cdf0e10cSrcweir 	if (xIface.is())
907cdf0e10cSrcweir 		xIface->setByte(parameterIndex, x);
908cdf0e10cSrcweir }
909cdf0e10cSrcweir // -------------------------------------------------------------------------
setShort(sal_Int32 parameterIndex,sal_Int16 x)910cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setShort(sal_Int32 parameterIndex, sal_Int16 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
911cdf0e10cSrcweir {
912cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
913cdf0e10cSrcweir 	if (xIface.is())
914cdf0e10cSrcweir 		xIface->setShort(parameterIndex, x);
915cdf0e10cSrcweir }
916cdf0e10cSrcweir // -------------------------------------------------------------------------
setInt(sal_Int32 parameterIndex,sal_Int32 x)917cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setInt(sal_Int32 parameterIndex, sal_Int32 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
918cdf0e10cSrcweir {
919cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
920cdf0e10cSrcweir 	if (xIface.is())
921cdf0e10cSrcweir 		xIface->setInt(parameterIndex, x);
922cdf0e10cSrcweir }
923cdf0e10cSrcweir // -------------------------------------------------------------------------
setLong(sal_Int32 parameterIndex,sal_Int64 x)924cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setLong(sal_Int32 parameterIndex, sal_Int64 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
925cdf0e10cSrcweir {
926cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
927cdf0e10cSrcweir 	if (xIface.is())
928cdf0e10cSrcweir 		xIface->setLong(parameterIndex, x);
929cdf0e10cSrcweir }
930cdf0e10cSrcweir // -------------------------------------------------------------------------
setFloat(sal_Int32 parameterIndex,float x)931cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setFloat(sal_Int32 parameterIndex, float x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
932cdf0e10cSrcweir {
933cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
934cdf0e10cSrcweir 	if (xIface.is())
935cdf0e10cSrcweir 		xIface->setFloat(parameterIndex, x);
936cdf0e10cSrcweir }
937cdf0e10cSrcweir // -------------------------------------------------------------------------
setDouble(sal_Int32 parameterIndex,double x)938cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setDouble(sal_Int32 parameterIndex, double x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
939cdf0e10cSrcweir {
940cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
941cdf0e10cSrcweir 	if (xIface.is())
942cdf0e10cSrcweir 		xIface->setDouble(parameterIndex, x);
943cdf0e10cSrcweir }
944cdf0e10cSrcweir // -------------------------------------------------------------------------
setString(sal_Int32 parameterIndex,const::rtl::OUString & x)945cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setString(sal_Int32 parameterIndex, const ::rtl::OUString& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
946cdf0e10cSrcweir {
947cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
948cdf0e10cSrcweir 	if (xIface.is())
949cdf0e10cSrcweir 		xIface->setString(parameterIndex, x);
950cdf0e10cSrcweir }
951cdf0e10cSrcweir // -------------------------------------------------------------------------
setBytes(sal_Int32 parameterIndex,const Sequence<sal_Int8> & x)952cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBytes(sal_Int32 parameterIndex, const Sequence< sal_Int8 >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
953cdf0e10cSrcweir {
954cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
955cdf0e10cSrcweir 	if (xIface.is())
956cdf0e10cSrcweir 		xIface->setBytes(parameterIndex, x);
957cdf0e10cSrcweir }
958cdf0e10cSrcweir // -------------------------------------------------------------------------
setDate(sal_Int32 parameterIndex,const::com::sun::star::util::Date & x)959cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setDate(sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
960cdf0e10cSrcweir {
961cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
962cdf0e10cSrcweir 	if (xIface.is())
963cdf0e10cSrcweir 		xIface->setDate(parameterIndex, x);
964cdf0e10cSrcweir }
965cdf0e10cSrcweir // -------------------------------------------------------------------------
setTime(sal_Int32 parameterIndex,const::com::sun::star::util::Time & x)966cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setTime(sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
967cdf0e10cSrcweir {
968cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
969cdf0e10cSrcweir 	if (xIface.is())
970cdf0e10cSrcweir 		xIface->setTime(parameterIndex, x);
971cdf0e10cSrcweir }
972cdf0e10cSrcweir // -------------------------------------------------------------------------
setTimestamp(sal_Int32 parameterIndex,const::com::sun::star::util::DateTime & x)973cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setTimestamp(sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
974cdf0e10cSrcweir {
975cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
976cdf0e10cSrcweir 	if (xIface.is())
977cdf0e10cSrcweir 		xIface->setTimestamp(parameterIndex, x);
978cdf0e10cSrcweir }
979cdf0e10cSrcweir // -------------------------------------------------------------------------
setBinaryStream(sal_Int32 parameterIndex,const Reference<::com::sun::star::io::XInputStream> & x,sal_Int32 length)980cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBinaryStream(sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
981cdf0e10cSrcweir {
982cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
983cdf0e10cSrcweir 	if (xIface.is())
984cdf0e10cSrcweir 		xIface->setBinaryStream(parameterIndex, x, length);
985cdf0e10cSrcweir }
986cdf0e10cSrcweir // -------------------------------------------------------------------------
setCharacterStream(sal_Int32 parameterIndex,const Reference<::com::sun::star::io::XInputStream> & x,sal_Int32 length)987cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setCharacterStream(sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
988cdf0e10cSrcweir {
989cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
990cdf0e10cSrcweir 	if (xIface.is())
991cdf0e10cSrcweir 		xIface->setCharacterStream(parameterIndex, x, length);
992cdf0e10cSrcweir }
993cdf0e10cSrcweir // -------------------------------------------------------------------------
setObject(sal_Int32 parameterIndex,const Any & x)994cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setObject(sal_Int32 parameterIndex, const Any& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
995cdf0e10cSrcweir {
996cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
997cdf0e10cSrcweir 	if (xIface.is())
998cdf0e10cSrcweir 		xIface->setObject(parameterIndex, x);
999cdf0e10cSrcweir }
1000cdf0e10cSrcweir // -------------------------------------------------------------------------
setObjectWithInfo(sal_Int32 parameterIndex,const Any & x,sal_Int32 targetSqlType,sal_Int32 scale)1001cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setObjectWithInfo(sal_Int32 parameterIndex, const Any& x, sal_Int32 targetSqlType, sal_Int32 scale) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
1002cdf0e10cSrcweir {
1003cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
1004cdf0e10cSrcweir 	if (xIface.is())
1005cdf0e10cSrcweir 		xIface->setObjectWithInfo(parameterIndex, x, targetSqlType, scale);
1006cdf0e10cSrcweir }
1007cdf0e10cSrcweir // -------------------------------------------------------------------------
setRef(sal_Int32 parameterIndex,const Reference<::com::sun::star::sdbc::XRef> & x)1008cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setRef(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XRef >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
1009cdf0e10cSrcweir {
1010cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
1011cdf0e10cSrcweir 	if (xIface.is())
1012cdf0e10cSrcweir 		xIface->setRef(parameterIndex, x);
1013cdf0e10cSrcweir }
1014cdf0e10cSrcweir // -------------------------------------------------------------------------
setBlob(sal_Int32 parameterIndex,const Reference<::com::sun::star::sdbc::XBlob> & x)1015cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBlob(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XBlob >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
1016cdf0e10cSrcweir {
1017cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
1018cdf0e10cSrcweir 	if (xIface.is())
1019cdf0e10cSrcweir 		xIface->setBlob(parameterIndex, x);
1020cdf0e10cSrcweir }
1021cdf0e10cSrcweir // -------------------------------------------------------------------------
setClob(sal_Int32 parameterIndex,const Reference<::com::sun::star::sdbc::XClob> & x)1022cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setClob(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XClob >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
1023cdf0e10cSrcweir {
1024cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
1025cdf0e10cSrcweir 	if (xIface.is())
1026cdf0e10cSrcweir 		xIface->setClob(parameterIndex, x);
1027cdf0e10cSrcweir }
1028cdf0e10cSrcweir // -------------------------------------------------------------------------
setArray(sal_Int32 parameterIndex,const Reference<::com::sun::star::sdbc::XArray> & x)1029cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setArray(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XArray >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
1030cdf0e10cSrcweir {
1031cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
1032cdf0e10cSrcweir 	if (xIface.is())
1033cdf0e10cSrcweir 		xIface->setArray(parameterIndex, x);
1034cdf0e10cSrcweir }
1035cdf0e10cSrcweir // -------------------------------------------------------------------------
clearParameters()1036cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::clearParameters() throw( ::com::sun::star::sdbc::SQLException, RuntimeException )
1037cdf0e10cSrcweir {
1038cdf0e10cSrcweir 	Reference< ::com::sun::star::sdbc::XParameters >  xIface(m_xMainForm, UNO_QUERY);
1039cdf0e10cSrcweir 	if (xIface.is())
1040cdf0e10cSrcweir 		xIface->clearParameters();
1041cdf0e10cSrcweir }
1042cdf0e10cSrcweir 
1043cdf0e10cSrcweir // ::com::sun::star::form::XDatabaseParameterBroadcaster
1044cdf0e10cSrcweir // -------------------------------------------------------------------------
addParameterListener(const Reference<::com::sun::star::form::XDatabaseParameterListener> & aListener)1045cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addParameterListener(const Reference< ::com::sun::star::form::XDatabaseParameterListener >& aListener) throw( RuntimeException )
1046cdf0e10cSrcweir {
1047cdf0e10cSrcweir 	m_aParameterListeners.addInterface(aListener);
1048cdf0e10cSrcweir 	if (m_aParameterListeners.getLength() == 1)
1049cdf0e10cSrcweir 	{
1050cdf0e10cSrcweir 		Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster >  xBroadcaster(m_xMainForm, UNO_QUERY);
1051cdf0e10cSrcweir 		if (xBroadcaster.is())
1052cdf0e10cSrcweir 			xBroadcaster->addParameterListener(&m_aParameterListeners);
1053cdf0e10cSrcweir 	}
1054cdf0e10cSrcweir }
1055cdf0e10cSrcweir 
1056cdf0e10cSrcweir // -------------------------------------------------------------------------
removeParameterListener(const Reference<::com::sun::star::form::XDatabaseParameterListener> & aListener)1057cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeParameterListener(const Reference< ::com::sun::star::form::XDatabaseParameterListener >& aListener) throw( RuntimeException )
1058cdf0e10cSrcweir {
1059cdf0e10cSrcweir 	if (m_aParameterListeners.getLength() == 1)
1060cdf0e10cSrcweir 	{
1061cdf0e10cSrcweir 		Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster >  xBroadcaster(m_xMainForm, UNO_QUERY);
1062cdf0e10cSrcweir 		if (xBroadcaster.is())
1063cdf0e10cSrcweir 			xBroadcaster->removeParameterListener(&m_aParameterListeners);
1064cdf0e10cSrcweir 	}
1065cdf0e10cSrcweir 	m_aParameterListeners.removeInterface(aListener);
1066cdf0e10cSrcweir }
1067cdf0e10cSrcweir 
1068cdf0e10cSrcweir // ::com::sun::star::container::XChild
1069cdf0e10cSrcweir // -------------------------------------------------------------------------
getParent()1070cdf0e10cSrcweir Reference< XInterface > SAL_CALL SbaXFormAdapter::getParent() throw( RuntimeException )
1071cdf0e10cSrcweir {
1072cdf0e10cSrcweir 	return m_xParent;
1073cdf0e10cSrcweir }
1074cdf0e10cSrcweir 
1075cdf0e10cSrcweir // -------------------------------------------------------------------------
setParent(const Reference<XInterface> & Parent)1076cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setParent(const Reference< XInterface >& Parent) throw( ::com::sun::star::lang::NoSupportException, RuntimeException )
1077cdf0e10cSrcweir {
1078cdf0e10cSrcweir 	m_xParent = Parent;
1079cdf0e10cSrcweir }
1080cdf0e10cSrcweir 
1081cdf0e10cSrcweir // ::com::sun::star::form::XSubmit
1082cdf0e10cSrcweir // -------------------------------------------------------------------------
submit(const Reference<::com::sun::star::awt::XControl> & aControl,const::com::sun::star::awt::MouseEvent & aMouseEvt)1083cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::submit(const Reference< ::com::sun::star::awt::XControl >& aControl, const ::com::sun::star::awt::MouseEvent& aMouseEvt) throw( RuntimeException )
1084cdf0e10cSrcweir {
1085cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XSubmit >  xSubmit(m_xMainForm, UNO_QUERY);
1086cdf0e10cSrcweir 	if (xSubmit.is())
1087cdf0e10cSrcweir 		xSubmit->submit(aControl, aMouseEvt);
1088cdf0e10cSrcweir }
1089cdf0e10cSrcweir 
IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter,form,SubmitListener,m_aSubmitListeners,::com::sun::star::form::XSubmit,m_xMainForm)1090cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, SubmitListener, m_aSubmitListeners, ::com::sun::star::form::XSubmit, m_xMainForm)
1091cdf0e10cSrcweir 
1092cdf0e10cSrcweir // ::com::sun::star::awt::XTabControllerModel
1093cdf0e10cSrcweir // -------------------------------------------------------------------------
1094cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::getGroupControl() throw( RuntimeException )
1095cdf0e10cSrcweir {
1096cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroupControl : not supported !");
1097cdf0e10cSrcweir 	return sal_False;
1098cdf0e10cSrcweir }
1099cdf0e10cSrcweir 
1100cdf0e10cSrcweir // -------------------------------------------------------------------------
setGroupControl(sal_Bool)1101cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setGroupControl(sal_Bool /*GroupControl*/) throw( RuntimeException )
1102cdf0e10cSrcweir {
1103cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::setGroupControl : not supported !");
1104cdf0e10cSrcweir }
1105cdf0e10cSrcweir 
1106cdf0e10cSrcweir // -------------------------------------------------------------------------
setControlModels(const Sequence<Reference<::com::sun::star::awt::XControlModel>> &)1107cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setControlModels(const Sequence< Reference< ::com::sun::star::awt::XControlModel >  >& /*Controls*/) throw( RuntimeException )
1108cdf0e10cSrcweir {
1109cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::setControlModels : not supported !");
1110cdf0e10cSrcweir }
1111cdf0e10cSrcweir 
1112cdf0e10cSrcweir // -------------------------------------------------------------------------
getControlModels()1113cdf0e10cSrcweir Sequence< Reference< ::com::sun::star::awt::XControlModel > > SAL_CALL SbaXFormAdapter::getControlModels() throw( RuntimeException )
1114cdf0e10cSrcweir {
1115cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::getControlModels : not supported !");
1116cdf0e10cSrcweir 	return Sequence< Reference< ::com::sun::star::awt::XControlModel > >();
1117cdf0e10cSrcweir }
1118cdf0e10cSrcweir 
1119cdf0e10cSrcweir // -------------------------------------------------------------------------
setGroup(const Sequence<Reference<::com::sun::star::awt::XControlModel>> &,const::rtl::OUString &)1120cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setGroup(const Sequence< Reference< ::com::sun::star::awt::XControlModel >  >& /*_rGroup*/, const ::rtl::OUString& /*GroupName*/) throw( RuntimeException )
1121cdf0e10cSrcweir {
1122cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::setGroup : not supported !");
1123cdf0e10cSrcweir }
1124cdf0e10cSrcweir 
1125cdf0e10cSrcweir // -------------------------------------------------------------------------
getGroupCount()1126cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getGroupCount() throw( RuntimeException )
1127cdf0e10cSrcweir {
1128cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroupCount : not supported !");
1129cdf0e10cSrcweir 	return 0;
1130cdf0e10cSrcweir }
1131cdf0e10cSrcweir 
1132cdf0e10cSrcweir // -------------------------------------------------------------------------
getGroup(sal_Int32,Sequence<Reference<::com::sun::star::awt::XControlModel>> &,::rtl::OUString &)1133cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::getGroup(sal_Int32 /*nGroup*/, Sequence< Reference< ::com::sun::star::awt::XControlModel >  >& /*_rGroup*/, ::rtl::OUString& /*Name*/) throw( RuntimeException )
1134cdf0e10cSrcweir {
1135cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroup : not supported !");
1136cdf0e10cSrcweir }
1137cdf0e10cSrcweir 
1138cdf0e10cSrcweir // -------------------------------------------------------------------------
getGroupByName(const::rtl::OUString &,Sequence<Reference<::com::sun::star::awt::XControlModel>> &)1139cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::getGroupByName(const ::rtl::OUString& /*Name*/, Sequence< Reference< ::com::sun::star::awt::XControlModel >  >& /*_rGroup*/) throw( RuntimeException )
1140cdf0e10cSrcweir {
1141cdf0e10cSrcweir 	DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroupByName : not supported !");
1142cdf0e10cSrcweir }
1143cdf0e10cSrcweir 
1144cdf0e10cSrcweir // ::com::sun::star::lang::XComponent
1145cdf0e10cSrcweir // -------------------------------------------------------------------------
dispose()1146cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::dispose() throw( RuntimeException )
1147cdf0e10cSrcweir {
1148cdf0e10cSrcweir 	// log off all multiplexers
1149cdf0e10cSrcweir 	if (m_xMainForm.is())
1150cdf0e10cSrcweir 		StopListening();
1151cdf0e10cSrcweir 
1152cdf0e10cSrcweir 	::com::sun::star::lang::EventObject aEvt(*this);
1153cdf0e10cSrcweir 	m_aLoadListeners.disposeAndClear(aEvt);
1154cdf0e10cSrcweir 	m_aRowSetListeners.disposeAndClear(aEvt);
1155cdf0e10cSrcweir 	m_aRowSetApproveListeners.disposeAndClear(aEvt);
1156cdf0e10cSrcweir 	m_aErrorListeners.disposeAndClear(aEvt);
1157cdf0e10cSrcweir 	m_aParameterListeners.disposeAndClear(aEvt);
1158cdf0e10cSrcweir 	m_aSubmitListeners.disposeAndClear(aEvt);
1159cdf0e10cSrcweir 	m_aResetListeners.disposeAndClear(aEvt);
1160cdf0e10cSrcweir 
1161cdf0e10cSrcweir 	m_aVetoablePropertyChangeListeners.disposeAndClear();
1162cdf0e10cSrcweir 	m_aPropertyChangeListeners.disposeAndClear();
1163cdf0e10cSrcweir 	m_aPropertiesChangeListeners.disposeAndClear(aEvt);
1164cdf0e10cSrcweir 
1165cdf0e10cSrcweir 	m_aDisposeListeners.disposeAndClear(aEvt);
1166cdf0e10cSrcweir 	m_aContainerListeners.disposeAndClear(aEvt);
1167cdf0e10cSrcweir 
1168cdf0e10cSrcweir 	// dispose all childs
1169cdf0e10cSrcweir 	for (	::std::vector< Reference< ::com::sun::star::form::XFormComponent > >::iterator aIter = m_aChildren.begin();
1170cdf0e10cSrcweir 			aIter != m_aChildren.end();
1171cdf0e10cSrcweir 			++aIter
1172cdf0e10cSrcweir 		)
1173cdf0e10cSrcweir 	{
1174cdf0e10cSrcweir 		Reference< ::com::sun::star::beans::XPropertySet >  xSet(*aIter, UNO_QUERY);
1175cdf0e10cSrcweir 		if (xSet.is())
1176cdf0e10cSrcweir 			xSet->removePropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this);
1177cdf0e10cSrcweir 
1178cdf0e10cSrcweir 		Reference< ::com::sun::star::container::XChild >  xChild(*aIter, UNO_QUERY);
1179cdf0e10cSrcweir 		if (xChild.is())
1180cdf0e10cSrcweir 			xChild->setParent(Reference< XInterface > ());
1181cdf0e10cSrcweir 
1182cdf0e10cSrcweir 		Reference< ::com::sun::star::lang::XComponent >  xComp(*aIter, UNO_QUERY);
1183cdf0e10cSrcweir 		if (xComp.is())
1184cdf0e10cSrcweir 			xComp->dispose();
1185cdf0e10cSrcweir 	}
1186cdf0e10cSrcweir 	m_aChildren.clear();
1187cdf0e10cSrcweir }
1188cdf0e10cSrcweir 
1189cdf0e10cSrcweir // -------------------------------------------------------------------------
addEventListener(const Reference<::com::sun::star::lang::XEventListener> & xListener)1190cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addEventListener(const Reference< ::com::sun::star::lang::XEventListener >& xListener) throw( RuntimeException )
1191cdf0e10cSrcweir {
1192cdf0e10cSrcweir 	m_aDisposeListeners.addInterface(xListener);
1193cdf0e10cSrcweir }
1194cdf0e10cSrcweir 
1195cdf0e10cSrcweir // -------------------------------------------------------------------------
removeEventListener(const Reference<::com::sun::star::lang::XEventListener> & aListener)1196cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeEventListener(const Reference< ::com::sun::star::lang::XEventListener >& aListener) throw( RuntimeException )
1197cdf0e10cSrcweir {
1198cdf0e10cSrcweir 	m_aDisposeListeners.removeInterface(aListener);
1199cdf0e10cSrcweir }
1200cdf0e10cSrcweir 
1201cdf0e10cSrcweir // ::com::sun::star::beans::XFastPropertySet
1202cdf0e10cSrcweir // -------------------------------------------------------------------------
setFastPropertyValue(sal_Int32 nHandle,const Any & aValue)1203cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setFastPropertyValue(sal_Int32 nHandle, const Any& aValue) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1204cdf0e10cSrcweir {
1205cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XFastPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1206cdf0e10cSrcweir 	DBG_ASSERT(xSet.is(), "SAL_CALL SbaXFormAdapter::setFastPropertyValue : have no master form !");
1207cdf0e10cSrcweir 
1208cdf0e10cSrcweir 	if (m_nNamePropHandle == nHandle)
1209cdf0e10cSrcweir 	{
1210cdf0e10cSrcweir 		if (aValue.getValueType().getTypeClass() != TypeClass_STRING)
1211cdf0e10cSrcweir 		{
1212cdf0e10cSrcweir 			throw ::com::sun::star::lang::IllegalArgumentException();
1213cdf0e10cSrcweir 		}
1214cdf0e10cSrcweir 
1215cdf0e10cSrcweir 		// for notifying property listeners
1216cdf0e10cSrcweir 		::com::sun::star::beans::PropertyChangeEvent aEvt;
1217cdf0e10cSrcweir 		aEvt.Source = *this;
1218cdf0e10cSrcweir 		aEvt.PropertyName = PROPERTY_NAME;
1219cdf0e10cSrcweir 		aEvt.PropertyHandle = m_nNamePropHandle;
1220cdf0e10cSrcweir 		aEvt.OldValue <<= m_sName;
1221cdf0e10cSrcweir 		aEvt.NewValue = aValue;
1222cdf0e10cSrcweir 
1223cdf0e10cSrcweir 		aValue >>= m_sName;
1224cdf0e10cSrcweir 
1225cdf0e10cSrcweir 		::cppu::OInterfaceIteratorHelper aIt(*m_aPropertyChangeListeners.getContainer(PROPERTY_NAME));
1226cdf0e10cSrcweir 		while (aIt.hasMoreElements())
1227cdf0e10cSrcweir 			((::com::sun::star::beans::XPropertyChangeListener*)aIt.next())->propertyChange(aEvt);
1228cdf0e10cSrcweir 
1229cdf0e10cSrcweir 		return;
1230cdf0e10cSrcweir 	}
1231cdf0e10cSrcweir 
1232cdf0e10cSrcweir 	xSet->setFastPropertyValue(nHandle, aValue);
1233cdf0e10cSrcweir }
1234cdf0e10cSrcweir 
1235cdf0e10cSrcweir // -------------------------------------------------------------------------
getFastPropertyValue(sal_Int32 nHandle)1236cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getFastPropertyValue(sal_Int32 nHandle) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1237cdf0e10cSrcweir {
1238cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XFastPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1239cdf0e10cSrcweir 	DBG_ASSERT(xSet.is(), "SAL_CALL SbaXFormAdapter::getFastPropertyValue : have no master form !");
1240cdf0e10cSrcweir 
1241cdf0e10cSrcweir 	if (m_nNamePropHandle == nHandle)
1242cdf0e10cSrcweir 		return makeAny(m_sName);
1243cdf0e10cSrcweir 
1244cdf0e10cSrcweir 	return xSet->getFastPropertyValue(nHandle);
1245cdf0e10cSrcweir }
1246cdf0e10cSrcweir 
1247cdf0e10cSrcweir // ::com::sun::star::container::XNamed
1248cdf0e10cSrcweir // -------------------------------------------------------------------------
getName()1249cdf0e10cSrcweir ::rtl::OUString SAL_CALL SbaXFormAdapter::getName() throw( RuntimeException )
1250cdf0e10cSrcweir {
1251cdf0e10cSrcweir 	return ::comphelper::getString(getPropertyValue(PROPERTY_NAME));
1252cdf0e10cSrcweir }
1253cdf0e10cSrcweir 
1254cdf0e10cSrcweir // -------------------------------------------------------------------------
setName(const::rtl::OUString & aName)1255cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setName(const ::rtl::OUString& aName) throw( RuntimeException )
1256cdf0e10cSrcweir {
1257cdf0e10cSrcweir 	setPropertyValue(PROPERTY_NAME, makeAny(aName));
1258cdf0e10cSrcweir }
1259cdf0e10cSrcweir 
1260cdf0e10cSrcweir // ::com::sun::star::io::XPersistObject
1261cdf0e10cSrcweir // -------------------------------------------------------------------------
getServiceName()1262cdf0e10cSrcweir ::rtl::OUString SAL_CALL SbaXFormAdapter::getServiceName() throw( RuntimeException )
1263cdf0e10cSrcweir {
1264cdf0e10cSrcweir 	Reference< ::com::sun::star::io::XPersistObject >  xPersist(m_xMainForm, UNO_QUERY);
1265cdf0e10cSrcweir 	if (xPersist.is())
1266cdf0e10cSrcweir 		return xPersist->getServiceName();
1267cdf0e10cSrcweir 	return ::rtl::OUString();
1268cdf0e10cSrcweir }
1269cdf0e10cSrcweir 
1270cdf0e10cSrcweir // -------------------------------------------------------------------------
write(const Reference<::com::sun::star::io::XObjectOutputStream> & _rxOutStream)1271cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::write(const Reference< ::com::sun::star::io::XObjectOutputStream >& _rxOutStream) throw( ::com::sun::star::io::IOException, RuntimeException )
1272cdf0e10cSrcweir {
1273cdf0e10cSrcweir 	Reference< ::com::sun::star::io::XPersistObject >  xPersist(m_xMainForm, UNO_QUERY);
1274cdf0e10cSrcweir 	if (xPersist.is())
1275cdf0e10cSrcweir 		xPersist->write(_rxOutStream);
1276cdf0e10cSrcweir }
1277cdf0e10cSrcweir 
1278cdf0e10cSrcweir // -------------------------------------------------------------------------
read(const Reference<::com::sun::star::io::XObjectInputStream> & _rxInStream)1279cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::read(const Reference< ::com::sun::star::io::XObjectInputStream >& _rxInStream) throw( ::com::sun::star::io::IOException, RuntimeException )
1280cdf0e10cSrcweir {
1281cdf0e10cSrcweir 	Reference< ::com::sun::star::io::XPersistObject >  xPersist(m_xMainForm, UNO_QUERY);
1282cdf0e10cSrcweir 	if (xPersist.is())
1283cdf0e10cSrcweir 		xPersist->read(_rxInStream);
1284cdf0e10cSrcweir }
1285cdf0e10cSrcweir 
1286cdf0e10cSrcweir // ::com::sun::star::beans::XMultiPropertySet
1287cdf0e10cSrcweir // -------------------------------------------------------------------------
getPropertySetInfo()1288cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SbaXFormAdapter::getPropertySetInfo() throw( RuntimeException )
1289cdf0e10cSrcweir {
1290cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XMultiPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1291cdf0e10cSrcweir 	if (!xSet.is())
1292cdf0e10cSrcweir 		return Reference< ::com::sun::star::beans::XPropertySetInfo > ();
1293cdf0e10cSrcweir 
1294cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySetInfo >  xReturn = xSet->getPropertySetInfo();
1295cdf0e10cSrcweir 	if (-1 == m_nNamePropHandle)
1296cdf0e10cSrcweir 	{
1297cdf0e10cSrcweir 		// we need to determine the handle for the NAME property
1298cdf0e10cSrcweir  Sequence< ::com::sun::star::beans::Property> aProps = xReturn->getProperties();
1299cdf0e10cSrcweir 		const ::com::sun::star::beans::Property* pProps = aProps.getConstArray();
1300cdf0e10cSrcweir 
1301cdf0e10cSrcweir 		for (sal_Int32 i=0; i<aProps.getLength(); ++i, ++pProps)
1302cdf0e10cSrcweir 		{
1303cdf0e10cSrcweir 			if (pProps->Name.equals(PROPERTY_NAME))
1304cdf0e10cSrcweir 			{
1305cdf0e10cSrcweir 				((SbaXFormAdapter*)this)->m_nNamePropHandle = pProps->Handle;
1306cdf0e10cSrcweir 				break;
1307cdf0e10cSrcweir 			}
1308cdf0e10cSrcweir 		}
1309cdf0e10cSrcweir 	}
1310cdf0e10cSrcweir 	return xReturn;
1311cdf0e10cSrcweir }
1312cdf0e10cSrcweir 
1313cdf0e10cSrcweir // -------------------------------------------------------------------------
setPropertyValues(const Sequence<::rtl::OUString> & PropertyNames,const Sequence<Any> & Values)1314cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setPropertyValues(const Sequence< ::rtl::OUString >& PropertyNames, const Sequence< Any >& Values) throw( ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1315cdf0e10cSrcweir {
1316cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XMultiPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1317cdf0e10cSrcweir 	if (xSet.is())
1318cdf0e10cSrcweir 		xSet->setPropertyValues(PropertyNames, Values);
1319cdf0e10cSrcweir }
1320cdf0e10cSrcweir 
1321cdf0e10cSrcweir // -------------------------------------------------------------------------
getPropertyValues(const Sequence<::rtl::OUString> & aPropertyNames)1322cdf0e10cSrcweir Sequence< Any > SAL_CALL SbaXFormAdapter::getPropertyValues(const Sequence< ::rtl::OUString >& aPropertyNames) throw( RuntimeException )
1323cdf0e10cSrcweir {
1324cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XMultiPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1325cdf0e10cSrcweir 	if (!xSet.is())
1326cdf0e10cSrcweir 		return Sequence< Any>(aPropertyNames.getLength());
1327cdf0e10cSrcweir 
1328cdf0e10cSrcweir  Sequence< Any> aReturn = xSet->getPropertyValues(aPropertyNames);
1329cdf0e10cSrcweir 
1330cdf0e10cSrcweir 	// search for (and fake) the NAME property
1331cdf0e10cSrcweir 	const ::rtl::OUString* pNames = aPropertyNames.getConstArray();
1332cdf0e10cSrcweir 	Any* pValues = aReturn.getArray();
1333cdf0e10cSrcweir 	DBG_ASSERT(aReturn.getLength() == aPropertyNames.getLength(), "SAL_CALL SbaXFormAdapter::getPropertyValues : the main form returned an invalid-length sequence !");
1334cdf0e10cSrcweir 	for (sal_Int32 i=0; i<aPropertyNames.getLength(); ++i, ++pNames, ++pValues)
1335cdf0e10cSrcweir 		if (pNames->equals(PROPERTY_NAME))
1336cdf0e10cSrcweir 		{
1337cdf0e10cSrcweir 			(*pValues) <<= m_sName;
1338cdf0e10cSrcweir 			break;
1339cdf0e10cSrcweir 		}
1340cdf0e10cSrcweir 
1341cdf0e10cSrcweir 	return aReturn;
1342cdf0e10cSrcweir }
1343cdf0e10cSrcweir 
1344cdf0e10cSrcweir // -------------------------------------------------------------------------
addPropertiesChangeListener(const Sequence<::rtl::OUString> &,const Reference<::com::sun::star::beans::XPropertiesChangeListener> & xListener)1345cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addPropertiesChangeListener(const Sequence< ::rtl::OUString>& /*aPropertyNames*/, const Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener) throw( RuntimeException )
1346cdf0e10cSrcweir {
1347cdf0e10cSrcweir 	// we completely ignore the property names, _all_ changes of _all_ properties will be forwarded to _all_ listeners
1348cdf0e10cSrcweir 	m_aPropertiesChangeListeners.addInterface(xListener);
1349cdf0e10cSrcweir 	if (m_aPropertiesChangeListeners.getLength() == 1)
1350cdf0e10cSrcweir 	{
1351cdf0e10cSrcweir 		Reference< ::com::sun::star::beans::XMultiPropertySet >  xBroadcaster(m_xMainForm, UNO_QUERY);
1352cdf0e10cSrcweir 		::rtl::OUString sEmpty;
1353cdf0e10cSrcweir 		if (xBroadcaster.is())
1354cdf0e10cSrcweir 			xBroadcaster->addPropertiesChangeListener(Sequence< ::rtl::OUString>(&sEmpty, 1), &m_aPropertiesChangeListeners);
1355cdf0e10cSrcweir 	}
1356cdf0e10cSrcweir }
1357cdf0e10cSrcweir 
1358cdf0e10cSrcweir // -------------------------------------------------------------------------
removePropertiesChangeListener(const Reference<::com::sun::star::beans::XPropertiesChangeListener> & Listener)1359cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removePropertiesChangeListener(const Reference< ::com::sun::star::beans::XPropertiesChangeListener >& Listener) throw( RuntimeException )
1360cdf0e10cSrcweir {
1361cdf0e10cSrcweir 	if (m_aPropertiesChangeListeners.getLength() == 1)
1362cdf0e10cSrcweir 	{
1363cdf0e10cSrcweir 		Reference< ::com::sun::star::beans::XMultiPropertySet >  xBroadcaster(m_xMainForm, UNO_QUERY);
1364cdf0e10cSrcweir 		if (xBroadcaster.is())
1365cdf0e10cSrcweir 			xBroadcaster->removePropertiesChangeListener(&m_aPropertiesChangeListeners);
1366cdf0e10cSrcweir 	}
1367cdf0e10cSrcweir 	m_aPropertiesChangeListeners.removeInterface(Listener);
1368cdf0e10cSrcweir }
1369cdf0e10cSrcweir 
1370cdf0e10cSrcweir // -------------------------------------------------------------------------
firePropertiesChangeEvent(const Sequence<::rtl::OUString> & aPropertyNames,const Reference<::com::sun::star::beans::XPropertiesChangeListener> & xListener)1371cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::firePropertiesChangeEvent(const Sequence< ::rtl::OUString >& aPropertyNames, const Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener) throw( RuntimeException )
1372cdf0e10cSrcweir {
1373cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XMultiPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1374cdf0e10cSrcweir 	if (xSet.is())
1375cdf0e10cSrcweir 		xSet->firePropertiesChangeEvent(aPropertyNames, xListener);
1376cdf0e10cSrcweir }
1377cdf0e10cSrcweir 
1378cdf0e10cSrcweir 
1379cdf0e10cSrcweir // ::com::sun::star::beans::XPropertySet
1380cdf0e10cSrcweir // -------------------------------------------------------------------------
setPropertyValue(const::rtl::OUString & aPropertyName,const Any & aValue)1381cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setPropertyValue(const ::rtl::OUString& aPropertyName, const Any& aValue) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1382cdf0e10cSrcweir {
1383cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1384cdf0e10cSrcweir 	if (!xSet.is())
1385cdf0e10cSrcweir 		return;
1386cdf0e10cSrcweir 
1387cdf0e10cSrcweir 	// special handling for the "name" property
1388cdf0e10cSrcweir 	if (aPropertyName.equals(PROPERTY_NAME))
1389cdf0e10cSrcweir 		setFastPropertyValue(m_nNamePropHandle, aValue);
1390cdf0e10cSrcweir 
1391cdf0e10cSrcweir 	xSet->setPropertyValue(aPropertyName, aValue);
1392cdf0e10cSrcweir }
1393cdf0e10cSrcweir 
1394cdf0e10cSrcweir // -------------------------------------------------------------------------
getPropertyValue(const::rtl::OUString & PropertyName)1395cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getPropertyValue(const ::rtl::OUString& PropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1396cdf0e10cSrcweir {
1397cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySet >  xSet(m_xMainForm, UNO_QUERY);
1398cdf0e10cSrcweir 	if (!xSet.is())
1399cdf0e10cSrcweir 		return Any();
1400cdf0e10cSrcweir 
1401cdf0e10cSrcweir 	// special handling for the "name" property
1402cdf0e10cSrcweir 	if (PropertyName.equals(PROPERTY_NAME))
1403cdf0e10cSrcweir 		return getFastPropertyValue(m_nNamePropHandle);
1404cdf0e10cSrcweir 
1405cdf0e10cSrcweir 	return xSet->getPropertyValue(PropertyName);
1406cdf0e10cSrcweir }
1407cdf0e10cSrcweir 
1408cdf0e10cSrcweir IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(SbaXFormAdapter, PropertyChangeListener, m_aPropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm);
1409cdf0e10cSrcweir IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(SbaXFormAdapter, VetoableChangeListener, m_aVetoablePropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm);
1410cdf0e10cSrcweir 
1411cdf0e10cSrcweir // ::com::sun::star::util::XCancellable
1412cdf0e10cSrcweir // -------------------------------------------------------------------------
cancel()1413cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::cancel() throw( RuntimeException )
1414cdf0e10cSrcweir {
1415cdf0e10cSrcweir 	Reference< ::com::sun::star::util::XCancellable >  xCancel(m_xMainForm, UNO_QUERY);
1416cdf0e10cSrcweir 	if (xCancel.is())
1417cdf0e10cSrcweir 		return;
1418cdf0e10cSrcweir 	xCancel->cancel();
1419cdf0e10cSrcweir }
1420cdf0e10cSrcweir 
1421cdf0e10cSrcweir // ::com::sun::star::beans::XPropertyState
1422cdf0e10cSrcweir // -------------------------------------------------------------------------
getPropertyState(const::rtl::OUString & PropertyName)1423cdf0e10cSrcweir ::com::sun::star::beans::PropertyState SAL_CALL SbaXFormAdapter::getPropertyState(const ::rtl::OUString& PropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, RuntimeException )
1424cdf0e10cSrcweir {
1425cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertyState >  xState(m_xMainForm, UNO_QUERY);
1426cdf0e10cSrcweir 	if (xState.is())
1427cdf0e10cSrcweir 		return xState->getPropertyState(PropertyName);
1428cdf0e10cSrcweir 	return ::com::sun::star::beans::PropertyState_DEFAULT_VALUE;
1429cdf0e10cSrcweir }
1430cdf0e10cSrcweir 
1431cdf0e10cSrcweir // -------------------------------------------------------------------------
getPropertyStates(const Sequence<::rtl::OUString> & aPropertyName)1432cdf0e10cSrcweir Sequence< ::com::sun::star::beans::PropertyState> SAL_CALL SbaXFormAdapter::getPropertyStates(const Sequence< ::rtl::OUString >& aPropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, RuntimeException )
1433cdf0e10cSrcweir {
1434cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertyState >  xState(m_xMainForm, UNO_QUERY);
1435cdf0e10cSrcweir 	if (xState.is())
1436cdf0e10cSrcweir 		return xState->getPropertyStates(aPropertyName);
1437cdf0e10cSrcweir 
1438cdf0e10cSrcweir 	// set them all to DEFAULT
1439cdf0e10cSrcweir 	 Sequence< ::com::sun::star::beans::PropertyState> aReturn(aPropertyName.getLength());
1440cdf0e10cSrcweir 	::com::sun::star::beans::PropertyState* pStates = aReturn.getArray();
1441cdf0e10cSrcweir 	for (sal_uInt16 i=0; i<aPropertyName.getLength(); ++i, ++pStates)
1442cdf0e10cSrcweir 		*pStates = ::com::sun::star::beans::PropertyState_DEFAULT_VALUE;
1443cdf0e10cSrcweir 	return aReturn;
1444cdf0e10cSrcweir }
1445cdf0e10cSrcweir 
1446cdf0e10cSrcweir // -------------------------------------------------------------------------
setPropertyToDefault(const::rtl::OUString & PropertyName)1447cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setPropertyToDefault(const ::rtl::OUString& PropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, RuntimeException )
1448cdf0e10cSrcweir {
1449cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertyState >  xState(m_xMainForm, UNO_QUERY);
1450cdf0e10cSrcweir 	if (xState.is())
1451cdf0e10cSrcweir 		xState->setPropertyToDefault(PropertyName);
1452cdf0e10cSrcweir }
1453cdf0e10cSrcweir 
1454cdf0e10cSrcweir // -------------------------------------------------------------------------
getPropertyDefault(const::rtl::OUString & aPropertyName)1455cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getPropertyDefault(const ::rtl::OUString& aPropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1456cdf0e10cSrcweir {
1457cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertyState >  xState(m_xMainForm, UNO_QUERY);
1458cdf0e10cSrcweir 	if (xState.is())
1459cdf0e10cSrcweir 		return xState->getPropertyDefault(aPropertyName);
1460cdf0e10cSrcweir 	return Any();
1461cdf0e10cSrcweir }
1462cdf0e10cSrcweir 
1463cdf0e10cSrcweir // ::com::sun::star::form::XReset
1464cdf0e10cSrcweir // -------------------------------------------------------------------------
reset()1465cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::reset() throw( RuntimeException )
1466cdf0e10cSrcweir {
1467cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XReset >  xReset(m_xMainForm, UNO_QUERY);
1468cdf0e10cSrcweir 	if (xReset.is())
1469cdf0e10cSrcweir 		xReset->reset();
1470cdf0e10cSrcweir }
1471cdf0e10cSrcweir 
IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter,form,ResetListener,m_aResetListeners,::com::sun::star::form::XReset,m_xMainForm)1472cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, ResetListener, m_aResetListeners, ::com::sun::star::form::XReset, m_xMainForm)
1473cdf0e10cSrcweir 
1474cdf0e10cSrcweir // ::com::sun::star::container::XNameContainer
1475cdf0e10cSrcweir // -------------------------------------------------------------------------
1476cdf0e10cSrcweir void SbaXFormAdapter::implInsert(const Any& aElement, sal_Int32 nIndex, const ::rtl::OUString* pNewElName) throw( ::com::sun::star::lang::IllegalArgumentException )
1477cdf0e10cSrcweir {
1478cdf0e10cSrcweir 	// extract the form component
1479cdf0e10cSrcweir 	if (aElement.getValueType().getTypeClass() != TypeClass_INTERFACE)
1480cdf0e10cSrcweir 	{
1481cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1482cdf0e10cSrcweir 	}
1483cdf0e10cSrcweir 
1484cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XFormComponent >  xElement(*(Reference< XInterface > *)aElement.getValue(), UNO_QUERY);
1485cdf0e10cSrcweir 	if (!xElement.is())
1486cdf0e10cSrcweir 	{
1487cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1488cdf0e10cSrcweir 	}
1489cdf0e10cSrcweir 
1490cdf0e10cSrcweir 	// for the name we need the propset
1491cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySet >  xElementSet(xElement, UNO_QUERY);
1492cdf0e10cSrcweir 	if (!xElementSet.is())
1493cdf0e10cSrcweir 	{
1494cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1495cdf0e10cSrcweir  	}
1496cdf0e10cSrcweir 	::rtl::OUString sName;
1497cdf0e10cSrcweir 	try
1498cdf0e10cSrcweir 	{
1499cdf0e10cSrcweir 		if (pNewElName)
1500cdf0e10cSrcweir 			xElementSet->setPropertyValue(PROPERTY_NAME, makeAny(*pNewElName));
1501cdf0e10cSrcweir 
1502cdf0e10cSrcweir 		xElementSet->getPropertyValue(PROPERTY_NAME) >>= sName;
1503cdf0e10cSrcweir 	}
1504cdf0e10cSrcweir 	catch(Exception&)
1505cdf0e10cSrcweir 	{
1506cdf0e10cSrcweir 		// the set didn't support the name prop
1507cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1508cdf0e10cSrcweir 	}
1509cdf0e10cSrcweir 
1510cdf0e10cSrcweir 	// check the index
1511cdf0e10cSrcweir     OSL_ASSERT(nIndex >= 0);
1512cdf0e10cSrcweir 	if (sal::static_int_cast< sal_uInt32 >(nIndex) > m_aChildren.size())
1513cdf0e10cSrcweir 		nIndex = m_aChildren.size();
1514cdf0e10cSrcweir 
1515cdf0e10cSrcweir 	DBG_ASSERT(m_aChildren.size() == m_aChildNames.size(), "SAL_CALL SbaXFormAdapter::implInsert : inconsistent container state !");
1516cdf0e10cSrcweir 	m_aChildren.insert(m_aChildren.begin() + nIndex, xElement);
1517cdf0e10cSrcweir 	m_aChildNames.insert(m_aChildNames.begin() + nIndex, sName);
1518cdf0e10cSrcweir 
1519cdf0e10cSrcweir 	// listen for a changes of the name
1520cdf0e10cSrcweir 	xElementSet->addPropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this);
1521cdf0e10cSrcweir 
1522cdf0e10cSrcweir 	// we are now the parent of the new element
1523cdf0e10cSrcweir 	xElement->setParent((::com::sun::star::container::XContainer*)this);
1524cdf0e10cSrcweir 
1525cdf0e10cSrcweir 	// notify the container listeners
1526cdf0e10cSrcweir 	::com::sun::star::container::ContainerEvent aEvt;
1527cdf0e10cSrcweir 	aEvt.Source = *this;
1528cdf0e10cSrcweir 	aEvt.Accessor <<= nIndex;
1529cdf0e10cSrcweir 	aEvt.Element <<= xElement;
1530cdf0e10cSrcweir 	::cppu::OInterfaceIteratorHelper aIt(m_aContainerListeners);
1531cdf0e10cSrcweir 	while (aIt.hasMoreElements())
1532cdf0e10cSrcweir 		((::com::sun::star::container::XContainerListener*)aIt.next())->elementInserted(aEvt);
1533cdf0e10cSrcweir }
1534cdf0e10cSrcweir 
1535cdf0e10cSrcweir // -------------------------------------------------------------------------
implGetPos(const::rtl::OUString & rName)1536cdf0e10cSrcweir sal_Int32 SbaXFormAdapter::implGetPos(const ::rtl::OUString& rName)
1537cdf0e10cSrcweir {
1538cdf0e10cSrcweir 	::std::vector< ::rtl::OUString>::iterator aIter = ::std::find_if(	m_aChildNames.begin(),
1539cdf0e10cSrcweir 																m_aChildNames.end(),
1540cdf0e10cSrcweir 																::std::bind2nd(::std::equal_to< rtl::OUString>(),rName));
1541cdf0e10cSrcweir 
1542cdf0e10cSrcweir 	if(aIter != m_aChildNames.end())
1543cdf0e10cSrcweir 		return aIter - m_aChildNames.begin();
1544cdf0e10cSrcweir 
1545cdf0e10cSrcweir 	return -1;
1546cdf0e10cSrcweir }
1547cdf0e10cSrcweir 
1548cdf0e10cSrcweir // -------------------------------------------------------------------------
insertByName(const::rtl::OUString & aName,const Any & aElement)1549cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::insertByName(const ::rtl::OUString& aName, const Any& aElement) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1550cdf0e10cSrcweir {
1551cdf0e10cSrcweir 	implInsert(aElement, m_aChildren.size(), &aName);
1552cdf0e10cSrcweir }
1553cdf0e10cSrcweir 
1554cdf0e10cSrcweir // -------------------------------------------------------------------------
removeByName(const::rtl::OUString & Name)1555cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeByName(const ::rtl::OUString& Name) throw( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1556cdf0e10cSrcweir {
1557cdf0e10cSrcweir 	sal_Int32 nPos = implGetPos(Name);
1558cdf0e10cSrcweir 	if (-1 == nPos)
1559cdf0e10cSrcweir 	{
1560cdf0e10cSrcweir 		throw ::com::sun::star::container::NoSuchElementException();
1561cdf0e10cSrcweir 	}
1562cdf0e10cSrcweir 	removeByIndex(nPos);
1563cdf0e10cSrcweir }
1564cdf0e10cSrcweir 
1565cdf0e10cSrcweir // ::com::sun::star::container::XNameReplace
1566cdf0e10cSrcweir // -------------------------------------------------------------------------
replaceByName(const::rtl::OUString & aName,const Any & aElement)1567cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::replaceByName(const ::rtl::OUString& aName, const Any& aElement) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1568cdf0e10cSrcweir {
1569cdf0e10cSrcweir 	sal_Int32 nPos = implGetPos(aName);
1570cdf0e10cSrcweir 	if (-1 == nPos)
1571cdf0e10cSrcweir 	{
1572cdf0e10cSrcweir 		throw ::com::sun::star::container::NoSuchElementException();
1573cdf0e10cSrcweir 	}
1574cdf0e10cSrcweir 	replaceByIndex(nPos, aElement);
1575cdf0e10cSrcweir }
1576cdf0e10cSrcweir 
1577cdf0e10cSrcweir // ::com::sun::star::container::XNameAccess
1578cdf0e10cSrcweir // -------------------------------------------------------------------------
getByName(const::rtl::OUString & aName)1579cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getByName(const ::rtl::OUString& aName) throw( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1580cdf0e10cSrcweir {
1581cdf0e10cSrcweir 	sal_Int32 nPos = implGetPos(aName);
1582cdf0e10cSrcweir 	if (-1 == nPos)
1583cdf0e10cSrcweir 	{
1584cdf0e10cSrcweir 		throw ::com::sun::star::container::NoSuchElementException();
1585cdf0e10cSrcweir 	}
1586cdf0e10cSrcweir 	return makeAny(m_aChildren[nPos]);
1587cdf0e10cSrcweir }
1588cdf0e10cSrcweir 
1589cdf0e10cSrcweir // -------------------------------------------------------------------------
getElementNames()1590cdf0e10cSrcweir Sequence< ::rtl::OUString > SAL_CALL SbaXFormAdapter::getElementNames() throw( RuntimeException )
1591cdf0e10cSrcweir {
1592cdf0e10cSrcweir 	::rtl::OUString *pChildNames = m_aChildNames.empty() ? 0 : &m_aChildNames[0];
1593cdf0e10cSrcweir 	return Sequence< ::rtl::OUString >(pChildNames, m_aChildNames.size());
1594cdf0e10cSrcweir }
1595cdf0e10cSrcweir 
1596cdf0e10cSrcweir // -------------------------------------------------------------------------
hasByName(const::rtl::OUString & aName)1597cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::hasByName(const ::rtl::OUString& aName) throw( RuntimeException )
1598cdf0e10cSrcweir {
1599cdf0e10cSrcweir 	return (-1 != implGetPos(aName));
1600cdf0e10cSrcweir }
1601cdf0e10cSrcweir 
1602cdf0e10cSrcweir // ::com::sun::star::container::XElementAccess
1603cdf0e10cSrcweir // -------------------------------------------------------------------------
getElementType()1604cdf0e10cSrcweir Type SAL_CALL SbaXFormAdapter::getElementType() throw(RuntimeException)
1605cdf0e10cSrcweir {
1606cdf0e10cSrcweir 	return ::getCppuType(
1607cdf0e10cSrcweir 		static_cast< Reference< ::com::sun::star::form::XFormComponent >* >(NULL));
1608cdf0e10cSrcweir }
1609cdf0e10cSrcweir 
1610cdf0e10cSrcweir // -------------------------------------------------------------------------
hasElements()1611cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::hasElements() throw(RuntimeException)
1612cdf0e10cSrcweir {
1613cdf0e10cSrcweir 	return m_aChildren.size() > 0;
1614cdf0e10cSrcweir }
1615cdf0e10cSrcweir 
1616cdf0e10cSrcweir 
1617cdf0e10cSrcweir // ::com::sun::star::container::XIndexContainer
1618cdf0e10cSrcweir // -------------------------------------------------------------------------
insertByIndex(sal_Int32 _rIndex,const Any & Element)1619cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::insertByIndex(sal_Int32 _rIndex, const Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1620cdf0e10cSrcweir {
1621cdf0e10cSrcweir 	if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) )
1622cdf0e10cSrcweir 		throw ::com::sun::star::lang::IndexOutOfBoundsException();
1623cdf0e10cSrcweir 	implInsert(Element, _rIndex);
1624cdf0e10cSrcweir }
1625cdf0e10cSrcweir 
1626cdf0e10cSrcweir // -------------------------------------------------------------------------
removeByIndex(sal_Int32 _rIndex)1627cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeByIndex(sal_Int32 _rIndex) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1628cdf0e10cSrcweir {
1629cdf0e10cSrcweir 	if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) )
1630cdf0e10cSrcweir 		throw ::com::sun::star::lang::IndexOutOfBoundsException();
1631cdf0e10cSrcweir 
1632cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XFormComponent >  xAffected = *(m_aChildren.begin() + _rIndex);
1633cdf0e10cSrcweir 
1634cdf0e10cSrcweir 	DBG_ASSERT(m_aChildren.size() == m_aChildNames.size(), "SAL_CALL SbaXFormAdapter::removeByIndex : inconsistent container state !");
1635cdf0e10cSrcweir 	m_aChildren.erase(m_aChildren.begin() + _rIndex);
1636cdf0e10cSrcweir 	m_aChildNames.erase(m_aChildNames.begin() + _rIndex);
1637cdf0e10cSrcweir 
1638cdf0e10cSrcweir 	// no need to listen anymore
1639cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySet >  xAffectedSet(xAffected, UNO_QUERY);
1640cdf0e10cSrcweir 	xAffectedSet->removePropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this);
1641cdf0e10cSrcweir 
1642cdf0e10cSrcweir 	// we are no longer the parent
1643cdf0e10cSrcweir 	xAffected->setParent(Reference< XInterface > ());
1644cdf0e10cSrcweir 
1645cdf0e10cSrcweir 	// notify container listeners
1646cdf0e10cSrcweir 	::com::sun::star::container::ContainerEvent aEvt;
1647cdf0e10cSrcweir 	aEvt.Source = *this;
1648cdf0e10cSrcweir 	aEvt.Element <<= xAffected;
1649cdf0e10cSrcweir 	::cppu::OInterfaceIteratorHelper aIt(m_aContainerListeners);
1650cdf0e10cSrcweir 	while (aIt.hasMoreElements())
1651cdf0e10cSrcweir 		((::com::sun::star::container::XContainerListener*)aIt.next())->elementRemoved(aEvt);
1652cdf0e10cSrcweir 
1653cdf0e10cSrcweir }
1654cdf0e10cSrcweir 
1655cdf0e10cSrcweir // ::com::sun::star::container::XIndexReplace
1656cdf0e10cSrcweir // -------------------------------------------------------------------------
replaceByIndex(sal_Int32 _rIndex,const Any & Element)1657cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::replaceByIndex(sal_Int32 _rIndex, const Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1658cdf0e10cSrcweir {
1659cdf0e10cSrcweir 	if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) )
1660cdf0e10cSrcweir 		throw ::com::sun::star::lang::IndexOutOfBoundsException();
1661cdf0e10cSrcweir 
1662cdf0e10cSrcweir 	// extract the form component
1663cdf0e10cSrcweir 	if (Element.getValueType().getTypeClass() != TypeClass_INTERFACE)
1664cdf0e10cSrcweir 	{
1665cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1666cdf0e10cSrcweir 	}
1667cdf0e10cSrcweir 
1668cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XFormComponent >  xElement(*(Reference< XInterface > *)Element.getValue(), UNO_QUERY);
1669cdf0e10cSrcweir 	if (!xElement.is())
1670cdf0e10cSrcweir 	{
1671cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1672cdf0e10cSrcweir 	}
1673cdf0e10cSrcweir 
1674cdf0e10cSrcweir 	// for the name we need the propset
1675cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySet >  xElementSet(xElement, UNO_QUERY);
1676cdf0e10cSrcweir 	if (!xElementSet.is())
1677cdf0e10cSrcweir 	{
1678cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1679cdf0e10cSrcweir  	}
1680cdf0e10cSrcweir 	::rtl::OUString sName;
1681cdf0e10cSrcweir 	try
1682cdf0e10cSrcweir 	{
1683cdf0e10cSrcweir 		xElementSet->getPropertyValue(PROPERTY_NAME) >>= sName;
1684cdf0e10cSrcweir 	}
1685cdf0e10cSrcweir 	catch(Exception&)
1686cdf0e10cSrcweir 	{
1687cdf0e10cSrcweir 		// the set didn't support the name prop
1688cdf0e10cSrcweir 		throw ::com::sun::star::lang::IllegalArgumentException();
1689cdf0e10cSrcweir 	}
1690cdf0e10cSrcweir 
1691cdf0e10cSrcweir 	Reference< ::com::sun::star::form::XFormComponent >  xOld = *(m_aChildren.begin() + _rIndex);
1692cdf0e10cSrcweir 
1693cdf0e10cSrcweir 	DBG_ASSERT(m_aChildren.size() == m_aChildNames.size(), "SAL_CALL SbaXFormAdapter::replaceByIndex : inconsistent container state !");
1694cdf0e10cSrcweir 	*(m_aChildren.begin() + _rIndex) = xElement;
1695cdf0e10cSrcweir 	*(m_aChildNames.begin() + _rIndex) = sName;
1696cdf0e10cSrcweir 
1697cdf0e10cSrcweir 	// correct property change listening
1698cdf0e10cSrcweir 	Reference< ::com::sun::star::beans::XPropertySet >  xOldSet(xOld, UNO_QUERY);
1699cdf0e10cSrcweir 	xOldSet->removePropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this);
1700cdf0e10cSrcweir 	xElementSet->addPropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this);
1701cdf0e10cSrcweir 
1702cdf0e10cSrcweir 	// parent reset
1703cdf0e10cSrcweir 	xOld->setParent(Reference< XInterface > ());
1704cdf0e10cSrcweir 	xElement->setParent((::com::sun::star::container::XContainer*)this);
1705cdf0e10cSrcweir 
1706cdf0e10cSrcweir 	// notify container listeners
1707cdf0e10cSrcweir 	::com::sun::star::container::ContainerEvent aEvt;
1708cdf0e10cSrcweir 	aEvt.Source = *this;
1709cdf0e10cSrcweir 	aEvt.Accessor <<= (sal_Int32)_rIndex;
1710cdf0e10cSrcweir 	aEvt.Element <<= xElement;
1711cdf0e10cSrcweir 	aEvt.ReplacedElement <<= xOld;
1712cdf0e10cSrcweir 
1713cdf0e10cSrcweir 	::cppu::OInterfaceIteratorHelper aIt(m_aContainerListeners);
1714cdf0e10cSrcweir 	while (aIt.hasMoreElements())
1715cdf0e10cSrcweir 		((::com::sun::star::container::XContainerListener*)aIt.next())->elementReplaced(aEvt);
1716cdf0e10cSrcweir }
1717cdf0e10cSrcweir 
1718cdf0e10cSrcweir // ::com::sun::star::container::XIndexAccess
1719cdf0e10cSrcweir // -------------------------------------------------------------------------
getCount()1720cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getCount() throw( RuntimeException )
1721cdf0e10cSrcweir {
1722cdf0e10cSrcweir 	return m_aChildren.size();
1723cdf0e10cSrcweir }
1724cdf0e10cSrcweir 
1725cdf0e10cSrcweir // -------------------------------------------------------------------------
getByIndex(sal_Int32 _rIndex)1726cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getByIndex(sal_Int32 _rIndex) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException )
1727cdf0e10cSrcweir {
1728cdf0e10cSrcweir 	if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) )
1729cdf0e10cSrcweir 		throw ::com::sun::star::lang::IndexOutOfBoundsException();
1730cdf0e10cSrcweir 
1731cdf0e10cSrcweir     Reference< ::com::sun::star::form::XFormComponent >  xElement = *(m_aChildren.begin() + _rIndex);
1732cdf0e10cSrcweir 	return makeAny(xElement);
1733cdf0e10cSrcweir }
1734cdf0e10cSrcweir 
1735cdf0e10cSrcweir // ::com::sun::star::container::XContainer
1736cdf0e10cSrcweir // -------------------------------------------------------------------------
addContainerListener(const Reference<::com::sun::star::container::XContainerListener> & xListener)1737cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addContainerListener(const Reference< ::com::sun::star::container::XContainerListener >& xListener) throw( RuntimeException )
1738cdf0e10cSrcweir {
1739cdf0e10cSrcweir 	m_aContainerListeners.addInterface(xListener);
1740cdf0e10cSrcweir }
1741cdf0e10cSrcweir 
1742cdf0e10cSrcweir // -------------------------------------------------------------------------
removeContainerListener(const Reference<::com::sun::star::container::XContainerListener> & xListener)1743cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeContainerListener(const Reference< ::com::sun::star::container::XContainerListener >& xListener) throw( RuntimeException )
1744cdf0e10cSrcweir {
1745cdf0e10cSrcweir 	m_aContainerListeners.removeInterface(xListener);
1746cdf0e10cSrcweir }
1747cdf0e10cSrcweir 
1748cdf0e10cSrcweir // ::com::sun::star::container::XEnumerationAccess
1749cdf0e10cSrcweir // -------------------------------------------------------------------------
createEnumeration()1750cdf0e10cSrcweir Reference< ::com::sun::star::container::XEnumeration > SAL_CALL SbaXFormAdapter::createEnumeration() throw( RuntimeException )
1751cdf0e10cSrcweir {
1752cdf0e10cSrcweir 	return new ::comphelper::OEnumerationByName(this);
1753cdf0e10cSrcweir }
1754cdf0e10cSrcweir 
1755cdf0e10cSrcweir // ::com::sun::star::beans::XPropertyChangeListener
1756cdf0e10cSrcweir // -------------------------------------------------------------------------
propertyChange(const::com::sun::star::beans::PropertyChangeEvent & evt)1757cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw( RuntimeException )
1758cdf0e10cSrcweir {
1759cdf0e10cSrcweir 	if (evt.PropertyName.equals(PROPERTY_NAME))
1760cdf0e10cSrcweir 	{
1761cdf0e10cSrcweir 		::std::vector<	::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > >::iterator aIter = ::std::find_if(	m_aChildren.begin(),
1762cdf0e10cSrcweir 																m_aChildren.end(),
1763cdf0e10cSrcweir 																::std::bind2nd(::std::equal_to< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >(),evt.Source));
1764cdf0e10cSrcweir 
1765cdf0e10cSrcweir 		if(aIter != m_aChildren.end())
1766cdf0e10cSrcweir 		{
1767cdf0e10cSrcweir 			sal_Int32 nPos = aIter - m_aChildren.begin();
1768cdf0e10cSrcweir 			DBG_ASSERT(*(m_aChildNames.begin() + nPos) == ::comphelper::getString(evt.OldValue), "SAL_CALL SbaXFormAdapter::propertyChange : object has a wrong name !");
1769cdf0e10cSrcweir 			*(m_aChildNames.begin() + nPos) = ::comphelper::getString(evt.NewValue);
1770cdf0e10cSrcweir 		}
1771cdf0e10cSrcweir 	}
1772cdf0e10cSrcweir }
1773cdf0e10cSrcweir 
1774cdf0e10cSrcweir // ::com::sun::star::lang::XEventListener
1775cdf0e10cSrcweir // -------------------------------------------------------------------------
disposing(const::com::sun::star::lang::EventObject & Source)1776cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::disposing(const ::com::sun::star::lang::EventObject& Source) throw( RuntimeException )
1777cdf0e10cSrcweir {
1778cdf0e10cSrcweir 	// was it our main form ?
1779cdf0e10cSrcweir 	if (Source.Source == m_xMainForm)
1780cdf0e10cSrcweir 		dispose();
1781cdf0e10cSrcweir 
1782cdf0e10cSrcweir 	::std::vector<	::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > >::iterator aIter = ::std::find_if(	m_aChildren.begin(),
1783cdf0e10cSrcweir 																m_aChildren.end(),
1784cdf0e10cSrcweir 																::std::bind2nd(::std::equal_to< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >(),Source.Source));
1785cdf0e10cSrcweir 	if(aIter != m_aChildren.end())
1786cdf0e10cSrcweir 			removeByIndex(aIter - m_aChildren.begin());
1787cdf0e10cSrcweir }
1788cdf0e10cSrcweir // -----------------------------------------------------------------------------
1789cdf0e10cSrcweir 
1790cdf0e10cSrcweir 
1791