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