Kaydet (Commit) f229b9b0 authored tarafından Matúš Kukan's avatar Matúš Kukan

tdf#74608 dbaccess: Constructor feature for ODatabaseDocument

Change-Id: Id524a1a717c350cb0558ef5ff11da3e6c941c203
üst 970f5189
......@@ -22,8 +22,6 @@
#include "datasource.hxx"
#include "databasedocument.hxx"
#include "dbastrings.hrc"
#include "module_dba.hxx"
#include "services.hxx"
#include "documenteventexecutor.hxx"
#include "databasecontext.hxx"
#include "documentcontainer.hxx"
......@@ -52,7 +50,6 @@
#include <com/sun/star/task/XStatusIndicator.hpp>
#include <com/sun/star/task/XStatusIndicatorFactory.hpp>
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
#include <com/sun/star/ucb/XContent.hpp>
#include <com/sun/star/ui/UIConfigurationManager.hpp>
#include <com/sun/star/ui/XUIConfigurationStorage.hpp>
#include <com/sun/star/view/XSelectionSupplier.hpp>
......@@ -111,11 +108,6 @@ using namespace ::com::sun::star::script;
using namespace ::com::sun::star::script::provider;
using namespace ::com::sun::star::ui;
using namespace ::cppu;
using namespace ::osl;
using ::com::sun::star::awt::XWindow;
using ::com::sun::star::ucb::XContent;
using ::com::sun::star::sdb::application::XDatabaseDocumentUI;
namespace dbaccess
{
......@@ -147,17 +139,6 @@ bool ViewMonitor::onSetCurrentController( const Reference< XController >& _rxCon
return bLoadFinished;
}
} // namespace dbaccess
// ODatabaseDocument
extern "C" void SAL_CALL createRegistryInfo_ODatabaseDocument()
{
static ::dba::OAutoRegistration< ::dbaccess::ODatabaseDocument > aAutoRegistration;
}
namespace dbaccess
{
ODatabaseDocument::ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>& _pImpl )
:ModelDependentComponent( _pImpl )
......@@ -611,7 +592,7 @@ namespace
{
bool lcl_hasAnyModifiedSubComponent_throw( const Reference< XController >& i_rController )
{
Reference< XDatabaseDocumentUI > xDatabaseUI( i_rController, UNO_QUERY_THROW );
Reference< css::sdb::application::XDatabaseDocumentUI > xDatabaseUI( i_rController, UNO_QUERY_THROW );
Sequence< Reference< XComponent > > aComponents( xDatabaseUI->getSubComponents() );
const Reference< XComponent >* component = aComponents.getConstArray();
......@@ -1900,37 +1881,14 @@ void SAL_CALL ODatabaseDocument::removeEventListener( const Reference< lang::XEv
}
// XServiceInfo
OUString ODatabaseDocument::getImplementationName( ) throw(RuntimeException, std::exception)
{
return getImplementationName_static();
}
OUString ODatabaseDocument::getImplementationName_static( ) throw(RuntimeException)
OUString ODatabaseDocument::getImplementationName() throw(RuntimeException, std::exception)
{
return OUString("com.sun.star.comp.dba.ODatabaseDocument");
}
Sequence< OUString > ODatabaseDocument::getSupportedServiceNames( ) throw (RuntimeException, std::exception)
Sequence< OUString > ODatabaseDocument::getSupportedServiceNames() throw (RuntimeException, std::exception)
{
return getSupportedServiceNames_static();
}
Reference< XInterface > ODatabaseDocument::Create( const Reference< XComponentContext >& _rxContext )
{
Reference< XUnoTunnel > xDBContextTunnel( DatabaseContext::create(_rxContext), UNO_QUERY_THROW );
ODatabaseContext* pContext = reinterpret_cast< ODatabaseContext* >( xDBContextTunnel->getSomething( ODatabaseContext::getUnoTunnelImplementationId() ) );
::rtl::Reference<ODatabaseModelImpl> pImpl( new ODatabaseModelImpl( _rxContext, *pContext ) );
Reference< XModel > xModel( pImpl->createNewModel_deliverOwnership( false ) );
return xModel.get();
}
Sequence< OUString > ODatabaseDocument::getSupportedServiceNames_static( ) throw (RuntimeException)
{
Sequence< OUString > aSNS( 2 );
aSNS[0] = "com.sun.star.sdb.OfficeDatabaseDocument";
aSNS[1] = "com.sun.star.document.OfficeDocument";
return aSNS;
return { "com.sun.star.sdb.OfficeDatabaseDocument", "com.sun.star.document.OfficeDocument" };
}
sal_Bool ODatabaseDocument::supportsService( const OUString& _rServiceName ) throw (RuntimeException, std::exception)
......@@ -2252,4 +2210,20 @@ OUString SAL_CALL ODatabaseDocument::getUntitledPrefix() throw (uno::RuntimeE
} // namespace dbaccess
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* SAL_CALL
com_sun_star_comp_dba_ODatabaseDocument(css::uno::XComponentContext* context,
css::uno::Sequence<css::uno::Any> const &)
{
Reference<XUnoTunnel> xDBContextTunnel(DatabaseContext::create(context), UNO_QUERY_THROW);
dbaccess::ODatabaseContext* pContext = reinterpret_cast<dbaccess::ODatabaseContext*>(
xDBContextTunnel->getSomething(
dbaccess::ODatabaseContext::getUnoTunnelImplementationId()));
rtl::Reference<dbaccess::ODatabaseModelImpl> pImpl(
new dbaccess::ODatabaseModelImpl(context, *pContext));
css::uno::Reference<XInterface> inst(pImpl->createNewModel_deliverOwnership(false));
inst->acquire();
return inst.get();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -294,12 +294,6 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(css::uno::RuntimeException, std::exception) override;
// css::lang::XServiceInfo - static methods
static css::uno::Sequence< OUString > getSupportedServiceNames_static() throw( css::uno::RuntimeException );
static OUString getImplementationName_static() throw( css::uno::RuntimeException );
static css::uno::Reference< css::uno::XInterface >
SAL_CALL Create(const css::uno::Reference< css::uno::XComponentContext >&);
// XInterface
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) throw (css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL acquire( ) throw () override;
......
......@@ -25,7 +25,6 @@
#include <sal/types.h>
extern "C" void SAL_CALL createRegistryInfo_DataAccessDescriptorFactory();
extern "C" void SAL_CALL createRegistryInfo_ODatabaseDocument();
#endif
......
......@@ -58,7 +58,6 @@ extern "C" void SAL_CALL createRegistryInfo_DBA()
static bool bInit = false;
if (!bInit)
{
createRegistryInfo_ODatabaseDocument();
createRegistryInfo_DataAccessDescriptorFactory();
bInit = true;
}
......
......@@ -37,7 +37,8 @@
<implementation name="com.sun.star.comp.dba.ODatabaseContext">
<service name="com.sun.star.sdb.DatabaseContext"/>
</implementation>
<implementation name="com.sun.star.comp.dba.ODatabaseDocument">
<implementation name="com.sun.star.comp.dba.ODatabaseDocument"
constructor="com_sun_star_comp_dba_ODatabaseDocument">
<service name="com.sun.star.document.OfficeDocument"/>
<service name="com.sun.star.sdb.OfficeDatabaseDocument"/>
</implementation>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment