fix baseline build (old cairo) - 'cairo_rectangle_int_t' does not name a type
[LibreOffice.git] / dbaccess / source / ui / app / AppController.hxx
blobf8a76f49b235325a70972da7ebade24e4ff99238
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_DBACCESS_SOURCE_UI_APP_APPCONTROLLER_HXX
21 #define INCLUDED_DBACCESS_SOURCE_UI_APP_APPCONTROLLER_HXX
23 #include "IApplicationController.hxx"
24 #include "AppElementType.hxx"
25 #include "callbacks.hxx"
26 #include "commontypes.hxx"
27 #include "dsntypes.hxx"
28 #include <dbaccess/genericcontroller.hxx>
29 #include "linkeddocuments.hxx"
30 #include "moduledbu.hxx"
31 #include "TableCopyHelper.hxx"
33 #include <com/sun/star/beans/XPropertyChangeListener.hpp>
34 #include <com/sun/star/container/XContainerListener.hpp>
35 #include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
36 #include <com/sun/star/util/XModifiable.hpp>
37 #include <com/sun/star/ui/XContextMenuInterception.hpp>
39 #include <comphelper/namedvaluecollection.hxx>
40 #include <comphelper/uno3.hxx>
41 #include <cppuhelper/implbase5.hxx>
42 #include <sot/storage.hxx>
43 #include <svtools/transfer.hxx>
44 #include <svx/dataaccessdescriptor.hxx>
45 #include <vcl/timer.hxx>
47 #include <memory>
49 class SvTreeListEntry;
50 class SvTreeListBox;
51 class TransferableHelper;
52 class TransferableClipboardListener;
54 namespace com { namespace sun { namespace star {
55 namespace container {
56 class XNameContainer;
57 class XContainer;
59 namespace ucb {
60 class XContent;
62 }}}
64 namespace dbaui
67 class SubComponentManager;
69 // OApplicationController
70 class OApplicationController;
71 class OApplicationView;
72 class OLinkedDocumentsAccess;
73 typedef OGenericUnoController OApplicationController_CBASE;
74 typedef ::cppu::ImplHelper5 < ::com::sun::star::container::XContainerListener
75 , ::com::sun::star::beans::XPropertyChangeListener
76 , ::com::sun::star::sdb::application::XDatabaseDocumentUI
77 , ::com::sun::star::ui::XContextMenuInterception
78 , ::com::sun::star::view::XSelectionSupplier
79 > OApplicationController_Base;
81 class SelectionNotifier;
83 class OApplicationController
84 :public OApplicationController_CBASE
85 ,public OApplicationController_Base
86 ,public IApplicationController
88 public:
89 typedef ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer > TContainer;
90 typedef ::std::vector< TContainer > TContainerVector;
92 private:
94 OTableCopyHelper::DropDescriptor m_aAsyncDrop;
96 SharedConnection m_xDataSourceConnection;
97 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >
98 m_xMetaData;
100 OModuleClient m_aModuleClient;
101 TransferableDataHelper m_aSystemClipboard; // content of the clipboard
102 ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
103 m_xDataSource;
104 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >
105 m_xModel;
106 ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifiable >
107 m_xDocumentModify;
108 ::cppu::OInterfaceContainerHelper
109 m_aContextMenuInterceptors;
111 TContainerVector m_aCurrentContainers; // the containers where we are listener on
112 ::rtl::Reference< SubComponentManager >
113 m_pSubComponentManager;
114 ::dbaccess::ODsnTypeCollection
115 m_aTypeCollection;
116 OTableCopyHelper m_aTableCopyHelper;
117 TransferableClipboardListener*
118 m_pClipbordNotifier; // notifier for changes in the clipboard
119 ImplSVEvent * m_nAsyncDrop;
120 OAsynchronousLink m_aSelectContainerEvent;
121 PreviewMode m_ePreviewMode; // the mode of the preview
122 ElementType m_eCurrentType;
123 bool m_bNeedToReconnect; // true when the settings of the data source were modified and the connection is no longer up to date
124 bool m_bSuspended; // is true when the controller was already suspended
126 ::std::unique_ptr< SelectionNotifier >
127 m_pSelectionNotifier;
128 typedef ::std::map< ElementType, ::std::vector< OUString > > SelectionByElementType;
129 SelectionByElementType m_aPendingSelection;
131 private:
133 OApplicationView* getContainer() const;
135 /** returns the database name
136 @return
137 the database name
139 OUString getDatabaseName() const;
141 /** returns the stripped database name.
142 @return
143 The stripped database name either the registered naem or if it is a file url the last segment.
145 OUString getStrippedDatabaseName() const;
147 /** return the element type for given container
148 @param _xContainer The container where the element type has to be found
149 @return the element type corresponding to the given container
151 static ElementType getElementType(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer >& _xContainer);
153 /** opens a new frame with either the table or the query or report or form or view
154 @param _sName
155 The name of the object to open
156 @param _eType
157 Defines the type to open
158 @param _eOpenMode
159 denotes the mode in which to open the object
160 @param _nInstigatorCommand
161 denotes the command which instigated the action. Might be 0.
162 @return the form or report model will only be returned, otherwise <NULL/>
164 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > openElement(
165 const OUString& _sName,
166 ElementType _eType,
167 ElementOpenMode _eOpenMode,
168 sal_uInt16 _nInstigatorCommand = 0
171 /** opens a new sub frame with a table/query/form/report/view, passing additional arguments
173 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > openElementWithArguments(
174 const OUString& _sName,
175 ElementType _eType,
176 ElementOpenMode _eOpenMode,
177 sal_uInt16 _nInstigatorCommand,
178 const ::comphelper::NamedValueCollection& _rAdditionalArguments
181 /** opens a new frame for creation or auto pilot
182 @param _eType
183 Defines the type to open
184 @param i_rAdditionalArguments
185 Additional arguments to pass when creating the component
187 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
188 newElement(
189 ElementType _eType,
190 const ::comphelper::NamedValueCollection& i_rAdditionalArguments,
191 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& o_rDocumentDefinition
194 /** creates a new database object, using an auto pilot
195 @param _eType
196 Defines the type of the object to create
197 @precond
198 Our mutex must not be locked.
199 @since #i39203#
201 void newElementWithPilot( ElementType _eType );
203 /** converts the query to a view
204 @param _sName
205 The name of the query.
207 void convertToView(const OUString& _sName);
209 /** checks if the connection for the selected data source is read only. If the connection doesn't exist, <TRUE/> will be returned.
210 @return
211 <TRUE/> if read only or doesn't exist, otherwise <FALSE/>
213 bool isConnectionReadOnly() const;
215 /// fills the list with the selected entries.
216 void getSelectionElementNames( ::std::vector< OUString>& _rNames ) const;
218 /// deletes the entries selected.
219 void deleteEntries();
221 /// renames the selected entry in the detail page
222 void renameEntry();
224 /** deletes queries, forms, or reports
225 @param _eType
226 the type of the objects
227 @param _rList
228 The names of the elements to delete
229 @param _bConfirm
230 determines whether the user must confirm the deletion
232 void deleteObjects( ElementType _eType,
233 const ::std::vector< OUString>& _rList,
234 bool _bConfirm );
236 /** deletes tables.
237 @param _rList
238 The list of tables.
240 void deleteTables(const ::std::vector< OUString>& _rList);
242 /// copies the current object into clipboard
243 TransferableHelper* copyObject();
245 /// returns the nameaccess
246 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > getElements(ElementType _eType);
248 /** returns the document access for the specific type
249 @param _eType
250 the type
251 @return ::std::unique_ptr<OLinkedDocumentsAccess>
253 ::std::unique_ptr<OLinkedDocumentsAccess> getDocumentsAccess(ElementType _eType);
255 /// returns the query definitions of the active data source.
256 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer> getQueryDefinitions() const;
258 /** pastes a special format from the system clipboard to the currently selected object types
259 @param _nFormatId
260 The format to be copied.
262 void pasteFormat(SotClipboardFormatId _nFormatId);
264 /** pastes a query, form or report into the data source
265 @param _eType
266 The type of the object to paste.
267 @param _rPasteData
268 The data descriptor.
269 @param _sParentFolder
270 The name of the parent folder if it exists.
271 @param _bMove
272 if <TRUE/> the name of the content must be inserted without any change, otherwise not.
273 @return
274 <TRUE/> if the paste opertions was successful, otherwise <FALSE/>.
276 bool paste( ElementType _eType, const svx::ODataAccessDescriptor& _rPasteData, const OUString& _sParentFolder = OUString(), bool _bMove = false);
278 /// returns the system clipboard.
279 const TransferableDataHelper& getViewClipboard() const { return m_aSystemClipboard; }
281 /// returns <TRUE/> if the clipboard supports a table format, otherwise <FALSE/>.
282 bool isTableFormat() const;
284 /** fills the vector with all supported formats
285 @param _eType
286 The type for which we need the formats
287 @param _rFormatIds
288 The vector to be filled up.
290 static void getSupportedFormats(ElementType _eType,::std::vector<SotClipboardFormatId>& _rFormatIds);
292 /** adds a listener to the current name access.
293 @param _xCollection
294 The collection where we want to listen on.
296 void addContainerListener(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& _xCollection);
298 /** opens a uno dialog withthe currently selected data source as initialize argument
299 @param _sServiceName
300 The serivce name of the dialog to be executed.
302 void openDialog(const OUString& _sServiceName);
304 /** opens the administration dialog for the selected data source
306 void openDataSourceAdminDialog();
308 /** opens the table filter dialog for the selected data source
310 void openTableFilterDialog();
312 /** opens the DirectSQLDialog to execute hand made sql statements.
314 void openDirectSQLDialog();
316 /** when the settings of the data source changed,
317 it opens a dialog which ask to close all depending documents, then recreate the connection.
318 The SolarMutex has to be locked before calling this.
320 void askToReconnect();
322 /** remember a newly opened sub document for later access
324 void onDocumentOpened(
325 const OUString& _rName,
326 const sal_Int32 _nType,
327 const ElementOpenMode _eMode,
328 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _xDocument,
329 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _xDefinition
332 /** Inserts a new object into the hierarchy given be the type.
333 @param _eType
334 Where to insert the new item.
335 @param _sParentFolder
336 The name of the parent folder if it exists.
337 @param _xContent
338 The content to insert.
339 @param _bMove
340 if <TRUE/> the name of the content must be inserted without any change, otherwise not.
341 @return
342 <TRUE/> if the insert opertions was successful, otherwise <FALSE/>.
344 bool insertHierachyElement( ElementType _eType
345 ,const OUString& _sParentFolder
346 ,bool _bCollection = true
347 ,const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XContent>& _xContent = ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XContent>()
348 ,bool _bMove = false);
349 /** checks if delete command or rename comamnd is allowed
350 @param _eType
351 The element type.
352 @param _bDelete
353 If <TRUE> then the delete command should be checked.
354 @return
355 <TRUE> if the command is allowed
357 bool isRenameDeleteAllowed(ElementType _eType, bool _bDelete) const;
358 /** all selected entries will be opened, or edited, or converted to a view
359 @param _nId
360 The slot which should be executed.
361 @param _eOpenMode
362 Defines the mode of opening. @see ElementOpenMode
364 void doAction(sal_uInt16 _nId, ElementOpenMode _eOpenMode);
366 /** returns the currently selected table or query name.
368 * \return the name of the currently table or query. If the tables or query container is selected otherwise an empty string will be returned.
370 OUString getCurrentlySelectedName(sal_Int32& _rnCommandType) const;
372 /** shows the preview for the given entry
374 void showPreviewFor( const ElementType _eType,const OUString& _sName );
376 /** called we were attached to a frame
378 In particular, this is called *after* the controller has been announced to the model
379 (XModel::connectController)
381 void onAttachedFrame();
383 /// determines whether the given table name denotes a view which can be altered
384 bool impl_isAlterableView_nothrow( const OUString& _rTableOrViewName ) const;
386 /** does the macro/script migration, where macros/scripts in forms/reports are moved
387 to the database document itself.
389 void impl_migrateScripts_nothrow();
391 /** verifies the object type denotes a valid DatabaseObject, and the object name denotes an existing
392 object of this type. Throws if not.
394 void impl_validateObjectTypeAndName_throw( const sal_Int32 _nObjectType, const ::boost::optional< OUString >& i_rObjectName );
396 protected:
397 // initalizing members
398 /** forces usage of a connection which we do not own
399 <p>To be used from within XInitialization::initialize only.</p>
401 void initializeConnection( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxForeignConn );
403 // state of a feature. 'feature' may be the handle of a ::com::sun::star::util::URL somebody requested a dispatch interface for OR a toolbar slot.
404 virtual FeatureState GetState(sal_uInt16 nId) const SAL_OVERRIDE;
405 // execute a feature
406 virtual void Execute(sal_uInt16 nId, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& aArgs) SAL_OVERRIDE;
408 // OGenericUnoController
409 virtual void onLoadedMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManager >& _xLayoutManager ) SAL_OVERRIDE;
411 virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > getPrivateModel() const SAL_OVERRIDE
413 return m_xModel;
416 virtual ~OApplicationController();
418 public:
419 OApplicationController(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxORB);
421 DECLARE_XINTERFACE( )
422 DECLARE_XTYPEPROVIDER( )
424 // XServiceInfo
425 virtual OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
426 virtual ::com::sun::star::uno::Sequence< OUString> SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
427 // need by registration
428 static OUString getImplementationName_Static() throw( ::com::sun::star::uno::RuntimeException );
429 static ::com::sun::star::uno::Sequence< OUString > getSupportedServiceNames_Static() throw( ::com::sun::star::uno::RuntimeException );
430 static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
431 SAL_CALL Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&);
433 // ::com::sun::star::frame::XController
434 virtual void SAL_CALL attachFrame(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > & xFrame) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
435 virtual sal_Bool SAL_CALL suspend(sal_Bool bSuspend) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
436 virtual sal_Bool SAL_CALL attachModel(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & xModel) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
437 virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > SAL_CALL getModel() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
439 // ::com::sun::star::container::XContainerListener
440 virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& Event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
441 virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& Event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
442 virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& Event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
444 // XPropertyChangeListener
445 virtual void SAL_CALL propertyChange( const ::com::sun::star::beans::PropertyChangeEvent& evt ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
447 // XDatabaseDocumentUI
448 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > SAL_CALL getDataSource() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
449 virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > SAL_CALL getApplicationMainWindow() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
450 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getActiveConnection() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
451 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > > SAL_CALL getSubComponents() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
452 virtual sal_Bool SAL_CALL isConnected( ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
453 // DO NOT CALL with getMutex() held!!
454 virtual void SAL_CALL connect( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
455 virtual ::com::sun::star::beans::Pair< ::sal_Int32, OUString > SAL_CALL identifySubComponent( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& SubComponent ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
456 virtual sal_Bool SAL_CALL closeSubComponents( ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
457 virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL loadComponent( ::sal_Int32 ObjectType, const OUString& ObjectName, sal_Bool ForEditing ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
458 virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL loadComponentWithArguments( ::sal_Int32 ObjectType, const OUString& ObjectName, sal_Bool ForEditing, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Arguments ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
459 virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL createComponent( ::sal_Int32 ObjectType, ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& o_DocumentDefinition ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
460 virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL createComponentWithArguments( ::sal_Int32 ObjectType, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Arguments, ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& o_DocumentDefinition ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
462 // XContextMenuInterception
463 virtual void SAL_CALL registerContextMenuInterceptor( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XContextMenuInterceptor >& Interceptor ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
464 virtual void SAL_CALL releaseContextMenuInterceptor( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XContextMenuInterceptor >& Interceptor ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
466 // XSelectionSupplier
467 virtual sal_Bool SAL_CALL select( const ::com::sun::star::uno::Any& xSelection ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
468 virtual ::com::sun::star::uno::Any SAL_CALL getSelection( ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
469 virtual void SAL_CALL addSelectionChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
470 virtual void SAL_CALL removeSelectionChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
472 /** retrieves the current connection, creates it if necessary
474 If an error occurs, then this is either stored in the location pointed to by <arg>_pErrorInfo</arg>,
475 or, if <code>_pErrorInfo</code> is <NULL/>, then the error is displayed to the user.
477 DO NOT CALL with getMutex() held!!
479 const SharedConnection& ensureConnection( ::dbtools::SQLExceptionInfo* _pErrorInfo = NULL );
481 /** retrieves the current connection
483 const SharedConnection& getConnection() const { return m_xDataSourceConnection; }
485 /// determines whether we're currently connected to the database
486 bool isConnected() const { return m_xDataSourceConnection.is(); }
488 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >&
489 getConnectionMetaData() const { return m_xMetaData; }
491 /** refreshes the tables
493 void refreshTables();
495 // IApplicationController
496 virtual bool onEntryDoubleClick(SvTreeListBox& _rTree) SAL_OVERRIDE;
497 virtual bool onContainerSelect(ElementType _eType) SAL_OVERRIDE;
498 virtual void onSelectionChanged() SAL_OVERRIDE;
499 virtual void onCutEntry() SAL_OVERRIDE;
500 virtual void onCopyEntry() SAL_OVERRIDE;
501 virtual void onPasteEntry() SAL_OVERRIDE;
502 virtual void onDeleteEntry() SAL_OVERRIDE;
503 virtual void previewChanged( sal_Int32 _nMode) SAL_OVERRIDE;
504 virtual void containerFound( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer >& _xContainer) SAL_OVERRIDE;
506 // IController (base of IApplicationController)
507 virtual void executeUnChecked(const ::com::sun::star::util::URL& _rCommand, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& aArgs) SAL_OVERRIDE;
508 virtual void executeChecked(const ::com::sun::star::util::URL& _rCommand, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& aArgs) SAL_OVERRIDE;
509 virtual void executeUnChecked(sal_uInt16 _nCommandId, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& aArgs) SAL_OVERRIDE;
510 virtual void executeChecked(sal_uInt16 _nCommandId, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& aArgs) SAL_OVERRIDE;
511 virtual bool isCommandEnabled(sal_uInt16 _nCommandId) const SAL_OVERRIDE;
512 virtual bool isCommandEnabled( const OUString& _rCompleteCommandURL ) const SAL_OVERRIDE;
513 virtual sal_uInt16 registerCommandURL( const OUString& _rCompleteCommandURL ) SAL_OVERRIDE;
514 virtual void notifyHiContrastChanged() SAL_OVERRIDE;
515 virtual bool isDataSourceReadOnly() const SAL_OVERRIDE;
516 virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >
517 getXController() throw( ::com::sun::star::uno::RuntimeException ) SAL_OVERRIDE;
518 virtual bool interceptUserInput( const NotifyEvent& _rEvent ) SAL_OVERRIDE;
520 // IControlActionListener overridables
521 virtual bool requestQuickHelp( const SvTreeListEntry* _pEntry, OUString& _rText ) const SAL_OVERRIDE;
522 virtual bool requestDrag( sal_Int8 _nAction, const Point& _rPosPixel ) SAL_OVERRIDE;
523 virtual sal_Int8 queryDrop( const AcceptDropEvent& _rEvt, const DataFlavorExVector& _rFlavors ) SAL_OVERRIDE;
524 virtual sal_Int8 executeDrop( const ExecuteDropEvent& _rEvt ) SAL_OVERRIDE;
526 // IContextMenuProvider (base of IApplicationController)
527 virtual PopupMenu* getContextMenu( Control& _rControl ) const SAL_OVERRIDE;
528 virtual IController& getCommandController() SAL_OVERRIDE;
529 virtual ::cppu::OInterfaceContainerHelper*
530 getContextMenuInterceptors() SAL_OVERRIDE;
531 virtual ::com::sun::star::uno::Any
532 getCurrentSelection( Control& _rControl ) const SAL_OVERRIDE;
534 void OnInvalidateClipboard();
535 DECL_LINK( OnClipboardChanged, void* );
536 DECL_LINK( OnAsyncDrop, void* );
537 DECL_LINK( OnCreateWithPilot, void* );
538 DECL_LINK( OnSelectContainer, void* );
539 void OnFirstControllerConnected();
541 protected:
542 using OApplicationController_CBASE::connect;
544 /** disconnects from our XConnection, and cleans up this connection
546 void disconnect();
548 // late construction
549 virtual bool Construct(vcl::Window* pParent) SAL_OVERRIDE;
550 virtual void describeSupportedFeatures() SAL_OVERRIDE;
552 protected:
553 // XEventListener
554 virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
556 // OComponentHelper
557 virtual void SAL_CALL disposing() SAL_OVERRIDE;
560 } // namespace dbaui
562 #endif // INCLUDED_DBACCESS_SOURCE_UI_APP_APPCONTROLLER_HXX
564 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */