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