diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-08-02 14:28:20 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-08-02 14:28:20 +0000 |
commit | 8106bf9423d77fe11d6761f040cde8826ca29c18 (patch) | |
tree | 2bf39c8d4bafdeb6868ccc6465ca01c9f9696f9d /dbaccess/source/ui/app/AppController.hxx | |
parent | 760c03c8ee16ecfa7620174c0eabc9812cba9a83 (diff) |
INTEGRATION: CWS insight01 (1.1.2); FILE ADDED
2004/07/19 12:45:28 oj 1.1.2.30: new method updateTitle
2004/07/14 10:22:24 oj 1.1.2.29: #i30603# corret frame loading
2004/07/09 13:14:15 oj 1.1.2.28: #i30416# move some code to UITools
2004/07/02 10:04:45 oj 1.1.2.27: #i30226# add controller, model behavior
2004/04/26 11:32:01 oj 1.1.2.26: folder handling
2004/04/07 13:55:16 oj 1.1.2.25: remember definition object as well
2004/04/05 09:07:23 oj 1.1.2.24: remove doucment when it was disposed
2004/03/31 08:50:37 oj 1.1.2.23: append pcik list
2004/03/31 06:47:55 oj 1.1.2.22: check if ds is readonly
2004/03/18 10:15:45 oj 1.1.2.21: #111075# ongoing work
2004/03/12 11:55:52 oj 1.1.2.20: #111075# implement commit
2004/03/12 08:09:51 oj 1.1.2.19: #111075# show dialog when new connection is needed
2004/03/11 15:08:39 oj 1.1.2.18: #111075# ongoing fixes
2004/03/11 11:22:04 oj 1.1.2.17: #111075# changes for closing
2004/03/11 08:56:32 oj 1.1.2.16: #111075# changes for closing docs
2004/03/08 07:26:53 oj 1.1.2.15: change to new menu layout
2004/02/20 14:39:54 oj 1.1.2.14: #111075# ongoing work
2004/01/22 09:37:00 oj 1.1.2.13: #i24176# add the possiblity to create dbs
2004/01/07 13:47:30 oj 1.1.2.12: #111075# ongoing work
2003/12/18 13:53:13 oj 1.1.2.11: #111075# ongoing work
2003/12/17 13:54:59 oj 1.1.2.10: #111075# ongoing work
2003/11/28 06:59:12 oj 1.1.2.9: #111075# ongoing work
2003/11/26 12:17:52 oj 1.1.2.8: #111075# ongoing work
2003/11/17 09:43:13 oj 1.1.2.7: #111075# ongoning work
2003/11/05 11:36:36 oj 1.1.2.6: #111075# ongoing work
2003/10/24 06:38:43 oj 1.1.2.5: #111075# further changes
2003/09/18 05:59:29 oj 1.1.2.4: #111075# ongoing work
2003/08/28 12:03:58 oj 1.1.2.3: #111090# ongoning work
2003/08/15 08:54:01 oj 1.1.2.2: #111075# ongoing new dbaapp work
2003/07/29 12:27:15 oj 1.1.2.1: #111075# new classes for the app controller
Diffstat (limited to 'dbaccess/source/ui/app/AppController.hxx')
-rw-r--r-- | dbaccess/source/ui/app/AppController.hxx | 619 |
1 files changed, 619 insertions, 0 deletions
diff --git a/dbaccess/source/ui/app/AppController.hxx b/dbaccess/source/ui/app/AppController.hxx new file mode 100644 index 000000000000..88c7207ae53d --- /dev/null +++ b/dbaccess/source/ui/app/AppController.hxx @@ -0,0 +1,619 @@ +/************************************************************************* + * + * $RCSfile: AppController.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2004-08-02 15:28:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): Ocke Janssen + * + * + ************************************************************************/ + +#ifndef DBAUI_APPCONTROLLER_HXX +#define DBAUI_APPCONTROLLER_HXX + +#ifndef DBAUI_GENERICCONTROLLER_HXX +#include "genericcontroller.hxx" +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERLISTENER_HPP_ +#include <com/sun/star/container/XContainerListener.hpp> +#endif +#ifndef _SV_TIMER_HXX +#include <vcl/timer.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include <cppuhelper/implbase2.hxx> +#endif +#ifndef _COMPHELPER_STLTYPES_HXX_ +#include <comphelper/stl_types.hxx> +#endif +#ifndef _COMPHELPER_UNO3_HXX_ +#include <comphelper/uno3.hxx> +#endif +#ifndef _TRANSFER_HXX +#include <svtools/transfer.hxx> +#endif +#ifndef _SVX_DATACCESSDESCRIPTOR_HXX_ +#include <svx/dataaccessdescriptor.hxx> +#endif +#ifndef DBAUI_APPELEMENTTYPE_HXX +#include "AppElementType.hxx" +#endif +#ifndef _SOT_STORAGE_HXX +#include <sot/storage.hxx> +#endif +#ifndef DBAUI_IAPPELEMENTNOTIFICATION_HXX +#include "IAppElementNotification.hxx" +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_ +#include <com/sun/star/beans/XPropertyChangeListener.hpp> +#endif +#ifndef _DBACCESS_UI_CALLBACKS_HXX_ +#include "callbacks.hxx" +#endif +#include <memory> + +class ListBox; +class SvLBoxEntry; +class SvTreeListBox; +class TransferableHelper; +class TransferableClipboardListener; +class SfxFilter; + +FORWARD_DECLARE_INTERFACE(container,XNameContainer) +FORWARD_DECLARE_INTERFACE(container,XContainer) +FORWARD_DECLARE_INTERFACE(util,XNumberFormatter) +FORWARD_DECLARE_INTERFACE(util,XCloseable) +FORWARD_DECLARE_INTERFACE(ucb,XContent) +//........................................................................ +namespace dbaui +{ +//........................................................................ + //==================================================================== + //= OApplicationController + //==================================================================== + class OApplicationController; + class OApplicationView; + class OLinkedDocumentsAccess; + typedef OGenericUnoController OApplicationController_CBASE; + typedef ::cppu::ImplHelper2 < ::com::sun::star::container::XContainerListener, + ::com::sun::star::beans::XPropertyChangeListener + > OApplicationController_Base; + + class OApplicationController + :public OApplicationController_CBASE + ,public OApplicationController_Base + ,public IApplicationElementNotification + ,public IControlActionListener + ,public IContainerFoundListener + ,public IViewChangeListener + { + friend class OConnectionChangeBroadcaster; + public: + typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer > > TContainerVector; + typedef ::std::map< ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > + , ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > > TDocuments; + protected: + // is needed to describe the drop target + struct DropDescriptor + { + ::svx::ODataAccessDescriptor aDroppedData; + String aUrl; + SotStorageStreamRef aHtmlRtfStorage; + ElementType nType; + sal_Int8 nAction; + sal_Bool bHtml; + sal_Bool bError; + + DropDescriptor() : nType(E_TABLE),nAction(DND_ACTION_NONE) { } + }; + private: + + DECLARE_STL_USTRINGACCESS_MAP(::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >,TDataSourceConnections); + + DropDescriptor m_aAsyncDrop; + TDataSourceConnections m_aDataSourceConnections; + TransferableDataHelper m_aSystemClipboard; // content of the clipboard + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xDataSource; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer > + m_xCurrentContainer; // the container we listen on at the moment + TContainerVector m_aCurrentSubContainers; // the sub container of our current container + TDocuments m_aDocuments; + TransferableClipboardListener* + m_pClipbordNotifier; // notifier for changes in the clipboard + mutable ::rtl::OUString m_sDatabaseName; + Timer m_aRefreshMenu; // the timer for the menu "refresh" + Timer m_aPasteSpecialMenu; // the timer for the menu "paste" + sal_Int32 m_nAsyncDrop; + PreviewMode m_ePreviewMode; // the mode of the preview + ::std::map<sal_uInt16,sal_uInt16> + m_aLastSelectedPullDownActions; + sal_Bool m_bPreviewEnabled; // true when the preview should enabled + sal_Bool m_bNeedToReconnect; // true when the settings of the data source were modified and the connection is no longer up to date + sal_Bool m_bSuspended : 1; // is true when the controller was already suspended + + + OApplicationView* getContainer() const; + + /** returns the database name + @return + the database name + */ + inline ::rtl::OUString getDatabaseName() const { return m_sDatabaseName; } + + /** returns the stripped database name. + @return + The stripped database name either the registered naem or if it is a file url the last segment. + */ + ::rtl::OUString getStrippedDatabaseName() const; + + /** opens a new frame with either the table or the query or report or form or view + @param _sName + The name of the object to open + @param _eType + Defines the type to open + @param _bOpenDesignMode + If <TRUE/> the design mode opens for the element + */ + void openElement(const ::rtl::OUString& _sName,ElementType _eType = E_TABLE,sal_Bool _bOpenDesignMode = sal_False); + + /** opens a new frame for creation or auto pilot + @param _eType + Defines the type to open + @param _bAutoPilot + If <TRUE/> the auto pilot opens, otherwise not. + @param _bSQLView + If <TRUE/> the query design will be opened in SQL view, otherwise not. + */ + void newElement(ElementType _eType = E_TABLE,sal_Bool _bAutoPilot = sal_False,sal_Bool _bSQLView = sal_False); + + + /** converts the query to a view + @param _sName + The name of the query. + */ + void convertToView(const ::rtl::OUString& _sName); + + /** checks if the selected data source is read only + @return + <TRUE/> if read only, otherwise <FALSE/> + */ + virtual sal_Bool isDataSourceReadOnly() const; + + /** checks if the connection for the selected data source is read only. If the connection doesn't exist, <TRUE/> will be returned. + @return + <TRUE/> if read only or doesn't exist, otherwise <FALSE/> + */ + sal_Bool isConnectionReadOnly() const; + + /** checks if the database allows the creation of relation + @return + <TRUE/> if read only, otherwise <FALSE/> + */ + sal_Bool isRelationDesignAllowed() const; + + /** fills the list with the selected entries. + @param _rNames + */ + void getSelectionElementNames(::std::vector< ::rtl::OUString>& _rNames); + + /// deletes the entries selected. + void deleteEntries(); + + /// renames the selected entry in the detail page + void renameEntry(); + + /** deletes queries. + @param _eType + the type of the objects + @param _rList + The list of queries. + @param _nTextResource + The ID for the resource string. + */ + void deleteObjects( ElementType _eType + ,const ::std::vector< ::rtl::OUString>& _rList + ,sal_uInt16 _nTextResource); + + + /** deletes tables. + @param _rList + The list of tables. + */ + void deleteTables(const ::std::vector< ::rtl::OUString>& _rList); + + /// copies the current object into clipboard + TransferableHelper* copyObject(); + + /** fills all elements of the wanted type into the list. + @param _eType + The type. + @param _rList + The list to fill. + */ + void getElements(ElementType _eType,::std::vector< ::rtl::OUString>& _rList); + + /// returns the nameaccess + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > getElements(ElementType _eType); + + /// + + /** returns the document access for the specific type + @param _eType + the type + @return ::std::auto_ptr<OLinkedDocumentsAccess> + */ + ::std::auto_ptr<OLinkedDocumentsAccess> getDocumentsAccess(ElementType _eType); + + /// returns the query definitions of the active data source. + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer> getQueryDefintions() const; + + /** pastes a special format from the system clipboard to the currently selected object types + @param _nFormatId + The format to be copied. + */ + void pasteFormat(sal_uInt32 _nFormatId); + + /** pastes a query, form or report into the data source + @param _eType + The type of the object to paste. + @param _rPasteData + The data descriptor. + @param _sParentFolder + The name of the parent folder if it exists. + @param _bMove + if <TRUE/> the name of the content must be inserted without any change, otherwise not. + @return + <TRUE/> if the paste opertions was successfull, otherwise <FALSE/>. + */ + sal_Bool paste( ElementType _eType,const ::svx::ODataAccessDescriptor& _rPasteData ,const String& _sParentFolder = String(),sal_Bool _bMove = sal_False); + + /** pastes a table into the data source + @param _rPasteData + The data helper. + */ + void pasteTable( const TransferableDataHelper& _rTransData ); + + /** pastes a table into the data source + @param _nFormatId + The format which should be copied. + @param _rPasteData + The data helper. + */ + void pasteTable( SotFormatStringId _nFormatId,const TransferableDataHelper& _rTransData ); + + /** pastes a table into the data source + @param _rPasteData + The data descriptor. + */ + void pasteTable( const ::svx::ODataAccessDescriptor& _rPasteData ); + + /** insert a table into the data source. The source can eihter be a table or a query + @param _nCommandType + The command type. + @param _xSrcConnection + The connection of the source. + @param _xSrcRs + The ResultSet of the source. + @param _aSelection + The selection of the rows to copy. + @param _bBookmarkSelection + If <TRUE/> the selection is bookmark selection. + @param _sCommand + The name of the query or table. + @param _sSrcDataSourceName + The name of the source data source. + */ + void insertTable( sal_Int32 _nCommandType + ,const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xSrcConnection + ,const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xSrcRs // the source resultset may be empty + ,const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& _aSelection + ,sal_Bool _bBookmarkSelection + ,const ::rtl::OUString& _sCommand + ,const ::rtl::OUString& _sSrcDataSourceName); + + /** copies a table which was constructed by tags like HTML or RTF + @param _rDesc + The Drop descriptor + @param _bCheck + If set to <TRUE/> than the controller checks only if a copy is possible. + */ + sal_Bool copyTagTable(DropDescriptor& _rDesc, sal_Bool _bCheck); + + /// returns the system clipboard. + const TransferableDataHelper& getViewClipboard() const { return m_aSystemClipboard; } + + /// returns <TRUE/> if the clipboard supports a table format, otherwise <FALSE/>. + sal_Bool isTableFormat() const; + + + /** fills the vector with all supported formats + @param _eType + The type for which we need the formats + @param _rFormatIds + The vector to be filled up. + */ + void getSupportedFormats(ElementType _eType,::std::vector<SotFormatStringId>& _rFormatIds) const; + + /** crates a number formatter + @param _rxConnection + The connection is needed to create the formatter + */ + ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > getNumberFormatter(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection ) const; + + /** adds a listener to the current name access. + @param _xCollection + The collection where we want to listen on. + */ + void addContainerListener(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& _xCollection); + + /** opens the popup for the toolbox item + @param _nSlotId + The slot id for whom the popup shoudl be opened. + */ + void openToolBoxPopup(USHORT _nSlotId); + + + /** opens a uno dialog withthe currently selected data source as initialize argument + @param _sServiceName + The serivce name of the dialog to be executed. + */ + void openDialog(const ::rtl::OUString& _sServiceName); + + /** opens the administration dialog for the selected data source + */ + void openDataSourceAdminDialog(); + + /** opens the table filter dialog for the selected data source + */ + void openTableFilterDialog(); + + /** opens the DirectSQLDialog to execute hand made sql statements. + */ + void openDirectSQLDialog(); + + /** when the settings of the data source changed, + it opens a dialog which ask to close all depending documents, then recreate the connection. + The SolarMutex has to be locked before calling this. + */ + void askToReconnect(); + + /** suspend all open documents. + @return + <TRUE/> if all documents could be suspended, otherwise <FALSE/>. + */ + sal_Bool suspendDocuments(sal_Bool bSuspend); + + /** disposes all created connections + */ + void clearConnections(); + + /** returns the filter for this controller + @retrun + the filter + */ + const SfxFilter* getStandardFilter(); + + /** add event listener and remember the document + @param _xDocument + the new document, may be <NULL/> + @param _xDefinition + The defintion object. + */ + void addDocumentListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _xDocument, + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _xDefinition); + + /** Inserts a new object into the hierachy given be the type. + @param _eType + Where to insert the new item. + @param _sParentFolder + The name of the parent folder if it exists. + @param _xContent + The content to insert. + @param _bMove + if <TRUE/> the name of the content must be inserted without any change, otherwise not. + @return + <TRUE/> if the insert opertions was successfull, otherwise <FALSE/>. + */ + sal_Bool insertHierachyElement( ElementType _eType + ,const String& _sParentFolder + ,sal_Bool _bCollection = sal_True + ,const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XContent>& _xContent = ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XContent>() + ,sal_Bool _bMove = sal_False); + protected: + // ---------------------------------------------------------------- + // initalizing members + /** forces usage of a connection which we do not own + <p>To be used from within XInitialization::initialize only.</p> + */ + void initializeConnection( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxForeignConn ); + + // 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. + virtual FeatureState GetState(sal_uInt16 nId) const; + // execute a feature + virtual void Execute(sal_uInt16 nId); + virtual ToolBox* CreateToolBox(Window* pParent); + + // IControlActionListener overridables + virtual sal_Bool requestContextMenu( const CommandEvent& _rEvent ); + virtual sal_Bool requestDrag( sal_Int8 _nAction, const Point& _rPosPixel ); + virtual sal_Int8 queryDrop( const AcceptDropEvent& _rEvt, const DataFlavorExVector& _rFlavors ); + virtual sal_Int8 executeDrop( const ExecuteDropEvent& _rEvt ); + + // OGenericUnoController + virtual void updateTitle( ); + + virtual void impl_initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ); + + virtual ~OApplicationController(); + public: + OApplicationController(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB); + + DECLARE_XINTERFACE( ) + DECLARE_XTYPEPROVIDER( ) + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException); + // need by registration + static ::rtl::OUString getImplementationName_Static() throw( ::com::sun::star::uno::RuntimeException ); + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void) throw( ::com::sun::star::uno::RuntimeException ); + static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > + SAL_CALL Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&); + + // ::com::sun::star::frame::XController + virtual sal_Bool SAL_CALL suspend(sal_Bool bSuspend) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL attachModel(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & xModel) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > SAL_CALL getModel(void) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::frame::XFrameActionListener + virtual void SAL_CALL frameAction(const ::com::sun::star::frame::FrameActionEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::container::XContainerListener + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& Event) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& Event) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& Event) throw( ::com::sun::star::uno::RuntimeException ); + + // XPropertyChangeListener + virtual void SAL_CALL propertyChange( const ::com::sun::star::beans::PropertyChangeEvent& evt ) throw (::com::sun::star::uno::RuntimeException); + + /** called when an item in the toolbox has been selected + <p>the default handling calls Execute with the id given.</p> + */ + virtual void onToolBoxSelected( sal_uInt16 _nSelectedItem ); + /** called when an item in the toolbox has been clicked + <p>the default handling does nothing.</p> + */ + virtual void onToolBoxClicked( sal_uInt16 _nClickedItem ); + + /** ensures that a connection for the selected data source exists + @param _xConnection + The new connection + @param _bCreate + If set to <TRUE/> than the connection will be created if it doesn't exist. + */ + void ensureConnection(::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection,sal_Bool _bCreate = sal_True); + + /** returns the connection for the currently active data source + @return + The connection for the currently active data source + */ + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > getActiveConnection() const; + + + /** refreshes the tables + */ + void refreshTables(); + + /** closes the connection of the select data source + */ + void closeConnection(); + + /// @see <method>IApplicationElementNotification::onEntryDoubleClick</method> + virtual void onEntryDoubleClick(SvTreeListBox* _pTree); + /// @see <method>IApplicationElementNotification::onCreationClick</method> + virtual void onCreationClick(sal_uInt16 _nId); + /// @see <method>IApplicationElementNotification::onContainerSelect</method> + virtual sal_Bool onContainerSelect(ElementType _eType); + /// @see <method>IApplicationElementNotification::onEntrySelect</method> + virtual void onEntrySelect(SvLBoxEntry* _pEntry); + /// @see <method>IApplicationElementNotification::onEntryDeSelect</method> + virtual void onEntryDeSelect(SvTreeListBox* _pTree); + /// @see <method>IApplicationElementNotification::onCutEntry</method> + virtual void onCutEntry(SvLBoxEntry* _pEntry); + /// @see <method>IApplicationElementNotification::onCopyEntry</method> + virtual void onCopyEntry(SvLBoxEntry* _pEntry); + /// @see <method>IApplicationElementNotification::onPasteEntry</method> + virtual void onPasteEntry(SvLBoxEntry* _pEntry); + /// @see <method>IApplicationElementNotification::onDeleteEntry</method> + virtual void onDeleteEntry(SvLBoxEntry* _pEntry); + + DECL_LINK( OnShowRefreshDropDown, void* ); + DECL_LINK( OnPasteSpecialDropDown, void* ); + + // time to check the CUT/COPY/PASTE-slot-states + DECL_LINK( OnInvalidateClipboard, void* ); + DECL_LINK( OnClipboardChanged, void* ); + DECL_LINK( OnAsyncDrop, void* ); + + // IContainerFoundListener + virtual void containerFound( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer >& _xContainer); + + // IViewChangeListener + virtual void previewChanged( sal_Int32 _nMode); + protected: + + /** the connection will be disposed and set to NULL + @param _xConnection + the connection to be disposed + */ + virtual void disconnect(::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection); + + // late construction + virtual sal_Bool Construct(Window* pParent); + virtual void AddSupportedFeatures(); + + protected: + // XEventListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException ); + + // OComponentHelper + virtual void SAL_CALL disposing(); + }; + +//........................................................................ +} // namespace dbaui +//........................................................................ + +#endif // DBAUI_APPCONTROLLER_HXX + |