xref: /trunk/main/extensions/source/bibliography/datman.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*46dbaceeSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*46dbaceeSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*46dbaceeSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*46dbaceeSAndrew Rist  * distributed with this work for additional information
6*46dbaceeSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*46dbaceeSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*46dbaceeSAndrew Rist  * "License"); you may not use this file except in compliance
9*46dbaceeSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*46dbaceeSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*46dbaceeSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*46dbaceeSAndrew Rist  * software distributed under the License is distributed on an
15*46dbaceeSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*46dbaceeSAndrew Rist  * KIND, either express or implied.  See the License for the
17*46dbaceeSAndrew Rist  * specific language governing permissions and limitations
18*46dbaceeSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*46dbaceeSAndrew Rist  *************************************************************/
21*46dbaceeSAndrew Rist 
22*46dbaceeSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _BIB_DATMAN_HXX
25cdf0e10cSrcweir #define _BIB_DATMAN_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <com/sun/star/awt/XControlModel.hpp>
28cdf0e10cSrcweir #include <com/sun/star/form/XForm.hpp>
29cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSet.hpp>
30cdf0e10cSrcweir #include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
31cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFormController.hpp>
32cdf0e10cSrcweir #include <cppuhelper/compbase2.hxx>
33cdf0e10cSrcweir #include <cppuhelper/interfacecontainer.h>
34cdf0e10cSrcweir #include <com/sun/star/form/XLoadable.hpp>
35cdf0e10cSrcweir #include <comphelper/broadcasthelper.hxx>
36cdf0e10cSrcweir // #100312# --------------------
37cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
38cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProviderInterception.hpp>
39cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx>
40cdf0e10cSrcweir 
41cdf0e10cSrcweir class Window;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir //-----------------------------------------------------------------------------
44cdf0e10cSrcweir namespace bib
45cdf0e10cSrcweir {
46cdf0e10cSrcweir     class BibView;
47cdf0e10cSrcweir     // #100312# -----------
48cdf0e10cSrcweir     class BibBeamer;
49cdf0e10cSrcweir }
50cdf0e10cSrcweir 
51cdf0e10cSrcweir class BibToolBar;
52cdf0e10cSrcweir struct BibDBDescriptor;
53cdf0e10cSrcweir 
54cdf0e10cSrcweir // #100312# ---------------------
55cdf0e10cSrcweir class BibInterceptorHelper
56cdf0e10cSrcweir     :public cppu::WeakImplHelper1< ::com::sun::star::frame::XDispatchProviderInterceptor >
57cdf0e10cSrcweir {
58cdf0e10cSrcweir private:
59cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > xMasterDispatchProvider;
60cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > xSlaveDispatchProvider;
61cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > xFormDispatch;
62cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception > xInterception;
63cdf0e10cSrcweir 
64cdf0e10cSrcweir protected:
65cdf0e10cSrcweir     ~BibInterceptorHelper( );
66cdf0e10cSrcweir 
67cdf0e10cSrcweir public:
68cdf0e10cSrcweir     BibInterceptorHelper( ::bib::BibBeamer* pBibBeamer, ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > xDispatch);
69cdf0e10cSrcweir 
70cdf0e10cSrcweir     void ReleaseInterceptor();
71cdf0e10cSrcweir 
72cdf0e10cSrcweir     // XDispatchProvider
73cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > SAL_CALL queryDispatch( const ::com::sun::star::util::URL& aURL, const ::rtl::OUString& aTargetFrameName, sal_Int32 nSearchFlags ) throw (::com::sun::star::uno::RuntimeException);
74cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > > SAL_CALL queryDispatches( const ::com::sun::star::uno::Sequence< ::com::sun::star::frame::DispatchDescriptor >& aDescripts ) throw (::com::sun::star::uno::RuntimeException);
75cdf0e10cSrcweir     // XDispatchProviderInterceptor
76cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > SAL_CALL getSlaveDispatchProvider(  ) throw (::com::sun::star::uno::RuntimeException);
77cdf0e10cSrcweir     virtual void SAL_CALL setSlaveDispatchProvider( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider >& xNewSlaveDispatchProvider ) throw (::com::sun::star::uno::RuntimeException);
78cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > SAL_CALL getMasterDispatchProvider(  ) throw (::com::sun::star::uno::RuntimeException);
79cdf0e10cSrcweir     virtual void SAL_CALL setMasterDispatchProvider( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider >& xNewMasterDispatchProvider ) throw (::com::sun::star::uno::RuntimeException);
80cdf0e10cSrcweir };
81cdf0e10cSrcweir 
82cdf0e10cSrcweir typedef cppu::WeakComponentImplHelper2  <   ::com::sun::star::beans::XPropertyChangeListener
83cdf0e10cSrcweir                                         ,   ::com::sun::star::form::XLoadable
84cdf0e10cSrcweir                                         >   BibDataManager_Base;
85cdf0e10cSrcweir class BibDataManager
86cdf0e10cSrcweir             :public ::comphelper::OMutexAndBroadcastHelper
87cdf0e10cSrcweir             ,public BibDataManager_Base
88cdf0e10cSrcweir {
89cdf0e10cSrcweir private:
90cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >                       m_xForm;
91cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >                m_xGridModel;
92cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >               m_xSourceProps;
93cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer >   m_xParser;
94cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >    m_xFormCtrl;
95cdf0e10cSrcweir         // #100312# -------------------
96cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >      m_xFormDispatch;
97cdf0e10cSrcweir         BibInterceptorHelper* m_pInterceptorHelper;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir         ::rtl::OUString                     aActiveDataTable;
100cdf0e10cSrcweir         ::rtl::OUString                     aDataSourceURL;
101cdf0e10cSrcweir         ::rtl::OUString                     aQuoteChar;
102cdf0e10cSrcweir         ::com::sun::star::uno::Any                      aUID;
103cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >              xBibCursor;
104cdf0e10cSrcweir 
105cdf0e10cSrcweir         ::cppu::OInterfaceContainerHelper   m_aLoadListeners;
106cdf0e10cSrcweir 
107cdf0e10cSrcweir         ::bib::BibView*             pBibView;
108cdf0e10cSrcweir         BibToolBar*                 pToolbar;
109cdf0e10cSrcweir 
110cdf0e10cSrcweir         rtl::OUString               sIdentifierMapping;
111cdf0e10cSrcweir protected:
112cdf0e10cSrcweir 
113cdf0e10cSrcweir         void                        InsertFields(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > & xGrid);
114cdf0e10cSrcweir         void                        SetMeAsUidListener();
115cdf0e10cSrcweir         void                        RemoveMeAsUidListener();
116cdf0e10cSrcweir 
117cdf0e10cSrcweir         void                        UpdateAddressbookCursor(::rtl::OUString aSourceName);
118cdf0e10cSrcweir 
119cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >
120cdf0e10cSrcweir                                     updateGridModel(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm > & xDbForm);
121cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >
122cdf0e10cSrcweir                                     createGridModel( const ::rtl::OUString& rName );
123cdf0e10cSrcweir 
124cdf0e10cSrcweir         // XLoadable
125cdf0e10cSrcweir         virtual void SAL_CALL load(  ) throw (::com::sun::star::uno::RuntimeException);
126cdf0e10cSrcweir         virtual void SAL_CALL unload(  ) throw (::com::sun::star::uno::RuntimeException);
127cdf0e10cSrcweir         virtual void SAL_CALL reload(  ) throw (::com::sun::star::uno::RuntimeException);
128cdf0e10cSrcweir         virtual sal_Bool SAL_CALL isLoaded(  ) throw (::com::sun::star::uno::RuntimeException);
129cdf0e10cSrcweir         virtual void SAL_CALL addLoadListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XLoadListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
130cdf0e10cSrcweir         virtual void SAL_CALL removeLoadListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XLoadListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
131cdf0e10cSrcweir 
132cdf0e10cSrcweir         virtual void SAL_CALL disposing();
133cdf0e10cSrcweir 
134cdf0e10cSrcweir public:
135cdf0e10cSrcweir 
136cdf0e10cSrcweir         BibDataManager();
137cdf0e10cSrcweir         ~BibDataManager();
138cdf0e10cSrcweir 
139cdf0e10cSrcweir         virtual void                SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt)
140cdf0e10cSrcweir                                                                 throw( ::com::sun::star::uno::RuntimeException );
141cdf0e10cSrcweir         virtual void                SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source )
142cdf0e10cSrcweir                                                                 throw( ::com::sun::star::uno::RuntimeException );
143cdf0e10cSrcweir 
144cdf0e10cSrcweir 
145cdf0e10cSrcweir 
146cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >                   createDatabaseForm( BibDBDescriptor&    aDesc);
147cdf0e10cSrcweir 
148cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >            updateGridModel();
149cdf0e10cSrcweir 
150cdf0e10cSrcweir         ::com::sun::star::uno::Sequence< ::rtl::OUString>           getDataSources();
151cdf0e10cSrcweir 
getActiveDataSource()152cdf0e10cSrcweir         ::rtl::OUString             getActiveDataSource() {return aDataSourceURL;}
153cdf0e10cSrcweir         void                        setActiveDataSource(const ::rtl::OUString& rURL);
154cdf0e10cSrcweir 
155cdf0e10cSrcweir         ::rtl::OUString             getActiveDataTable();
156cdf0e10cSrcweir         void                        setActiveDataTable(const ::rtl::OUString& rTable);
157cdf0e10cSrcweir 
158cdf0e10cSrcweir         void                        setFilter(const ::rtl::OUString& rQuery);
159cdf0e10cSrcweir         ::rtl::OUString                     getFilter();
160cdf0e10cSrcweir 
161cdf0e10cSrcweir         ::com::sun::star::uno::Sequence< ::rtl::OUString>           getQueryFields();
162cdf0e10cSrcweir         ::rtl::OUString                     getQueryField();
163cdf0e10cSrcweir         void                        startQueryWith(const ::rtl::OUString& rQuery);
164cdf0e10cSrcweir 
getParser()165cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer >&    getParser() { return m_xParser; }
getForm()166cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >&                        getForm()   { return m_xForm; }
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 
169cdf0e10cSrcweir         ::rtl::OUString                     getControlName(sal_Int32 nFormatKey );
170cdf0e10cSrcweir 
171cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >            loadControlModel(const ::rtl::OUString& rName,
172cdf0e10cSrcweir                                                         sal_Bool bForceListBox = sal_False);
173cdf0e10cSrcweir 
174cdf0e10cSrcweir         void                        CreateMappingDialog(Window* pParent);
175cdf0e10cSrcweir         ::rtl::OUString             CreateDBChangeDialog(Window* pParent);
176cdf0e10cSrcweir 
177cdf0e10cSrcweir         void                        DispatchDBChangeDialog();
178cdf0e10cSrcweir         sal_Bool                    HasActiveConnection() const;
179cdf0e10cSrcweir 
SetView(::bib::BibView * pView)180cdf0e10cSrcweir         void                        SetView( ::bib::BibView* pView ) { pBibView = pView; }
181cdf0e10cSrcweir 
182cdf0e10cSrcweir         void                        SetToolbar(BibToolBar* pSet);
183cdf0e10cSrcweir 
184cdf0e10cSrcweir         const rtl::OUString&        GetIdentifierMapping();
ResetIdentifierMapping()185cdf0e10cSrcweir         void                        ResetIdentifierMapping() {sIdentifierMapping = rtl::OUString();}
186cdf0e10cSrcweir 
187cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > GetFormController();
188cdf0e10cSrcweir         // #100312# ----------
189cdf0e10cSrcweir         void RegisterInterceptor( ::bib::BibBeamer* pBibBeamer);
190cdf0e10cSrcweir 
191cdf0e10cSrcweir         sal_Bool                    HasActiveConnection();
192cdf0e10cSrcweir };
193cdf0e10cSrcweir 
194cdf0e10cSrcweir 
195cdf0e10cSrcweir #endif
196