summaryrefslogtreecommitdiff
path: root/dbaccess/source/core/dataaccess/documentdefinition.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/core/dataaccess/documentdefinition.hxx')
-rw-r--r--dbaccess/source/core/dataaccess/documentdefinition.hxx386
1 files changed, 0 insertions, 386 deletions
diff --git a/dbaccess/source/core/dataaccess/documentdefinition.hxx b/dbaccess/source/core/dataaccess/documentdefinition.hxx
deleted file mode 100644
index e51b95994..000000000
--- a/dbaccess/source/core/dataaccess/documentdefinition.hxx
+++ /dev/null
@@ -1,386 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DBA_COREDATAACCESS_DOCUMENTDEFINITION_HXX_
-#define _DBA_COREDATAACCESS_DOCUMENTDEFINITION_HXX_
-
-#include <cppuhelper/propshlp.hxx>
-#include <cppuhelper/implbase4.hxx>
-#include "ContentHelper.hxx"
-#include <comphelper/propertystatecontainer.hxx>
-#include <comphelper/proparrhlp.hxx>
-#include "apitools.hxx"
-#include <comphelper/uno3.hxx>
-#include <com/sun/star/sdbc/XConnection.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/frame/XController.hpp>
-#include <com/sun/star/embed/XStateChangeListener.hpp>
-#include <com/sun/star/sdb/XSubDocument.hpp>
-#include <com/sun/star/util/XCloseListener.hpp>
-#include <com/sun/star/container/XHierarchicalName.hpp>
-
-namespace comphelper
-{
- class NamedValueCollection;
-}
-
-//........................................................................
-namespace dbaccess
-{
-//........................................................................
-
- class OInterceptor;
- class OEmbeddedClientHelper;
-//==========================================================================
-//= ODocumentDefinition - a database "document" which is simply a link to a real
-//= document
-//==========================================================================
-
-typedef ::cppu::ImplHelper4 < ::com::sun::star::embed::XComponentSupplier
- , ::com::sun::star::sdb::XSubDocument
- , ::com::sun::star::util::XCloseListener
- , ::com::sun::star::container::XHierarchicalName
- > ODocumentDefinition_Base;
-
-class ODocumentDefinition
- :public OContentHelper
- ,public ::comphelper::OPropertyStateContainer
- ,public ::comphelper::OPropertyArrayUsageHelper< ODocumentDefinition >
- ,public ODocumentDefinition_Base
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedObject> m_xEmbeddedObject;
- ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener > m_xListener;
- ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > m_xLastKnownConnection;
-
- OInterceptor* m_pInterceptor;
- sal_Bool m_bForm; // <TRUE/> if it is a form
- sal_Bool m_bOpenInDesign;
- sal_Bool m_bInExecute;
- sal_Bool m_bRemoveListener;
- OEmbeddedClientHelper* m_pClientHelper;
-
-protected:
- virtual ~ODocumentDefinition();
-
-public:
-
- ODocumentDefinition(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContainer,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&,
- const TContentPtr& _pImpl,
- sal_Bool _bForm
- );
-
- void initialLoad(
- const ::com::sun::star::uno::Sequence< sal_Int8 >& i_rClassID,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_rCreationArgs,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& i_rConnection
- );
-
-// com::sun::star::lang::XTypeProvider
- DECLARE_TYPEPROVIDER( );
-
-// ::com::sun::star::uno::XInterface
- DECLARE_XINTERFACE( )
-
-// ::com::sun::star::lang::XServiceInfo
- DECLARE_SERVICE_INFO_STATIC();
-
-// ::com::sun::star::beans::XPropertySet
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
-
- // OPropertySetHelper
- virtual void SAL_CALL getFastPropertyValue(
- ::com::sun::star::uno::Any& o_rValue,
- sal_Int32 i_nHandle
- ) const;
-
- // XComponentSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > SAL_CALL getComponent( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XSubDocument
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL open( ) throw (::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > SAL_CALL openDesign( ) throw (::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL store( ) throw (::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL close( ) throw (::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
- // XHierarchicalName
- virtual ::rtl::OUString SAL_CALL getHierarchicalName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL composeHierarchicalName( const ::rtl::OUString& aRelativeName ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
-
-// OPropertySetHelper
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-
- // XCommandProcessor
- virtual ::com::sun::star::uno::Any SAL_CALL execute( const ::com::sun::star::ucb::Command& aCommand, sal_Int32 CommandId, const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >& Environment ) throw (::com::sun::star::uno::Exception, ::com::sun::star::ucb::CommandAbortedException, ::com::sun::star::uno::RuntimeException) ;
-
- // XRename
- virtual void SAL_CALL rename( const ::rtl::OUString& newName ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::container::ElementExistException, ::com::sun::star::uno::RuntimeException);
-
- // XCloseListener
- virtual void SAL_CALL queryClosing( const ::com::sun::star::lang::EventObject& Source, ::sal_Bool GetsOwnership ) throw (::com::sun::star::util::CloseVetoException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL notifyClosing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-
- // XEventListener
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-
- /** returns the forms/reports container storage, depending on m_bForm. Our own storage
- inside this container storage is the one with the name as indicated by m_pImpl->m_aProps.sPersistentName.
- */
- ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >
- getContainerStorage() const;
-
- sal_Bool save(sal_Bool _bApprove);
- sal_Bool saveAs();
- void closeObject();
- sal_Bool isModified();
- inline sal_Bool isNewReport() const { return !m_bForm && !m_pImpl->m_aProps.bAsTemplate; }
-
- static void fillReportData(
- const ::comphelper::ComponentContext& _rContext,
- const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable >& _rxComponent,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxActiveConnection
- );
-
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >&
- getConnection() const { return m_xLastKnownConnection; }
-
- /** prepares closing the document component
-
- The method suspends the controller associated with the document, and saves the document
- if necessary.
-
- @return
- <TRUE/> if and only if the document component can be closed
- */
- bool prepareClose();
-
- static ::com::sun::star::uno::Sequence< sal_Int8 > getDefaultDocumentTypeClassId();
-
- static ::rtl::OUString GetDocumentServiceFromMediaType(
- const ::rtl::OUString& _rMediaType,
- const ::comphelper::ComponentContext& _rContext,
- ::com::sun::star::uno::Sequence< sal_Int8 >& _rClassId
- );
- static ::rtl::OUString GetDocumentServiceFromMediaType(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& _rxContainerStorage,
- const ::rtl::OUString& _rEntityName,
- const ::comphelper::ComponentContext& _rContext,
- ::com::sun::star::uno::Sequence< sal_Int8 >& _rClassId
- );
-
- struct NotifierAccess { friend class NameChangeNotifier; private: NotifierAccess() { } };
- const ::rtl::OUString& getCurrentName() const { return m_pImpl->m_aProps.aTitle; }
- void firePropertyChange(
- sal_Int32 i_nHandle,
- const ::com::sun::star::uno::Any& i_rNewValue,
- const ::com::sun::star::uno::Any& i_rOldValue,
- sal_Bool i_bVetoable,
- const NotifierAccess
- );
-
-private:
- /** does necessary initializations after our embedded object has been switched to ACTIVE
- */
- void impl_onActivateEmbeddedObject_nothrow( const bool i_bReactivated );
-
- /** initializes a newly created view/controller of a form which is displaying our embedded object
-
- Has only to be called if the respective embedded object has been loaded for design (and
- not for data entry)
-
- @param _rxController
- the controller which belongs to the XModel of our (active) embedded object
- */
- static void impl_initFormEditView( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& _rxController );
-
- /** removes the given frame from the desktop's frame collection
- @raises ::com::sun::star::uno::RuntimeException
- */
- static void impl_removeFrameFromDesktop_throw(
- const ::comphelper::ComponentContext& _rContxt,
- const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxFrame
- );
-
- /** opens the UI for this sub document
- */
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
- impl_openUI_nolck_throw( bool _bForEditing );
-
- /** stores our document, if it's already loaded
- */
- void impl_store_throw();
-
- /** closes our document, if it's open
- */
- bool impl_close_throw();
-
- /** returns our component, creates it if necessary
- */
- ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable >
- impl_getComponent_throw( const bool i_ForceCreate = true );
-
- /** shows or hides our component
-
- The embedded object must exist, and be in state LOADED, at least.
- */
- void impl_showOrHideComponent_throw( const bool i_bShow );
-
- // OPropertyArrayUsageHelper
- virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
-
- virtual void getPropertyDefaultByHandle( sal_Int32 _nHandle, ::com::sun::star::uno::Any& _rDefault ) const;
-
- // helper
- virtual void SAL_CALL disposing();
-
- // OContentHelper overridables
- virtual ::rtl::OUString determineContentType() const;
-
- /** fills the load arguments
- */
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >
- fillLoadArgs(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- const bool _bSuppressMacros,
- const bool _bReadOnly,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_rOpenCommandArguments,
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _out_rEmbeddedObjectDescriptor
- );
-
- /** splits the given arguments to an "open*" command into arguments for loading the document, and arguments to be
- put into the EmbeddedObjectDescriptor
-
- Any values already present in <code>o_rDocumentLoadArgs</code> and <code>o_rEmbeddedObjectDescriptor</code>
- will be overwritten by values from <code>i_rOpenCommandArguments</code>, if applicable, otherwise they will
- be preserved.
-
- @param i_rOpenCommandArguments
- the arguments passed to the "open*" command at the content
- @param o_rDocumentLoadArgs
- the arguments to be passed when actually loading the embedded document.
- @param o_rEmbeddedObjectDescriptor
- the EmbeddedObjectDescriptor to be passed when initializing the embedded object
- */
- void separateOpenCommandArguments(
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_rOpenCommandArguments,
- ::comphelper::NamedValueCollection& o_rDocumentLoadArgs,
- ::comphelper::NamedValueCollection& o_rEmbeddedObjectDescriptor
- );
-
- /** loads the EmbeddedObject if not already loaded
- @param _aClassID
- If set, it will be used to create the embedded object.
- */
- void loadEmbeddedObject(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- const ::com::sun::star::uno::Sequence< sal_Int8 >& _aClassID,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rAdditionalArgs,
- const bool _bSuppressMacros,
- const bool _bReadOnly
- );
-
- /** loads the embedded object, if not already loaded. No new object can be created with this method.
- */
- void loadEmbeddedObject( bool _bSuppressMacros = false )
- {
- loadEmbeddedObject(
- NULL,
- ::com::sun::star::uno::Sequence< sal_Int8 >(),
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >(),
- _bSuppressMacros,
- false
- );
- }
-
- /** loads the embedded object for preview. Macros will be suppressed, and the document will
- be read-only.
- */
- void loadEmbeddedObjectForPreview()
- {
- loadEmbeddedObject(
- NULL,
- ::com::sun::star::uno::Sequence< sal_Int8 >(),
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >(),
- true,
- true
- );
- }
-
- /** searches for read-only flag in the args of the model and sets it to the given value,
- if the value was not found, it will be appended.
- @param _bReadOnly
- If <TRUE/> the document will be switched to readonly mode
- */
- void updateDocumentTitle();
-
- void registerProperties();
-
- /** determines whether the document we represent supports embedded scripts and macros
- */
- sal_Bool objectSupportsEmbeddedScripts() const;
-
- //- commands
-
- void onCommandGetDocumentProperties( ::com::sun::star::uno::Any& _rProps );
- void onCommandInsert( const ::rtl::OUString& _sURL, const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >& Environment ) throw( ::com::sun::star::uno::Exception );
- void onCommandPreview( ::com::sun::star::uno::Any& _rImage );
- ::com::sun::star::uno::Any
- onCommandOpenSomething(
- const ::com::sun::star::uno::Any& _rArgument,
- const bool _bActivate,
- const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >& _rxEnvironment
- );
-private:
- using ::cppu::OPropertySetHelper::getFastPropertyValue;
-};
-
-class NameChangeNotifier
-{
-public:
- NameChangeNotifier(
- ODocumentDefinition& i_rDocumentDefinition,
- const ::rtl::OUString& i_rNewName,
- ::osl::ResettableMutexGuard& i_rClearForNotify
- );
- ~NameChangeNotifier();
-
-private:
- ODocumentDefinition& m_rDocumentDefinition;
- const ::com::sun::star::uno::Any m_aOldValue;
- const ::com::sun::star::uno::Any m_aNewValue;
- ::osl::ResettableMutexGuard& m_rClearForNotify;
-
- void impl_fireEvent_throw( const sal_Bool i_bVetoable );
-};
-
-} // namespace dbaccess
-
-#endif // _DBA_COREDATAACCESS_DOCUMENTDEFINITION_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */