1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef _FRM_DATABASEFORM_HXX_
21 #define _FRM_DATABASEFORM_HXX_
23 #include "propertybaghelper.hxx"
24 #include <com/sun/star/sdbc/XDataSource.hpp>
25 #include <com/sun/star/sdb/XSQLErrorListener.hpp>
26 #include <com/sun/star/io/XPersistObject.hpp>
27 #include <com/sun/star/sdb/XSQLErrorBroadcaster.hpp>
28 #include <com/sun/star/form/FormSubmitMethod.hpp>
29 #include <com/sun/star/form/FormSubmitEncoding.hpp>
30 #include <com/sun/star/form/XSubmit.hpp>
31 #include <com/sun/star/form/XReset.hpp>
32 #include <com/sun/star/form/XDatabaseParameterBroadcaster2.hpp>
33 #include <com/sun/star/sdb/XCompletedExecution.hpp>
34 #include <com/sun/star/sdbc/XRowSet.hpp>
35 #include <com/sun/star/sdbcx/XDeleteRows.hpp>
36 #include <com/sun/star/sdbc/XResultSetUpdate.hpp>
37 #include <com/sun/star/sdb/XRowSetApproveListener.hpp>
38 #include <com/sun/star/sdb/XRowSetApproveBroadcaster.hpp>
39 #include <com/sun/star/form/NavigationBarMode.hpp>
40 #include <com/sun/star/form/XLoadable.hpp>
41 #include <com/sun/star/form/XLoadListener.hpp>
42 #include <com/sun/star/form/XForm.hpp>
43 #include <com/sun/star/awt/XTabControllerModel.hpp>
44 #include <com/sun/star/script/XEventAttacherManager.hpp>
45 #include <com/sun/star/sdbc/XRowSetListener.hpp>
46 #include <com/sun/star/sdb/XResultSetAccess.hpp>
47 #include <com/sun/star/sdbc/XCloseable.hpp>
48 #include <com/sun/star/container/XNamed.hpp>
49 #include <com/sun/star/lang/XServiceInfo.hpp>
50 #include <com/sun/star/sdbc/XParameters.hpp>
51 #include <com/sun/star/sdbc/XConnection.hpp>
52 #include <com/sun/star/task/XInteractionHandler.hpp>
53 #include <com/sun/star/beans/XPropertyContainer.hpp>
54 #include <com/sun/star/beans/XPropertyAccess.hpp>
55 #include <com/sun/star/sdbc/XWarningsSupplier.hpp>
58 #include <tools/link.hxx>
59 #include "InterfaceContainer.hxx"
61 #include <connectivity/parameters.hxx>
62 #include <connectivity/filtermanager.hxx>
63 #include <connectivity/warningscontainer.hxx>
65 #include "listenercontainers.hxx"
67 #include <comphelper/propmultiplex.hxx>
68 #include <comphelper/uno3.hxx>
69 #include <comphelper/proparrhlp.hxx>
70 #include <cppuhelper/implbase12.hxx>
71 #include <cppuhelper/implbase4.hxx>
72 #include <cppuhelper/implbase7.hxx>
74 namespace com
{ namespace sun
{ namespace star
{ namespace sdbc
{
79 class INetMIMEMessage
;
81 //.........................................................................
84 //.........................................................................
86 //========================================================================
88 //========================================================================
90 const sal_uInt16 SUCCESSFUL_REPRESENT_TEXT
= 0x0001;
91 const sal_uInt16 SUCCESSFUL_REPRESENT_FILE
= 0x0002;
93 //------------------------------------------------------------------------------
94 class HtmlSuccessfulObj
99 sal_uInt16 nRepresentation
;
101 HtmlSuccessfulObj( const OUString
& _rName
, const OUString
& _rValue
,
102 sal_uInt16 _nRepresent
= SUCCESSFUL_REPRESENT_TEXT
)
105 ,nRepresentation( _nRepresent
)
115 DECLARE_STL_VECTOR(HtmlSuccessfulObj
, HtmlSuccessfulObjList
);
117 //========================================================================
119 class OFormSubmitResetThread
;
120 typedef ::cppu::ImplHelper12
< ::com::sun::star::form::XForm
121 , ::com::sun::star::awt::XTabControllerModel
122 , ::com::sun::star::form::XLoadListener
123 , ::com::sun::star::sdbc::XRowSetListener
124 , ::com::sun::star::sdb::XRowSetApproveListener
125 , ::com::sun::star::form::XDatabaseParameterBroadcaster2
126 , ::com::sun::star::sdb::XSQLErrorListener
127 , ::com::sun::star::sdb::XSQLErrorBroadcaster
128 , ::com::sun::star::form::XReset
129 , ::com::sun::star::form::XSubmit
130 , ::com::sun::star::form::XLoadable
131 , ::com::sun::star::container::XNamed
132 > ODatabaseForm_BASE1
;
135 typedef ::cppu::ImplHelper4
< ::com::sun::star::lang::XServiceInfo
136 , ::com::sun::star::beans::XPropertyContainer
137 , ::com::sun::star::beans::XPropertyAccess
138 , ::com::sun::star::sdbc::XWarningsSupplier
139 > ODatabaseForm_BASE2
;
141 typedef ::cppu::ImplHelper7
< ::com::sun::star::sdbc::XCloseable
,
142 ::com::sun::star::sdbc::XRowSet
,
143 ::com::sun::star::sdb::XCompletedExecution
,
144 ::com::sun::star::sdb::XRowSetApproveBroadcaster
,
145 ::com::sun::star::sdbc::XResultSetUpdate
,
146 ::com::sun::star::sdbcx::XDeleteRows
,
147 ::com::sun::star::sdbc::XParameters
> ODatabaseForm_BASE3
;
150 class ODatabaseForm
:public OFormComponents
151 ,public OPropertySetAggregationHelper
152 ,public OPropertyChangeListener
153 ,public ODatabaseForm_BASE1
154 ,public ODatabaseForm_BASE2
155 ,public ODatabaseForm_BASE3
156 ,public IPropertyBagHelperContext
158 friend class OFormSubmitResetThread
;
160 OImplementationIdsRef m_aHoldIdHelper
;
162 // listener administration
163 ::cppu::OInterfaceContainerHelper m_aLoadListeners
;
164 ::cppu::OInterfaceContainerHelper m_aRowSetApproveListeners
;
165 ::cppu::OInterfaceContainerHelper m_aRowSetListeners
;
166 ::cppu::OInterfaceContainerHelper m_aSubmitListeners
;
167 ::cppu::OInterfaceContainerHelper m_aErrorListeners
;
168 ResetListeners m_aResetListeners
;
169 ::osl::Mutex m_aResetSafety
;
170 ::com::sun::star::uno::Any m_aCycle
;
171 ::com::sun::star::uno::Any m_aIgnoreResult
; // set when we are a subform and our master form positioned on a new row
172 ::com::sun::star::uno::Sequence
< OUString
> m_aMasterFields
;
173 ::com::sun::star::uno::Sequence
< OUString
> m_aDetailFields
;
175 // the object doin' most of the work - an SDB-rowset
176 ::com::sun::star::uno::Reference
< ::com::sun::star::uno::XAggregation
> m_xAggregate
;
177 // same object, interface as member because of performance reasons
178 ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XRowSet
> m_xAggregateAsRowSet
;
180 PropertyBagHelper m_aPropertyBagHelper
;
181 ::dbtools::WarningsContainer m_aWarnings
;
182 OPropertyChangeMultiplexer
* m_pAggregatePropertyMultiplexer
;
183 // Verwaltung der ControlGruppen
184 OGroupManager
* m_pGroupManager
;
185 ::dbtools::ParameterManager m_aParameterManager
;
186 ::dbtools::FilterManager m_aFilterManager
;
189 OFormSubmitResetThread
* m_pThread
;
190 OUString m_sCurrentErrorContext
;
191 // will be used as additional context information
192 // when an exception is catched and forwarded to the listeners
194 sal_Int32 m_nResetsPending
;
195 // <overwritten_properties>
196 sal_Int32 m_nPrivileges
;
197 sal_Bool m_bInsertOnly
;
198 // </overwritten_properties>
201 ::com::sun::star::uno::Any m_aControlBorderColorFocus
;
202 ::com::sun::star::uno::Any m_aControlBorderColorMouse
;
203 ::com::sun::star::uno::Any m_aControlBorderColorInvalid
;
204 ::com::sun::star::uno::Any m_aDynamicControlBorder
;
206 OUString m_aTargetURL
;
207 OUString m_aTargetFrame
;
208 ::com::sun::star::form::FormSubmitMethod m_eSubmitMethod
;
209 ::com::sun::star::form::FormSubmitEncoding m_eSubmitEncoding
;
210 ::com::sun::star::form::NavigationBarMode m_eNavigation
;
211 sal_Bool m_bAllowInsert
: 1;
212 sal_Bool m_bAllowUpdate
: 1;
213 sal_Bool m_bAllowDelete
: 1;
215 sal_Bool m_bLoaded
: 1;
216 sal_Bool m_bSubForm
: 1;
217 sal_Bool m_bForwardingConnection
: 1; // sal_True if we're setting the ActiveConnection on the aggregate
218 sal_Bool m_bSharingConnection
: 1; // sal_True if the connection we're using is shared with out parent
221 ODatabaseForm(const ::com::sun::star::uno::Reference
< ::com::sun::star::lang::XMultiServiceFactory
>& _rxFactory
);
222 ODatabaseForm( const ODatabaseForm
& _cloneSource
);
226 DECLARE_UNO3_AGG_DEFAULTS(ODatabaseForm
, OFormComponents
);
227 virtual ::com::sun::star::uno::Any SAL_CALL
queryAggregation(const ::com::sun::star::uno::Type
& _rType
) throw(::com::sun::star::uno::RuntimeException
);
230 virtual ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Type
> SAL_CALL
getTypes( ) throw(::com::sun::star::uno::RuntimeException
);
231 virtual ::com::sun::star::uno::Sequence
<sal_Int8
> SAL_CALL
getImplementationId( ) throw(::com::sun::star::uno::RuntimeException
);
233 // ::com::sun::star::lang::XComponent
234 virtual void SAL_CALL
disposing();
237 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::beans::XPropertySetInfo
> SAL_CALL
getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException
);
238 virtual ::cppu::IPropertyArrayHelper
& SAL_CALL
getInfoHelper();
239 virtual void SAL_CALL
getFastPropertyValue(::com::sun::star::uno::Any
& rValue
, sal_Int32 nHandle
) const;
240 virtual sal_Bool SAL_CALL
convertFastPropertyValue(::com::sun::star::uno::Any
& rConvertedValue
, ::com::sun::star::uno::Any
& rOldValue
, sal_Int32 nHandle
, const ::com::sun::star::uno::Any
& rValue
) throw(::com::sun::star::lang::IllegalArgumentException
);
241 virtual void SAL_CALL
setFastPropertyValue_NoBroadcast(sal_Int32 nHandle
, const ::com::sun::star::uno::Any
& rValue
) throw ( ::com::sun::star::uno::Exception
);
243 ::com::sun::star::uno::Any SAL_CALL
getFastPropertyValue( sal_Int32 nHandle
)
244 throw(::com::sun::star::beans::UnknownPropertyException
, ::com::sun::star::lang::WrappedTargetException
, ::com::sun::star::uno::RuntimeException
);
245 void fire( sal_Int32
* pnHandles
, const ::com::sun::star::uno::Any
* pNewValues
, const ::com::sun::star::uno::Any
* pOldValues
, sal_Int32 nCount
, sal_Bool bVetoable
);
247 // IPropertyBagHelperContext
248 virtual ::osl::Mutex
& getMutex();
249 virtual void describeFixedAndAggregateProperties(
250 ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::Property
>& _out_rFixedProperties
,
251 ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::Property
>& _out_rAggregateProperties
253 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::beans::XMultiPropertySet
>
254 getPropertiesInterface();
256 // com::sun::star::beans::XPropertyState
257 virtual ::com::sun::star::beans::PropertyState
getPropertyStateByHandle(sal_Int32 nHandle
);
258 virtual void setPropertyToDefaultByHandle(sal_Int32 nHandle
);
259 virtual ::com::sun::star::uno::Any
getPropertyDefaultByHandle(sal_Int32 nHandle
) const;
261 // com::sun::star::sdbc::XSQLErrorBroadcaster
262 virtual void SAL_CALL
addSQLErrorListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::sdb::XSQLErrorListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
263 virtual void SAL_CALL
removeSQLErrorListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::sdb::XSQLErrorListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
265 // com::sun::star::form::XForm
266 // nothing to implement
268 // com::sun::star::form::XReset
269 virtual void SAL_CALL
reset() throw(::com::sun::star::uno::RuntimeException
);
270 virtual void SAL_CALL
addResetListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XResetListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
271 virtual void SAL_CALL
removeResetListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XResetListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
273 // com::sun::star::form::XSubmit
274 virtual void SAL_CALL
submit(const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& aControl
, const ::com::sun::star::awt::MouseEvent
& aMouseEvt
) throw(::com::sun::star::uno::RuntimeException
);
275 virtual void SAL_CALL
addSubmitListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XSubmitListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
276 virtual void SAL_CALL
removeSubmitListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XSubmitListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
278 // com::sun::star::container::XChild
279 virtual InterfaceRef SAL_CALL
getParent() throw ( ::com::sun::star::uno::RuntimeException
) { return OFormComponents::getParent(); }
280 virtual void SAL_CALL
setParent(const InterfaceRef
& Parent
) throw ( :: com::sun::star::lang::NoSupportException
, ::com::sun::star::uno::RuntimeException
);
282 // com::sun::star::container::XNamed
283 virtual OUString SAL_CALL
getName() throw(::com::sun::star::uno::RuntimeException
);
284 virtual void SAL_CALL
setName(const OUString
& aName
) throw(::com::sun::star::uno::RuntimeException
);
286 // com::sun::star::awt::XTabControllerModel
287 virtual sal_Bool SAL_CALL
getGroupControl() throw(::com::sun::star::uno::RuntimeException
);
288 virtual void SAL_CALL
setGroupControl(sal_Bool
/*_bGroupControl*/) throw(::com::sun::star::uno::RuntimeException
) { }
289 virtual void SAL_CALL
setControlModels(const ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControlModel
> >& _rControls
) throw(::com::sun::star::uno::RuntimeException
);
290 virtual ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControlModel
> > SAL_CALL
getControlModels() throw(::com::sun::star::uno::RuntimeException
);
291 virtual void SAL_CALL
setGroup(const ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControlModel
> >& _rGroup
, const OUString
& _rGroupName
) throw(::com::sun::star::uno::RuntimeException
);
292 virtual sal_Int32 SAL_CALL
getGroupCount() throw(::com::sun::star::uno::RuntimeException
);
293 virtual void SAL_CALL
getGroup(sal_Int32 _nGroup
, ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControlModel
> >& _rxGroup
, OUString
& _rName
) throw(::com::sun::star::uno::RuntimeException
);
294 virtual void SAL_CALL
getGroupByName(const OUString
& _rName
, ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControlModel
> >& _rxGroup
) throw(::com::sun::star::uno::RuntimeException
);
296 // com::sun::star::lang::XEventListener
297 virtual void SAL_CALL
disposing(const ::com::sun::star::lang::EventObject
& _rSource
) throw(::com::sun::star::uno::RuntimeException
);
299 // com::sun::star::form::XLoadListener
300 virtual void SAL_CALL
loaded(const ::com::sun::star::lang::EventObject
& aEvent
) throw(::com::sun::star::uno::RuntimeException
);
301 virtual void SAL_CALL
unloading(const ::com::sun::star::lang::EventObject
& aEvent
) throw(::com::sun::star::uno::RuntimeException
);
302 virtual void SAL_CALL
unloaded(const ::com::sun::star::lang::EventObject
& aEvent
) throw(::com::sun::star::uno::RuntimeException
);
303 virtual void SAL_CALL
reloading(const ::com::sun::star::lang::EventObject
& aEvent
) throw(::com::sun::star::uno::RuntimeException
);
304 virtual void SAL_CALL
reloaded(const ::com::sun::star::lang::EventObject
& aEvent
) throw(::com::sun::star::uno::RuntimeException
);
306 // com::sun::star::form::XLoadable
307 virtual void SAL_CALL
load() throw(::com::sun::star::uno::RuntimeException
);
308 virtual void SAL_CALL
unload() throw(::com::sun::star::uno::RuntimeException
);
309 virtual void SAL_CALL
reload() throw(::com::sun::star::uno::RuntimeException
);
310 virtual sal_Bool SAL_CALL
isLoaded() throw(::com::sun::star::uno::RuntimeException
);
311 virtual void SAL_CALL
addLoadListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XLoadListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
312 virtual void SAL_CALL
removeLoadListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XLoadListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
314 // com::sun::star::sdbc::XCloseable
315 virtual void SAL_CALL
close() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
317 // com::sun::star::sdbc::XRowSetListener
318 virtual void SAL_CALL
cursorMoved(const ::com::sun::star::lang::EventObject
& event
) throw(::com::sun::star::uno::RuntimeException
);
319 virtual void SAL_CALL
rowChanged(const ::com::sun::star::lang::EventObject
& event
) throw(::com::sun::star::uno::RuntimeException
);
320 virtual void SAL_CALL
rowSetChanged(const ::com::sun::star::lang::EventObject
& event
) throw(::com::sun::star::uno::RuntimeException
);
322 // com::sun::star::sdb::XRowSetApproveListener
323 virtual sal_Bool SAL_CALL
approveCursorMove(const ::com::sun::star::lang::EventObject
& event
) throw(::com::sun::star::uno::RuntimeException
);
324 virtual sal_Bool SAL_CALL
approveRowChange(const ::com::sun::star::sdb::RowChangeEvent
& event
) throw(::com::sun::star::uno::RuntimeException
);
325 virtual sal_Bool SAL_CALL
approveRowSetChange(const ::com::sun::star::lang::EventObject
& event
) throw(::com::sun::star::uno::RuntimeException
);
327 // com::sun::star::sdb::XRowSetApproveBroadcaster
328 virtual void SAL_CALL
addRowSetApproveListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::sdb::XRowSetApproveListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
329 virtual void SAL_CALL
removeRowSetApproveListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::sdb::XRowSetApproveListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
331 // com::sun:star::form::XDatabaseParameterBroadcaster2
332 virtual void SAL_CALL
addDatabaseParameterListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XDatabaseParameterListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
333 virtual void SAL_CALL
removeDatabaseParameterListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XDatabaseParameterListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
335 // com::sun:star::form::XDatabaseParameterBroadcaster
336 virtual void SAL_CALL
addParameterListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XDatabaseParameterListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
337 virtual void SAL_CALL
removeParameterListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::form::XDatabaseParameterListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
339 // com::sun::star::sdbc::XRowSet
340 virtual void SAL_CALL
execute() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
341 virtual void SAL_CALL
addRowSetListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XRowSetListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
342 virtual void SAL_CALL
removeRowSetListener(const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XRowSetListener
>& _rxListener
) throw(::com::sun::star::uno::RuntimeException
);
344 // com::sun::star::sdb::XCompletedExecution
345 virtual void SAL_CALL
executeWithCompletion( const ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>& handler
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
347 // com::sun::star::sdbc::XResultSet
348 virtual sal_Bool SAL_CALL
next() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
349 virtual sal_Bool SAL_CALL
isBeforeFirst() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
350 virtual sal_Bool SAL_CALL
isAfterLast() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
351 virtual sal_Bool SAL_CALL
isFirst() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
352 virtual sal_Bool SAL_CALL
isLast() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
353 virtual void SAL_CALL
beforeFirst() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
354 virtual void SAL_CALL
afterLast() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
355 virtual sal_Bool SAL_CALL
first() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
356 virtual sal_Bool SAL_CALL
last() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
357 virtual sal_Int32 SAL_CALL
getRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
358 virtual sal_Bool SAL_CALL
absolute(sal_Int32 row
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
359 virtual sal_Bool SAL_CALL
relative(sal_Int32 rows
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
360 virtual sal_Bool SAL_CALL
previous() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
361 virtual void SAL_CALL
refreshRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
362 virtual sal_Bool SAL_CALL
rowUpdated() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
363 virtual sal_Bool SAL_CALL
rowInserted() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
364 virtual sal_Bool SAL_CALL
rowDeleted() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
365 virtual InterfaceRef SAL_CALL
getStatement() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
367 // com::sun::star::sdbc::XResultSetUpdate
368 virtual void SAL_CALL
insertRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
369 virtual void SAL_CALL
updateRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
370 virtual void SAL_CALL
deleteRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
371 virtual void SAL_CALL
cancelRowUpdates() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
372 virtual void SAL_CALL
moveToInsertRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
373 virtual void SAL_CALL
moveToCurrentRow() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
375 // com::sun::star::sdbcx::XDeleteRows
376 virtual ::com::sun::star::uno::Sequence
< sal_Int32
> SAL_CALL
deleteRows(const ::com::sun::star::uno::Sequence
< ::com::sun::star::uno::Any
>& rows
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
378 // com::sun::star::lang::XServiceInfo
379 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) throw(::com::sun::star::uno::RuntimeException
);
380 virtual OUString SAL_CALL
getImplementationName() throw(::com::sun::star::uno::RuntimeException
);
381 virtual ::com::sun::star::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException
);
383 // com::sun::star::lang::XServiceInfo - static version
384 static OUString SAL_CALL
getImplementationName_Static();
385 static ::com::sun::star::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames_Static();
386 static ::com::sun::star::uno::Sequence
< OUString
> SAL_CALL
getCurrentServiceNames_Static();
387 static ::com::sun::star::uno::Sequence
< OUString
> SAL_CALL
getCompatibleServiceNames_Static();
388 static ::com::sun::star::uno::Reference
< ::com::sun::star::uno::XInterface
> SAL_CALL
Create( const ::com::sun::star::uno::Reference
< ::com::sun::star::lang::XMultiServiceFactory
>& _rxFactory
);
390 // com::sun::star::io::XPersistObject
391 virtual OUString SAL_CALL
getServiceName() throw(::com::sun::star::uno::RuntimeException
);
392 virtual void SAL_CALL
write(const ::com::sun::star::uno::Reference
< ::com::sun::star::io::XObjectOutputStream
>& _rxOutStream
) throw(::com::sun::star::io::IOException
, ::com::sun::star::uno::RuntimeException
);
393 virtual void SAL_CALL
read(const ::com::sun::star::uno::Reference
< ::com::sun::star::io::XObjectInputStream
>& _rxInStream
) throw(::com::sun::star::io::IOException
, ::com::sun::star::uno::RuntimeException
);
395 // com::sun::star::sdbc::XSQLErrorListener
396 virtual void SAL_CALL
errorOccured(const ::com::sun::star::sdb::SQLErrorEvent
& aEvent
) throw(::com::sun::star::uno::RuntimeException
);
398 // com::sun::star::sdbc::XParameters
399 virtual void SAL_CALL
setNull(sal_Int32 parameterIndex
, sal_Int32 sqlType
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
400 virtual void SAL_CALL
setObjectNull(sal_Int32 parameterIndex
, sal_Int32 sqlType
, const OUString
& typeName
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
401 virtual void SAL_CALL
setBoolean(sal_Int32 parameterIndex
, sal_Bool x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
402 virtual void SAL_CALL
setByte(sal_Int32 parameterIndex
, sal_Int8 x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
403 virtual void SAL_CALL
setShort(sal_Int32 parameterIndex
, sal_Int16 x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
404 virtual void SAL_CALL
setInt(sal_Int32 parameterIndex
, sal_Int32 x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
405 virtual void SAL_CALL
setLong(sal_Int32 parameterIndex
, sal_Int64 x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
406 virtual void SAL_CALL
setFloat(sal_Int32 parameterIndex
, float x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
407 virtual void SAL_CALL
setDouble(sal_Int32 parameterIndex
, double x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
408 virtual void SAL_CALL
setString(sal_Int32 parameterIndex
, const OUString
& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
409 virtual void SAL_CALL
setBytes(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Sequence
< sal_Int8
>& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
410 virtual void SAL_CALL
setDate(sal_Int32 parameterIndex
, const ::com::sun::star::util::Date
& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
411 virtual void SAL_CALL
setTime(sal_Int32 parameterIndex
, const ::com::sun::star::util::Time
& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
412 virtual void SAL_CALL
setTimestamp(sal_Int32 parameterIndex
, const ::com::sun::star::util::DateTime
& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
413 virtual void SAL_CALL
setBinaryStream(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Reference
< ::com::sun::star::io::XInputStream
>& x
, sal_Int32 length
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
414 virtual void SAL_CALL
setCharacterStream(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Reference
< ::com::sun::star::io::XInputStream
>& x
, sal_Int32 length
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
415 virtual void SAL_CALL
setObject(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Any
& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
416 virtual void SAL_CALL
setObjectWithInfo(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Any
& x
, sal_Int32 targetSqlType
, sal_Int32 scale
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
417 virtual void SAL_CALL
setRef(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XRef
>& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
418 virtual void SAL_CALL
setBlob(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XBlob
>& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
419 virtual void SAL_CALL
setClob(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XClob
>& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
420 virtual void SAL_CALL
setArray(sal_Int32 parameterIndex
, const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XArray
>& x
) throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
421 virtual void SAL_CALL
clearParameters() throw(::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
423 // XPropertyChangeListener
424 virtual void SAL_CALL
propertyChange( const ::com::sun::star::beans::PropertyChangeEvent
& evt
) throw (::com::sun::star::uno::RuntimeException
);
426 // XPropertyContainer
427 virtual void SAL_CALL
addProperty( const OUString
& Name
, ::sal_Int16 Attributes
, const ::com::sun::star::uno::Any
& DefaultValue
) throw (::com::sun::star::beans::PropertyExistException
, ::com::sun::star::beans::IllegalTypeException
, ::com::sun::star::lang::IllegalArgumentException
, ::com::sun::star::uno::RuntimeException
);
428 virtual void SAL_CALL
removeProperty( const OUString
& Name
) throw (::com::sun::star::beans::UnknownPropertyException
, ::com::sun::star::beans::NotRemoveableException
, ::com::sun::star::uno::RuntimeException
);
431 virtual ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
> SAL_CALL
getPropertyValues( ) throw (::com::sun::star::uno::RuntimeException
);
432 virtual void SAL_CALL
setPropertyValues( const ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
>& aProps
) throw (::com::sun::star::beans::UnknownPropertyException
, ::com::sun::star::beans::PropertyVetoException
, ::com::sun::star::lang::IllegalArgumentException
, ::com::sun::star::lang::WrappedTargetException
, ::com::sun::star::uno::RuntimeException
);
433 using OPropertySetAggregationHelper::setPropertyValues
;
436 virtual ::com::sun::star::uno::Any SAL_CALL
getWarnings( ) throw (::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
437 virtual void SAL_CALL
clearWarnings( ) throw (::com::sun::star::sdbc::SQLException
, ::com::sun::star::uno::RuntimeException
);
440 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::util::XCloneable
> SAL_CALL
createClone( ) throw (::com::sun::star::uno::RuntimeException
);
442 inline void submitNBC( const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& Control
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
);
445 // OPropertySetAggregationHelper overridables
446 virtual void SAL_CALL
forwardingPropertyValue( sal_Int32 _nHandle
);
447 virtual void SAL_CALL
forwardedPropertyValue( sal_Int32 _nHandle
, bool _bSuccess
);
449 // OInterfaceContainer overridables
450 virtual void implInserted( const ElementDescription
* _pElement
);
451 virtual void implRemoved(const InterfaceRef
& _rxObject
);
453 // OPropertyChangeListener
454 virtual void _propertyChanged( const ::com::sun::star::beans::PropertyChangeEvent
& ) throw(::com::sun::star::uno::RuntimeException
);
457 sal_Bool
executeRowSet(::osl::ResettableMutexGuard
& _rClearForNotifies
, sal_Bool bMoveToFirst
= sal_True
,
458 const ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>& _rxCompletionHandler
= ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>());
459 bool fillParameters(::osl::ResettableMutexGuard
& _rClearForNotifies
,
460 const ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>& _rxCompletionHandler
= ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>());
461 void updateParameterInfo();
462 bool hasValidParent() const;
465 void load_impl(sal_Bool bCausedByParentForm
, sal_Bool bMoveToFirst
= sal_True
,
466 const ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>& _rxCompletionHandler
= ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>())
467 throw(::com::sun::star::uno::RuntimeException
);
468 void reload_impl(sal_Bool bMoveToFirst
,
469 const ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>& _rxCompletionHandler
= ::com::sun::star::uno::Reference
< ::com::sun::star::task::XInteractionHandler
>())
470 throw(::com::sun::star::uno::RuntimeException
);
471 void submit_impl(const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& Control
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
, bool _bAproveByListeners
);
472 void reset_impl(bool _bAproveByListeners
);
474 sal_Bool
implEnsureConnection();
476 // connection sharing
478 /// checks if we can re-use (aka share) the connection of the given parent
479 sal_Bool
canShareConnection( const ::com::sun::star::uno::Reference
< ::com::sun::star::beans::XPropertySet
>& _rxParentProps
);
481 /// starts sharing the connection with the parent
482 void doShareConnection( const ::com::sun::star::uno::Reference
< ::com::sun::star::beans::XPropertySet
>& _rxParentProps
);
484 /// stops sharing the connection with the parent
485 void stopSharingConnection( );
487 /// called when the connection which we share with our parent is beeing disposed
488 void disposingSharedConnection( const ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XConnection
>& _rxConn
);
490 /// checks if we currently share our connection with our parent
491 sal_Bool
isSharingConnection( ) const { return m_bSharingConnection
; }
493 /** calls our row set approval listeners
497 @param _bAllowSQLException
498 <TRUE/> if SQLExceptions are allowed to leave the method
500 the guard to be cleared before actually calling into the listeners, but after making
501 a copy of the listeners array to operate on.
503 <TRUE/> if and only if the execution has been approved
505 bool impl_approveRowChange_throw(
506 const ::com::sun::star::lang::EventObject
& _rEvent
,
507 const bool _bAllowSQLException
,
508 ::osl::ClearableMutexGuard
& _rGuard
511 /// invalidate all our parameter-related stuff
512 void invlidateParameters();
514 void saveInsertOnlyState( );
515 void restoreInsertOnlyState( );
518 void onError(const ::com::sun::star::sdb::SQLErrorEvent
& _rEvent
);
519 void onError(const ::com::sun::star::sdbc::SQLException
&, const OUString
& _rContextDescription
);
522 OUString
GetDataEncoded(bool _bURLEncoded
,const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& SubmitButton
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
);
523 OUString
GetDataURLEncoded(const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& SubmitButton
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
);
524 OUString
GetDataTextEncoded(const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& SubmitButton
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
);
525 ::com::sun::star::uno::Sequence
<sal_Int8
> GetDataMultiPartEncoded(const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& SubmitButton
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
,
526 OUString
& rContentType
);
528 void AppendComponent(HtmlSuccessfulObjList
& rList
, const ::com::sun::star::uno::Reference
< ::com::sun::star::beans::XPropertySet
>& xComponentSet
, const OUString
& rNamePrefix
,
529 const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& rxSubmitButton
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
);
531 void FillSuccessfulList(HtmlSuccessfulObjList
& rList
, const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& rxSubmitButton
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
);
533 void InsertTextPart(INetMIMEMessage
& rParent
, const OUString
& rName
, const OUString
& rData
);
534 sal_Bool
InsertFilePart(INetMIMEMessage
& rParent
, const OUString
& rName
, const OUString
& rFileName
);
535 void Encode(OUString
& rString
) const;
537 ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XConnection
> getConnection();
539 void impl_createLoadTimer();
541 void impl_construct();
543 DECL_LINK( OnTimeout
, void* );
545 using OPropertySetHelper::getPropertyValues
;
548 inline void ODatabaseForm::submitNBC(const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XControl
>& Control
, const ::com::sun::star::awt::MouseEvent
& MouseEvt
)
550 submit_impl(Control
, MouseEvt
, sal_False
);
553 //.........................................................................
555 //.........................................................................
557 #endif // _FRM_DATABASEFORM_HXX_
560 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */