xref: /aoo42x/main/svx/source/inc/formcontroller.hxx (revision 3334a7e6)
1*3334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*3334a7e6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*3334a7e6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*3334a7e6SAndrew Rist  * distributed with this work for additional information
6*3334a7e6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*3334a7e6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*3334a7e6SAndrew Rist  * "License"); you may not use this file except in compliance
9*3334a7e6SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*3334a7e6SAndrew Rist  *
11*3334a7e6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*3334a7e6SAndrew Rist  *
13*3334a7e6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*3334a7e6SAndrew Rist  * software distributed under the License is distributed on an
15*3334a7e6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3334a7e6SAndrew Rist  * KIND, either express or implied.  See the License for the
17*3334a7e6SAndrew Rist  * specific language governing permissions and limitations
18*3334a7e6SAndrew Rist  * under the License.
19*3334a7e6SAndrew Rist  *
20*3334a7e6SAndrew Rist  *************************************************************/
21*3334a7e6SAndrew Rist 
22*3334a7e6SAndrew Rist 
23cdf0e10cSrcweir #ifndef _SVX_FMCTRLER_HXX
24cdf0e10cSrcweir #define _SVX_FMCTRLER_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "delayedevent.hxx"
27cdf0e10cSrcweir #include "formdispatchinterceptor.hxx"
28cdf0e10cSrcweir #include "sqlparserclient.hxx"
29cdf0e10cSrcweir 
30cdf0e10cSrcweir /** === begin UNO includes === **/
31cdf0e10cSrcweir #include <com/sun/star/awt/XControl.hpp>
32cdf0e10cSrcweir #include <com/sun/star/awt/XControlModel.hpp>
33cdf0e10cSrcweir #include <com/sun/star/awt/XFocusListener.hpp>
34cdf0e10cSrcweir #include <com/sun/star/awt/XItemListener.hpp>
35cdf0e10cSrcweir #include <com/sun/star/awt/XMouseListener.hpp>
36cdf0e10cSrcweir #include <com/sun/star/awt/XTabController.hpp>
37cdf0e10cSrcweir #include <com/sun/star/awt/XTextComponent.hpp>
38cdf0e10cSrcweir #include <com/sun/star/container/XContainerListener.hpp>
39cdf0e10cSrcweir #include <com/sun/star/container/XEnumerationAccess.hpp>
40cdf0e10cSrcweir #include <com/sun/star/container/XIndexContainer.hpp>
41cdf0e10cSrcweir #include <com/sun/star/form/DatabaseDeleteEvent.hpp>
42cdf0e10cSrcweir #include <com/sun/star/form/DatabaseParameterEvent.hpp>
43cdf0e10cSrcweir #include <com/sun/star/form/ErrorEvent.hpp>
44cdf0e10cSrcweir #include <com/sun/star/form/validation/XFormComponentValidityListener.hpp>
45cdf0e10cSrcweir #include <com/sun/star/form/XConfirmDeleteBroadcaster.hpp>
46cdf0e10cSrcweir #include <com/sun/star/form/XConfirmDeleteListener.hpp>
47cdf0e10cSrcweir #include <com/sun/star/form/XDatabaseParameterBroadcaster2.hpp>
48cdf0e10cSrcweir #include <com/sun/star/form/XDatabaseParameterListener.hpp>
49cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFormController.hpp>
50cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFilterController.hpp>
51cdf0e10cSrcweir #include <com/sun/star/form/XFormControllerListener.hpp>
52cdf0e10cSrcweir #include <com/sun/star/form/XGridControlListener.hpp>
53cdf0e10cSrcweir #include <com/sun/star/form/XLoadListener.hpp>
54cdf0e10cSrcweir #include <com/sun/star/form/XResetListener.hpp>
55cdf0e10cSrcweir #include <com/sun/star/frame/DispatchDescriptor.hpp>
56cdf0e10cSrcweir #include <com/sun/star/frame/XDispatch.hpp>
57cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProvider.hpp>
58cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProviderInterception.hpp>
59cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
60cdf0e10cSrcweir #include <com/sun/star/frame/XModel.hpp>
61cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
62cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
63cdf0e10cSrcweir #include <com/sun/star/script/XEventAttacherManager.hpp>
64cdf0e10cSrcweir #include <com/sun/star/sdb/XRowSetApproveBroadcaster.hpp>
65cdf0e10cSrcweir #include <com/sun/star/sdb/XRowSetApproveListener.hpp>
66cdf0e10cSrcweir #include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
67cdf0e10cSrcweir #include <com/sun/star/sdb/XSQLErrorBroadcaster.hpp>
68cdf0e10cSrcweir #include <com/sun/star/sdb/XSQLErrorListener.hpp>
69cdf0e10cSrcweir #include <com/sun/star/sdbc/XRowSetListener.hpp>
70cdf0e10cSrcweir #include <com/sun/star/task/XInteractionHandler.hpp>
71cdf0e10cSrcweir #include <com/sun/star/util/XModeSelector.hpp>
72cdf0e10cSrcweir #include <com/sun/star/util/XModifyBroadcaster.hpp>
73cdf0e10cSrcweir #include <com/sun/star/util/XModifyListener.hpp>
74cdf0e10cSrcweir /** === end UNO includes === **/
75cdf0e10cSrcweir 
76cdf0e10cSrcweir #include <comphelper/broadcasthelper.hxx>
77cdf0e10cSrcweir #include <comphelper/componentcontext.hxx>
78cdf0e10cSrcweir #include <comphelper/proparrhlp.hxx>
79cdf0e10cSrcweir #include <comphelper/stl_types.hxx>
80cdf0e10cSrcweir #include <connectivity/sqlparse.hxx>
81cdf0e10cSrcweir #include <cppuhelper/propshlp.hxx>
82cdf0e10cSrcweir #include <tools/debug.hxx>
83cdf0e10cSrcweir #include <vcl/timer.hxx>
84cdf0e10cSrcweir 
85cdf0e10cSrcweir #if ! defined(INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_22)
86cdf0e10cSrcweir #define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_22
87cdf0e10cSrcweir #define COMPHELPER_IMPLBASE_INTERFACE_NUMBER 22
88cdf0e10cSrcweir #include <comphelper/implbase_var.hxx>
89cdf0e10cSrcweir #endif
90cdf0e10cSrcweir 
91cdf0e10cSrcweir struct FmXTextComponentLess : public ::std::binary_function< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent> , sal_Bool>
92cdf0e10cSrcweir {
operator ()FmXTextComponentLess93cdf0e10cSrcweir     sal_Bool operator() (const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& x, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& y) const
94cdf0e10cSrcweir     {
95cdf0e10cSrcweir         return reinterpret_cast<sal_Int64>(x.get()) < reinterpret_cast<sal_Int64>(y.get());
96cdf0e10cSrcweir     }
97cdf0e10cSrcweir };
98cdf0e10cSrcweir 
99cdf0e10cSrcweir typedef ::std::map< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::rtl::OUString, FmXTextComponentLess> FmFilterRow;
100cdf0e10cSrcweir typedef ::std::vector< FmFilterRow > FmFilterRows;
101cdf0e10cSrcweir typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > > FmFormControllers;
102cdf0e10cSrcweir 
103cdf0e10cSrcweir class FmFormView;
104cdf0e10cSrcweir class Window;
105cdf0e10cSrcweir 
106cdf0e10cSrcweir namespace svxform
107cdf0e10cSrcweir {
108cdf0e10cSrcweir     typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > >    FilterComponents;
109cdf0e10cSrcweir     class ControlBorderManager;
110cdf0e10cSrcweir     struct FmFieldInfo;
111cdf0e10cSrcweir 
112cdf0e10cSrcweir     typedef ::comphelper::WeakComponentImplHelper22 <   ::com::sun::star::form::runtime::XFormController
113cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::runtime::XFilterController
114cdf0e10cSrcweir                                                     ,   ::com::sun::star::awt::XFocusListener
115cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::XLoadListener
116cdf0e10cSrcweir                                                     ,   ::com::sun::star::beans::XPropertyChangeListener
117cdf0e10cSrcweir                                                     ,   ::com::sun::star::awt::XTextListener
118cdf0e10cSrcweir                                                     ,   ::com::sun::star::awt::XItemListener
119cdf0e10cSrcweir                                                     ,   ::com::sun::star::container::XContainerListener
120cdf0e10cSrcweir                                                     ,   ::com::sun::star::util::XModifyListener
121cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::XConfirmDeleteListener
122cdf0e10cSrcweir                                                     ,   ::com::sun::star::sdb::XSQLErrorListener
123cdf0e10cSrcweir                                                     ,   ::com::sun::star::sdbc::XRowSetListener
124cdf0e10cSrcweir                                                     ,   ::com::sun::star::sdb::XRowSetApproveListener
125cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::XDatabaseParameterListener
126cdf0e10cSrcweir                                                     ,   ::com::sun::star::lang::XServiceInfo
127cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::XResetListener
128cdf0e10cSrcweir                                                     ,   ::com::sun::star::frame::XDispatch
129cdf0e10cSrcweir                                                     ,   ::com::sun::star::awt::XMouseListener
130cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::validation::XFormComponentValidityListener
131cdf0e10cSrcweir                                                     ,   ::com::sun::star::task::XInteractionHandler
132cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::XGridControlListener
133cdf0e10cSrcweir                                                     ,   ::com::sun::star::form::runtime::XFeatureInvalidation
134cdf0e10cSrcweir                                                     >   FormController_BASE;
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     //==================================================================
137cdf0e10cSrcweir     // FormController
138cdf0e10cSrcweir     //==================================================================
139cdf0e10cSrcweir     class ColumnInfoCache;
140cdf0e10cSrcweir     class SAL_DLLPRIVATE FormController :public ::comphelper::OBaseMutex
141cdf0e10cSrcweir                                         ,public FormController_BASE
142cdf0e10cSrcweir                                         ,public ::cppu::OPropertySetHelper
143cdf0e10cSrcweir                                         ,public DispatchInterceptor
144cdf0e10cSrcweir                                         ,public ::comphelper::OAggregationArrayUsageHelper< FormController >
145cdf0e10cSrcweir                                         ,public ::svxform::OSQLParserClient
146cdf0e10cSrcweir     {
147cdf0e10cSrcweir         typedef ::std::map  <   sal_Int16,
148cdf0e10cSrcweir                                 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >
149cdf0e10cSrcweir                             >   DispatcherContainer;
150cdf0e10cSrcweir 
151cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation>				m_xAggregate;
152cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabController>			m_xTabController;
153cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>					m_xActiveControl, m_xCurrentControl;
154cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>		m_xModelAsIndex;
155cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacherManager>	m_xModelAsManager;
156cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>				m_xParent;
157cdf0e10cSrcweir         ::comphelper::ComponentContext                                                      m_aContext;
158cdf0e10cSrcweir         // Composer used for checking filter conditions
159cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer >       m_xComposer;
160cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >             m_xInteractionHandler;
161cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormControllerContext > m_xContext;
162cdf0e10cSrcweir 
163cdf0e10cSrcweir         ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> >	m_aControls;
164cdf0e10cSrcweir         ::cppu::OInterfaceContainerHelper
165cdf0e10cSrcweir                                     m_aActivateListeners,
166cdf0e10cSrcweir                                     m_aModifyListeners,
167cdf0e10cSrcweir                                     m_aErrorListeners,
168cdf0e10cSrcweir                                     m_aDeleteListeners,
169cdf0e10cSrcweir                                     m_aRowSetApproveListeners,
170cdf0e10cSrcweir                                     m_aParameterListeners,
171cdf0e10cSrcweir                                     m_aFilterListeners;
172cdf0e10cSrcweir 
173cdf0e10cSrcweir         FmFormControllers			m_aChilds;
174cdf0e10cSrcweir         FilterComponents            m_aFilterComponents;
175cdf0e10cSrcweir         FmFilterRows                m_aFilterRows;
176cdf0e10cSrcweir 
177cdf0e10cSrcweir         Timer						m_aTabActivationTimer;
178cdf0e10cSrcweir         Timer                       m_aFeatureInvalidationTimer;
179cdf0e10cSrcweir 
180cdf0e10cSrcweir         ::svxform::ControlBorderManager*
181cdf0e10cSrcweir                                     m_pControlBorderManager;
182cdf0e10cSrcweir 
183cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormOperations >
184cdf0e10cSrcweir                                     m_xFormOperations;
185cdf0e10cSrcweir         DispatcherContainer         m_aFeatureDispatchers;
186cdf0e10cSrcweir         ::std::set< sal_Int16 >     m_aInvalidFeatures;     // for asynchronous feature invalidation
187cdf0e10cSrcweir 
188cdf0e10cSrcweir         ::rtl::OUString				m_aMode;
189cdf0e10cSrcweir 
190cdf0e10cSrcweir         ::svxform::DelayedEvent     m_aLoadEvent;
191cdf0e10cSrcweir         ::svxform::DelayedEvent     m_aToggleEvent;
192cdf0e10cSrcweir         ::svxform::DelayedEvent     m_aActivationEvent;
193cdf0e10cSrcweir         ::svxform::DelayedEvent     m_aDeactivationEvent;
194cdf0e10cSrcweir 
195cdf0e10cSrcweir         ::std::auto_ptr< ColumnInfoCache >
196cdf0e10cSrcweir                                     m_pColumnInfoCache;
197cdf0e10cSrcweir 
198cdf0e10cSrcweir         sal_Int32					m_nCurrentFilterPosition;	// current level for filtering (or-criteria)
199cdf0e10cSrcweir 
200cdf0e10cSrcweir         sal_Bool					m_bCurrentRecordModified    : 1;
201cdf0e10cSrcweir         sal_Bool					m_bCurrentRecordNew         : 1;
202cdf0e10cSrcweir         sal_Bool					m_bLocked			        : 1;
203cdf0e10cSrcweir         sal_Bool					m_bDBConnection	            : 1;	// Focuslistener nur fuer Datenbankformulare
204cdf0e10cSrcweir         sal_Bool					m_bCycle			        : 1;
205cdf0e10cSrcweir         sal_Bool					m_bCanInsert		        : 1;
206cdf0e10cSrcweir         sal_Bool					m_bCanUpdate		        : 1;
207cdf0e10cSrcweir         sal_Bool					m_bCommitLock	            : 1;	// lock the committing of controls see focusGained
208cdf0e10cSrcweir         sal_Bool					m_bModified		            : 1;	// ist der Inhalt eines Controls modifiziert ?
209cdf0e10cSrcweir         sal_Bool					m_bControlsSorted           : 1;
210cdf0e10cSrcweir         sal_Bool					m_bFiltering                : 1;
211cdf0e10cSrcweir         sal_Bool					m_bAttachEvents             : 1;
212cdf0e10cSrcweir         sal_Bool					m_bDetachEvents             : 1;
213cdf0e10cSrcweir         bool                        m_bAttemptedHandlerCreation : 1;
214cdf0e10cSrcweir         bool                        m_bSuspendFilterTextListening;          // no bit field, passed around as reference
215cdf0e10cSrcweir 
216cdf0e10cSrcweir         // as we want to intercept dispatches of _all_ controls we're responsible for, and an object implementing
217cdf0e10cSrcweir         // the ::com::sun::star::frame::XDispatchProviderInterceptor interface can intercept only _one_ objects dispatches, we need a helper class
218cdf0e10cSrcweir         DECLARE_STL_VECTOR(DispatchInterceptionMultiplexer*, Interceptors);
219cdf0e10cSrcweir         Interceptors	m_aControlDispatchInterceptors;
220cdf0e10cSrcweir 
221cdf0e10cSrcweir     public:
222cdf0e10cSrcweir         FormController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & _rxORB );
223cdf0e10cSrcweir 
224cdf0e10cSrcweir     protected:
225cdf0e10cSrcweir         ~FormController();
226cdf0e10cSrcweir 
227cdf0e10cSrcweir     // XInterface
228cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException );
229cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ();
230cdf0e10cSrcweir         virtual void SAL_CALL release() throw ();
231cdf0e10cSrcweir 
232cdf0e10cSrcweir     // XTypeProvider
233cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
234cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes(  ) throw(::com::sun::star::uno::RuntimeException);
235cdf0e10cSrcweir 
236cdf0e10cSrcweir     // XDispatch
237cdf0e10cSrcweir         virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& _rURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rArgs ) throw (::com::sun::star::uno::RuntimeException);
238cdf0e10cSrcweir         virtual void SAL_CALL addStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxListener, const ::com::sun::star::util::URL& _rURL ) throw (::com::sun::star::uno::RuntimeException);
239cdf0e10cSrcweir         virtual void SAL_CALL removeStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxListener, const ::com::sun::star::util::URL& _rURL ) throw (::com::sun::star::uno::RuntimeException);
240cdf0e10cSrcweir 
241cdf0e10cSrcweir     // ::com::sun::star::container::XChild
242cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> SAL_CALL getParent(void) throw( ::com::sun::star::uno::RuntimeException );
243cdf0e10cSrcweir         virtual void SAL_CALL setParent(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Parent) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException );
244cdf0e10cSrcweir 
245cdf0e10cSrcweir     // ::com::sun::star::lang::XEventListener
246cdf0e10cSrcweir         virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir     // OComponentHelper
249cdf0e10cSrcweir         virtual void SAL_CALL disposing();
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     // OPropertySetHelper
252cdf0e10cSrcweir         virtual sal_Bool SAL_CALL convertFastPropertyValue( ::com::sun::star::uno::Any & rConvertedValue, ::com::sun::star::uno::Any & rOldValue,
253cdf0e10cSrcweir                                                 sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue )
254cdf0e10cSrcweir                     throw( ::com::sun::star::lang::IllegalArgumentException );
255cdf0e10cSrcweir 
256cdf0e10cSrcweir         virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) throw( ::com::sun::star::uno::Exception );
257cdf0e10cSrcweir         virtual void SAL_CALL getFastPropertyValue( ::com::sun::star::uno::Any& rValue, sal_Int32 nHandle ) const;
258cdf0e10cSrcweir 
259cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() throw( ::com::sun::star::uno::RuntimeException );
260cdf0e10cSrcweir         virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
261cdf0e10cSrcweir 
262cdf0e10cSrcweir         using OPropertySetHelper::getFastPropertyValue;
263cdf0e10cSrcweir 
264cdf0e10cSrcweir         // XFilterController
265cdf0e10cSrcweir         virtual ::sal_Int32 SAL_CALL getFilterComponents() throw (::com::sun::star::uno::RuntimeException);
266cdf0e10cSrcweir         virtual ::sal_Int32 SAL_CALL getDisjunctiveTerms() throw (::com::sun::star::uno::RuntimeException);
267cdf0e10cSrcweir         virtual void SAL_CALL addFilterControllerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFilterControllerListener >& _Listener ) throw( ::com::sun::star::uno::RuntimeException );
268cdf0e10cSrcweir         virtual void SAL_CALL removeFilterControllerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFilterControllerListener >& _Listener ) throw( ::com::sun::star::uno::RuntimeException );
269cdf0e10cSrcweir         virtual void SAL_CALL setPredicateExpression( ::sal_Int32 _Component, ::sal_Int32 _Term, const ::rtl::OUString& _PredicateExpression ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
270cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl > SAL_CALL getFilterComponent( ::sal_Int32 _Component ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
271cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::rtl::OUString > > SAL_CALL getPredicateExpressions() throw( ::com::sun::star::uno::RuntimeException );
272cdf0e10cSrcweir         virtual void SAL_CALL removeDisjunctiveTerm( ::sal_Int32 _Term ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
273cdf0e10cSrcweir         virtual void SAL_CALL appendEmptyDisjunctiveTerm() throw (::com::sun::star::uno::RuntimeException);
274cdf0e10cSrcweir         virtual ::sal_Int32 SAL_CALL getActiveTerm() throw (::com::sun::star::uno::RuntimeException);
275cdf0e10cSrcweir         virtual void SAL_CALL setActiveTerm( ::sal_Int32 _ActiveTerm ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
276cdf0e10cSrcweir 
277cdf0e10cSrcweir     // XElementAccess
278cdf0e10cSrcweir         virtual ::com::sun::star::uno::Type SAL_CALL getElementType(void) throw( ::com::sun::star::uno::RuntimeException );
279cdf0e10cSrcweir         virtual sal_Bool SAL_CALL hasElements(void) throw( ::com::sun::star::uno::RuntimeException );
280cdf0e10cSrcweir 
281cdf0e10cSrcweir     // ::com::sun::star::container::XEnumerationAccess
282cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration> SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException );
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     // ::com::sun::star::container::XContainerListener
285cdf0e10cSrcweir         virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException );
286cdf0e10cSrcweir         virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException );
287cdf0e10cSrcweir         virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException );
288cdf0e10cSrcweir 
289cdf0e10cSrcweir     // XLoadListener
290cdf0e10cSrcweir         virtual void SAL_CALL loaded(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException );
291cdf0e10cSrcweir         virtual void SAL_CALL unloaded(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException );
292cdf0e10cSrcweir         virtual void SAL_CALL unloading(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException );
293cdf0e10cSrcweir         virtual void SAL_CALL reloading(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException );
294cdf0e10cSrcweir         virtual void SAL_CALL reloaded(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException );
295cdf0e10cSrcweir 
296cdf0e10cSrcweir     // XModeSelector
297cdf0e10cSrcweir         virtual void SAL_CALL setMode(const ::rtl::OUString& Mode) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException );
298cdf0e10cSrcweir         virtual ::rtl::OUString SAL_CALL getMode(void) throw( ::com::sun::star::uno::RuntimeException );
299cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedModes(void) throw( ::com::sun::star::uno::RuntimeException );
300cdf0e10cSrcweir         virtual sal_Bool SAL_CALL supportsMode(const ::rtl::OUString& Mode) throw( ::com::sun::star::uno::RuntimeException );
301cdf0e10cSrcweir 
302cdf0e10cSrcweir     // ::com::sun::star::container::XIndexAccess
303cdf0e10cSrcweir         virtual sal_Int32 SAL_CALL getCount(void) throw( ::com::sun::star::uno::RuntimeException );
304cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 Index) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException );
305cdf0e10cSrcweir 
306cdf0e10cSrcweir     // XModifyBroadcaster
307cdf0e10cSrcweir         virtual void SAL_CALL addModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l) throw( ::com::sun::star::uno::RuntimeException );
308cdf0e10cSrcweir         virtual void SAL_CALL removeModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l) throw( ::com::sun::star::uno::RuntimeException );
309cdf0e10cSrcweir 
310cdf0e10cSrcweir     // XFocusListener
311cdf0e10cSrcweir         virtual void SAL_CALL focusGained(const  ::com::sun::star::awt::FocusEvent& e) throw( ::com::sun::star::uno::RuntimeException );
312cdf0e10cSrcweir         virtual void SAL_CALL focusLost(const  ::com::sun::star::awt::FocusEvent& e) throw( ::com::sun::star::uno::RuntimeException );
313cdf0e10cSrcweir 
314cdf0e10cSrcweir     // XMouseListener
315cdf0e10cSrcweir         virtual void SAL_CALL mousePressed( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException);
316cdf0e10cSrcweir         virtual void SAL_CALL mouseReleased( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException);
317cdf0e10cSrcweir         virtual void SAL_CALL mouseEntered( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException);
318cdf0e10cSrcweir         virtual void SAL_CALL mouseExited( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException);
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     // XFormComponentValidityListener
321cdf0e10cSrcweir         virtual void SAL_CALL componentValidityChanged( const ::com::sun::star::lang::EventObject& _rSource ) throw (::com::sun::star::uno::RuntimeException);
322cdf0e10cSrcweir 
323cdf0e10cSrcweir     // XInteractionHandler
324cdf0e10cSrcweir         virtual void SAL_CALL handle( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionRequest >& Request ) throw (::com::sun::star::uno::RuntimeException);
325cdf0e10cSrcweir 
326cdf0e10cSrcweir     // XGridControlListener
327cdf0e10cSrcweir         virtual void SAL_CALL columnChanged( const ::com::sun::star::lang::EventObject& _event ) throw (::com::sun::star::uno::RuntimeException);
328cdf0e10cSrcweir 
329cdf0e10cSrcweir     // ::com::sun::star::beans::XPropertyChangeListener -> aenderung der stati
330cdf0e10cSrcweir         virtual void SAL_CALL propertyChange(const  ::com::sun::star::beans::PropertyChangeEvent& evt) throw( ::com::sun::star::uno::RuntimeException );
331cdf0e10cSrcweir 
332cdf0e10cSrcweir     // XTextListener		   -> modify setzen
333cdf0e10cSrcweir         virtual void SAL_CALL textChanged(const  ::com::sun::star::awt::TextEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException );
334cdf0e10cSrcweir 
335cdf0e10cSrcweir     // XItemListener			-> modify setzen
336cdf0e10cSrcweir         virtual void SAL_CALL itemStateChanged(const  ::com::sun::star::awt::ItemEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException );
337cdf0e10cSrcweir 
338cdf0e10cSrcweir     // XModifyListener   -> modify setzen
339cdf0e10cSrcweir         virtual void SAL_CALL modified(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException );
340cdf0e10cSrcweir 
341cdf0e10cSrcweir     // XFormController
342cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormOperations > SAL_CALL getFormOperations() throw (::com::sun::star::uno::RuntimeException);
343cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> SAL_CALL getCurrentControl(void) throw( ::com::sun::star::uno::RuntimeException );
344cdf0e10cSrcweir         virtual void SAL_CALL addActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l) throw( ::com::sun::star::uno::RuntimeException );
345cdf0e10cSrcweir         virtual void SAL_CALL removeActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l) throw( ::com::sun::star::uno::RuntimeException );
346cdf0e10cSrcweir         virtual void SAL_CALL addChildController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >& _ChildController ) throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException );
347cdf0e10cSrcweir 
348cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormControllerContext > SAL_CALL getContext() throw (::com::sun::star::uno::RuntimeException);
349cdf0e10cSrcweir         virtual void SAL_CALL setContext( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormControllerContext >& _context ) throw (::com::sun::star::uno::RuntimeException);
350cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > SAL_CALL getInteractionHandler() throw (::com::sun::star::uno::RuntimeException);
351cdf0e10cSrcweir         virtual void SAL_CALL setInteractionHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _interactionHandler ) throw (::com::sun::star::uno::RuntimeException);
352cdf0e10cSrcweir 
353cdf0e10cSrcweir     // XTabController
354cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> > SAL_CALL getControls(void) throw( ::com::sun::star::uno::RuntimeException );
355cdf0e10cSrcweir 
356cdf0e10cSrcweir         virtual void SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel>& Model) throw( ::com::sun::star::uno::RuntimeException );
357cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel> SAL_CALL getModel() throw( ::com::sun::star::uno::RuntimeException );
358cdf0e10cSrcweir 
359cdf0e10cSrcweir         virtual void SAL_CALL setContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer>& Container) throw( ::com::sun::star::uno::RuntimeException );
360cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer> SAL_CALL getContainer() throw( ::com::sun::star::uno::RuntimeException );
361cdf0e10cSrcweir 
362cdf0e10cSrcweir         virtual void SAL_CALL autoTabOrder() throw( ::com::sun::star::uno::RuntimeException );
363cdf0e10cSrcweir         virtual void SAL_CALL activateTabOrder() throw( ::com::sun::star::uno::RuntimeException );
364cdf0e10cSrcweir 
365cdf0e10cSrcweir         virtual void SAL_CALL activateFirst() throw( ::com::sun::star::uno::RuntimeException );
366cdf0e10cSrcweir         virtual void SAL_CALL activateLast() throw( ::com::sun::star::uno::RuntimeException );
367cdf0e10cSrcweir 
368cdf0e10cSrcweir     // com::sun::star::sdbc::XRowSetListener
369cdf0e10cSrcweir         virtual void SAL_CALL cursorMoved(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException );
370cdf0e10cSrcweir         virtual void SAL_CALL rowChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException );
371cdf0e10cSrcweir         virtual void SAL_CALL rowSetChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException );
372cdf0e10cSrcweir 
373cdf0e10cSrcweir     // XRowSetApproveListener
374cdf0e10cSrcweir         virtual sal_Bool SAL_CALL approveCursorMove(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException );
375cdf0e10cSrcweir         virtual sal_Bool SAL_CALL approveRowChange(const  ::com::sun::star::sdb::RowChangeEvent& event) throw( ::com::sun::star::uno::RuntimeException );
376cdf0e10cSrcweir         virtual sal_Bool SAL_CALL approveRowSetChange(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException );
377cdf0e10cSrcweir 
378cdf0e10cSrcweir     // XRowSetApproveBroadcaster
379cdf0e10cSrcweir         virtual void SAL_CALL addRowSetApproveListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener>& listener) throw( ::com::sun::star::uno::RuntimeException );
380cdf0e10cSrcweir         virtual void SAL_CALL removeRowSetApproveListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener>& listener) throw( ::com::sun::star::uno::RuntimeException );
381cdf0e10cSrcweir 
382cdf0e10cSrcweir     // XSQLErrorBroadcaster
383cdf0e10cSrcweir         virtual void SAL_CALL errorOccured(const ::com::sun::star::sdb::SQLErrorEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException );
384cdf0e10cSrcweir 
385cdf0e10cSrcweir     // XSQLErrorListener
386cdf0e10cSrcweir         virtual void SAL_CALL addSQLErrorListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLErrorListener>& _rListener) throw( ::com::sun::star::uno::RuntimeException );
387cdf0e10cSrcweir         virtual void SAL_CALL removeSQLErrorListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLErrorListener>& _rListener) throw( ::com::sun::star::uno::RuntimeException );
388cdf0e10cSrcweir 
389cdf0e10cSrcweir     // XDatabaseParameterBroadcaster2
390cdf0e10cSrcweir         virtual void SAL_CALL addDatabaseParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException );
391cdf0e10cSrcweir         virtual void SAL_CALL removeDatabaseParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException );
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     // XDatabaseParameterBroadcaster
394cdf0e10cSrcweir         virtual void SAL_CALL addParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException );
395cdf0e10cSrcweir         virtual void SAL_CALL removeParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException );
396cdf0e10cSrcweir 
397cdf0e10cSrcweir     // XDatabaseParameterListener
398cdf0e10cSrcweir         virtual sal_Bool SAL_CALL approveParameter(const ::com::sun::star::form::DatabaseParameterEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException );
399cdf0e10cSrcweir 
400cdf0e10cSrcweir     // XConfirmDeleteBroadcaster
401cdf0e10cSrcweir         virtual void SAL_CALL addConfirmDeleteListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XConfirmDeleteListener>& aListener) throw( ::com::sun::star::uno::RuntimeException );
402cdf0e10cSrcweir         virtual void SAL_CALL removeConfirmDeleteListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XConfirmDeleteListener>& aListener) throw( ::com::sun::star::uno::RuntimeException );
403cdf0e10cSrcweir 
404cdf0e10cSrcweir     // XConfirmDeleteListener
405cdf0e10cSrcweir         virtual sal_Bool SAL_CALL confirmDelete(const  ::com::sun::star::sdb::RowChangeEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException );
406cdf0e10cSrcweir 
407cdf0e10cSrcweir     // XServiceInfo
408cdf0e10cSrcweir         virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& ServiceName) throw(::com::sun::star::uno::RuntimeException);
409cdf0e10cSrcweir         virtual ::rtl::OUString	SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
410cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >	SAL_CALL getSupportedServiceNames(void) throw(::com::sun::star::uno::RuntimeException);
411cdf0e10cSrcweir 
412cdf0e10cSrcweir     // XResetListener
413cdf0e10cSrcweir         virtual sal_Bool SAL_CALL approveReset(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException );
414cdf0e10cSrcweir         virtual void SAL_CALL resetted(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException );
415cdf0e10cSrcweir 
416cdf0e10cSrcweir         // XFeatureInvalidation
417cdf0e10cSrcweir         virtual void SAL_CALL invalidateFeatures( const ::com::sun::star::uno::Sequence< ::sal_Int16 >& Features ) throw (::com::sun::star::uno::RuntimeException);
418cdf0e10cSrcweir         virtual void SAL_CALL invalidateAllFeatures(  ) throw (::com::sun::star::uno::RuntimeException);
419cdf0e10cSrcweir 
420cdf0e10cSrcweir // method for registration
421cdf0e10cSrcweir         static  ::com::sun::star::uno::Sequence< ::rtl::OUString >	getSupportedServiceNames_Static(void);
422cdf0e10cSrcweir 
423cdf0e10cSrcweir         // comphelper::OPropertyArrayUsageHelper
424cdf0e10cSrcweir         virtual void fillProperties(
425cdf0e10cSrcweir             ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& /* [out] */ _rProps,
426cdf0e10cSrcweir             ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& /* [out] */ _rAggregateProps
427cdf0e10cSrcweir             ) const;
428cdf0e10cSrcweir 
429cdf0e10cSrcweir     protected:
430cdf0e10cSrcweir         // DispatchInterceptor
431cdf0e10cSrcweir         virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch>
432cdf0e10cSrcweir             interceptedQueryDispatch(
433cdf0e10cSrcweir                     const ::com::sun::star::util::URL& aURL,
434cdf0e10cSrcweir                     const ::rtl::OUString& aTargetFrameName,
435cdf0e10cSrcweir                     sal_Int32 nSearchFlags
436cdf0e10cSrcweir                 )   throw( ::com::sun::star::uno::RuntimeException );
437cdf0e10cSrcweir 
getInterceptorMutex()438cdf0e10cSrcweir         virtual ::osl::Mutex* getInterceptorMutex() { return &m_aMutex; }
439cdf0e10cSrcweir 
440cdf0e10cSrcweir         /// update all our dispatchers
441cdf0e10cSrcweir         void    updateAllDispatchers() const;
442cdf0e10cSrcweir 
443cdf0e10cSrcweir         /** disposes all dispatchers in m_aFeatureDispatchers, and empties m_aFeatureDispatchers
444cdf0e10cSrcweir         */
445cdf0e10cSrcweir         void    disposeAllFeaturesAndDispatchers() SAL_THROW(());
446cdf0e10cSrcweir 
447cdf0e10cSrcweir         void startFiltering();
448cdf0e10cSrcweir         void stopFiltering();
449cdf0e10cSrcweir         void setFilter(::std::vector<FmFieldInfo>&);
450cdf0e10cSrcweir         void startListening();
451cdf0e10cSrcweir         void stopListening();
452cdf0e10cSrcweir 
453cdf0e10cSrcweir         /** ensures that we have an interaction handler, if possible
454cdf0e10cSrcweir 
455cdf0e10cSrcweir             If an interaction handler was provided at creation time (<member>initialize</member>), this
456cdf0e10cSrcweir             one will be used. Else, an attempt is made to create an <type scope="com::sun::star::sdb">InteractionHandler</type>
457cdf0e10cSrcweir             is made.
458cdf0e10cSrcweir 
459cdf0e10cSrcweir             @return <TRUE/>
460cdf0e10cSrcweir                 if and only if <member>m_xInteractionHandler</member> is valid when the method returns
461cdf0e10cSrcweir         */
462cdf0e10cSrcweir         bool ensureInteractionHandler();
463cdf0e10cSrcweir 
464cdf0e10cSrcweir         /** replaces one of our controls with another one
465cdf0e10cSrcweir 
466cdf0e10cSrcweir             Upon successful replacing, the old control will be disposed. Also, internal members pointing
467cdf0e10cSrcweir             to the current or active control will be adjusted. Yet more, if the replaced control was
468cdf0e10cSrcweir             the active control, the new control will be made active.
469cdf0e10cSrcweir 
470cdf0e10cSrcweir             @param _rxExistentControl
471cdf0e10cSrcweir                 The control to replace. Must be one of the controls in our ControlContainer.
472cdf0e10cSrcweir             @param _rxNewControl
473cdf0e10cSrcweir                 The control which should replace the existent control.
474cdf0e10cSrcweir             @return
475cdf0e10cSrcweir                 <TRUE/> if and only if the control was successfully replaced
476cdf0e10cSrcweir         */
477cdf0e10cSrcweir         bool    replaceControl(
478cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxExistentControl,
479cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxNewControl
480cdf0e10cSrcweir         );
481cdf0e10cSrcweir 
482cdf0e10cSrcweir         // we're listening at all bound controls for modifications
483cdf0e10cSrcweir         void startControlModifyListening(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
484cdf0e10cSrcweir         void stopControlModifyListening(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
485cdf0e10cSrcweir 
486cdf0e10cSrcweir         void setLocks();
487cdf0e10cSrcweir         void setControlLock(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
488cdf0e10cSrcweir         void addToEventAttacher(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
489cdf0e10cSrcweir         void removeFromEventAttacher(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
490cdf0e10cSrcweir         void toggleAutoFields(sal_Bool bAutoFields);
491cdf0e10cSrcweir         void unload() throw( ::com::sun::star::uno::RuntimeException );
492cdf0e10cSrcweir         void removeBoundFieldListener();
493cdf0e10cSrcweir 
494cdf0e10cSrcweir         void startFormListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxForm, sal_Bool _bPropertiesOnly  );
495cdf0e10cSrcweir         void stopFormListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxForm, sal_Bool _bPropertiesOnly );
496cdf0e10cSrcweir 
497cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> findControl( ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> >& rCtrls, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& rxCtrlModel, sal_Bool _bRemove, sal_Bool _bOverWrite ) const;
498cdf0e10cSrcweir 
499cdf0e10cSrcweir         void insertControl(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
500cdf0e10cSrcweir         void removeControl(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
501cdf0e10cSrcweir 
502cdf0e10cSrcweir         /// called when a new control is to be handled by the controller
503cdf0e10cSrcweir         void implControlInserted( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& _rxControl, bool _bAddToEventAttacher );
504cdf0e10cSrcweir         /// called when a control is not to be handled by the controller anymore
505cdf0e10cSrcweir         void implControlRemoved( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& _rxControl, bool _bRemoveFromEventAttacher );
506cdf0e10cSrcweir 
507cdf0e10cSrcweir         /** sets m_xCurrentControl, plus does administrative tasks depending on it
508cdf0e10cSrcweir         */
509cdf0e10cSrcweir         void    implSetCurrentControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxControl );
510cdf0e10cSrcweir 
511cdf0e10cSrcweir         /** invalidates the FormFeatures which depend on the current control
512cdf0e10cSrcweir         */
513cdf0e10cSrcweir         void    implInvalidateCurrentControlDependentFeatures();
514cdf0e10cSrcweir 
impl_isDisposed_nofail() const515cdf0e10cSrcweir         bool    impl_isDisposed_nofail() const { return FormController_BASE::rBHelper.bDisposed; }
516cdf0e10cSrcweir         void    impl_checkDisposed_throw() const;
517cdf0e10cSrcweir 
518cdf0e10cSrcweir         void    impl_onModify();
519cdf0e10cSrcweir 
520cdf0e10cSrcweir         /** adds the given filter row to m_aFilterRows, setting m_nCurrentFilterPosition to 0 if the newly added
521cdf0e10cSrcweir             row is the first one.
522cdf0e10cSrcweir 
523cdf0e10cSrcweir             @precond
524cdf0e10cSrcweir                 our mutex is locked
525cdf0e10cSrcweir         */
526cdf0e10cSrcweir         void    impl_addFilterRow( const FmFilterRow& _row );
527cdf0e10cSrcweir 
528cdf0e10cSrcweir         /** adds an empty filter row to m_aFilterRows, and notifies our listeners
529cdf0e10cSrcweir         */
530cdf0e10cSrcweir         void    impl_appendEmptyFilterRow( ::osl::ClearableMutexGuard& _rClearBeforeNotify );
531cdf0e10cSrcweir 
isLocked() const532cdf0e10cSrcweir         sal_Bool isLocked() const {return m_bLocked;}
533cdf0e10cSrcweir         sal_Bool determineLockState() const;
534cdf0e10cSrcweir 
535cdf0e10cSrcweir         Window* getDialogParentWindow();
536cdf0e10cSrcweir             // returns the window which should be used as parent window for dialogs
537cdf0e10cSrcweir 
538cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor>	createInterceptor(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _xInterception);
539cdf0e10cSrcweir             // create a new interceptor, register it on the given object
540cdf0e10cSrcweir         void							deleteInterceptor(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _xInterception);
541cdf0e10cSrcweir             // if createInterceptor was called for the given object the according interceptor will be removed
542cdf0e10cSrcweir             // from the objects interceptor chain and released
543cdf0e10cSrcweir 
544cdf0e10cSrcweir         /** checks all form controls belonging to our form for validity
545cdf0e10cSrcweir 
546cdf0e10cSrcweir             If a form control supports the XValidatableFormComponent interface, this is used to determine
547cdf0e10cSrcweir             the validity of the control. If the interface is not supported, the control is supposed to be
548cdf0e10cSrcweir             valid.
549cdf0e10cSrcweir 
550cdf0e10cSrcweir             @param _rFirstInvalidityExplanation
551cdf0e10cSrcweir                 if the method returns <FALSE/> (i.e. if there is an invalid control), this string contains
552cdf0e10cSrcweir                 the explanation for the invalidity, as obtained from the validator.
553cdf0e10cSrcweir 
554cdf0e10cSrcweir             @param _rxFirstInvalidModel
555cdf0e10cSrcweir                 if the method returns <FALSE/> (i.e. if there is an invalid control), this contains
556cdf0e10cSrcweir                 the control model
557cdf0e10cSrcweir 
558cdf0e10cSrcweir             @return
559cdf0e10cSrcweir                 <TRUE/> if and only if all controls belonging to our form are valid
560cdf0e10cSrcweir         */
561cdf0e10cSrcweir         bool    checkFormComponentValidity(
562cdf0e10cSrcweir                     ::rtl::OUString& /* [out] */ _rFirstInvalidityExplanation,
563cdf0e10cSrcweir                     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& /* [out] */ _rxFirstInvalidModel
564cdf0e10cSrcweir                 ) SAL_THROW(());
565cdf0e10cSrcweir 
566cdf0e10cSrcweir         /** locates the control which belongs to a given model
567cdf0e10cSrcweir         */
568cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >
569cdf0e10cSrcweir                 locateControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& _rxModel ) SAL_THROW(());
570cdf0e10cSrcweir 
571cdf0e10cSrcweir         // set the text for all filters
572cdf0e10cSrcweir         void impl_setTextOnAllFilter_throw();
573cdf0e10cSrcweir 
574cdf0e10cSrcweir         // in filter mode we do not listen for changes
isListeningForChanges() const575cdf0e10cSrcweir         sal_Bool isListeningForChanges() const {return m_bDBConnection && !m_bFiltering && !isLocked();}
576cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> isInList(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer>& xPeer) const;
577cdf0e10cSrcweir 
578cdf0e10cSrcweir         DECL_LINK( OnActivateTabOrder, void* );
579cdf0e10cSrcweir         DECL_LINK( OnInvalidateFeatures, void* );
580cdf0e10cSrcweir         DECL_LINK( OnLoad, void* );
581cdf0e10cSrcweir         DECL_LINK( OnToggleAutoFields, void* );
582cdf0e10cSrcweir         DECL_LINK( OnActivated, void* );
583cdf0e10cSrcweir         DECL_LINK( OnDeactivated, void* );
584cdf0e10cSrcweir     };
585cdf0e10cSrcweir 
586cdf0e10cSrcweir }   // namespace svxform
587cdf0e10cSrcweir 
588cdf0e10cSrcweir #endif	// _SVX_FMCTRLER_HXX
589cdf0e10cSrcweir 
590