1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef 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>
49 class SvTreeListEntry
;
51 class TransferableHelper
;
52 class TransferableClipboardListener
;
54 namespace com
{ namespace sun
{ namespace star
{
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
89 typedef ::com::sun::star::uno::Reference
< ::com::sun::star::container::XContainer
> TContainer
;
90 typedef ::std::vector
< TContainer
> TContainerVector
;
94 OTableCopyHelper::DropDescriptor m_aAsyncDrop
;
96 SharedConnection m_xDataSourceConnection
;
97 ::com::sun::star::uno::Reference
< ::com::sun::star::sdbc::XDatabaseMetaData
>
100 OModuleClient m_aModuleClient
;
101 TransferableDataHelper m_aSystemClipboard
; // content of the clipboard
102 ::com::sun::star::uno::Reference
< ::com::sun::star::beans::XPropertySet
>
104 ::com::sun::star::uno::Reference
< ::com::sun::star::frame::XModel
>
106 ::com::sun::star::uno::Reference
< ::com::sun::star::util::XModifiable
>
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
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
;
133 OApplicationView
* getContainer() const;
135 /** returns the database name
139 OUString
getDatabaseName() const;
141 /** returns the stripped database name.
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
155 The name of the object to open
157 Defines the type to open
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
,
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
,
176 ElementOpenMode _eOpenMode
,
177 sal_uInt16 _nInstigatorCommand
,
178 const ::comphelper::NamedValueCollection
& _rAdditionalArguments
181 /** opens a new frame for creation or auto pilot
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
>
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
196 Defines the type of the object to create
198 Our mutex must not be locked.
201 void newElementWithPilot( ElementType _eType
);
203 /** converts the query to a view
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.
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
224 /** deletes queries, forms, or reports
226 the type of the objects
228 The names of the elements to delete
230 determines whether the user must confirm the deletion
232 void deleteObjects( ElementType _eType
,
233 const ::std::vector
< OUString
>& _rList
,
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
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
260 The format to be copied.
262 void pasteFormat(SotClipboardFormatId _nFormatId
);
264 /** pastes a query, form or report into the data source
266 The type of the object to paste.
269 @param _sParentFolder
270 The name of the parent folder if it exists.
272 if <TRUE/> the name of the content must be inserted without any change, otherwise not.
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
286 The type for which we need the formats
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.
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
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.
334 Where to insert the new item.
335 @param _sParentFolder
336 The name of the parent folder if it exists.
338 The content to insert.
340 if <TRUE/> the name of the content must be inserted without any change, otherwise not.
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
353 If <TRUE> then the delete command should be checked.
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
360 The slot which should be executed.
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
);
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
;
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
416 virtual ~OApplicationController();
419 OApplicationController(const ::com::sun::star::uno::Reference
< ::com::sun::star::uno::XComponentContext
>& _rxORB
);
421 DECLARE_XINTERFACE( )
422 DECLARE_XTYPEPROVIDER( )
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();
542 using OApplicationController_CBASE::connect
;
544 /** disconnects from our XConnection, and cleans up this connection
549 virtual bool Construct(vcl::Window
* pParent
) SAL_OVERRIDE
;
550 virtual void describeSupportedFeatures() SAL_OVERRIDE
;
554 virtual void SAL_CALL
disposing(const ::com::sun::star::lang::EventObject
& Source
) throw( ::com::sun::star::uno::RuntimeException
, std::exception
) SAL_OVERRIDE
;
557 virtual void SAL_CALL
disposing() SAL_OVERRIDE
;
562 #endif // INCLUDED_DBACCESS_SOURCE_UI_APP_APPCONTROLLER_HXX
564 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */