summaryrefslogtreecommitdiff
path: root/dbaccess/source/ext/macromigration
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ext/macromigration')
-rw-r--r--dbaccess/source/ext/macromigration/dbmm.component34
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_global.hrc86
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_module.cxx47
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_module.hxx47
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_services.cxx59
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_types.cxx66
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_types.hxx73
-rw-r--r--dbaccess/source/ext/macromigration/docinteraction.cxx145
-rw-r--r--dbaccess/source/ext/macromigration/docinteraction.hxx98
-rw-r--r--dbaccess/source/ext/macromigration/macromigration.hrc96
-rw-r--r--dbaccess/source/ext/macromigration/macromigration.src464
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationdialog.cxx631
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationdialog.hxx97
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationpages.cxx364
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationpages.hxx184
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationwizard.cxx266
-rw-r--r--dbaccess/source/ext/macromigration/migrationengine.cxx1993
-rw-r--r--dbaccess/source/ext/macromigration/migrationengine.hxx103
-rw-r--r--dbaccess/source/ext/macromigration/migrationerror.hxx175
-rw-r--r--dbaccess/source/ext/macromigration/migrationlog.cxx515
-rw-r--r--dbaccess/source/ext/macromigration/migrationlog.hxx131
-rw-r--r--dbaccess/source/ext/macromigration/migrationprogress.hxx61
-rw-r--r--dbaccess/source/ext/macromigration/progresscapture.cxx138
-rw-r--r--dbaccess/source/ext/macromigration/progresscapture.hxx82
-rw-r--r--dbaccess/source/ext/macromigration/progressmixer.cxx219
-rw-r--r--dbaccess/source/ext/macromigration/progressmixer.hxx103
-rw-r--r--dbaccess/source/ext/macromigration/rangeprogressbar.hxx107
27 files changed, 0 insertions, 6384 deletions
diff --git a/dbaccess/source/ext/macromigration/dbmm.component b/dbaccess/source/ext/macromigration/dbmm.component
deleted file mode 100644
index cb91044f5..000000000
--- a/dbaccess/source/ext/macromigration/dbmm.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* 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.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary" prefix="dbmm"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.dbaccess.macromigration.MacroMigrationDialogService">
- <service name="com.sun.star.sdb.application.MacroMigrationWizard"/>
- </implementation>
-</component>
diff --git a/dbaccess/source/ext/macromigration/dbmm_global.hrc b/dbaccess/source/ext/macromigration/dbmm_global.hrc
deleted file mode 100644
index 8ea3dc724..000000000
--- a/dbaccess/source/ext/macromigration/dbmm_global.hrc
+++ /dev/null
@@ -1,86 +0,0 @@
-/*************************************************************************
- *
- * 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 DBACCESS_DBMM_GLOBAL_HRC
-#define DBACCESS_DBMM_GLOBAL_HRC
-
-#include <svl/solar.hrc>
-
-//=====================================================================
-//= bases
-//=====================================================================
-#define RID_DBMM_DIALOG_START RID_DBACCESS_START + 0
-#define RID_DBMM_TAPPAGE_START RID_DBACCESS_START + 0
-#define RID_DBMM_STRING_START RID_DBACCESS_START + 0
-
-//=====================================================================
-//= dialogs
-//=====================================================================
-
-#define DLG_MACRO_MIGRATION RID_DBMM_DIALOG_START + 0
-
-//=====================================================================
-//= error boxes
-//=====================================================================
-
-#define ERR_INVALID_BACKUP_LOCATION RID_DBMM_DIALOG_START + 0
-
-//=====================================================================
-//= tab pages
-//=====================================================================
-
-#define TP_PREPARE ( RID_DBMM_TAPPAGE_START + 0 )
-#define TP_SAVE_DBDOC_AS ( RID_DBMM_TAPPAGE_START + 1 )
-#define TP_MIGRATE ( RID_DBMM_TAPPAGE_START + 2 )
-#define TP_SUMMARY ( RID_DBMM_TAPPAGE_START + 3 )
-
-//=====================================================================
-//= strings
-//=====================================================================
-
-#define STR_FORM ( RID_DBMM_STRING_START + 0 )
-#define STR_REPORT ( RID_DBMM_STRING_START + 1 )
-#define STR_OVERALL_PROGRESS ( RID_DBMM_STRING_START + 2 )
-#define STR_DATABASE_DOCUMENT ( RID_DBMM_STRING_START + 3 )
-#define STR_SAVED_COPY_TO ( RID_DBMM_STRING_START + 4 )
-#define STR_MOVED_LIBRARY ( RID_DBMM_STRING_START + 5 )
-#define STR_OOO_BASIC ( RID_DBMM_STRING_START + 6 )
-#define STR_JAVA_SCRIPT ( RID_DBMM_STRING_START + 7 )
-#define STR_BEAN_SHELL ( RID_DBMM_STRING_START + 8 )
-#define STR_JAVA ( RID_DBMM_STRING_START + 9 )
-#define STR_PYTHON ( RID_DBMM_STRING_START + 10 )
-#define STR_DIALOG ( RID_DBMM_STRING_START + 11 )
-#define STR_MIGRATING_LIBS ( RID_DBMM_STRING_START + 12 )
-#define STR_ERRORS ( RID_DBMM_STRING_START + 13 )
-#define STR_WARNINGS ( RID_DBMM_STRING_START + 14 )
-#define STR_EXCEPTION ( RID_DBMM_STRING_START + 15 )
-#define STR_LIBRARY_TYPE_AND_NAME ( RID_DBMM_STRING_START + 16 )
-#define STR_INVALID_NUMBER_ARGS ( RID_DBMM_STRING_START + 17 )
-#define STR_NO_DATABASE ( RID_DBMM_STRING_START + 18 )
-#define STR_NOT_READONLY ( RID_DBMM_STRING_START + 19 )
-
-#endif // DBACCESS_DBMM_GLOBAL_HRC
diff --git a/dbaccess/source/ext/macromigration/dbmm_module.cxx b/dbaccess/source/ext/macromigration/dbmm_module.cxx
deleted file mode 100644
index 45553b725..000000000
--- a/dbaccess/source/ext/macromigration/dbmm_module.cxx
+++ /dev/null
@@ -1,47 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_module.hxx"
-
-#include <rtl/instance.hxx>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- IMPLEMENT_MODULE( MacroMigrationModule, "dbmm" );
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/dbmm_module.hxx b/dbaccess/source/ext/macromigration/dbmm_module.hxx
deleted file mode 100644
index 8342a7aa8..000000000
--- a/dbaccess/source/ext/macromigration/dbmm_module.hxx
+++ /dev/null
@@ -1,47 +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 DBACCESS_MACROMIGRATION_MODULE_HXX
-#define DBACCESS_MACROMIGRATION_MODULE_HXX
-
-#include <unotools/componentresmodule.hxx>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- DEFINE_MODULE( MacroMigrationModule, MacroMigrationModuleClient, MacroMigrationResId )
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MACROMIGRATION_MODULE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/dbmm_services.cxx b/dbaccess/source/ext/macromigration/dbmm_services.cxx
deleted file mode 100644
index 3999493ad..000000000
--- a/dbaccess/source/ext/macromigration/dbmm_services.cxx
+++ /dev/null
@@ -1,59 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_module.hxx"
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //--------------------------------------------------------------------
- extern void createRegistryInfo_MacroMigrationDialogService();
-
- static void initializeModule()
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- createRegistryInfo_MacroMigrationDialogService();
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL dbmm_component_getFactory(
- const sal_Char* pImplementationName, void* pServiceManager, void* pRegistryKey )
-{
- ::dbmm::initializeModule();
- return ::dbmm::MacroMigrationModule::getInstance().getComponentFactory( pImplementationName, pServiceManager, pRegistryKey );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/dbmm_types.cxx b/dbaccess/source/ext/macromigration/dbmm_types.cxx
deleted file mode 100644
index eb27b118b..000000000
--- a/dbaccess/source/ext/macromigration/dbmm_types.cxx
+++ /dev/null
@@ -1,66 +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.
- *
-************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_types.hxx"
-
-#include "dbmm_global.hrc"
-#include "dbmm_module.hxx"
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //====================================================================
- //= helper
- //====================================================================
- //--------------------------------------------------------------------
- String getScriptTypeDisplayName( const ScriptType _eType )
- {
- sal_uInt16 nResId( 0 );
-
- switch ( _eType )
- {
- case eBasic: nResId = STR_OOO_BASIC; break;
- case eBeanShell: nResId = STR_BEAN_SHELL; break;
- case eJavaScript: nResId = STR_JAVA_SCRIPT; break;
- case ePython: nResId = STR_PYTHON; break;
- case eJava: nResId = STR_JAVA; break;
- case eDialog: nResId = STR_DIALOG; break;
- }
- OSL_ENSURE( nResId != 0, "getScriptTypeDisplayName: illegal script type!" );
- return nResId ? String( MacroMigrationResId( nResId ) ) : String();
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/dbmm_types.hxx b/dbaccess/source/ext/macromigration/dbmm_types.hxx
deleted file mode 100644
index 6c6500239..000000000
--- a/dbaccess/source/ext/macromigration/dbmm_types.hxx
+++ /dev/null
@@ -1,73 +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 DBACCESS_DBMM_TYPES_HXX
-#define DBACCESS_DBMM_TYPES_HXX
-
-#include <tools/string.hxx>
-#include <sal/macros.h>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //====================================================================
- //= ScriptType
- //====================================================================
- enum ScriptType
- {
- eBasic,
- eBeanShell,
- eJavaScript,
- ePython,
- eJava,
- eDialog
- };
-
- //====================================================================
- //= SubDocumentType
- //====================================================================
- enum SubDocumentType
- {
- eForm,
- eReport
- };
-
- //====================================================================
- //= helper
- //====================================================================
- String getScriptTypeDisplayName( const ScriptType _eType );
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_DBMM_TYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/docinteraction.cxx b/dbaccess/source/ext/macromigration/docinteraction.cxx
deleted file mode 100644
index 1fe9c1616..000000000
--- a/dbaccess/source/ext/macromigration/docinteraction.cxx
+++ /dev/null
@@ -1,145 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "docinteraction.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/task/DocumentPasswordRequest.hpp>
-/** === end UNO includes === **/
-
-#include <comphelper/componentcontext.hxx>
-#include <comphelper/namedvaluecollection.hxx>
-#include <comphelper/interaction.hxx>
-#include <rtl/ref.hxx>
-#include <tools/diagnose_ex.h>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::UNO_QUERY;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
- using ::com::sun::star::uno::UNO_SET_THROW;
- using ::com::sun::star::uno::Exception;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::uno::makeAny;
- using ::com::sun::star::task::XInteractionHandler;
- using ::com::sun::star::frame::XModel;
- using ::com::sun::star::task::DocumentPasswordRequest;
- using ::com::sun::star::task::InteractionClassification_QUERY;
- using ::com::sun::star::task::PasswordRequestMode_PASSWORD_ENTER;
- using ::com::sun::star::task::PasswordRequestMode_PASSWORD_REENTER;
- /** === end UNO using === **/
-
- //====================================================================
- //= InteractionHandler_Data
- //====================================================================
- struct InteractionHandler_Data
- {
- Reference< XInteractionHandler > xHandler;
-
- InteractionHandler_Data( const Reference< XInteractionHandler >& _rxHandler )
- :xHandler( _rxHandler )
- {
- }
-
- InteractionHandler_Data( const ::comphelper::ComponentContext& _rContext )
- :xHandler( _rContext.createComponent( "com.sun.star.task.InteractionHandler" ), UNO_QUERY_THROW )
- {
- }
- };
-
- //====================================================================
- //= InteractionHandler
- //====================================================================
- //--------------------------------------------------------------------
- InteractionHandler::InteractionHandler( const ::comphelper::ComponentContext& _rContext, const Reference< XModel >& _rxDocument )
- :m_pData( new InteractionHandler_Data( _rContext ) )
- {
- // check whether the doumentc has an own interaction handler set
- ::comphelper::NamedValueCollection aDocArgs( _rxDocument->getArgs() );
- m_pData->xHandler = aDocArgs.getOrDefault( "InteractionHandler", m_pData->xHandler );
- }
-
- //--------------------------------------------------------------------
- InteractionHandler::~InteractionHandler()
- {
- }
-
- //--------------------------------------------------------------------
- bool InteractionHandler::requestDocumentPassword( const ::rtl::OUString& _rDocumentName, ::rtl::OUString& _io_rPassword )
- {
- // create request
- DocumentPasswordRequest aRequest(
- ::rtl::OUString(), NULL,
- InteractionClassification_QUERY,
- _io_rPassword.getLength() ? PasswordRequestMode_PASSWORD_REENTER : PasswordRequestMode_PASSWORD_ENTER,
- _rDocumentName
- );
-
- ::rtl::Reference< ::comphelper::OInteractionRequest > pRequest( new ::comphelper::OInteractionRequest( makeAny( aRequest ) ) );
- ::rtl::Reference< ::comphelper::OInteractionPassword > pPassword( new ::comphelper::OInteractionPassword( _io_rPassword ) );
- ::rtl::Reference< ::comphelper::OInteractionAbort > pAbort( new ::comphelper::OInteractionAbort );
- pRequest->addContinuation( pPassword.get() );
- pRequest->addContinuation( pAbort.get() );
-
- // handle
- m_pData->xHandler->handle( pRequest.get() );
-
- // finish up
- if ( pAbort->wasSelected() )
- return false;
-
- _io_rPassword = pPassword->getPassword();
- return true;
- }
-
- //--------------------------------------------------------------------
- void InteractionHandler::reportError( const Any& _rError )
- {
- ::rtl::Reference< ::comphelper::OInteractionRequest > pRequest( new ::comphelper::OInteractionRequest( _rError ) );
- ::rtl::Reference< ::comphelper::OInteractionApprove > pApprove( new ::comphelper::OInteractionApprove );
- pRequest->addContinuation( pApprove.get() );
-
- m_pData->xHandler->handle( pRequest.get() );
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/docinteraction.hxx b/dbaccess/source/ext/macromigration/docinteraction.hxx
deleted file mode 100644
index 9575fd8c9..000000000
--- a/dbaccess/source/ext/macromigration/docinteraction.hxx
+++ /dev/null
@@ -1,98 +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 DBACCESS_DOCERRORHANDLING_HXX
-#define DBACCESS_DOCERRORHANDLING_HXX
-
-/** === begin UNO includes === **/
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/task/XInteractionHandler.hpp>
-/** === end UNO includes === **/
-
-namespace comphelper {
- class ComponentContext;
-}
-
-#include <memory>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //====================================================================
- //= DocumentErrorHandling
- //====================================================================
- struct InteractionHandler_Data;
- /** wraps common operations with an interaction handler.
- */
- class InteractionHandler
- {
- public:
- /** creates an interaction handler by instantiating a css.task.InteractionHandler
- component at the given component context, or using the given document's interaction handler,
- if one is specified in the document's media descriptor.
- */
- InteractionHandler( const ::comphelper::ComponentContext& _rContext, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxDocument );
-
- /** destructor
- */
- ~InteractionHandler();
-
- /** requests a document password
- @param _rDocumentName
- the document name
- @param _io_rPassword
- the initial password on method entry, the password as entered by the user on method leave
- @return
- <TRUE/> if and only if the user entered a password, and confirmed with OK, <FALSE/>
- if the user aborted the request.
- */
- bool requestDocumentPassword(
- const ::rtl::OUString& _rDocumentName,
- ::rtl::OUString& _io_rPassword
- );
-
- /** reports the given error (usually an exception caught on the caller's side)
- to the user
- */
- void reportError(
- const ::com::sun::star::uno::Any& _rError
- );
-
- private:
- ::std::auto_ptr< InteractionHandler_Data > m_pData;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_DOCERRORHANDLING_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/macromigration.hrc b/dbaccess/source/ext/macromigration/macromigration.hrc
deleted file mode 100644
index ac1a5c244..000000000
--- a/dbaccess/source/ext/macromigration/macromigration.hrc
+++ /dev/null
@@ -1,96 +0,0 @@
-/*************************************************************************
- *
- * 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 DBACCESS_MACROMIGRATION_HRC
-#define DBACCESS_MACROMIGRATION_HRC
-
-// height and width of tab pages
-#define TAB_PAGE_WIDTH 280
-#define TAB_PAGE_HEIGHT 185
-
-// margin between the tab page and its content
-#define TAB_PAGE_CONTENT_MARGIN 12
-
-// dimensions of certain control types
-#define FIXED_TEXT_HEIGHT 8
-#define INPUT_HEIGHT 12
-#define PROGRESS_HEIGHT 12
-#define BUTTON_WIDTH 50
-#define BUTTON_HEIGHT 14
-
-// spacing after the header on each page
-#define SPACING_AFTER_HEADER 6
-// spacing between related controls
-#define SPACING_RELATED 3
-// spacing between unrelated controls
-#define SPACING_UNRELATED 6
-
-// the position of the first control after the header
-#define CONTENT_POS_X ( TAB_PAGE_CONTENT_MARGIN + FIXED_TEXT_HEIGHT + SPACING_AFTER_HEADER )
-
-//... fixed texts .......................................................
-
-#define FT_HEADER 1
-#define FT_INTRODUCTION 2
-#define FT_EXPLANATION 3
-#define FT_SAVE_AS_LABEL 4
-#define FT_START_MIGRATION 5
-#define FT_CURRENT_OBJECT_LABEL 6
-#define FT_CURRENT_OBJECT 7
-#define FT_CURRENT_PROGRESS_LABEL 8
-#define FT_CURRENT_PROGRESS 9
-#define FT_ALL_PROGRESS_LABEL 10
-#define FT_CHANGES_LABEL 11
-#define FT_OBJECT_COUNT 12
-#define FT_OBJECT_COUNT_PROGRESS 13
-#define FT_MIGRATION_DONE 14
-#define FT_CLOSE_DOC_ERROR 15
-
-//... windows ............................................................
-
-#define WND_CURRENT_PROGRESS 1
-#define WND_ALL_PROGRESS 2
-
-//... edits ..............................................................
-
-#define ED_SAVE_AS_LOCATION 1
-#define ED_CHANGES 2
-
-//... buttons ............................................................
-
-#define PB_BROWSE_SAVE_AS_LOCATION 1
-
-//... strings ............................................................
-
-#define STR_STATE_CLOSE_SUB_DOCS 1
-#define STR_STATE_BACKUP_DBDOC 2
-#define STR_STATE_MIGRATE 3
-#define STR_STATE_SUMMARY 4
-#define STR_SUCCESSFUL 5
-#define STR_UNSUCCESSFUL 6
-
-#endif // DBACCESS_MACROMIGRATION_HRC
diff --git a/dbaccess/source/ext/macromigration/macromigration.src b/dbaccess/source/ext/macromigration/macromigration.src
deleted file mode 100644
index 5d1d9db39..000000000
--- a/dbaccess/source/ext/macromigration/macromigration.src
+++ /dev/null
@@ -1,464 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#include "dbmm_global.hrc"
-#include "macromigration.hrc"
-
-// -----------------------------------------------------------------------------
-ModalDialog DLG_MACRO_MIGRATION
-{
- HelpID = "dbaccess:ModalDialog:DLG_MACRO_MIGRATION";
- OutputSize = TRUE ;
- Moveable = TRUE;
- Closeable = TRUE ;
- Hide = TRUE;
-
- Text[ en-US ] = "Database Document Macro Migration" ;
-
- String STR_STATE_CLOSE_SUB_DOCS
- {
- Text [ en-US ] = "Prepare";
- };
-
- String STR_STATE_BACKUP_DBDOC
- {
- Text [ en-US ] = "Backup Document";
- };
-
- String STR_STATE_MIGRATE
- {
- Text [ en-US ] = "Migrate";
- };
-
- String STR_STATE_SUMMARY
- {
- Text [ en-US ] = "Summary";
- };
-};
-
-//========================================================================
-//= PreparationPage
-//========================================================================
-
-TabPage TP_PREPARE
-{
- HelpID = "dbaccess:TabPage:TP_PREPARE";
- Pos = MAP_APPFONT( 40, 130 );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH, TAB_PAGE_HEIGHT );
-
- Hide = TRUE;
-
- FixedText FT_HEADER
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, TAB_PAGE_CONTENT_MARGIN );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "Welcome to the Database Macro Migration Wizard";
- };
-
- FixedText FT_INTRODUCTION
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, CONTENT_POS_X );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN,
- TAB_PAGE_HEIGHT - CONTENT_POS_X - TAB_PAGE_CONTENT_MARGIN - ( 2 * FIXED_TEXT_HEIGHT - SPACING_UNRELATED ) );
- WordBreak = TRUE;
-
- Text [ en-US ] = "This wizard will guide you through the task of migrating your macros.\n\n"
-
- "After you finished it, all macros which were formerly embedded into the forms and reports of "
- "the current database document will have been moved to the document itself. In this course, "
- "libraries will be renamed as needed.\n\n"
-
- "If your forms and reports contain references to those macros, they will be adjusted, where "
- "possible.\n\n"
-
- "Before the migration can start, all forms, reports, queries and tables belonging to the document must be closed. "
- "Press 'Next' to do so.";
- };
-
- FixedText FT_CLOSE_DOC_ERROR
- {
- Pos = MAP_APPFONT ( TAB_PAGE_CONTENT_MARGIN,
- TAB_PAGE_HEIGHT - TAB_PAGE_CONTENT_MARGIN - ( 2 * FIXED_TEXT_HEIGHT - SPACING_UNRELATED ) );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN,
- 2 * FIXED_TEXT_HEIGHT - SPACING_UNRELATED );
- Text [ en-US ] = "Not all objects could be closed. Please close them manually, and re-start the wizard.";
- hide = TRUE;
- };
-};
-
-//========================================================================
-//= SaveDBDocPage
-//========================================================================
-
-TabPage TP_SAVE_DBDOC_AS
-{
- HelpID = "dbaccess:TabPage:TP_SAVE_DBDOC_AS";
- Pos = MAP_APPFONT( 40, 130 );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH, TAB_PAGE_HEIGHT );
-
- Hide = TRUE;
-
- FixedText FT_HEADER
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, TAB_PAGE_CONTENT_MARGIN );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "Backup your Document";
- };
-
- FixedText FT_EXPLANATION
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, CONTENT_POS_X );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, 5 * FIXED_TEXT_HEIGHT );
-
- WordBreak = TRUE;
-
- Text [ en-US ] = "To allow you to go back to the state before the migration, the database "
- "document will be backed up to a location of your choice. Every change done by the wizard will "
- "be made to the original document, the backup will stay untouched.";
- };
-
- FixedText FT_SAVE_AS_LABEL
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, CONTENT_POS_X + 5 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( 60, INPUT_HEIGHT );
-
- VCenter = TRUE;
-
- Text [ en-US ] = "Save To:";
- };
-
- ComboBox ED_SAVE_AS_LOCATION
- {
- HelpID = "dbaccess:ComboBox:TP_SAVE_DBDOC_AS:ED_SAVE_AS_LOCATION";
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN + 60 + SPACING_RELATED,
- CONTENT_POS_X + 5 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - ( TAB_PAGE_CONTENT_MARGIN + 60 + SPACING_RELATED ) - TAB_PAGE_CONTENT_MARGIN,
- INPUT_HEIGHT );
-
- Border = TRUE;
- DropDown = TRUE ;
- };
-
- PushButton PB_BROWSE_SAVE_AS_LOCATION
- {
- HelpID = "dbaccess:PushButton:TP_SAVE_DBDOC_AS:PB_BROWSE_SAVE_AS_LOCATION";
- Pos = MAP_APPFONT( TAB_PAGE_WIDTH - BUTTON_WIDTH - TAB_PAGE_CONTENT_MARGIN,
- CONTENT_POS_X + 5 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + INPUT_HEIGHT + SPACING_RELATED );
- Size = MAP_APPFONT( BUTTON_WIDTH, BUTTON_HEIGHT );
-
- Text [ en-US ] = "Browse ...";
- };
-
- FixedText FT_START_MIGRATION
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN,
- TAB_PAGE_HEIGHT - TAB_PAGE_CONTENT_MARGIN - 3 * FIXED_TEXT_HEIGHT );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN,
- 3 * FIXED_TEXT_HEIGHT );
-
- WordBreak = TRUE;
-
- Text [ en-US ] = "Press 'Next' to save a copy of your document, and to begin the migration.";
- };
-};
-
-//========================================================================
-//= ProgressPage
-//========================================================================
-
-TabPage TP_MIGRATE
-{
- HelpID = "dbaccess:TabPage:TP_MIGRATE";
- Pos = MAP_APPFONT( 40, 130 );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH, TAB_PAGE_HEIGHT );
-
- Hide = TRUE;
-
- FixedText FT_HEADER
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, TAB_PAGE_CONTENT_MARGIN );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "Migration Progress";
- };
-
- FixedText FT_OBJECT_COUNT
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, CONTENT_POS_X );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, 2 * FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "The database document contains $forms$ form(s) and $reports$ report(s), which are currently being processed:";
-
- WordBreak = TRUE;
- };
-
- FixedText FT_CURRENT_OBJECT_LABEL
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( 60, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "Current object:";
- };
-
- FixedText FT_CURRENT_OBJECT
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN + 60,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - ( TAB_PAGE_CONTENT_MARGIN + 60 ), FIXED_TEXT_HEIGHT );
- };
-
- FixedText FT_CURRENT_PROGRESS_LABEL
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( 60, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "Current progress:";
- };
-
- FixedText FT_CURRENT_PROGRESS
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN + 60,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - ( TAB_PAGE_CONTENT_MARGIN + 60 ), FIXED_TEXT_HEIGHT );
- };
-
- Window WND_CURRENT_PROGRESS
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN + 60,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_RELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - ( TAB_PAGE_CONTENT_MARGIN + 60 ) - TAB_PAGE_CONTENT_MARGIN, PROGRESS_HEIGHT );
-
- Border = TRUE;
- BorderStyle = WINDOW_BORDER_MONO;
- };
-
- FixedText FT_ALL_PROGRESS_LABEL
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_RELATED + PROGRESS_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( 60, FIXED_TEXT_HEIGHT );
-
- VCenter = TRUE;
-
- Text [ en-US ] = "Overall progress:";
- };
-
- FixedText FT_OBJECT_COUNT_PROGRESS
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN + 60,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_RELATED + PROGRESS_HEIGHT + SPACING_UNRELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - ( TAB_PAGE_CONTENT_MARGIN + 60 ) - TAB_PAGE_CONTENT_MARGIN, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "document $current$ of $overall$";
- };
-
- Window WND_ALL_PROGRESS
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN + 60,
- CONTENT_POS_X + 2 * FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_RELATED + PROGRESS_HEIGHT + SPACING_UNRELATED + FIXED_TEXT_HEIGHT + SPACING_RELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - ( TAB_PAGE_CONTENT_MARGIN + 60 ) - TAB_PAGE_CONTENT_MARGIN, PROGRESS_HEIGHT );
-
- Border = TRUE;
- BorderStyle = WINDOW_BORDER_MONO;
- };
-
- FixedText FT_MIGRATION_DONE
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, TAB_PAGE_HEIGHT - TAB_PAGE_CONTENT_MARGIN - 2 * FIXED_TEXT_HEIGHT );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, 2 * FIXED_TEXT_HEIGHT );
-
- WordBreak = TRUE;
- Hide = TRUE;
-
- Text [ en-US ] = "All forms and reports have been successfully processed. Press 'Next' to show a detailed summary.";
- };
-};
-
-//========================================================================
-//= ResultPage
-//========================================================================
-
-TabPage TP_SUMMARY
-{
- HelpID = "dbaccess:TabPage:TP_SUMMARY";
- Pos = MAP_APPFONT( 40, 130 );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH, TAB_PAGE_HEIGHT );
-
- Hide = TRUE;
-
- FixedText FT_HEADER
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, TAB_PAGE_CONTENT_MARGIN );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, FIXED_TEXT_HEIGHT );
-
- Text [ en-US ] = "Summary";
- };
-
- FixedText FT_CHANGES_LABEL
- {
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, CONTENT_POS_X );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN, FIXED_TEXT_HEIGHT );
-
- WordBreak = TRUE;
- };
-
- MultiLineEdit ED_CHANGES
- {
- HelpID = "dbaccess:MultiLineEdit:TP_SUMMARY:ED_CHANGES";
- Pos = MAP_APPFONT( TAB_PAGE_CONTENT_MARGIN, CONTENT_POS_X + FIXED_TEXT_HEIGHT + SPACING_RELATED );
- Size = MAP_APPFONT( TAB_PAGE_WIDTH - 2 * TAB_PAGE_CONTENT_MARGIN,
- TAB_PAGE_HEIGHT - ( CONTENT_POS_X + FIXED_TEXT_HEIGHT + SPACING_RELATED ) - TAB_PAGE_CONTENT_MARGIN );
-
- ReadOnly = TRUE;
- AutoVScroll = TRUE;
- Border = TRUE;
- BorderStyle = WINDOW_BORDER_MONO;
- };
-
- String STR_SUCCESSFUL
- {
- Text [ en-US ] = "The migration was successful. Below is a log of the actions which have been taken to your document.";
- };
-
- String STR_UNSUCCESSFUL
- {
- Text [ en-US ] = "The migration was not successful. Examine the migration log below for details.";
- };
-};
-
-String STR_FORM
-{
- Text [ en-US ] = "Form '$name$'";
- Text [ x-comment ] = "This refers to a form document inside a database document.";
-};
-
-String STR_REPORT
-{
- Text [ en-US ] = "Report '$name$'";
- Text [ x-comment ] = "This refers to a report document inside a database document.";
-};
-
-String STR_OVERALL_PROGRESS
-{
- Text [ en-US ] = "document $current$ of $overall$";
-};
-
-String STR_DATABASE_DOCUMENT
-{
- Text[ en-US ] = "Database Document";
-};
-
-String STR_SAVED_COPY_TO
-{
- Text[ en-US ] = "saved copy to $location$";
-};
-
-String STR_MOVED_LIBRARY
-{
- Text[ en-US ] = "migrated $type$ library '$old$' to '$new$'";
-};
-
-String STR_LIBRARY_TYPE_AND_NAME
-{
- Text [ en-US ] = "$type$ library '$library$'";
-};
-
-String STR_MIGRATING_LIBS
-{
- Text [ en-US ] = "migrating libraries ...";
-};
-
-String STR_OOO_BASIC
-{
- Text[ en-US ] = "%PRODUCTNAME Basic";
-};
-
-String STR_JAVA_SCRIPT
-{
- Text[ en-US ] = "JavaScript";
-};
-
-String STR_BEAN_SHELL
-{
- Text[ en-US ] = "BeanShell";
-};
-
-String STR_JAVA
-{
- Text[ en-US ] = "Java";
-};
-
-String STR_PYTHON
-{
- Text[ en-US ] = "Python";
-};
-
-String STR_DIALOG
-{
- Text[ en-US ] = "dialog";
-};
-
-String STR_ERRORS
-{
- Text [ en-US ] = "Error(s)";
-};
-
-String STR_WARNINGS
-{
- Text [ en-US ] = "Warnings";
-};
-
-String STR_EXCEPTION
-{
- Text [ en-US ] = "caught exception: ";
-};
-
-
-ErrorBox ERR_INVALID_BACKUP_LOCATION
-{
- Buttons = WB_OK;
- Message [ en-US ] = "You need to choose a backup location other than the document location itself.";
-};
-
-String STR_INVALID_NUMBER_ARGS
-{
- Text [ en-US ] = "Invalid number of initialization arguments. Expected 1.";
-};
-
-String STR_NO_DATABASE
-{
- Text [ en-US ] = "No database document found in the initialization arguments.";
-};
-
-String STR_NOT_READONLY
-{
- Text [ en-US ] = "Not applicable to read-only documents.";
-};
diff --git a/dbaccess/source/ext/macromigration/macromigrationdialog.cxx b/dbaccess/source/ext/macromigration/macromigrationdialog.cxx
deleted file mode 100644
index 381791117..000000000
--- a/dbaccess/source/ext/macromigration/macromigrationdialog.cxx
+++ /dev/null
@@ -1,631 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_global.hrc"
-#include "dbmm_module.hxx"
-#include "docinteraction.hxx"
-#include "macromigration.hrc"
-#include "macromigrationdialog.hxx"
-#include "macromigrationpages.hxx"
-#include "migrationengine.hxx"
-#include "migrationerror.hxx"
-#include "migrationlog.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
-#include <com/sun/star/frame/XModel2.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/util/XCloseable.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/util/XModifiable.hpp>
-#include <com/sun/star/ucb/XContent.hpp>
-#include <com/sun/star/ucb/XContentProvider.hpp>
-/** === end UNO includes === **/
-
-#include <comphelper/namedvaluecollection.hxx>
-#include <cppuhelper/exc_hlp.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <rtl/ref.hxx>
-#include <svl/filenotation.hxx>
-#include <tools/diagnose_ex.h>
-#include <ucbhelper/content.hxx>
-#include <ucbhelper/contentbroker.hxx>
-#include <vcl/msgbox.hxx>
-
-#include <list>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
-#define STATE_CLOSE_SUB_DOCS 0
-#define STATE_BACKUP_DBDOC 1
-#define STATE_MIGRATE 2
-#define STATE_SUMMARY 3
-
-#define PATH_DEFAULT 1
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::UNO_QUERY;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
- using ::com::sun::star::uno::UNO_SET_THROW;
- using ::com::sun::star::uno::Exception;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::uno::makeAny;
- using ::com::sun::star::sdb::application::XDatabaseDocumentUI;
- using ::com::sun::star::sdb::XOfficeDatabaseDocument;
- using ::com::sun::star::frame::XModel2;
- using ::com::sun::star::frame::XController;
- using ::com::sun::star::frame::XController2;
- using ::com::sun::star::container::XEnumeration;
- using ::com::sun::star::frame::XStorable;
- using ::com::sun::star::uno::Sequence;
- using ::com::sun::star::beans::PropertyValue;
- using ::com::sun::star::frame::XFrame;
- using ::com::sun::star::awt::XWindow;
- using ::com::sun::star::util::XCloseable;
- using ::com::sun::star::util::XCloseListener;
- using ::com::sun::star::util::CloseVetoException;
- using ::com::sun::star::lang::EventObject;
- using ::com::sun::star::frame::XComponentLoader;
- using ::com::sun::star::util::XModifiable;
- using ::com::sun::star::ucb::XCommandEnvironment;
- using ::com::sun::star::ucb::XContent;
- using ::com::sun::star::ucb::XContentIdentifier;
- using ::com::sun::star::ucb::XContentProvider;
- /** === end UNO using === **/
-
- //====================================================================
- //= helper
- //====================================================================
- //--------------------------------------------------------------------
- static void lcl_getControllers_throw( const Reference< XModel2 >& _rxDocument,
- ::std::list< Reference< XController2 > >& _out_rControllers )
- {
- _out_rControllers.clear();
- Reference< XEnumeration > xControllerEnum( _rxDocument->getControllers(), UNO_SET_THROW );
- while ( xControllerEnum->hasMoreElements() )
- _out_rControllers.push_back( Reference< XController2 >( xControllerEnum->nextElement(), UNO_QUERY_THROW ) );
- }
-
- //====================================================================
- //= MacroMigrationDialog_Data
- //====================================================================
- struct MacroMigrationDialog_Data
- {
- ::comphelper::ComponentContext aContext;
- MigrationLog aLogger;
- Reference< XOfficeDatabaseDocument > xDocument;
- Reference< XModel2 > xDocumentModel;
- ::rtl::OUString sSuccessfulBackupLocation;
- bool bMigrationIsRunning;
- bool bMigrationFailure;
- bool bMigrationSuccess;
-
- MacroMigrationDialog_Data(
- const ::comphelper::ComponentContext& _rContext,
- const Reference< XOfficeDatabaseDocument >& _rxDocument )
- :aContext( _rContext )
- ,aLogger()
- ,xDocument( _rxDocument )
- ,xDocumentModel( _rxDocument, UNO_QUERY )
- ,bMigrationIsRunning( false )
- ,bMigrationFailure( false )
- ,bMigrationSuccess( false )
- {
- }
- };
-
- //====================================================================
- //= MacroMigrationDialog
- //====================================================================
- //--------------------------------------------------------------------
- MacroMigrationDialog::MacroMigrationDialog( Window* _pParent, const ::comphelper::ComponentContext& _rContext,
- const Reference< XOfficeDatabaseDocument >& _rxDocument )
- :MacroMigrationDialog_Base( _pParent, MacroMigrationResId( DLG_MACRO_MIGRATION ) )
- ,m_pData( new MacroMigrationDialog_Data( _rContext, _rxDocument ) )
- {
- String sTitlePrepare( MacroMigrationResId( STR_STATE_CLOSE_SUB_DOCS ) );
- String sTitleStoreAs( MacroMigrationResId( STR_STATE_BACKUP_DBDOC ) );
- String sTitleMigrate( MacroMigrationResId( STR_STATE_MIGRATE ) );
- String sTitleSummary( MacroMigrationResId( STR_STATE_SUMMARY ) );
- FreeResource();
-
- describeState( STATE_CLOSE_SUB_DOCS, sTitlePrepare, &PreparationPage::Create );
- describeState( STATE_BACKUP_DBDOC, sTitleStoreAs, &SaveDBDocPage::Create );
- describeState( STATE_MIGRATE, sTitleMigrate, &ProgressPage::Create );
- describeState( STATE_SUMMARY, sTitleSummary, &ResultPage::Create );
-
- declarePath( PATH_DEFAULT, STATE_CLOSE_SUB_DOCS, STATE_BACKUP_DBDOC, STATE_MIGRATE, STATE_SUMMARY, WZS_INVALID_STATE );
-
- SetPageSizePixel( LogicToPixel( ::Size( TAB_PAGE_WIDTH, TAB_PAGE_HEIGHT ), MAP_APPFONT ) );
- ShowButtonFixedLine( true );
- SetRoadmapInteractive( true );
- enableAutomaticNextButtonState();
- defaultButton( WZB_NEXT );
- enableButtons( WZB_FINISH, true );
- ActivatePage();
-
- OSL_PRECOND( m_pData->xDocumentModel.is(), "MacroMigrationDialog::MacroMigrationDialog: illegal document!" );
- }
-
- //--------------------------------------------------------------------
- MacroMigrationDialog::~MacroMigrationDialog()
- {
- }
-
- //--------------------------------------------------------------------
- const ::comphelper::ComponentContext& MacroMigrationDialog::getComponentContext() const
- {
- return m_pData->aContext;
- }
-
- //--------------------------------------------------------------------
- const Reference< XOfficeDatabaseDocument >& MacroMigrationDialog::getDocument() const
- {
- return m_pData->xDocument;
- }
-
- //--------------------------------------------------------------------
- short MacroMigrationDialog::Execute()
- {
- short nResult = MacroMigrationDialog_Base::Execute();
- if ( !m_pData->bMigrationFailure && !m_pData->bMigrationSuccess )
- // migration did not even start
- return nResult;
-
- OSL_ENSURE( !m_pData->bMigrationFailure || !m_pData->bMigrationSuccess,
- "MacroMigrationDialog::Execute: success *and* failure at the same time?!" );
- impl_reloadDocument_nothrow( m_pData->bMigrationSuccess );
-
- return nResult;
- }
-
- //--------------------------------------------------------------------
- sal_Bool MacroMigrationDialog::Close()
- {
- if ( m_pData->bMigrationIsRunning )
- return sal_False;
- return MacroMigrationDialog_Base::Close();
- }
-
- //--------------------------------------------------------------------
- void MacroMigrationDialog::enterState( WizardState _nState )
- {
- MacroMigrationDialog_Base::enterState( _nState );
-
- switch ( _nState )
- {
- case STATE_CLOSE_SUB_DOCS:
- enableButtons( WZB_FINISH, false );
- enableState( STATE_MIGRATE, false );
- enableState( STATE_SUMMARY, false );
- break;
-
- case STATE_BACKUP_DBDOC:
- enableState( STATE_MIGRATE, true );
- // Note that the state is automatically disabled if the current page
- // (SaveDBDocPage) returns false in its canAdvance, not caring that
- // we enabled it here.
- break;
-
- case STATE_MIGRATE:
- {
- // disable everything. The process we will start here cannot be cancelled, the user
- // needs to wait 'til it's finished.
- enableState( STATE_CLOSE_SUB_DOCS, false );
- enableState( STATE_BACKUP_DBDOC, false );
- enableState( STATE_SUMMARY, false );
-
- enableButtons( WZB_FINISH | WZB_CANCEL | WZB_PREVIOUS | WZB_NEXT, false );
-
- // start the migration asynchronously
- PostUserEvent( LINK( this, MacroMigrationDialog, OnStartMigration ) );
- }
- break;
-
- case STATE_SUMMARY:
- // disable the previous step - we can't return to the actual migration, it already happened (or failed)
- enableState( STATE_MIGRATE, false );
- updateTravelUI();
-
- // display the results
- dynamic_cast< ResultPage& >( *GetPage( STATE_SUMMARY ) ).displayMigrationLog(
- m_pData->bMigrationSuccess, m_pData->aLogger.getCompleteLog() );
-
- enableButtons( WZB_FINISH, m_pData->bMigrationSuccess );
- enableButtons( WZB_CANCEL, m_pData->bMigrationFailure );
- defaultButton( m_pData->bMigrationSuccess ? WZB_FINISH : WZB_CANCEL );
- break;
-
- default:
- OSL_FAIL( "MacroMigrationDialog::enterState: unhandled state!" );
- }
- }
-
- //--------------------------------------------------------------------
- sal_Bool MacroMigrationDialog::prepareLeaveCurrentState( CommitPageReason _eReason )
- {
- if ( !MacroMigrationDialog_Base::prepareLeaveCurrentState( _eReason ) )
- return sal_False;
-
- switch ( getCurrentState() )
- {
- case STATE_CLOSE_SUB_DOCS:
- if ( !impl_closeSubDocs_nothrow() )
- return sal_False;
- break;
- case STATE_BACKUP_DBDOC:
- if ( !impl_backupDocument_nothrow() )
- return sal_False;
- break;
- case STATE_MIGRATE:
- break;
- case STATE_SUMMARY:
- break;
- default:
- OSL_FAIL( "MacroMigrationDialog::prepareLeaveCurrentState: unhandled state!" );
- }
-
- return sal_True;
- }
-
- //--------------------------------------------------------------------
- sal_Bool MacroMigrationDialog::leaveState( WizardState _nState )
- {
- return MacroMigrationDialog_Base::leaveState( _nState );
- }
-
- //--------------------------------------------------------------------
- MacroMigrationDialog::WizardState MacroMigrationDialog::determineNextState( WizardState _nCurrentState ) const
- {
- return MacroMigrationDialog_Base::determineNextState( _nCurrentState );
- }
-
- //--------------------------------------------------------------------
- sal_Bool MacroMigrationDialog::onFinish()
- {
- return MacroMigrationDialog_Base::onFinish();
- }
-
- //--------------------------------------------------------------------
- IMPL_LINK( MacroMigrationDialog, OnStartMigration, void*, /*_pNotInterestedIn*/ )
- {
- // prevent closing
- m_pData->bMigrationIsRunning = true;
-
- // initialize migration engine and progress
- ProgressPage& rProgressPage( dynamic_cast< ProgressPage& >( *GetPage( STATE_MIGRATE ) ) );
- MigrationEngine aEngine( m_pData->aContext, m_pData->xDocument, rProgressPage, m_pData->aLogger );
- rProgressPage.setDocumentCounts( aEngine.getFormCount(), aEngine.getReportCount() );
-
- // do the migration
- m_pData->bMigrationSuccess = aEngine.migrateAll();
- m_pData->bMigrationFailure = !m_pData->bMigrationSuccess;
-
- // re-enable the UI
- enableButtons( WZB_FINISH | WZB_NEXT, true );
- enableState( STATE_SUMMARY, true );
- updateTravelUI();
-
- m_pData->bMigrationIsRunning = false;
-
- if ( m_pData->bMigrationSuccess )
- {
- rProgressPage.onFinishedSuccessfully();
- }
- else
- { // if there was an error, show the summary automatically
- travelNext();
- }
-
- // outta here
- return 0L;
- }
-
- //--------------------------------------------------------------------
- void MacroMigrationDialog::impl_showCloseDocsError( bool _bShow )
- {
- PreparationPage* pPreparationPage = dynamic_cast< PreparationPage* >( GetPage( STATE_CLOSE_SUB_DOCS ) );
- OSL_ENSURE( pPreparationPage, "MacroMigrationDialog::impl_showCloseDocsError: did not find the page!" );
- if ( pPreparationPage )
- pPreparationPage->showCloseDocsError( _bShow );
- }
-
- //--------------------------------------------------------------------
- bool MacroMigrationDialog::impl_closeSubDocs_nothrow()
- {
- OSL_PRECOND( m_pData->xDocument.is(), "MacroMigrationDialog::impl_closeSubDocs_nothrow: no document!" );
- if ( !m_pData->xDocument.is() )
- return false;
-
- impl_showCloseDocsError( false );
-
- bool bSuccess = true;
- try
- {
- // collect all controllers of our document
- ::std::list< Reference< XController2 > > aControllers;
- lcl_getControllers_throw( m_pData->xDocumentModel, aControllers );
-
- // close all sub documents of all controllers
- for ( ::std::list< Reference< XController2 > >::const_iterator pos = aControllers.begin();
- pos != aControllers.end() && bSuccess;
- ++pos
- )
- {
- Reference< XDatabaseDocumentUI > xController( *pos, UNO_QUERY );
- OSL_ENSURE( xController.is(), "MacroMigrationDialog::impl_closeSubDocs_nothrow: unexpected: controller is missing an important interface!" );
- // at the moment, only one implementation for a DBDoc's controller exists, which should
- // support this interface
- if ( !xController.is() )
- continue;
-
- bSuccess = xController->closeSubComponents();
- }
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- bSuccess = false;
- }
-
- impl_showCloseDocsError( !bSuccess );
- return bSuccess;
- }
-
- //--------------------------------------------------------------------
- namespace
- {
- bool lcl_equalURLs_nothrow( const ::rtl::OUString& _lhs, const ::rtl::OUString _rhs )
- {
- // the cheap situation: the URLs are equal
- if ( _lhs == _rhs )
- return true;
-
- bool bEqual = true;
- try
- {
- ::ucbhelper::Content aContentLHS = ::ucbhelper::Content( _lhs, Reference< XCommandEnvironment >() );
- ::ucbhelper::Content aContentRHS = ::ucbhelper::Content( _rhs, Reference< XCommandEnvironment >() );
- Reference< XContent > xContentLHS( aContentLHS.get(), UNO_SET_THROW );
- Reference< XContent > xContentRHS( aContentRHS.get(), UNO_SET_THROW );
- Reference< XContentIdentifier > xID1( xContentLHS->getIdentifier(), UNO_SET_THROW );
- Reference< XContentIdentifier > xID2( xContentRHS->getIdentifier(), UNO_SET_THROW );
-
- ::ucbhelper::ContentBroker* pBroker = ::ucbhelper::ContentBroker::get();
- Reference< XContentProvider > xProvider(
- pBroker ? pBroker->getContentProviderInterface() : Reference< XContentProvider >(), UNO_SET_THROW );
-
- bEqual = ( 0 == xProvider->compareContentIds( xID1, xID2 ) );
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- return bEqual;
- }
- }
-
- //--------------------------------------------------------------------
- bool MacroMigrationDialog::impl_backupDocument_nothrow() const
- {
- if ( !m_pData->xDocumentModel.is() )
- // should never happen, but has been reported as assertion before
- return false;
-
- SaveDBDocPage& rBackupPage = dynamic_cast< SaveDBDocPage& >( *GetPage( STATE_BACKUP_DBDOC ) );
- ::rtl::OUString sBackupLocation( rBackupPage.getBackupLocation() );
-
- Any aError;
- try
- {
- // check that the backup location isn't the same as the document itself
- if ( lcl_equalURLs_nothrow( sBackupLocation, m_pData->xDocumentModel->getURL() ) )
- {
- ErrorBox aErrorBox( const_cast< MacroMigrationDialog* >( this ), MacroMigrationResId( ERR_INVALID_BACKUP_LOCATION ) );
- aErrorBox.Execute();
- rBackupPage.grabLocationFocus();
- return false;
- }
-
- // store to the backup location
- const Reference< XStorable > xDocument( getDocument(), UNO_QUERY_THROW );
- xDocument->storeToURL( sBackupLocation, Sequence< PropertyValue >() );
- m_pData->sSuccessfulBackupLocation = sBackupLocation;
- }
- catch( const Exception& )
- {
- aError = ::cppu::getCaughtException();
- }
- if ( !aError.hasValue() )
- {
- ::svt::OFileNotation aFileNotation( sBackupLocation );
- m_pData->aLogger.backedUpDocument( aFileNotation.get( ::svt::OFileNotation::N_SYSTEM ) );
- return true;
- }
-
- // display the error to the user
- InteractionHandler aHandler( m_pData->aContext, m_pData->xDocumentModel.get() );
- aHandler.reportError( aError );
-
- m_pData->aLogger.logFailure( MigrationError(
- ERR_DOCUMENT_BACKUP_FAILED,
- sBackupLocation,
- aError
- ) );
-
- return false;
- }
-
- //--------------------------------------------------------------------
- void MacroMigrationDialog::impl_reloadDocument_nothrow( bool _bMigrationSuccess )
- {
- typedef ::std::pair< Reference< XFrame >, ::rtl::OUString > ViewDescriptor;
- ::std::list< ViewDescriptor > aViews;
-
- try
- {
- // the information which is necessary to reload the document
- ::rtl::OUString sDocumentURL ( m_pData->xDocumentModel->getURL() );
- ::comphelper::NamedValueCollection aDocumentArgs( m_pData->xDocumentModel->getArgs() );
- if ( !_bMigrationSuccess )
- {
- // if the migration was not successful, then reload from the backup
- aDocumentArgs.put( "SalvagedFile", m_pData->sSuccessfulBackupLocation );
- // reset the modified flag of the document, so the controller can be suspended later
- Reference< XModifiable > xModify( m_pData->xDocument, UNO_QUERY_THROW );
- xModify->setModified( sal_False );
- // after this reload, don't show the migration warning, again
- aDocumentArgs.put( "SuppressMigrationWarning", sal_Bool(sal_True) );
- }
-
- // remove anything from the args which might refer to the old document
- aDocumentArgs.remove( "Model" );
- aDocumentArgs.remove( "Stream" );
- aDocumentArgs.remove( "InputStream" );
- aDocumentArgs.remove( "FileName" );
- aDocumentArgs.remove( "URL" );
-
- // collect all controllers of our document
- ::std::list< Reference< XController2 > > aControllers;
- lcl_getControllers_throw( m_pData->xDocumentModel, aControllers );
-
- // close all those controllers
- while ( !aControllers.empty() )
- {
- Reference< XController2 > xController( aControllers.front(), UNO_SET_THROW );
- aControllers.pop_front();
-
- Reference< XFrame > xFrame( xController->getFrame(), UNO_SET_THROW );
- ::rtl::OUString sViewName( xController->getViewControllerName() );
-
- if ( !xController->suspend( sal_True ) )
- { // ouch. There shouldn't be any modal dialogs and such, so there
- // really is no reason why suspending shouldn't work.
- OSL_FAIL( "MacroMigrationDialog::impl_reloadDocument_nothrow: could not suspend a controller!" );
- // ignoring this would be at the cost of a crash (potentially)
- // so, we cannot continue here.
- throw CloseVetoException();
- }
-
- aViews.push_back( ViewDescriptor( xFrame, sViewName ) );
- xFrame->setComponent( NULL, NULL );
- xController->dispose();
- }
-
- // Note the document is closed now - disconnecting the last controller
- // closes it automatically.
-
- Reference< XOfficeDatabaseDocument > xNewDocument;
-
- // re-create the views
- while ( !aViews.empty() )
- {
- ViewDescriptor aView( aViews.front() );
- aViews.pop_front();
-
- // load the document into this frame
- Reference< XComponentLoader > xLoader( aView.first, UNO_QUERY_THROW );
- aDocumentArgs.put( "ViewName", aView.second );
- Reference< XInterface > xReloaded( xLoader->loadComponentFromURL(
- sDocumentURL,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_self" ) ),
- 0,
- aDocumentArgs.getPropertyValues()
- ) );
-
- OSL_ENSURE( xReloaded != m_pData->xDocumentModel,
- "MacroMigrationDialog::impl_reloadDocument_nothrow: this should have been a new instance!" );
- // this would be unexpected, but recoverable: The loader should at least have done
- // this: really *load* the document, even if it loaded it into the old document instance
- if ( !xNewDocument.is() )
- {
- xNewDocument.set( xReloaded, UNO_QUERY_THROW );
- // for subsequent loads, into different frames, put the document into the load args
- aDocumentArgs.put( "Model", xNewDocument );
- }
- #if OSL_DEBUG_LEVEL > 0
- else
- {
- OSL_ENSURE( xNewDocument == xReloaded,
- "MacroMigrationDialog::impl_reloadDocument_nothrow: unexpected: subsequent load attempt returned a wrong document!" );
- }
- #endif
- }
-
- m_pData->xDocument = xNewDocument;
- m_pData->xDocumentModel.set( xNewDocument, UNO_QUERY );
-
- // finally, now that the document has been reloaded - if the migration was not successful,
- // then it was reloaded from the backup, but the real document still is broken. So, save
- // the document once, which will write the content loaded from the backup to the real docfile.
- if ( !_bMigrationSuccess )
- {
- Reference< XModifiable > xModify( m_pData->xDocument, UNO_QUERY_THROW );
- xModify->setModified( sal_True );
- // this is just parnoia - in case saving the doc fails, perhaps the user is tempted to do so
- Reference< XStorable > xStor( m_pData->xDocument, UNO_QUERY_THROW );
- xStor->store();
- }
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
-
- // close all frames from aViews - the respective controllers have been closed, but
- // reloading didn't work, so the frames are zombies now.
- while ( !aViews.empty() )
- {
- ViewDescriptor aView( aViews.front() );
- aViews.pop_front();
- try
- {
- Reference< XCloseable > xFrameClose( aView.first, UNO_QUERY_THROW );
- xFrameClose->close( sal_True );
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- }
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/macromigrationdialog.hxx b/dbaccess/source/ext/macromigration/macromigrationdialog.hxx
deleted file mode 100644
index d3cdb3ece..000000000
--- a/dbaccess/source/ext/macromigration/macromigrationdialog.hxx
+++ /dev/null
@@ -1,97 +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 DBACCESS_MACROMIGRATIONDIALOG_HXX
-#define DBACCESS_MACROMIGRATIONDIALOG_HXX
-
-/** === begin UNO includes === **/
-#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
-/** === end UNO includes === **/
-
-#include <comphelper/componentcontext.hxx>
-#include <svtools/roadmapwizard.hxx>
-
-#include <memory>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //====================================================================
- //= MacroMigrationDialog
- //====================================================================
- struct MacroMigrationDialog_Data;
- typedef ::svt::RoadmapWizard MacroMigrationDialog_Base;
- class MacroMigrationDialog : public MacroMigrationDialog_Base
- {
- public:
- MacroMigrationDialog(
- Window* _pParent,
- const ::comphelper::ComponentContext& _rContext,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XOfficeDatabaseDocument >& _rxDocument
- );
- virtual ~MacroMigrationDialog();
-
- const ::comphelper::ComponentContext&
- getComponentContext() const;
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XOfficeDatabaseDocument >&
- getDocument() const;
-
- protected:
- // OWizardMachine overridables
- virtual void enterState( WizardState _nState );
- virtual sal_Bool prepareLeaveCurrentState( CommitPageReason _eReason );
- virtual sal_Bool leaveState( WizardState _nState );
- virtual WizardState determineNextState( WizardState _nCurrentState ) const;
- virtual sal_Bool onFinish();
-
- // Dialog overridables
- virtual sal_Bool Close();
- virtual short Execute();
-
- private:
- void impl_showCloseDocsError( bool _bShow );
- bool impl_closeSubDocs_nothrow();
- bool impl_backupDocument_nothrow() const;
- void impl_reloadDocument_nothrow( bool _bMigrationSuccess );
-
- private:
- DECL_LINK( OnStartMigration, void* );
-
- private:
- ::std::auto_ptr< MacroMigrationDialog_Data > m_pData;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MACROMIGRATIONDIALOG_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/macromigrationpages.cxx b/dbaccess/source/ext/macromigration/macromigrationpages.cxx
deleted file mode 100644
index cd4608b74..000000000
--- a/dbaccess/source/ext/macromigration/macromigrationpages.cxx
+++ /dev/null
@@ -1,364 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbaccess_helpid.hrc"
-#include "dbmm_module.hxx"
-#include "dbmm_global.hrc"
-#include "macromigration.hrc"
-#include "macromigrationpages.hxx"
-#include "macromigrationdialog.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/frame/XModel.hpp>
-/** === end UNO includes === **/
-
-#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
-#include <vcl/metric.hxx>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::UNO_QUERY;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
- using ::com::sun::star::uno::UNO_SET_THROW;
- using ::com::sun::star::uno::Exception;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::uno::makeAny;
- using ::com::sun::star::uno::Sequence;
- using ::com::sun::star::frame::XModel;
- /** === end UNO using === **/
-
- //====================================================================
- //= MacroMigrationPage
- //====================================================================
- //--------------------------------------------------------------------
- MacroMigrationPage::MacroMigrationPage( MacroMigrationDialog& _rParentDialog, const ResId& _rRes )
- :MacroMigrationPage_Base( &_rParentDialog, _rRes )
- ,m_aHeader( this, MacroMigrationResId( FT_HEADER ) )
- {
- Font aFont( m_aHeader.GetFont() );
- aFont.SetWeight( WEIGHT_BOLD );
- m_aHeader.SetFont( aFont );
- }
-
- //--------------------------------------------------------------------
- MacroMigrationPage::~MacroMigrationPage()
- {
- }
-
- //--------------------------------------------------------------------
- const MacroMigrationDialog& MacroMigrationPage::getDialog() const
- {
- return *dynamic_cast< const MacroMigrationDialog* >( GetParent() );
- }
-
- //--------------------------------------------------------------------
- MacroMigrationDialog& MacroMigrationPage::getDialog()
- {
- return *dynamic_cast< MacroMigrationDialog* >( GetParent() );
- }
-
- //====================================================================
- //= PreparationPage
- //====================================================================
- //--------------------------------------------------------------------
- PreparationPage::PreparationPage( MacroMigrationDialog& _rParentDialog )
- :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_PREPARE ) )
- ,m_aIntroduction ( this, MacroMigrationResId( FT_INTRODUCTION ) )
- ,m_aCloseDocError( this, MacroMigrationResId( FT_CLOSE_DOC_ERROR ) )
- {
- FreeResource();
- }
-
- //--------------------------------------------------------------------
- void PreparationPage::showCloseDocsError( bool _bShow )
- {
- m_aCloseDocError.Show( _bShow );
- }
-
- //--------------------------------------------------------------------
- TabPage* PreparationPage::Create( ::svt::RoadmapWizard& _rParentDialog )
- {
- return new PreparationPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
- }
-
- //====================================================================
- //= SaveDBDocPage
- //====================================================================
- //--------------------------------------------------------------------
- SaveDBDocPage::SaveDBDocPage( MacroMigrationDialog& _rParentDialog )
- :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_SAVE_DBDOC_AS ) )
- ,m_aExplanation ( this, MacroMigrationResId( FT_EXPLANATION ) )
- ,m_aSaveAsLabel ( this, MacroMigrationResId( FT_SAVE_AS_LABEL ) )
- ,m_aSaveAsLocation ( this, MacroMigrationResId( ED_SAVE_AS_LOCATION ) )
- ,m_aBrowseSaveAsLocation( this, MacroMigrationResId( PB_BROWSE_SAVE_AS_LOCATION ) )
- ,m_aStartMigration ( this, MacroMigrationResId( FT_START_MIGRATION ) )
- ,m_aLocationController( _rParentDialog.getComponentContext(), m_aSaveAsLocation, m_aBrowseSaveAsLocation )
- {
- FreeResource();
-
- m_aSaveAsLocation.SetModifyHdl( LINK( this, SaveDBDocPage, OnLocationModified ) );
- m_aSaveAsLocation.SetDropDownLineCount( 20 );
-
- m_aSaveAsLocation.SetHelpId( HID_MACRO_MIGRATION_BACKUP_LOCATION );
-
- impl_updateLocationDependentItems();
- }
-
- //--------------------------------------------------------------------
- void SaveDBDocPage::impl_updateLocationDependentItems()
- {
- updateDialogTravelUI();
- m_aStartMigration.Show( m_aSaveAsLocation.GetText().Len() > 0 );
- }
-
- //--------------------------------------------------------------------
- IMPL_LINK( SaveDBDocPage, OnLocationModified, Edit*, /**/ )
- {
- impl_updateLocationDependentItems();
- return 0L;
- }
-
- //--------------------------------------------------------------------
- void SaveDBDocPage::initializePage()
- {
- OWizardPage::initializePage();
-
- try
- {
- // get the document's current URL
- Reference< XModel > xDocument( getDialog().getDocument(), UNO_QUERY_THROW );
- INetURLObject aURLParser( xDocument->getURL() );
- OSL_ENSURE( aURLParser.GetProtocol() != INET_PROT_NOT_VALID, "SaveDBDocPage::initializePage: illegal document URL!" );
-
- ::rtl::OUStringBuffer aBaseName( aURLParser.getBase() );
- aBaseName.appendAscii( ".backup" );
- aURLParser.setBase( aBaseName.makeStringAndClear() );
-
- m_aLocationController.setURL( aURLParser.GetMainURL( INetURLObject::NO_DECODE ) );
- impl_updateLocationDependentItems();
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- }
-
- //--------------------------------------------------------------------
- bool SaveDBDocPage::canAdvance() const
- {
- if ( !MacroMigrationPage::canAdvance() )
- return false;
-
- return m_aSaveAsLocation.GetText().Len() > 0;
- }
-
- //--------------------------------------------------------------------
- sal_Bool SaveDBDocPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
- {
- if ( !MacroMigrationPage::commitPage( _eReason ) )
- return sal_False;
-
- if ( ::svt::WizardTypes::eTravelBackward == _eReason )
- return sal_True;
-
- if ( !m_aLocationController.prepareCommit() )
- return sal_False;
-
- return sal_True;
- }
-
- //--------------------------------------------------------------------
- TabPage* SaveDBDocPage::Create( ::svt::RoadmapWizard& _rParentDialog )
- {
- return new SaveDBDocPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
- }
-
- //====================================================================
- //= ProgressPage
- //====================================================================
- //--------------------------------------------------------------------
- ProgressPage::ProgressPage( MacroMigrationDialog& _rParentDialog )
- :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_MIGRATE ) )
- ,m_aObjectCount ( this, MacroMigrationResId( FT_OBJECT_COUNT ) )
- ,m_aCurrentObjectLabel ( this, MacroMigrationResId( FT_CURRENT_OBJECT_LABEL ) )
- ,m_aCurrentObject ( this, MacroMigrationResId( FT_CURRENT_OBJECT ) )
- ,m_aCurrentActionLabel ( this, MacroMigrationResId( FT_CURRENT_PROGRESS_LABEL ) )
- ,m_aCurrentAction ( this, MacroMigrationResId( FT_CURRENT_PROGRESS ) )
- ,m_aCurrentProgress ( this, MacroMigrationResId( WND_CURRENT_PROGRESS ) )
- ,m_aAllProgressLabel ( this, MacroMigrationResId( FT_ALL_PROGRESS_LABEL ) )
- ,m_aAllProgressText ( this, MacroMigrationResId( FT_OBJECT_COUNT_PROGRESS ) )
- ,m_aAllProgress ( this, MacroMigrationResId( WND_ALL_PROGRESS ) )
- ,m_aMigrationDone ( this, MacroMigrationResId( FT_MIGRATION_DONE ) )
- {
- FreeResource();
- }
-
- //--------------------------------------------------------------------
- TabPage* ProgressPage::Create( ::svt::RoadmapWizard& _rParentDialog )
- {
- return new ProgressPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::setDocumentCounts( const sal_Int32 _nForms, const sal_Int32 _nReports )
- {
- String sText( m_aObjectCount.GetText() );
- sText.SearchAndReplaceAscii( "$forms$", String::CreateFromInt32( _nForms ) );
- sText.SearchAndReplaceAscii( "$reports$", String::CreateFromInt32( _nReports ) );
- m_aObjectCount.SetText( sText );
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::onFinishedSuccessfully()
- {
- m_aMigrationDone.Show();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::startObject( const ::rtl::OUString& _rObjectName, const ::rtl::OUString& _rCurrentAction, const sal_uInt32 _nRange )
- {
- m_aCurrentObject.SetText( _rObjectName );
- m_aCurrentAction.SetText( _rCurrentAction );
- m_aCurrentProgress.SetRange( _nRange );
- m_aCurrentProgress.SetValue( (sal_uInt32)0 );
-
- // since this is currently called from the main thread, which does not have the chance
- // to re-schedule, we need to explicitly update the display
- m_aCurrentObject.Update();
- m_aCurrentAction.Update();
- Update();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::setObjectProgressText( const ::rtl::OUString& _rText )
- {
- m_aCurrentAction.SetText( _rText );
- m_aCurrentAction.Update();
- Update();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::setObjectProgressValue( const sal_uInt32 _nValue )
- {
- m_aCurrentProgress.SetValue( _nValue );
- Update();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::endObject()
- {
- m_aCurrentAction.SetText( String() );
- m_aCurrentProgress.SetValue( m_aCurrentProgress.GetRange() );
- m_aCurrentAction.Update();
- Update();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::start( const sal_uInt32 _nOverallRange )
- {
- m_aAllProgress.SetRange( _nOverallRange );
- Update();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::setOverallProgressText( const ::rtl::OUString& _rText )
- {
- m_aAllProgressText.SetText( _rText );
- Update();
- }
-
- //--------------------------------------------------------------------
- void ProgressPage::setOverallProgressValue( const sal_uInt32 _nValue )
- {
- m_aAllProgress.SetValue( _nValue );
- Update();
- }
-
- //====================================================================
- //= ResultPage
- //====================================================================
- //--------------------------------------------------------------------
- ResultPage::ResultPage( MacroMigrationDialog& _rParentDialog )
- :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_SUMMARY ) )
- ,m_aChangesLabel( this, MacroMigrationResId( FT_CHANGES_LABEL ) )
- ,m_aChanges ( this, MacroMigrationResId( ED_CHANGES ) )
- ,m_aSuccessful ( MacroMigrationResId( STR_SUCCESSFUL ) )
- ,m_aUnsuccessful( MacroMigrationResId( STR_UNSUCCESSFUL ) )
- {
- FreeResource();
- }
-
- //--------------------------------------------------------------------
- TabPage* ResultPage::Create( ::svt::RoadmapWizard& _rParentDialog )
- {
- return new ResultPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
- }
-
- //--------------------------------------------------------------------
- void ResultPage::displayMigrationLog( const bool _bSuccessful, const String& _rSummary )
- {
- m_aChangesLabel.SetText( _bSuccessful ? m_aSuccessful : m_aUnsuccessful );
- m_aChanges.SetText( _rSummary );
-
- // resize m_aChangesLabel and m_aChances as needed for the label text to fit
- Rectangle aOriginalLabelSize( m_aChangesLabel.GetPosPixel(), m_aChangesLabel.GetSizePixel() );
- // assume 3 lines, at most
- Rectangle aNewLabelSize( aOriginalLabelSize );
- aNewLabelSize.Bottom() = aNewLabelSize.Top() + m_aChangesLabel.LogicToPixel( Size( 0, 3*8 ), MAP_APPFONT ).Height();
- TextRectInfo aInfo;
- aNewLabelSize = m_aChangesLabel.GetTextRect( aNewLabelSize, m_aChangesLabel.GetText(), TEXT_DRAW_MULTILINE | TEXT_DRAW_WORDBREAK, &aInfo );
- aNewLabelSize.Bottom() = aNewLabelSize.Top() + m_aChangesLabel.LogicToPixel( Size( 0, aInfo.GetLineCount() * 8 ), MAP_APPFONT ).Height();
-
- m_aChangesLabel.SetSizePixel( aNewLabelSize.GetSize() );
-
- long nChangesDiff = aNewLabelSize.GetHeight() - aOriginalLabelSize.GetHeight();
- Size aChangesSize( m_aChanges.GetSizePixel() );
- aChangesSize.Height() -= nChangesDiff;
- m_aChanges.SetSizePixel( aChangesSize );
-
- Point aChangesPos( m_aChanges.GetPosPixel() );
- aChangesPos.Y() += nChangesDiff;
- m_aChanges.SetPosPixel( aChangesPos );
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/macromigrationpages.hxx b/dbaccess/source/ext/macromigration/macromigrationpages.hxx
deleted file mode 100644
index 5b23e8105..000000000
--- a/dbaccess/source/ext/macromigration/macromigrationpages.hxx
+++ /dev/null
@@ -1,184 +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 DBACCESS_MACROMIGRATIONPAGES_HXX
-#define DBACCESS_MACROMIGRATIONPAGES_HXX
-
-#include "migrationprogress.hxx"
-#include "rangeprogressbar.hxx"
-
-#include <svtools/svmedit.hxx>
-#include <svtools/urlcontrol.hxx>
-#include <svtools/wizardmachine.hxx>
-#include <svx/databaselocationinput.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/edit.hxx>
-
-namespace svt
-{
- class RoadmapWizard;
-}
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- class MacroMigrationDialog;
-
- //====================================================================
- //= MacroMigrationPage
- //====================================================================
- typedef ::svt::OWizardPage MacroMigrationPage_Base;
- class MacroMigrationPage : public MacroMigrationPage_Base
- {
- public:
- MacroMigrationPage( MacroMigrationDialog& _rParentDialog, const ResId& _rRes );
- ~MacroMigrationPage();
-
- protected:
- const MacroMigrationDialog& getDialog() const;
- MacroMigrationDialog& getDialog() ;
-
- protected:
- FixedText m_aHeader;
- };
-
- //====================================================================
- //= PreparationPage
- //====================================================================
- class PreparationPage : public MacroMigrationPage
- {
- public:
- PreparationPage( MacroMigrationDialog& _rParentDialog );
-
- static TabPage* Create( ::svt::RoadmapWizard& _rParentDialog );
-
- public:
- void showCloseDocsError( bool _bShow );
-
- protected:
- FixedText m_aIntroduction;
- FixedText m_aCloseDocError;
- };
-
- //====================================================================
- //= SaveDBDocPage
- //====================================================================
- class SaveDBDocPage : public MacroMigrationPage
- {
- public:
- SaveDBDocPage( MacroMigrationDialog& _rParentDialog );
- static TabPage* Create( ::svt::RoadmapWizard& _rParentDialog );
-
- public:
- ::rtl::OUString getBackupLocation() const { return m_aLocationController.getURL(); }
- void grabLocationFocus() { m_aSaveAsLocation.GrabFocus(); }
-
- protected:
- FixedText m_aExplanation;
- FixedText m_aSaveAsLabel;
- ::svt::OFileURLControl m_aSaveAsLocation;
- PushButton m_aBrowseSaveAsLocation;
- FixedText m_aStartMigration;
- ::svx::DatabaseLocationInputController
- m_aLocationController;
-
- protected:
- // IWizardPageController overridables
- virtual void initializePage();
- virtual sal_Bool commitPage( ::svt::WizardTypes::CommitPageReason _eReason );
- virtual bool canAdvance() const;
-
- private:
- DECL_LINK( OnLocationModified, Edit* );
- void impl_updateLocationDependentItems();
- };
-
- //====================================================================
- //= ProgressPage
- //====================================================================
- class ProgressPage : public MacroMigrationPage, public IMigrationProgress
- {
- public:
- ProgressPage( MacroMigrationDialog& _rParentDialog );
-
- static TabPage* Create( ::svt::RoadmapWizard& _rParentDialog );
-
- void setDocumentCounts( const sal_Int32 _nForms, const sal_Int32 _nReports );
- void onFinishedSuccessfully();
-
- protected:
- // IMigrationProgress
- virtual void startObject( const ::rtl::OUString& _rObjectName, const ::rtl::OUString& _rCurrentAction, const sal_uInt32 _bRange );
- virtual void setObjectProgressText( const ::rtl::OUString& _rText );
- virtual void setObjectProgressValue( const sal_uInt32 _nValue );
- virtual void endObject();
- virtual void start( const sal_uInt32 _nOverallRange );
- virtual void setOverallProgressText( const ::rtl::OUString& _rText );
- virtual void setOverallProgressValue( const sal_uInt32 _nValue );
-
- private:
- FixedText m_aObjectCount;
- FixedText m_aCurrentObjectLabel;
- FixedText m_aCurrentObject;
- FixedText m_aCurrentActionLabel;
- FixedText m_aCurrentAction;
- RangeProgressBar m_aCurrentProgress;
- FixedText m_aAllProgressLabel;
- FixedText m_aAllProgressText;
- RangeProgressBar m_aAllProgress;
- FixedText m_aMigrationDone;
- };
-
- //====================================================================
- //= ResultPage
- //====================================================================
- class ResultPage : public MacroMigrationPage
- {
- public:
- ResultPage( MacroMigrationDialog& _rParentDialog );
-
- static TabPage* Create( ::svt::RoadmapWizard& _rParentDialog );
-
- void displayMigrationLog( const bool _bSuccessful, const String& _rLog );
-
- private:
- FixedText m_aChangesLabel;
- MultiLineEdit m_aChanges;
- String m_aSuccessful;
- String m_aUnsuccessful;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MACROMIGRATIONPAGES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/macromigrationwizard.cxx b/dbaccess/source/ext/macromigration/macromigrationwizard.cxx
deleted file mode 100644
index 75dcfcadc..000000000
--- a/dbaccess/source/ext/macromigration/macromigrationwizard.cxx
+++ /dev/null
@@ -1,266 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_module.hxx"
-#include "dbmm_global.hrc"
-#include "macromigrationdialog.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/ucb/AlreadyInitializedException.hpp>
-#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-/** === end UNO includes === **/
-
-#include <comphelper/componentcontext.hxx>
-#include <svtools/genericunodialog.hxx>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::UNO_QUERY;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
- using ::com::sun::star::uno::UNO_SET_THROW;
- using ::com::sun::star::uno::Exception;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::uno::makeAny;
- using ::com::sun::star::uno::XComponentContext;
- using ::com::sun::star::uno::Sequence;
- using ::com::sun::star::beans::XPropertySetInfo;
- using ::com::sun::star::beans::Property;
- using ::com::sun::star::ucb::AlreadyInitializedException;
- using ::com::sun::star::sdb::XOfficeDatabaseDocument;
- using ::com::sun::star::lang::IllegalArgumentException;
- using ::com::sun::star::frame::XStorable;
- /** === end UNO using === **/
-
- //====================================================================
- //= MacroMigrationDialogService
- //====================================================================
- class MacroMigrationDialogService;
- typedef ::svt::OGenericUnoDialog MacroMigrationDialogService_Base;
- typedef ::comphelper::OPropertyArrayUsageHelper< MacroMigrationDialogService > MacroMigrationDialogService_PBase;
-
- class MacroMigrationDialogService
- :public MacroMigrationDialogService_Base
- ,public MacroMigrationDialogService_PBase
- ,public MacroMigrationModuleClient
- {
- public:
- MacroMigrationDialogService( const Reference< XComponentContext >& _rxContext );
-
- // XTypeProvider
- virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw(RuntimeException);
- virtual Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const com::sun::star::uno::Sequence< com::sun::star::uno::Any >& aArguments ) throw(com::sun::star::uno::Exception, com::sun::star::uno::RuntimeException);
-
- // XPropertySet
- virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(RuntimeException);
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-
- // OPropertyArrayUsageHelper
- virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
-
- // helper for factories
- static Reference< XInterface > SAL_CALL Create( const Reference< XComponentContext >& _rxContext );
- static ::rtl::OUString SAL_CALL getImplementationName_static() throw(RuntimeException);
- static Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static() throw(RuntimeException);
-
- protected:
- ~MacroMigrationDialogService();
-
- protected:
- virtual Dialog* createDialog( Window* _pParent );
- virtual void destroyDialog();
-
- private:
- ::comphelper::ComponentContext m_aContext;
- Reference< XOfficeDatabaseDocument > m_xDocument;
- };
-
- //====================================================================
- //= MacroMigrationDialogService
- //====================================================================
- //--------------------------------------------------------------------
- MacroMigrationDialogService::MacroMigrationDialogService( const Reference< XComponentContext >& _rxContext )
- :MacroMigrationDialogService_Base( _rxContext )
- ,m_aContext( _rxContext )
- {
- m_bNeedInitialization = true;
- }
-
- //--------------------------------------------------------------------
- MacroMigrationDialogService::~MacroMigrationDialogService()
- {
- // we do this here cause the base class' call to destroyDialog won't reach us anymore : we're within an dtor,
- // so this virtual-method-call the base class does does not work, we're already dead then ...
- if ( m_pDialog )
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- if ( m_pDialog )
- destroyDialog();
- }
- }
-
- //--------------------------------------------------------------------
- Reference< XInterface > SAL_CALL MacroMigrationDialogService::Create( const Reference< XComponentContext >& _rxContext )
- {
- return *(new MacroMigrationDialogService( _rxContext ) );
- }
-
- //--------------------------------------------------------------------
- Dialog* MacroMigrationDialogService::createDialog( Window* _pParent )
- {
- return new MacroMigrationDialog( _pParent, m_aContext, m_xDocument );
- }
-
- //--------------------------------------------------------------------
- void MacroMigrationDialogService::destroyDialog()
- {
- MacroMigrationDialogService_Base::destroyDialog();
- }
-
- //--------------------------------------------------------------------
- Sequence< sal_Int8 > SAL_CALL MacroMigrationDialogService::getImplementationId() throw(RuntimeException)
- {
- static ::cppu::OImplementationId* pId = NULL;
- if ( !pId )
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if ( !pId )
- {
- static ::cppu::OImplementationId aId;
- pId = &aId;
- }
- }
- return pId->getImplementationId();
- }
-
- //--------------------------------------------------------------------
- ::rtl::OUString SAL_CALL MacroMigrationDialogService::getImplementationName_static() throw(RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.dbaccess.macromigration.MacroMigrationDialogService" ) );
- }
-
- //--------------------------------------------------------------------
- Sequence< ::rtl::OUString > SAL_CALL MacroMigrationDialogService::getSupportedServiceNames_static() throw(RuntimeException)
- {
- Sequence< ::rtl::OUString > aServices(1);
- aServices[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.application.MacroMigrationWizard" ) );
- return aServices;
- }
-
- //--------------------------------------------------------------------
- ::rtl::OUString SAL_CALL MacroMigrationDialogService::getImplementationName() throw(RuntimeException)
- {
- return getImplementationName_static();
- }
-
- //--------------------------------------------------------------------
- Sequence< ::rtl::OUString > SAL_CALL MacroMigrationDialogService::getSupportedServiceNames() throw(RuntimeException)
- {
- return getSupportedServiceNames_static();
- }
-
- //--------------------------------------------------------------------
- void SAL_CALL MacroMigrationDialogService::initialize( const Sequence< Any >& _rArguments ) throw(Exception, RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- if ( m_bInitialized )
- throw AlreadyInitializedException( ::rtl::OUString(), *this );
-
- if ( _rArguments.getLength() != 1 )
- throw IllegalArgumentException(
- String(MacroMigrationResId(STR_INVALID_NUMBER_ARGS)),
- *this,
- 1
- );
-
- m_xDocument.set( _rArguments[0], UNO_QUERY );
- if ( !m_xDocument.is() )
- throw IllegalArgumentException(
- String(MacroMigrationResId(STR_NO_DATABASE)),
- *this,
- 1
- );
-
- Reference< XStorable > xDocStor( m_xDocument, UNO_QUERY_THROW );
- if ( xDocStor->isReadonly() )
- throw IllegalArgumentException(
- String(MacroMigrationResId(STR_NOT_READONLY)),
- *this,
- 1
- );
-
- m_bInitialized = true;
- }
-
- //--------------------------------------------------------------------
- Reference< XPropertySetInfo > SAL_CALL MacroMigrationDialogService::getPropertySetInfo() throw(RuntimeException)
- {
- return createPropertySetInfo( getInfoHelper() );
- }
-
- //--------------------------------------------------------------------
- ::cppu::IPropertyArrayHelper& SAL_CALL MacroMigrationDialogService::getInfoHelper()
- {
- return *const_cast< MacroMigrationDialogService* >( this )->getArrayHelper();
- }
-
- //--------------------------------------------------------------------
- ::cppu::IPropertyArrayHelper* MacroMigrationDialogService::createArrayHelper( ) const
- {
- Sequence< Property > aProps;
- describeProperties( aProps );
- return new ::cppu::OPropertyArrayHelper( aProps );
- }
-
- //--------------------------------------------------------------------
- void createRegistryInfo_MacroMigrationDialogService()
- {
- static OAutoRegistration< MacroMigrationDialogService > aAutoRegistration;
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/migrationengine.cxx b/dbaccess/source/ext/macromigration/migrationengine.cxx
deleted file mode 100644
index 90b77e306..000000000
--- a/dbaccess/source/ext/macromigration/migrationengine.cxx
+++ /dev/null
@@ -1,1993 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_global.hrc"
-#include "dbmm_module.hxx"
-#include "dbmm_types.hxx"
-#include "docinteraction.hxx"
-#include "migrationengine.hxx"
-#include "migrationerror.hxx"
-#include "migrationprogress.hxx"
-#include "migrationlog.hxx"
-#include "progresscapture.hxx"
-#include "progressmixer.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/sdb/XFormDocumentsSupplier.hpp>
-#include <com/sun/star/sdb/XReportDocumentsSupplier.hpp>
-#include <com/sun/star/util/XCloseable.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/ucb/XCommandProcessor.hpp>
-#include <com/sun/star/ucb/XContent.hpp>
-#include <com/sun/star/embed/XComponentSupplier.hpp>
-#include <com/sun/star/embed/ElementModes.hpp>
-#include <com/sun/star/document/XStorageBasedDocument.hpp>
-#include <com/sun/star/embed/XTransactedObject.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/embed/XEmbedPersist.hpp>
-#include <com/sun/star/script/DocumentScriptLibraryContainer.hpp>
-#include <com/sun/star/script/DocumentDialogLibraryContainer.hpp>
-#include <com/sun/star/document/XEmbeddedScripts.hpp>
-#include <com/sun/star/document/XEventsSupplier.hpp>
-#include <com/sun/star/uri/UriReferenceFactory.hpp>
-#include <com/sun/star/uri/XVndSunStarScriptUrlReference.hpp>
-#include <com/sun/star/form/XFormsSupplier.hpp>
-#include <com/sun/star/drawing/XDrawPageSupplier.hpp>
-#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
-#include <com/sun/star/script/XEventAttacherManager.hpp>
-#include <com/sun/star/script/XLibraryContainerPassword.hpp>
-#include <com/sun/star/io/WrongFormatException.hpp>
-#include <com/sun/star/script/XScriptEventsSupplier.hpp>
-#include <com/sun/star/io/XInputStreamProvider.hpp>
-/** === end UNO includes === **/
-
-#include <comphelper/documentinfo.hxx>
-#include <comphelper/interaction.hxx>
-#include <comphelper/namedvaluecollection.hxx>
-#include <comphelper/storagehelper.hxx>
-#include <comphelper/string.hxx>
-#include <comphelper/types.hxx>
-#include <cppuhelper/exc_hlp.hxx>
-#include <tools/string.hxx>
-#include <tools/diagnose_ex.h>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ref.hxx>
-#include <unotools/sharedunocomponent.hxx>
-#include <xmlscript/xmldlg_imexp.hxx>
-
-#include <vector>
-#include <set>
-
-#define DEFAULT_DOC_PROGRESS_RANGE 100000
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::UNO_QUERY;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
- using ::com::sun::star::uno::UNO_SET_THROW;
- using ::com::sun::star::uno::Exception;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::uno::makeAny;
- using ::com::sun::star::sdb::XOfficeDatabaseDocument;
- using ::com::sun::star::sdb::XFormDocumentsSupplier;
- using ::com::sun::star::sdb::XReportDocumentsSupplier;
- using ::com::sun::star::container::XNameAccess;
- using ::com::sun::star::uno::Sequence;
- using ::com::sun::star::util::XCloseable;
- using ::com::sun::star::util::CloseVetoException;
- using ::com::sun::star::lang::XComponent;
- using ::com::sun::star::frame::XModel;
- using ::com::sun::star::frame::XComponentLoader;
- using ::com::sun::star::ucb::XCommandProcessor;
- using ::com::sun::star::ucb::XContent;
- using ::com::sun::star::ucb::Command;
- using ::com::sun::star::embed::XComponentSupplier;
- using ::com::sun::star::task::XStatusIndicator;
- using ::com::sun::star::embed::XStorage;
- using ::com::sun::star::document::XStorageBasedDocument;
- using ::com::sun::star::embed::XTransactedObject;
- using ::com::sun::star::frame::XStorable;
- using ::com::sun::star::embed::XEmbedPersist;
- using ::com::sun::star::script::DocumentDialogLibraryContainer;
- using ::com::sun::star::script::DocumentScriptLibraryContainer;
- using ::com::sun::star::script::XStorageBasedLibraryContainer;
- using ::com::sun::star::document::XEmbeddedScripts;
- using ::com::sun::star::container::XNameContainer;
- using ::com::sun::star::document::XEventsSupplier;
- using ::com::sun::star::container::XNameReplace;
- using com::sun::star::uri::UriReferenceFactory;
- using com::sun::star::uri::XUriReferenceFactory;
- using com::sun::star::uri::XVndSunStarScriptUrlReference;
- using ::com::sun::star::form::XFormsSupplier;
- using ::com::sun::star::drawing::XDrawPageSupplier;
- using ::com::sun::star::drawing::XDrawPagesSupplier;
- using ::com::sun::star::drawing::XDrawPage;
- using ::com::sun::star::drawing::XDrawPages;
- using ::com::sun::star::container::XIndexAccess;
- using ::com::sun::star::script::XEventAttacherManager;
- using ::com::sun::star::script::ScriptEventDescriptor;
- using ::com::sun::star::script::XLibraryContainerPassword;
- using ::com::sun::star::io::WrongFormatException;
- using ::com::sun::star::script::XScriptEventsSupplier;
- using ::com::sun::star::io::XInputStreamProvider;
- using ::com::sun::star::io::XInputStream;
- /** === end UNO using === **/
- namespace ElementModes = ::com::sun::star::embed::ElementModes;
-
-// migration phases whose progresses are to be mixed into one progress
-#define PHASE_JAVASCRIPT 1
-#define PHASE_BEANSHELL 2
-#define PHASE_PYTHON 3
-#define PHASE_JAVA 4
-#define PHASE_BASIC 5
-#define PHASE_DIALOGS 6
-
- //====================================================================
- //= SubDocument
- //====================================================================
- struct SubDocument
- {
- Reference< XCommandProcessor > xCommandProcessor;
- Reference< XModel > xDocument; // valid only temporarily
- ::rtl::OUString sHierarchicalName;
- SubDocumentType eType;
- size_t nNumber;
-
- SubDocument( const Reference< XCommandProcessor >& _rxCommandProcessor, const ::rtl::OUString& _rName,
- const SubDocumentType _eType, const size_t _nNumber )
- :xCommandProcessor( _rxCommandProcessor )
- ,xDocument()
- ,sHierarchicalName( _rName )
- ,eType( _eType )
- ,nNumber( _nNumber )
- {
- }
- };
-
- typedef ::std::vector< SubDocument > SubDocuments;
-
- //====================================================================
- //= helper
- //====================================================================
- //--------------------------------------------------------------------
- typedef ::utl::SharedUNOComponent< XStorage > SharedStorage;
-
- namespace
- {
- //----------------------------------------------------------------
- static const ::rtl::OUString& lcl_getScriptsStorageName()
- {
- static const ::rtl::OUString s_sScriptsStorageName( RTL_CONSTASCII_USTRINGPARAM( "Scripts" ) );
- return s_sScriptsStorageName;
- }
-
- //----------------------------------------------------------------
- static const ::rtl::OUString& lcl_getScriptsSubStorageName( const ScriptType _eType )
- {
- static const ::rtl::OUString s_sBeanShell ( RTL_CONSTASCII_USTRINGPARAM( "beanshell" ) );
- static const ::rtl::OUString s_sJavaScript( RTL_CONSTASCII_USTRINGPARAM( "javascript" ) );
- static const ::rtl::OUString s_sPython ( RTL_CONSTASCII_USTRINGPARAM( "python" ) ); // TODO: is this correct?
- static const ::rtl::OUString s_sJava ( RTL_CONSTASCII_USTRINGPARAM( "java" ) );
-
- switch ( _eType )
- {
- case eBeanShell: return s_sBeanShell;
- case eJavaScript: return s_sJavaScript;
- case ePython: return s_sPython;
- case eJava: return s_sJava;
- default:
- break;
- }
-
- OSL_FAIL( "lcl_getScriptsSubStorageName: illegal type!" );
- static ::rtl::OUString s_sEmpty;
- return s_sEmpty;
- }
-
- //----------------------------------------------------------------
- static bool lcl_getScriptTypeFromLanguage( const ::rtl::OUString& _rLanguage, ScriptType& _out_rScriptType )
- {
- struct LanguageMapping
- {
- const sal_Char* pAsciiLanguage;
- const ScriptType eScriptType;
-
- LanguageMapping( const sal_Char* _pAsciiLanguage, const ScriptType _eScriptType )
- :pAsciiLanguage( _pAsciiLanguage )
- ,eScriptType( _eScriptType )
- {
- }
- }
- aLanguageMapping[] =
- {
- LanguageMapping( "JavaScript", eJavaScript ),
- LanguageMapping( "BeanShell", eBeanShell ),
- LanguageMapping( "Java", eJava ),
- LanguageMapping( "Python", ePython ), // TODO: is this correct?
- LanguageMapping( "Basic", eBasic )
- };
- for ( size_t i=0; i < SAL_N_ELEMENTS( aLanguageMapping ); ++i )
- {
- if ( _rLanguage.equalsAscii( aLanguageMapping[i].pAsciiLanguage ) )
- {
- _out_rScriptType = aLanguageMapping[i].eScriptType;
- return true;
- }
- }
- OSL_FAIL( "lcl_getScriptTypeFromLanguage: unknown language!" );
- return false;
- }
-
- //----------------------------------------------------------------
- ::rtl::OUString lcl_getSubDocumentDescription( const SubDocument& _rDocument )
- {
- ::rtl::OUString sObjectName = String( MacroMigrationResId( _rDocument.eType == eForm ? STR_FORM : STR_REPORT ) );
- ::comphelper::string::searchAndReplaceAsciiI( sObjectName, "$name$", _rDocument.sHierarchicalName );
- return sObjectName;
- }
-
- //----------------------------------------------------------------
- static Any lcl_executeCommand_throw( const Reference< XCommandProcessor >& _rxCommandProc,
- const sal_Char* _pAsciiCommand )
- {
- OSL_PRECOND( _rxCommandProc.is(), "lcl_executeCommand_throw: illegal object!" );
- if ( !_rxCommandProc.is() )
- return Any();
-
- Command aCommand;
- aCommand.Name = ::rtl::OUString::createFromAscii( _pAsciiCommand );
- return _rxCommandProc->execute(
- aCommand, _rxCommandProc->createCommandIdentifier(), NULL );
- }
-
- //----------------------------------------------------------------
- ::rtl::OUString lcl_getMimeType_nothrow( const Reference< XCommandProcessor >& _rxContent )
- {
- ::rtl::OUString sMimeType;
- try
- {
- Reference< XContent > xContent( _rxContent, UNO_QUERY_THROW );
- sMimeType = xContent->getContentType();
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- return sMimeType;
- }
-
- //----------------------------------------------------------------
- enum OpenDocResult
- {
- eOpenedDoc,
- eIgnoreDoc,
- eFailure
- };
-
- //----------------------------------------------------------------
- static OpenDocResult lcl_loadSubDocument_nothrow( SubDocument& _rDocument,
- const Reference< XStatusIndicator >& _rxProgress, MigrationLog& _rLogger )
- {
- OSL_PRECOND( !_rDocument.xDocument.is(), "lcl_loadSubDocument_nothrow: already loaded!" );
-
- try
- {
- ::comphelper::NamedValueCollection aLoadArgs;
- aLoadArgs.put( "Hidden", (sal_Bool)sal_True );
- aLoadArgs.put( "StatusIndicator", _rxProgress );
-
- Reference< XCommandProcessor > xCommandProcessor( _rDocument.xCommandProcessor, UNO_SET_THROW );
- Command aCommand;
- aCommand.Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "openDesign" ) );
- aCommand.Argument <<= aLoadArgs.getPropertyValues();
- Reference< XComponent > xDocComponent(
- xCommandProcessor->execute(
- aCommand, xCommandProcessor->createCommandIdentifier(), NULL
- ),
- UNO_QUERY
- );
- OSL_ENSURE( xDocComponent.is(), "lcl_loadSubDocument_nothrow: no component loaded!" );
-
- _rDocument.xDocument.set( xDocComponent, UNO_QUERY_THROW );
- }
- catch( const Exception& )
- {
- Any aError( ::cppu::getCaughtException() );
-
- bool bCausedByNewStyleReport =
- ( _rDocument.eType == eReport )
- && ( aError.isExtractableTo( ::cppu::UnoType< WrongFormatException >::get() ) )
- && ( lcl_getMimeType_nothrow( _rDocument.xCommandProcessor ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "application/vnd.sun.xml.report" ) ) );
-
- if ( bCausedByNewStyleReport )
- {
- _rLogger.logRecoverable( MigrationError(
- ERR_NEW_STYLE_REPORT,
- lcl_getSubDocumentDescription( _rDocument )
- ) );
- return eIgnoreDoc;
- }
- else
- {
- _rLogger.logFailure( MigrationError(
- ERR_OPENING_SUB_DOCUMENT_FAILED,
- lcl_getSubDocumentDescription( _rDocument ),
- aError
- ) );
- }
- }
- return _rDocument.xDocument.is() ? eOpenedDoc : eFailure;
- }
-
- //----------------------------------------------------------------
- static bool lcl_unloadSubDocument_nothrow( SubDocument& _rDocument, MigrationLog& _rLogger )
- {
- bool bSuccess = false;
- Any aException;
- try
- {
- OSL_VERIFY( lcl_executeCommand_throw( _rDocument.xCommandProcessor, "close" ) >>= bSuccess );
- }
- catch( const Exception& )
- {
- aException = ::cppu::getCaughtException();
- }
-
- // log the failure, if any
- if ( !bSuccess )
- {
- _rLogger.logFailure( MigrationError(
- ERR_CLOSING_SUB_DOCUMENT_FAILED,
- lcl_getSubDocumentDescription( _rDocument ),
- aException
- ) );
- }
-
- _rDocument.xDocument.clear();
- return bSuccess;
- }
-
- //----------------------------------------------------------------
- bool lcl_commitStorage_nothrow( const Reference< XStorage >& _rxStorage )
- {
- try
- {
- Reference< XTransactedObject > xTrans( _rxStorage, UNO_QUERY_THROW );
- xTrans->commit();
- }
- catch( const Exception& )
- {
- return false;
- }
- return true;
- }
-
- //----------------------------------------------------------------
- bool lcl_commitDocumentStorage_nothrow( const Reference< XModel >& _rxDocument, MigrationLog& _rLogger )
- {
- bool bSuccess = false;
- Any aException;
- try
- {
- Reference< XStorageBasedDocument > xStorageDoc( _rxDocument, UNO_QUERY_THROW );
- Reference< XStorage > xDocStorage( xStorageDoc->getDocumentStorage(), UNO_QUERY_THROW );
- bSuccess = lcl_commitStorage_nothrow( xDocStorage );
- }
- catch( const Exception& )
- {
- aException = ::cppu::getCaughtException();
- }
-
- // log the failure, if any
- if ( !bSuccess )
- {
- _rLogger.logFailure( MigrationError(
- ERR_STORAGE_COMMIT_FAILED,
- ::comphelper::DocumentInfo::getDocumentTitle( _rxDocument ),
- aException
- ) );
- }
- return bSuccess;
- }
-
- //----------------------------------------------------------------
- bool lcl_storeDocument_nothrow( const Reference< XModel >& _rxDocument, MigrationLog& _rLogger )
- {
- bool bSuccess = false;
- Any aException;
- try
- {
- Reference< XStorable > xStorable( _rxDocument, UNO_QUERY_THROW );
- xStorable->store();
- bSuccess = true;
- }
- catch( const Exception& )
- {
- aException = ::cppu::getCaughtException();
- }
-
- // log the failure, if any
- if ( !bSuccess )
- {
- _rLogger.logFailure( MigrationError(
- ERR_STORING_DATABASEDOC_FAILED,
- aException
- ) );
- }
- return bSuccess;
- }
-
- //----------------------------------------------------------------
- bool lcl_storeEmbeddedDocument_nothrow( const SubDocument& _rDocument )
- {
- try
- {
- lcl_executeCommand_throw( _rDocument.xCommandProcessor, "store" );
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- return false;
- }
- return true;
- }
- }
-
- //====================================================================
- //= DrawPageIterator
- //====================================================================
- class DrawPageIterator
- {
- public:
- DrawPageIterator( const Reference< XModel >& _rxDocument )
- :m_xDocument( _rxDocument )
- ,m_nPageCount( 0 )
- ,m_nCurrentPage( 0 )
- {
- Reference< XDrawPageSupplier > xSingle( _rxDocument, UNO_QUERY );
- Reference< XDrawPagesSupplier > xMulti( _rxDocument, UNO_QUERY );
- if ( xSingle.is() )
- {
- m_xSinglePage.set( xSingle->getDrawPage(), UNO_SET_THROW );
- m_nPageCount = 1;
- }
- else if ( xMulti.is() )
- {
- m_xMultiPages.set( xMulti->getDrawPages(), UNO_SET_THROW );
- m_nPageCount = m_xMultiPages->getCount();
- }
- }
-
- bool hasMore() const
- {
- return m_nCurrentPage < m_nPageCount;
- }
-
- Reference< XDrawPage > next()
- {
- Reference< XDrawPage > xNextPage;
-
- if ( m_xSinglePage.is() )
- {
- xNextPage = m_xSinglePage;
- }
- else if ( m_xMultiPages.is() )
- {
- xNextPage.set( m_xMultiPages->getByIndex( m_nCurrentPage ), UNO_QUERY_THROW );
- }
- ++m_nCurrentPage;
- return xNextPage;
- }
-
- private:
- const Reference< XModel > m_xDocument;
- Reference< XDrawPage > m_xSinglePage;
- Reference< XDrawPages > m_xMultiPages;
- sal_Int32 m_nPageCount;
- sal_Int32 m_nCurrentPage;
- };
-
- //====================================================================
- //= FormComponentScripts
- //====================================================================
- class FormComponentScripts
- {
- public:
- FormComponentScripts(
- const Reference< XInterface >& _rxComponent,
- const Reference< XEventAttacherManager >& _rxManager,
- const sal_Int32 _nIndex
- )
- :m_xComponent( _rxComponent, UNO_SET_THROW )
- ,m_xManager( _rxManager, UNO_SET_THROW )
- ,m_nIndex( _nIndex )
- {
- }
-
- Sequence< ScriptEventDescriptor > getEvents() const
- {
- return m_xManager->getScriptEvents( m_nIndex );
- }
-
- void setEvents( const Sequence< ScriptEventDescriptor >& _rEvents ) const
- {
- m_xManager->registerScriptEvents( m_nIndex, _rEvents );
- }
-
- const Reference< XInterface >& getComponent() const
- {
- return m_xComponent;
- }
-
- private:
- const Reference< XInterface > m_xComponent;
- const Reference< XEventAttacherManager > m_xManager;
- const sal_Int32 m_nIndex;
- };
-
- //====================================================================
- //= FormComponentIterator
- //====================================================================
- class FormComponentIterator
- {
- public:
- FormComponentIterator( const Reference< XIndexAccess >& _rxContainer )
- :m_xContainer( _rxContainer, UNO_SET_THROW )
- ,m_xEventManager( _rxContainer, UNO_QUERY_THROW )
- ,m_nElementCount( _rxContainer->getCount() )
- ,m_nCurrentElement( 0 )
- {
- }
-
- bool hasMore() const
- {
- return m_nCurrentElement < m_nElementCount;
- }
-
- FormComponentScripts next()
- {
- FormComponentScripts aComponent(
- Reference< XInterface >( m_xContainer->getByIndex( m_nCurrentElement ), UNO_QUERY_THROW ),
- m_xEventManager,
- m_nCurrentElement
- );
- ++m_nCurrentElement;
- return aComponent;
- }
-
- private:
- const Reference< XIndexAccess > m_xContainer;
- const Reference< XEventAttacherManager > m_xEventManager;
- const sal_Int32 m_nElementCount;
- sal_Int32 m_nCurrentElement;
-
- };
-
- //====================================================================
- //= ScriptsStorage - declaration
- //====================================================================
- /** a helper class which encapsulates access to the storages for Java/Script, BeanShell, and Python scripts,
- i.e. all script types which can be manipulated on storage level.
- */
- class ScriptsStorage
- {
- public:
- ScriptsStorage( MigrationLog& _rLogger );
- ScriptsStorage( const Reference< XModel >& _rxDocument, MigrationLog& _rLogger );
- ~ScriptsStorage();
-
- /** determines whether the instance is valid, i.e. refers to a valid root storage
- for reading/storing scripts
- */
- inline bool isValid() const { return m_xScriptsStorage.is(); }
-
- /** binds the instance to a new document. Only to be called when the instance is not yet
- bound (i.e. isValid returns <FALSE/>).
- */
- void bind( const Reference< XModel >& _rxDocument );
-
- /// determines whether scripts of the given type are present
- bool hasScripts( const ScriptType _eType ) const;
-
- /// returns the root storage for the scripts of the given type
- SharedStorage
- getScriptsRoot( const ScriptType _eType ) const;
-
- /** returns the names of the elements in the "Scripts" storage
- */
- ::std::set< ::rtl::OUString >
- getElementNames() const;
-
- /** removes the sub storage for a given script type
- @precond
- the respective storage is empty
- @precond
- the ScriptsStorage instance was opened for writing
- */
- void removeScriptTypeStorage( const ScriptType _eType ) const;
-
- /** commits the changes at our XStorage object
- */
- bool commit();
-
- /** removes the "Scripts" sub storage from the given document's root storage
- @precond
- the "Scripts" storage is empty
- */
- static bool
- removeFromDocument( const Reference< XModel >& _rxDocument, MigrationLog& _rLogger );
-
- private:
- MigrationLog& m_rLogger;
- SharedStorage m_xScriptsStorage;
- };
-
- //====================================================================
- //= ScriptsStorage - implementation
- //====================================================================
- //--------------------------------------------------------------------
- ScriptsStorage::ScriptsStorage( MigrationLog& _rLogger )
- :m_rLogger( _rLogger )
- ,m_xScriptsStorage()
- {
- }
-
- //--------------------------------------------------------------------
- ScriptsStorage::ScriptsStorage( const Reference< XModel >& _rxDocument, MigrationLog& _rLogger )
- :m_rLogger( _rLogger )
- ,m_xScriptsStorage()
- {
- bind( _rxDocument );
- }
-
- //--------------------------------------------------------------------
- ScriptsStorage::~ScriptsStorage()
- {
- }
-
- //--------------------------------------------------------------------
- bool ScriptsStorage::commit()
- {
- return lcl_commitStorage_nothrow( m_xScriptsStorage );
- }
-
- //--------------------------------------------------------------------
- void ScriptsStorage::bind( const Reference< XModel >& _rxDocument )
- {
- OSL_PRECOND( !isValid(), "ScriptsStorage:bind: did not bother, yet, to check whether this is allowed!" );
- try
- {
- Reference< XStorageBasedDocument > xStorageDoc( _rxDocument, UNO_QUERY_THROW );
- Reference< XStorage > xDocStorage( xStorageDoc->getDocumentStorage(), UNO_QUERY_THROW );
-
- // the the "Scripts" storage exist, or if it does not (yet) exist and we are in write mode
- // => open the storage
- if ( ( xDocStorage->hasByName( lcl_getScriptsStorageName() )
- && xDocStorage->isStorageElement( lcl_getScriptsStorageName() )
- )
- || !xDocStorage->hasByName( lcl_getScriptsStorageName() )
- )
- {
- m_xScriptsStorage.set(
- xDocStorage->openStorageElement(
- lcl_getScriptsStorageName(), ElementModes::READWRITE
- ),
- UNO_QUERY_THROW
- );
- }
- }
- catch( const Exception& )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_BIND_SCRIPT_STORAGE_FAILED,
- ::comphelper::DocumentInfo::getDocumentTitle( _rxDocument ),
- ::cppu::getCaughtException()
- ) );
- }
- }
-
- //--------------------------------------------------------------------
- bool ScriptsStorage::hasScripts( const ScriptType _eType ) const
- {
- OSL_PRECOND( isValid(), "ScriptsStorage::hasScripts: illegal call!" );
- if ( !isValid() )
- return false;
-
- const ::rtl::OUString& rSubStorageName( lcl_getScriptsSubStorageName( _eType ) );
- return m_xScriptsStorage->hasByName( rSubStorageName )
- && m_xScriptsStorage->isStorageElement( rSubStorageName );
- }
-
- //--------------------------------------------------------------------
- SharedStorage ScriptsStorage::getScriptsRoot( const ScriptType _eType ) const
- {
- SharedStorage xStorage;
- if ( isValid() )
- {
- xStorage.reset( m_xScriptsStorage->openStorageElement(
- lcl_getScriptsSubStorageName( _eType ), ElementModes::READWRITE
- ) );
- }
- return xStorage;
- }
-
- //--------------------------------------------------------------------
- ::std::set< ::rtl::OUString > ScriptsStorage::getElementNames() const
- {
- Sequence< ::rtl::OUString > aElementNames;
- if ( isValid() )
- aElementNames = m_xScriptsStorage->getElementNames();
-
- ::std::set< ::rtl::OUString > aNames;
- ::std::copy(
- aElementNames.getConstArray(),
- aElementNames.getConstArray() + aElementNames.getLength(),
- ::std::insert_iterator< ::std::set< ::rtl::OUString > >( aNames, aNames.end() )
- );
- return aNames;
- }
-
- //--------------------------------------------------------------------
- void ScriptsStorage::removeScriptTypeStorage( const ScriptType _eType ) const
- {
- ::rtl::OUString sSubStorageName( lcl_getScriptsSubStorageName( _eType ) );
- if ( m_xScriptsStorage->hasByName( sSubStorageName ) )
- m_xScriptsStorage->removeElement( sSubStorageName );
- }
-
- //--------------------------------------------------------------------
- bool ScriptsStorage::removeFromDocument( const Reference< XModel >& _rxDocument, MigrationLog& _rLogger )
- {
- try
- {
- Reference< XStorageBasedDocument > xStorageDoc( _rxDocument, UNO_QUERY_THROW );
- Reference< XStorage > xDocStorage( xStorageDoc->getDocumentStorage(), UNO_QUERY_THROW );
- xDocStorage->removeElement( lcl_getScriptsStorageName() );
- }
- catch( const Exception& )
- {
- _rLogger.logFailure( MigrationError(
- ERR_REMOVE_SCRIPTS_STORAGE_FAILED,
- ::comphelper::DocumentInfo::getDocumentTitle( _rxDocument ),
- ::cppu::getCaughtException()
- ) ) ;
- return false;
- }
- return true;
- }
-
- //====================================================================
- //= ProgressDelegator
- //====================================================================
- class ProgressDelegator : public IProgressConsumer
- {
- public:
- ProgressDelegator( IMigrationProgress& _rDelegator,
- const ::rtl::OUString& _rObjectName,
- const ::rtl::OUString& _rAction
- )
- :m_rDelegator( _rDelegator )
- ,m_sObjectName( _rObjectName )
- ,m_sAction( _rAction )
- {
- }
- virtual ~ProgressDelegator()
- {
- }
-
- // IProgressConsumer
- virtual void start( sal_uInt32 _nRange )
- {
- m_rDelegator.startObject( m_sObjectName, m_sAction, _nRange );
- }
- virtual void advance( sal_uInt32 _nValue )
- {
- m_rDelegator.setObjectProgressValue( _nValue );
- }
- virtual void end()
- {
- m_rDelegator.endObject();
- }
-
- private:
- IMigrationProgress& m_rDelegator;
- ::rtl::OUString m_sObjectName;
- ::rtl::OUString m_sAction;
- };
-
- //====================================================================
- //= PhaseGuard
- //====================================================================
- class PhaseGuard
- {
- public:
- PhaseGuard( ProgressMixer& _rMixer )
- :m_rMixer( _rMixer )
- {
- }
-
- PhaseGuard( ProgressMixer& _rMixer, const PhaseID _nID, const sal_uInt32 _nPhaseRange )
- :m_rMixer( _rMixer )
- {
- start( _nID, _nPhaseRange );
- }
-
- ~PhaseGuard()
- {
- m_rMixer.endPhase();
- }
-
- void start( const PhaseID _nID, const sal_uInt32 _nPhaseRange )
- {
- m_rMixer.startPhase( _nID, _nPhaseRange );
- }
-
- private:
- ProgressMixer& m_rMixer;
- };
-
- //====================================================================
- //= MigrationEngine_Impl - declaration
- //====================================================================
- class MigrationEngine_Impl
- {
- public:
- MigrationEngine_Impl(
- const ::comphelper::ComponentContext& _rContext,
- const Reference< XOfficeDatabaseDocument >& _rxDocument,
- IMigrationProgress& _rProgress,
- MigrationLog& _rLogger
- );
- ~MigrationEngine_Impl();
-
- inline size_t getFormCount() const { return m_nFormCount; }
- inline size_t getReportCount()const { return m_nReportCount; }
- bool migrateAll();
-
- private:
- ::comphelper::ComponentContext m_aContext;
- const Reference< XOfficeDatabaseDocument > m_xDocument;
- const Reference< XModel > m_xDocumentModel;
- IMigrationProgress& m_rProgress;
- MigrationLog& m_rLogger;
- mutable DocumentID m_nCurrentDocumentID;
- SubDocuments m_aSubDocs;
- size_t m_nFormCount;
- size_t m_nReportCount;
-
- private:
- /** collects a description of all sub documents of our database document
-
- @return
- <TRUE/> if and only if collecting the documents was successful
- */
- bool impl_collectSubDocuments_nothrow();
-
- /** migrates the macros/scripts of the given sub document
- */
- bool impl_handleDocument_nothrow( const SubDocument& _rDocument ) const;
-
- /** checks the structure of the 'Scripts' folder of a sub document
- for unknown elements
-
- @return
- <TRUE/> if and only if the 'Scripts' folder contains known elements only.
- */
- bool impl_checkScriptStorageStructure_nothrow( const SubDocument& _rDocument ) const;
-
- /** migrates the scripts of the given "storage-based" script type
- */
- bool impl_migrateScriptStorage_nothrow(
- const SubDocument& _rDocument,
- const ScriptType _eScriptType,
- ProgressMixer& _rProgress,
- const PhaseID _nPhaseID
- ) const;
-
- /** migrates the content of the given "container based" libraries (Basic/Dialogs)
- */
- bool impl_migrateContainerLibraries_nothrow(
- const SubDocument& _rDocument,
- const ScriptType _eScriptType,
- ProgressMixer& _rProgress,
- const PhaseID _nPhaseID
- ) const;
-
- /** adjusts the events for the given dialog/element, taking into account the new names
- of the moved libraries
- */
- void impl_adjustDialogElementEvents_throw(
- const Reference< XInterface >& _rxElement
- ) const;
-
- /** adjusts the events in the given dialog, and its controls, taking into account the new names
- of the moved libraries
- */
- bool impl_adjustDialogEvents_nothrow(
- Any& _inout_rDialogLibraryElement,
- const ::rtl::OUString& _rDocName,
- const ::rtl::OUString& _rDialogLibName,
- const ::rtl::OUString& _rDialogName
- ) const;
-
- /** adjust the document-events which refer to macros/scripts in the document, taking into
- account the new names of the moved libraries
- */
- bool impl_adjustDocumentEvents_nothrow(
- const SubDocument& _rDocument
- ) const;
-
- /** adjusts the script references bound to form component events
- */
- bool impl_adjustFormComponentEvents_nothrow(
- const SubDocument& _rDocument
- ) const;
-
- /** adjusts the script references for the elements of the given form component container
- */
- void impl_adjustFormComponentEvents_throw(
- const Reference< XIndexAccess >& _rxComponentContainer
- ) const;
-
- /** adjusts the library name in the given script URL, so that it reflects
- the new name of the library
-
- @return <TRUE/>
- if and only if adjustments to the script code have been made
- */
- bool impl_adjustScriptLibrary_nothrow(
- const ::rtl::OUString& _rScriptType,
- ::rtl::OUString& _inout_rScriptCode
- ) const;
-
- bool impl_adjustScriptLibrary_nothrow( Any& _inout_rScriptDescriptor ) const;
- bool impl_adjustScriptLibrary_nothrow( ScriptEventDescriptor& _inout_rScriptEvent ) const;
-
- /** asks the user for a password for the given library, and unprotects the library
-
- @return <TRUE/>
- if and only if the library could be successfully unprotected
- */
- bool impl_unprotectPasswordLibrary_throw(
- const Reference< XLibraryContainerPassword >& _rxPasswordManager,
- const ScriptType _eScriptType,
- const ::rtl::OUString& _rLibraryName
- ) const;
- };
-
- //====================================================================
- //= MigrationEngine_Impl - implementation
- //====================================================================
- //--------------------------------------------------------------------
- MigrationEngine_Impl::MigrationEngine_Impl( const ::comphelper::ComponentContext& _rContext,
- const Reference< XOfficeDatabaseDocument >& _rxDocument, IMigrationProgress& _rProgress, MigrationLog& _rLogger )
- :m_aContext( _rContext )
- ,m_xDocument( _rxDocument )
- ,m_xDocumentModel( _rxDocument, UNO_QUERY_THROW )
- ,m_rProgress( _rProgress )
- ,m_rLogger( _rLogger )
- ,m_nCurrentDocumentID( - 1 )
- ,m_aSubDocs()
- ,m_nFormCount( 0 )
- ,m_nReportCount( 0 )
- {
- OSL_VERIFY( impl_collectSubDocuments_nothrow() );
- }
-
- //--------------------------------------------------------------------
- MigrationEngine_Impl::~MigrationEngine_Impl()
- {
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::migrateAll()
- {
- if ( m_aSubDocs.empty() )
- {
- OSL_FAIL( "MigrationEngine_Impl::migrateAll: no forms/reports found!" );
- // The whole migration wizard is not expected to be called when there are no forms/reports
- // with macros, not to mention when there are no forms/reports at all.
- return false;
- }
-
- // initialize global progress
- sal_Int32 nOverallRange( m_aSubDocs.size() );
- String sProgressSkeleton = String( MacroMigrationResId( STR_OVERALL_PROGRESS ) );
- sProgressSkeleton.SearchAndReplaceAscii( "$overall$", String::CreateFromInt32( nOverallRange ) );
-
- m_rProgress.start( nOverallRange );
-
- for ( SubDocuments::const_iterator doc = m_aSubDocs.begin();
- doc != m_aSubDocs.end();
- ++doc
- )
- {
- sal_Int32 nOverallProgressValue( doc - m_aSubDocs.begin() + 1 );
- // update overall progress text
- ::rtl::OUString sOverallProgress( sProgressSkeleton );
- ::comphelper::string::searchAndReplaceAsciiI( sOverallProgress, "$current$", ::rtl::OUString::valueOf( nOverallProgressValue ) );
- m_rProgress.setOverallProgressText( sOverallProgress );
-
- // migrate document
- if ( !impl_handleDocument_nothrow( *doc ) )
- return false;
-
- // update overall progress vallue
- m_rProgress.setOverallProgressValue( nOverallProgressValue );
- }
-
- // commit the root storage of the database document, for all changes made so far to take effect
- if ( !lcl_commitDocumentStorage_nothrow( m_xDocumentModel, m_rLogger ) )
- return false;
-
- // save the document
- if ( !lcl_storeDocument_nothrow( m_xDocumentModel, m_rLogger ) )
- return false;
-
- return true;
- }
-
- //--------------------------------------------------------------------
- namespace
- {
- void lcl_collectHierarchicalElementNames_throw(
- const Reference< XNameAccess >& _rxContainer, const ::rtl::OUString& _rContainerLoc,
- SubDocuments& _out_rDocs, const SubDocumentType _eType, size_t& _io_counter )
- {
- const ::rtl::OUString sHierarhicalBase(
- _rContainerLoc.getLength() ? ::rtl::OUStringBuffer( _rContainerLoc ).appendAscii( "/" ).makeStringAndClear()
- : ::rtl::OUString() );
-
- Sequence< ::rtl::OUString > aElementNames( _rxContainer->getElementNames() );
- for ( const ::rtl::OUString* elementName = aElementNames.getConstArray();
- elementName != aElementNames.getConstArray() + aElementNames.getLength();
- ++elementName
- )
- {
- Any aElement( _rxContainer->getByName( *elementName ) );
- ::rtl::OUString sElementName( ::rtl::OUStringBuffer( sHierarhicalBase ).append( *elementName ) );
-
- Reference< XNameAccess > xSubContainer( aElement, UNO_QUERY );
- if ( xSubContainer.is() )
- {
- lcl_collectHierarchicalElementNames_throw( xSubContainer, sElementName, _out_rDocs, _eType, _io_counter );
- }
- else
- {
- Reference< XCommandProcessor > xCommandProcessor( aElement, UNO_QUERY );
- OSL_ENSURE( xCommandProcessor.is(), "lcl_collectHierarchicalElementNames_throw: no container, and no comand processor? What *is* it, then?!" );
- if ( xCommandProcessor.is() )
- {
- _out_rDocs.push_back( SubDocument( xCommandProcessor, sElementName, _eType, ++_io_counter ) );
- }
- }
- }
- }
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_collectSubDocuments_nothrow()
- {
- OSL_PRECOND( m_xDocument.is(), "MigrationEngine_Impl::impl_collectSubDocuments_nothrow: invalid document!" );
- if ( !m_xDocument.is() )
- return false;
-
- try
- {
- Reference< XNameAccess > xDocContainer( m_xDocument->getFormDocuments(), UNO_SET_THROW );
- m_nFormCount = 0;
- lcl_collectHierarchicalElementNames_throw( xDocContainer, ::rtl::OUString(), m_aSubDocs, eForm, m_nFormCount );
-
- xDocContainer.set( m_xDocument->getReportDocuments(), UNO_SET_THROW );
- m_nReportCount = 0;
- lcl_collectHierarchicalElementNames_throw( xDocContainer, ::rtl::OUString(), m_aSubDocs, eReport, m_nReportCount );
- }
- catch( const Exception& )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_COLLECTING_DOCUMENTS_FAILED,
- ::cppu::getCaughtException()
- ) );
- return false;
- }
- return true;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_handleDocument_nothrow( const SubDocument& _rDocument ) const
- {
- OSL_ENSURE( m_nCurrentDocumentID == -1,
- "MigrationEngine_Impl::impl_handleDocument_nothrow: there already is a current document!");
- m_nCurrentDocumentID = m_rLogger.startedDocument( _rDocument.eType, _rDocument.sHierarchicalName );
-
- // start the progress
- ::rtl::OUString sObjectName( lcl_getSubDocumentDescription( _rDocument ) );
- m_rProgress.startObject( sObjectName, ::rtl::OUString(), DEFAULT_DOC_PROGRESS_RANGE );
-
- // -----------------
- // load the document
- ::rtl::Reference< ProgressCapture > pStatusIndicator( new ProgressCapture( sObjectName, m_rProgress ) );
- SubDocument aSubDocument( _rDocument );
- OpenDocResult eResult = lcl_loadSubDocument_nothrow( aSubDocument, pStatusIndicator.get(), m_rLogger );
- if ( eResult != eOpenedDoc )
- {
- pStatusIndicator->dispose();
- m_rProgress.endObject();
- m_rLogger.finishedDocument( m_nCurrentDocumentID );
- m_nCurrentDocumentID = -1;
- return ( eResult == eIgnoreDoc );
- }
-
- // -----------------
- // migrate the libraries
- ProgressDelegator aDelegator( m_rProgress, sObjectName, String( MacroMigrationResId( STR_MIGRATING_LIBS ) ) );
- ProgressMixer aProgressMixer( aDelegator );
- aProgressMixer.registerPhase( PHASE_JAVASCRIPT, 1 );
- aProgressMixer.registerPhase( PHASE_BEANSHELL, 1 );
- aProgressMixer.registerPhase( PHASE_PYTHON, 1 );
- aProgressMixer.registerPhase( PHASE_JAVA, 1 );
- aProgressMixer.registerPhase( PHASE_BASIC, 5 );
- // more weight than the others, assuming that usually, there are many more Basic macros than any other scripts
- aProgressMixer.registerPhase( PHASE_DIALOGS, 1 );
-
- bool bSuccess = impl_checkScriptStorageStructure_nothrow( aSubDocument );
-
- // migrate storage-based script libraries (which can be handled by mere storage operations)
- bSuccess = bSuccess
- && impl_migrateScriptStorage_nothrow( aSubDocument, eJavaScript, aProgressMixer, PHASE_JAVASCRIPT )
- && impl_migrateScriptStorage_nothrow( aSubDocument, eBeanShell, aProgressMixer, PHASE_BEANSHELL )
- && impl_migrateScriptStorage_nothrow( aSubDocument, ePython, aProgressMixer, PHASE_PYTHON )
- && impl_migrateScriptStorage_nothrow( aSubDocument, eJava, aProgressMixer, PHASE_JAVA );
-
- // migrate Basic and dialog libraries
- bSuccess = bSuccess
- && impl_migrateContainerLibraries_nothrow( aSubDocument, eBasic, aProgressMixer, PHASE_BASIC )
- && impl_migrateContainerLibraries_nothrow( aSubDocument, eDialog, aProgressMixer, PHASE_DIALOGS );
- // order matters: First Basic scripts, then dialogs. So we can adjust references from the latter
- // to the former
-
- // adjust the events in the document
- // (note that errors are ignored here - failure to convert a script reference
- // is not considered a critical error)
- if ( bSuccess )
- {
- impl_adjustDocumentEvents_nothrow( aSubDocument );
- impl_adjustFormComponentEvents_nothrow( aSubDocument );
- }
-
- // -----------------
- // clean up
- // store the sub document, including removal of the (now obsolete) "Scripts" sub folder
- if ( m_rLogger.movedAnyLibrary( m_nCurrentDocumentID ) )
- {
- bSuccess = bSuccess
- && ScriptsStorage::removeFromDocument( aSubDocument.xDocument, m_rLogger )
- && lcl_commitDocumentStorage_nothrow( aSubDocument.xDocument, m_rLogger )
- && lcl_storeEmbeddedDocument_nothrow( aSubDocument );
- }
-
- // unload in any case, even if we were not successful
- bSuccess = lcl_unloadSubDocument_nothrow( aSubDocument, m_rLogger )
- && bSuccess;
-
- pStatusIndicator->dispose();
-
- // end the progress, just in case the ProgressCapture didn't receive the XStatusIndicator::end event
- m_rProgress.endObject();
-
- m_rLogger.finishedDocument( m_nCurrentDocumentID );
- m_nCurrentDocumentID = -1;
- return bSuccess;
- }
-
- //--------------------------------------------------------------------
- namespace
- {
- static ::rtl::OUString lcl_createTargetLibName( const SubDocument& _rDocument,
- const ::rtl::OUString& _rSourceLibName, const Reference< XNameAccess >& _rxTargetContainer )
- {
- // The new library name is composed from the prefix, the base name, and the old library name.
- const ::rtl::OUString sPrefix = (_rDocument.eType == eForm)?rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Form_")): rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Report_"));
-
- ::rtl::OUString sBaseName( _rDocument.sHierarchicalName.copy(
- _rDocument.sHierarchicalName.lastIndexOf( '/' ) + 1 ) );
- // Normalize this name. In our current storage implementation (and script containers in a document
- // are finally mapped to sub storages of the document storage), not all characters are allowed.
- // The bug requesting to change this is #i95409#.
- // Unfortunately, the storage implementation does not complain if you use invalid characters/names, but instead
- // it silently accepts them, and produces garbage in the file (#i95408).
- // So, until especially the former is fixed, we need to strip all invalid characters from the name.
- // #i95865#
-
- // The general idea is to replace invalid characters with '_'. However, since "valid" essentially means
- // ASCII only, this implies that for a lot of languages, we would simply replace everything with '_',
- // which of course is not desired.
- // So, we use a heuristics: If the name contains at most 3 invalid characters, and as many valid as invalid
- // characters, then we use the replacement. Otherwise, we just use a unambiguous number for the sub document.
- sal_Int32 nValid=0, nInvalid=0;
- const sal_Unicode* pBaseName = sBaseName.getStr();
- const sal_Int32 nBaseNameLen = sBaseName.getLength();
- for ( sal_Int32 i=0; i<nBaseNameLen; ++i )
- {
- if ( ::comphelper::OStorageHelper::IsValidZipEntryFileName( pBaseName + i, 1, sal_False ) )
- ++nValid;
- else
- ++nInvalid;
- }
- if ( ( nInvalid <= 3 ) && ( nInvalid * 2 <= nValid ) )
- { // not "too many" invalid => replace them
- ::rtl::OUStringBuffer aReplacement;
- aReplacement.ensureCapacity( nBaseNameLen );
- aReplacement.append( sBaseName );
- const sal_Unicode* pReplacement = aReplacement.getStr();
- for ( sal_Int32 i=0; i<nBaseNameLen; ++i )
- {
- if ( !::comphelper::OStorageHelper::IsValidZipEntryFileName( pReplacement + i, 1, sal_False ) )
- aReplacement.setCharAt( i, '_' );
- }
- sBaseName = aReplacement.makeStringAndClear();
-
- ::rtl::OUStringBuffer aNewLibNameAttempt;
- aNewLibNameAttempt.append( sPrefix );
- aNewLibNameAttempt.append( sBaseName );
- aNewLibNameAttempt.appendAscii( "_" );
- aNewLibNameAttempt.append( _rSourceLibName );
- ::rtl::OUString sTargetName( aNewLibNameAttempt.makeStringAndClear() );
- if ( !_rxTargetContainer->hasByName( sTargetName ) )
- return sTargetName;
- }
-
- // "too many" invalid characters, or the name composed with the base name was already used.
- // (The latter is valid, since there can be multiple sub documents with the same base name,
- // in different levels in the hierarchy.)
- // In this case, just use the umambiguous sub document number.
- ::rtl::OUStringBuffer aNewLibName;
- aNewLibName.append( sPrefix );
- aNewLibName.append( ::rtl::OUString::valueOf( sal_Int64( _rDocument.nNumber ) ) );
- aNewLibName.appendAscii( "_" );
- aNewLibName.append( _rSourceLibName );
- return aNewLibName.makeStringAndClear();
- }
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_checkScriptStorageStructure_nothrow( const SubDocument& _rDocument ) const
- {
- OSL_PRECOND( _rDocument.xDocument.is(), "MigrationEngine_Impl::impl_checkScriptStorageStructure_nothrow: invalid document!" );
- if ( !_rDocument.xDocument.is() )
- return false;
-
- try
- {
- // the root storage of the document whose scripts are to be migrated
- ScriptsStorage aDocStorage( _rDocument.xDocument, m_rLogger );
- if ( !aDocStorage.isValid() )
- { // no scripts at all, or no scripts of the given type
- return !m_rLogger.hadFailure();
- }
- ::std::set< ::rtl::OUString > aElementNames( aDocStorage.getElementNames() );
-
- ScriptType aKnownStorageBasedTypes[] = {
- eBeanShell, eJavaScript, ePython, eJava
- };
- for ( size_t i=0; i< SAL_N_ELEMENTS( aKnownStorageBasedTypes ); ++i )
- aElementNames.erase( lcl_getScriptsSubStorageName( aKnownStorageBasedTypes[i] ) );
-
- if ( !aElementNames.empty() )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_UNKNOWN_SCRIPT_FOLDER,
- lcl_getSubDocumentDescription( _rDocument ),
- *aElementNames.begin()
- ) );
- return false;
- }
- }
- catch( const Exception& )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_EXAMINING_SCRIPTS_FOLDER_FAILED,
- lcl_getSubDocumentDescription( _rDocument ),
- ::cppu::getCaughtException()
- ) );
- return false;
- }
- return true;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_migrateScriptStorage_nothrow( const SubDocument& _rDocument,
- const ScriptType _eScriptType, ProgressMixer& _rProgress, const PhaseID _nPhaseID ) const
- {
- OSL_PRECOND( _rDocument.xDocument.is(), "MigrationEngine_Impl::impl_migrateScriptStorage_nothrow: invalid document!" );
- if ( !_rDocument.xDocument.is() )
- return false;
-
- ScriptsStorage aDatabaseScripts( m_rLogger );
- // the scripts of our complete database document - created on demand only
- SharedStorage xTargetStorage;
- // the target for moving the scripts storages - created on demand only
-
- PhaseGuard aPhase( _rProgress );
- bool bSuccess = false;
- Any aException;
- try
- {
- // the root storage of the document whose scripts are to be migrated
- ScriptsStorage aDocStorage( _rDocument.xDocument, m_rLogger );
- if ( !aDocStorage.isValid()
- || !aDocStorage.hasScripts( _eScriptType )
- )
- {
- // no scripts at all, or no scripts of the given type
- _rProgress.startPhase( _nPhaseID, 1 );
- _rProgress.endPhase();
- return !m_rLogger.hadFailure();
- }
-
- SharedStorage xScriptsRoot( aDocStorage.getScriptsRoot( _eScriptType ) );
- if ( !xScriptsRoot.is() )
- throw RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "internal error" ) ), NULL );
-
- // loop through the script libraries
- Sequence< ::rtl::OUString > aStorageElements( xScriptsRoot->getElementNames() );
- aPhase.start( _nPhaseID, aStorageElements.getLength() );
-
- for ( const ::rtl::OUString* element = aStorageElements.getConstArray();
- element != aStorageElements.getConstArray() + aStorageElements.getLength();
- ++element
- )
- {
- bool bIsScriptLibrary = xScriptsRoot->isStorageElement( *element );
- OSL_ENSURE( bIsScriptLibrary,
- "MigrationEngine_Impl::impl_migrateScriptStorage_nothrow: warning: unknown scripts storage structure!" );
- // we cannot handle this. We would need to copy this stream to the respective scripts storage
- // of the database document, but we cannot guarantee that the name is not used, yet, and we cannot
- // simply rename the thing.
- if ( !bIsScriptLibrary )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_UNEXPECTED_LIBSTORAGE_ELEMENT,
- lcl_getSubDocumentDescription( _rDocument ),
- getScriptTypeDisplayName( _eScriptType ),
- *element
- ) );
- return false;
- }
-
- // ensure we have access to the DBDoc's scripts storage
- if ( !aDatabaseScripts.isValid() )
- { // not needed 'til now
- aDatabaseScripts.bind( m_xDocumentModel );
- if ( aDatabaseScripts.isValid() )
- xTargetStorage = aDatabaseScripts.getScriptsRoot( _eScriptType );
-
- if ( !xTargetStorage.is() )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_CREATING_DBDOC_SCRIPT_STORAGE_FAILED,
- getScriptTypeDisplayName( _eScriptType )
- ) );
- return false;
- }
- }
-
- // move the library to the DBDoc's scripts library, under the new name
- ::rtl::OUString sNewLibName( lcl_createTargetLibName( _rDocument, *element, xTargetStorage.getTyped().get() ) );
- xScriptsRoot->moveElementTo( *element, xTargetStorage, sNewLibName );
-
- // log the fact that we moved the library
- m_rLogger.movedLibrary( m_nCurrentDocumentID, _eScriptType, *element, sNewLibName );
-
- // progress
- _rProgress.advancePhase( element - aStorageElements.getConstArray() );
- }
-
- // commit the storages, so the changes we made persist
- if ( !lcl_commitStorage_nothrow( xScriptsRoot )
- || ( xTargetStorage.is() && !lcl_commitStorage_nothrow( xTargetStorage ) )
- )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_COMMITTING_SCRIPT_STORAGES_FAILED,
- getScriptTypeDisplayName( _eScriptType ),
- lcl_getSubDocumentDescription( _rDocument )
- ) );
- return false;
- }
-
- // now that the concrete scripts storage does not have any elements anymore,
- // remove it
- xScriptsRoot.reset( NULL ); // need to reset the storage to be allowed to remove it
- aDocStorage.removeScriptTypeStorage( _eScriptType );
-
- // done so far
- bSuccess = aDocStorage.commit()
- && aDatabaseScripts.commit();
- }
- catch( const Exception& )
- {
- aException = ::cppu::getCaughtException();
- bSuccess = false;
- }
-
- // log the error, if any
- if ( !bSuccess )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_GENERAL_SCRIPT_MIGRATION_FAILURE,
- getScriptTypeDisplayName( _eScriptType ),
- lcl_getSubDocumentDescription( _rDocument ),
- aException
- ) );
- }
-
- return bSuccess;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_migrateContainerLibraries_nothrow( const SubDocument& _rDocument,
- const ScriptType _eScriptType, ProgressMixer& _rProgress, const PhaseID _nPhaseID ) const
- {
- OSL_PRECOND( ( _eScriptType == eBasic ) || ( _eScriptType == eDialog ),
- "MigrationEngine_Impl::impl_migrateContainerLibraries_nothrow: illegal script type!" );
-
- bool bSuccess = false;
- PhaseGuard aPhase( _rProgress );
- Any aException;
- do // artificial loop for flow control only
- {
- try
- {
- // access library container of the sub document
- Reference< XEmbeddedScripts > xSubDocScripts( _rDocument.xDocument, UNO_QUERY );
- if ( !xSubDocScripts.is() )
- { // no script support in the sub document -> nothing to migrate
- // (though ... this is suspicious, at least ...)
- bSuccess = true;
- break;
- }
-
- Reference< XStorageBasedLibraryContainer > xSourceLibraries(
- _eScriptType == eBasic ? xSubDocScripts->getBasicLibraries() : xSubDocScripts->getDialogLibraries(),
- UNO_QUERY_THROW
- );
- Reference< XLibraryContainerPassword > xSourcePasswords( xSourceLibraries, UNO_QUERY );
- OSL_ENSURE( xSourcePasswords.is(),
- "MigrationEngine_Impl::impl_migrateContainerLibraries_nothrow: suspicious: no password management for the source libraries!" );
-
- Sequence< ::rtl::OUString > aSourceLibNames( xSourceLibraries->getElementNames() );
- aPhase.start( _nPhaseID, aSourceLibNames.getLength() );
-
- if ( !xSourceLibraries->hasElements() )
- {
- bSuccess = true;
- break;
- }
-
- // create library containers for the document - those will be the target for the migration
- Reference< XStorageBasedDocument > xStorageDoc( m_xDocument, UNO_QUERY_THROW );
- Reference< XStorageBasedLibraryContainer > xTargetLibraries;
- if ( _eScriptType == eBasic )
- {
- xTargetLibraries.set( DocumentScriptLibraryContainer::create(
- m_aContext.getUNOContext(), xStorageDoc ), UNO_QUERY_THROW );
- }
- else
- {
- xTargetLibraries.set( DocumentDialogLibraryContainer::create(
- m_aContext.getUNOContext(), xStorageDoc ), UNO_QUERY_THROW );
- }
-
- // copy all libs to the target, with potentially renaming them
- const ::rtl::OUString* pSourceLibBegin = aSourceLibNames.getConstArray();
- const ::rtl::OUString* pSourceLibEnd = pSourceLibBegin + aSourceLibNames.getLength();
- for ( const ::rtl::OUString* pSourceLibName = pSourceLibBegin;
- pSourceLibName != pSourceLibEnd;
- ++pSourceLibName
- )
- {
- // if the library is password-protected, ask the user to unprotect it
- if ( xSourcePasswords.is()
- && xSourcePasswords->isLibraryPasswordProtected( *pSourceLibName )
- && !xSourcePasswords->isLibraryPasswordVerified( *pSourceLibName )
- )
- {
- if ( !impl_unprotectPasswordLibrary_throw( xSourcePasswords, _eScriptType, *pSourceLibName ) )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_PASSWORD_VERIFICATION_FAILED,
- _rDocument.sHierarchicalName,
- getScriptTypeDisplayName( _eScriptType ),
- *pSourceLibName
- ) );
- return false;
- }
- }
-
- ::rtl::OUString sNewLibName( lcl_createTargetLibName( _rDocument, *pSourceLibName, xTargetLibraries.get() ) );
-
- if ( xSourceLibraries->isLibraryLink( *pSourceLibName ) )
- {
- // just re-create the link in the target library
- xTargetLibraries->createLibraryLink(
- sNewLibName,
- xSourceLibraries->getLibraryLinkURL( *pSourceLibName ),
- xSourceLibraries->isLibraryReadOnly( *pSourceLibName )
- );
- }
- else
- {
- if ( !xSourceLibraries->isLibraryLoaded( *pSourceLibName ) )
- xSourceLibraries->loadLibrary( *pSourceLibName );
-
- // copy the content of this particular libary
- Reference< XNameAccess > xSourceLib( xSourceLibraries->getByName( *pSourceLibName ), UNO_QUERY_THROW );
- Reference< XNameContainer > xTargetLib( xTargetLibraries->createLibrary( sNewLibName ), UNO_QUERY_THROW );
-
- Sequence< ::rtl::OUString > aLibElementNames( xSourceLib->getElementNames() );
- for ( const ::rtl::OUString* pSourceElementName = aLibElementNames.getConstArray();
- pSourceElementName != aLibElementNames.getConstArray() + aLibElementNames.getLength();
- ++pSourceElementName
- )
- {
- Any aElement = xSourceLib->getByName( *pSourceElementName );
- OSL_ENSURE( aElement.hasValue(),
- "MigrationEngine_Impl::impl_migrateContainerLibraries_nothrow: invalid (empty) lib element!" );
-
- // if this is a dialog, adjust the references to scripts
- if ( _eScriptType == eDialog )
- {
- impl_adjustDialogEvents_nothrow( aElement, lcl_getSubDocumentDescription( _rDocument ),
- *pSourceLibName, *pSourceElementName );
- }
-
- xTargetLib->insertByName( *pSourceElementName, aElement );
- }
-
- // transfer the read-only flag
- xTargetLibraries->setLibraryReadOnly(
- sNewLibName, xSourceLibraries->isLibraryReadOnly( *pSourceLibName ) );
- }
-
- // remove the source lib
- xSourceLibraries->removeLibrary( *pSourceLibName );
-
- // tell the logger
- m_rLogger.movedLibrary( m_nCurrentDocumentID, _eScriptType, *pSourceLibName, sNewLibName );
-
- // tell the progress
- _rProgress.advancePhase( pSourceLibName - pSourceLibBegin );
- }
-
- // clean up
- xSourceLibraries->storeLibraries();
-
- xTargetLibraries->storeLibraries();
- Reference< XStorage > xTargetRoot( xTargetLibraries->getRootLocation(), UNO_QUERY_THROW );
- bSuccess = lcl_commitStorage_nothrow( xTargetRoot );
- }
- catch( const Exception& )
- {
- aException = ::cppu::getCaughtException();
- bSuccess = false;
- }
- } while ( false );
-
- // log the error, if any
- if ( !bSuccess )
- {
- m_rLogger.logFailure( MigrationError(
- ERR_GENERAL_MACRO_MIGRATION_FAILURE,
- lcl_getSubDocumentDescription( _rDocument ),
- aException
- ) );
- }
-
- return bSuccess;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow( const ::rtl::OUString& _rScriptType,
- ::rtl::OUString& _inout_rScriptCode ) const
- {
- OSL_PRECOND( _inout_rScriptCode.getLength(), "MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow: invalid script!" );
- if ( !_inout_rScriptCode.getLength() )
- return false;
-
- bool bSuccess = false;
- Any aException;
- try
- {
- if ( !_rScriptType.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Script" ) )
- || !_rScriptType.getLength()
- )
- {
- OSL_FAIL(
- "MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow: no or unknown script type!" );
- m_rLogger.logRecoverable( MigrationError(
- ERR_UNKNOWN_SCRIPT_TYPE,
- _rScriptType
- ) );
- return false;
- }
-
- // analyze the script URI
- Reference< XUriReferenceFactory > xUriRefFac = UriReferenceFactory::create( m_aContext.getUNOContext() );
- Reference< XVndSunStarScriptUrlReference > xUri( xUriRefFac->parse( _inout_rScriptCode ), UNO_QUERY_THROW );
-
- ::rtl::OUString sScriptLanguage = xUri->getParameter(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "language" ) ) );
- ScriptType eScriptType = eBasic;
- if ( !lcl_getScriptTypeFromLanguage( sScriptLanguage, eScriptType ) )
- {
- OSL_FAIL(
- "MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow: unknown script language!" );
- m_rLogger.logRecoverable( MigrationError(
- ERR_UNKNOWN_SCRIPT_LANGUAGE,
- sScriptLanguage
- ) );
- return false;
- }
-
- ::rtl::OUString sLocation = xUri->getParameter(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "location" ) ) );
- if ( !sLocation.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "document" ) ) )
- {
- // only document libraries must be migrated, of course
- return false;
- }
-
- ::rtl::OUString sScriptName = xUri->getName();
- sal_Int32 nLibModuleSeparator = sScriptName.indexOf( '.' );
- if ( nLibModuleSeparator < 0 )
- {
- OSL_FAIL(
- "MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow: invalid/unknown location format!" );
- m_rLogger.logRecoverable( MigrationError(
- ERR_UNKNOWN_SCRIPT_NAME_FORMAT,
- sScriptName
- ) );
- return false;
- }
-
- // replace the library name
- ::rtl::OUString sLibrary = sScriptName.copy( 0, nLibModuleSeparator );
- ::rtl::OUString sNewLibName = m_rLogger.getNewLibraryName(
- m_nCurrentDocumentID, eScriptType, sLibrary );
- OSL_ENSURE( sLibrary != sNewLibName,
- "MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow: a library which has not been migrated?" );
-
- ::rtl::OUStringBuffer aNewLocation;
- aNewLocation.append( sNewLibName );
- aNewLocation.append( sScriptName.copy( nLibModuleSeparator ) );
- xUri->setName( aNewLocation.makeStringAndClear() );
-
- // update the new script URL
- _inout_rScriptCode = xUri->getUriReference();
- bSuccess = true;
- }
- catch( const Exception& )
- {
- aException = ::cppu::getCaughtException();
- bSuccess = false;
- }
-
- // log the failure, if any
- if ( !bSuccess )
- {
- m_rLogger.logRecoverable( MigrationError(
- ERR_SCRIPT_TRANSLATION_FAILURE,
- _rScriptType,
- _inout_rScriptCode,
- aException
- ) );
- }
-
- return bSuccess;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow( ScriptEventDescriptor& _inout_rScriptEvent ) const
- {
- if ( _inout_rScriptEvent.ScriptType.getLength() && _inout_rScriptEvent.ScriptCode.getLength() )
- return impl_adjustScriptLibrary_nothrow( _inout_rScriptEvent.ScriptType, _inout_rScriptEvent.ScriptCode );
- return false;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_adjustScriptLibrary_nothrow( Any& _inout_rScriptDescriptor ) const
- {
- ::comphelper::NamedValueCollection aScriptDesc( _inout_rScriptDescriptor );
-
- ::rtl::OUString sScriptType;
- ::rtl::OUString sScript;
- try
- {
- OSL_VERIFY( aScriptDesc.get_ensureType( "EventType", sScriptType ) );
- OSL_VERIFY( aScriptDesc.get_ensureType( "Script", sScript ) );
- }
- catch( const Exception& )
- {
- m_rLogger.logRecoverable( MigrationError(
- ERR_INVALID_SCRIPT_DESCRIPTOR_FORMAT,
- ::cppu::getCaughtException()
- ) );
- }
-
- if ( sScriptType.getLength() && sScript.getLength() )
- if ( !impl_adjustScriptLibrary_nothrow( sScriptType, sScript ) )
- return false;
-
- aScriptDesc.put( "Script", sScript );
- _inout_rScriptDescriptor <<= aScriptDesc.getPropertyValues();
- return true;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_adjustDocumentEvents_nothrow( const SubDocument& _rDocument ) const
- {
- try
- {
- Reference< XEventsSupplier > xSuppEvents( _rDocument.xDocument, UNO_QUERY );
- if ( !xSuppEvents.is() )
- // this is allowed. E.g. new-style reports currently do not support this
- return true;
-
- Reference< XNameReplace > xEvents( xSuppEvents->getEvents(), UNO_SET_THROW );
- Sequence< ::rtl::OUString > aEventNames = xEvents->getElementNames();
-
- Any aEvent;
- for ( const ::rtl::OUString* eventName = aEventNames.getConstArray();
- eventName != aEventNames.getConstArray() + aEventNames.getLength();
- ++eventName
- )
- {
- aEvent = xEvents->getByName( *eventName );
- if ( !aEvent.hasValue() )
- continue;
-
- // translate
- if ( !impl_adjustScriptLibrary_nothrow( aEvent ) )
- continue;
-
- // put back
- xEvents->replaceByName( *eventName, aEvent );
- }
- }
- catch( const Exception& )
- {
- m_rLogger.logRecoverable( MigrationError(
- ERR_ADJUSTING_DOCUMENT_EVENTS_FAILED,
- lcl_getSubDocumentDescription( _rDocument ),
- ::cppu::getCaughtException()
- ) );
- return false;
- }
- return true;
- }
-
- //--------------------------------------------------------------------
- void MigrationEngine_Impl::impl_adjustDialogElementEvents_throw( const Reference< XInterface >& _rxElement ) const
- {
- Reference< XScriptEventsSupplier > xEventsSupplier( _rxElement, UNO_QUERY_THROW );
- Reference< XNameReplace > xEvents( xEventsSupplier->getEvents(), UNO_QUERY_THROW );
- Sequence< ::rtl::OUString > aEventNames( xEvents->getElementNames() );
-
- const ::rtl::OUString* eventName = aEventNames.getArray();
- const ::rtl::OUString* eventNamesEnd = eventName + aEventNames.getLength();
-
- ScriptEventDescriptor aScriptEvent;
- for ( ; eventName != eventNamesEnd; ++eventName )
- {
- OSL_VERIFY( xEvents->getByName( *eventName ) >>= aScriptEvent );
-
- if ( !impl_adjustScriptLibrary_nothrow( aScriptEvent ) )
- continue;
-
- xEvents->replaceByName( *eventName, makeAny( aScriptEvent ) );
- }
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_adjustDialogEvents_nothrow( Any& _inout_rDialogLibraryElement,
- const ::rtl::OUString& _rDocName, const ::rtl::OUString& _rDialogLibName, const ::rtl::OUString& _rDialogName ) const
- {
- try
- {
- // load a dialog model from the stream describing it
- Reference< XInputStreamProvider > xISP( _inout_rDialogLibraryElement, UNO_QUERY_THROW );
- Reference< XInputStream > xInput( xISP->createInputStream(), UNO_QUERY_THROW );
-
- Reference< XNameContainer > xDialogModel( m_aContext.createComponent( "com.sun.star.awt.UnoControlDialogModel" ), UNO_QUERY_THROW );
- ::xmlscript::importDialogModel( xInput, xDialogModel, m_aContext.getUNOContext(), m_xDocumentModel );
-
- // adjust the events of the dialog
- impl_adjustDialogElementEvents_throw( xDialogModel );
-
- // adjust the events of the controls
- Sequence< ::rtl::OUString > aControlNames( xDialogModel->getElementNames() );
- const ::rtl::OUString* controlName = aControlNames.getConstArray();
- const ::rtl::OUString* controlNamesEnd = controlName + aControlNames.getLength();
- for ( ; controlName != controlNamesEnd; ++controlName )
- {
- impl_adjustDialogElementEvents_throw( Reference< XInterface >( xDialogModel->getByName( *controlName ), UNO_QUERY ) );
- }
-
- // export dialog model
- xISP = ::xmlscript::exportDialogModel( xDialogModel, m_aContext.getUNOContext(), m_xDocumentModel );
- _inout_rDialogLibraryElement <<= xISP;
- }
- catch( const Exception& )
- {
- m_rLogger.logRecoverable( MigrationError(
- ERR_ADJUSTING_DIALOG_EVENTS_FAILED,
- _rDocName,
- _rDialogLibName,
- _rDialogName,
- ::cppu::getCaughtException()
- ) );
- return false;
- }
- return true;
- }
-
- //--------------------------------------------------------------------
- void MigrationEngine_Impl::impl_adjustFormComponentEvents_throw( const Reference< XIndexAccess >& _rxComponentContainer ) const
- {
- FormComponentIterator aCompIter( _rxComponentContainer );
- while ( aCompIter.hasMore() )
- {
- // 1. adjust the component's scripts of the current component
- FormComponentScripts aComponent( aCompIter.next() );
- Sequence< ScriptEventDescriptor > aEvents( aComponent.getEvents() );
-
- bool bChangedComponentEvents = false;
- for ( ScriptEventDescriptor* scriptEvent = aEvents.getArray();
- scriptEvent != aEvents.getArray() + aEvents.getLength();
- ++scriptEvent
- )
- {
- if ( !impl_adjustScriptLibrary_nothrow( *scriptEvent ) )
- continue;
-
- bChangedComponentEvents = true;
- }
-
- if ( bChangedComponentEvents )
- aComponent.setEvents( aEvents );
-
- // 2. step down if the component is a container itself
- Reference< XIndexAccess > xContainer( aComponent.getComponent(), UNO_QUERY );
- if ( xContainer.is() )
- impl_adjustFormComponentEvents_throw( xContainer );
- }
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_adjustFormComponentEvents_nothrow( const SubDocument& _rDocument ) const
- {
- try
- {
- DrawPageIterator aPageIter( _rDocument.xDocument );
- while ( aPageIter.hasMore() )
- {
- Reference< XFormsSupplier > xSuppForms( aPageIter.next(), UNO_QUERY_THROW );
- Reference< XIndexAccess > xForms( xSuppForms->getForms(), UNO_QUERY_THROW );
- impl_adjustFormComponentEvents_throw( xForms );
- }
- }
- catch( const Exception& )
- {
- m_rLogger.logRecoverable( MigrationError(
- ERR_ADJUSTING_FORMCOMP_EVENTS_FAILED,
- lcl_getSubDocumentDescription( _rDocument ),
- ::cppu::getCaughtException()
- ) );
- return false;
- }
- return true;
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine_Impl::impl_unprotectPasswordLibrary_throw( const Reference< XLibraryContainerPassword >& _rxPasswordManager,
- const ScriptType _eScriptType, const ::rtl::OUString& _rLibraryName ) const
- {
- // a human-readable description of the affected library
- ::rtl::OUString sLibraryDescription( String(
- MacroMigrationResId( STR_LIBRARY_TYPE_AND_NAME ) ) );
- ::comphelper::string::searchAndReplaceAsciiI( sLibraryDescription, "$type$",
- getScriptTypeDisplayName( _eScriptType ) );
- ::comphelper::string::searchAndReplaceAsciiI( sLibraryDescription, "$library$",
- _rLibraryName );
-
- InteractionHandler aHandler( m_aContext, m_xDocumentModel );
- ::rtl::OUString sPassword;
- while ( true )
- {
- if ( !aHandler.requestDocumentPassword( sLibraryDescription, sPassword ) )
- // aborted by the user
- return false;
-
- bool bSuccessVerification = _rxPasswordManager->verifyLibraryPassword( _rLibraryName, sPassword );
- if ( bSuccessVerification )
- return true;
- }
-
- }
-
- //====================================================================
- //= MigrationEngine
- //====================================================================
- //--------------------------------------------------------------------
- MigrationEngine::MigrationEngine( const ::comphelper::ComponentContext& _rContext,
- const Reference< XOfficeDatabaseDocument >& _rxDocument, IMigrationProgress& _rProgress,
- MigrationLog& _rLogger )
- :m_pImpl( new MigrationEngine_Impl( _rContext, _rxDocument, _rProgress, _rLogger ) )
- {
- }
-
- //--------------------------------------------------------------------
- MigrationEngine::~MigrationEngine()
- {
- }
-
- //--------------------------------------------------------------------
- sal_Int32 MigrationEngine::getFormCount() const
- {
- return m_pImpl->getFormCount();
- }
-
- //--------------------------------------------------------------------
- sal_Int32 MigrationEngine::getReportCount() const
- {
- return m_pImpl->getReportCount();
- }
-
- //--------------------------------------------------------------------
- bool MigrationEngine::migrateAll()
- {
- return m_pImpl->migrateAll();
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/migrationengine.hxx b/dbaccess/source/ext/macromigration/migrationengine.hxx
deleted file mode 100644
index 986bba551..000000000
--- a/dbaccess/source/ext/macromigration/migrationengine.hxx
+++ /dev/null
@@ -1,103 +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 DBACCESS_MIGRATIONENGINE_HXX
-#define DBACCESS_MIGRATIONENGINE_HXX
-
-/** === begin UNO includes === **/
-#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
-/** === end UNO includes === **/
-
-#include <comphelper/componentcontext.hxx>
-
-#include <memory>
-
-namespace comphelper {
- class ComponentContext;
-}
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- class IMigrationProgress;
- class MigrationLog;
-
- //====================================================================
- //= MigrationEngine
- //====================================================================
- class MigrationEngine_Impl;
- class MigrationEngine
- {
- public:
- /** creates the migration engine
- @param _rxDocument
- the document whose macros/scripts should be migrated
- @param _rProgress
- a callback for notifying progress. Beware of lifetimes here: The progress callback,
- passed herein as reference, must live as long as the engine instance lives.
- */
- MigrationEngine(
- const ::comphelper::ComponentContext& _rContext,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XOfficeDatabaseDocument >& _rxDocument,
- IMigrationProgress& _rProgress,
- MigrationLog& _rLogger
- );
-
- ~MigrationEngine();
-
- sal_Int32 getFormCount() const;
- sal_Int32 getReportCount() const;
-
- /** starts migrating the scripts and macros in the forms/reports to the database
- document.
-
- This process cannot be cancelled, as it would leave the document in an inconsistent
- state.
-
- When the function returns, then the migration is finished.
-
- @return
- whether or not the migration was successful. If it wasn't, then an error has been reported
- to the user, using the document's interaction handler. If no such interaction handler
- was present, then the error has been silenced.
- */
- bool migrateAll();
-
- private:
- ::std::auto_ptr< MigrationEngine_Impl > m_pImpl;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MIGRATIONENGINE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/migrationerror.hxx b/dbaccess/source/ext/macromigration/migrationerror.hxx
deleted file mode 100644
index d76a0b1bc..000000000
--- a/dbaccess/source/ext/macromigration/migrationerror.hxx
+++ /dev/null
@@ -1,175 +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 DBACCESS_MIGRATIONERROR_HXX
-#define DBACCESS_MIGRATIONERROR_HXX
-
-/** === begin UNO includes === **/
-#include <com/sun/star/uno/Any.hxx>
-/** === end UNO includes === **/
-
-#include <vector>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- enum MigrationErrorType
- {
- ERR_OPENING_SUB_DOCUMENT_FAILED = 1,
- ERR_CLOSING_SUB_DOCUMENT_FAILED,
- ERR_STORAGE_COMMIT_FAILED,
- ERR_STORING_DATABASEDOC_FAILED,
- ERR_COLLECTING_DOCUMENTS_FAILED,
- ERR_UNEXPECTED_LIBSTORAGE_ELEMENT,
- ERR_CREATING_DBDOC_SCRIPT_STORAGE_FAILED,
- ERR_COMMITTING_SCRIPT_STORAGES_FAILED,
- ERR_GENERAL_SCRIPT_MIGRATION_FAILURE,
- ERR_GENERAL_MACRO_MIGRATION_FAILURE,
- ERR_UNKNOWN_SCRIPT_TYPE,
- ERR_UNKNOWN_SCRIPT_LANGUAGE,
- ERR_UNKNOWN_SCRIPT_NAME_FORMAT,
- ERR_SCRIPT_TRANSLATION_FAILURE,
- ERR_INVALID_SCRIPT_DESCRIPTOR_FORMAT,
- ERR_ADJUSTING_DOCUMENT_EVENTS_FAILED,
- ERR_ADJUSTING_DIALOG_EVENTS_FAILED,
- ERR_ADJUSTING_FORMCOMP_EVENTS_FAILED,
- ERR_BIND_SCRIPT_STORAGE_FAILED,
- ERR_REMOVE_SCRIPTS_STORAGE_FAILED,
- ERR_DOCUMENT_BACKUP_FAILED,
- ERR_UNKNOWN_SCRIPT_FOLDER,
- ERR_EXAMINING_SCRIPTS_FOLDER_FAILED,
- ERR_PASSWORD_VERIFICATION_FAILED,
- ERR_NEW_STYLE_REPORT
- };
-
- //====================================================================
- //= MigrationError
- //====================================================================
- /** encapsulates information about an error which happened during the migration
- */
- struct MigrationError
- {
- const MigrationErrorType eType;
- ::std::vector< ::rtl::OUString > aErrorDetails;
- const ::com::sun::star::uno::Any aCaughtException;
-
- MigrationError(
- const MigrationErrorType _eType )
- :eType( _eType )
- {
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::com::sun::star::uno::Any& _rCaughtException )
- :eType( _eType )
- ,aCaughtException( _rCaughtException )
- {
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::rtl::OUString& _rDetail )
- :eType( _eType )
- {
- impl_constructDetails( _rDetail );
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::rtl::OUString& _rDetail,
- const ::com::sun::star::uno::Any& _rCaughtException )
- :eType( _eType )
- ,aCaughtException( _rCaughtException )
- {
- impl_constructDetails( _rDetail );
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::rtl::OUString& _rDetail1,
- const ::rtl::OUString& _rDetail2 )
- :eType( _eType )
- {
- impl_constructDetails( _rDetail1, _rDetail2 );
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::rtl::OUString& _rDetail1,
- const ::rtl::OUString& _rDetail2,
- const ::com::sun::star::uno::Any& _rCaughtException )
- :eType( _eType )
- ,aCaughtException( _rCaughtException )
- {
- impl_constructDetails( _rDetail1, _rDetail2 );
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::rtl::OUString& _rDetail1,
- const ::rtl::OUString& _rDetail2,
- const ::rtl::OUString& _rDetail3,
- const ::com::sun::star::uno::Any& _rCaughtException )
- :eType( _eType )
- ,aCaughtException( _rCaughtException )
- {
- impl_constructDetails( _rDetail1, _rDetail2, _rDetail3 );
- }
-
- MigrationError(
- const MigrationErrorType _eType,
- const ::rtl::OUString& _rDetail1,
- const ::rtl::OUString& _rDetail2,
- const ::rtl::OUString& _rDetail3 )
- :eType( _eType )
- {
- impl_constructDetails( _rDetail1, _rDetail2, _rDetail3 );
- }
-
- private:
- void impl_constructDetails(
- const ::rtl::OUString& _rDetail1,
- const ::rtl::OUString& _rDetail2 = ::rtl::OUString(),
- const ::rtl::OUString& _rDetail3 = ::rtl::OUString()
- )
- {
- if ( _rDetail1.getLength() ) aErrorDetails.push_back( _rDetail1 );
- if ( _rDetail2.getLength() ) aErrorDetails.push_back( _rDetail2 );
- if ( _rDetail3.getLength() ) aErrorDetails.push_back( _rDetail3 );
- }
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MIGRATIONERROR_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/migrationlog.cxx b/dbaccess/source/ext/macromigration/migrationlog.cxx
deleted file mode 100644
index 480bf4e6d..000000000
--- a/dbaccess/source/ext/macromigration/migrationlog.cxx
+++ /dev/null
@@ -1,515 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "dbmm_module.hxx"
-#include "dbmm_global.hrc"
-#include "migrationerror.hxx"
-#include "migrationlog.hxx"
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-#include <comphelper/anytostring.hxx>
-#include <comphelper/string.hxx>
-#include <tools/string.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <vector>
-#include <map>
-#include <list>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- /** === end UNO using === **/
-
- //====================================================================
- //= LibraryEntry
- //====================================================================
- struct LibraryEntry
- {
- ScriptType eType;
- ::rtl::OUString sOldName;
- ::rtl::OUString sNewName;
-
- LibraryEntry()
- :eType( eBasic )
- ,sOldName()
- ,sNewName()
- {
- }
-
- LibraryEntry( const ScriptType& _eType, const ::rtl::OUString& _rOldName, const ::rtl::OUString& _rNewName )
- :eType( _eType )
- ,sOldName( _rOldName )
- ,sNewName( _rNewName )
- {
- }
- };
-
- //====================================================================
- //= DocumentEntry
- //====================================================================
- struct DocumentEntry
- {
- SubDocumentType eType;
- ::rtl::OUString sName;
- ::std::vector< LibraryEntry > aMovedLibraries;
-
- DocumentEntry()
- :eType( eForm )
- ,sName()
- ,aMovedLibraries()
- {
- }
-
- DocumentEntry( const SubDocumentType _eType, const ::rtl::OUString& _rName )
- :eType( _eType )
- ,sName( _rName )
- {
- }
- };
-
- //====================================================================
- //= DocumentLogs
- //====================================================================
- typedef ::std::map< DocumentID, DocumentEntry > DocumentLogs;
-
- //====================================================================
- //= ErrorLog
- //====================================================================
- typedef ::std::list< MigrationError > ErrorLog;
-
- //====================================================================
- //= MigrationLog_Data
- //====================================================================
- struct MigrationLog_Data
- {
- ::rtl::OUString sBackupLocation;
- DocumentLogs aDocumentLogs;
- ErrorLog aFailures;
- ErrorLog aWarnings;
- };
-
- //====================================================================
- //= MigrationLog
- //====================================================================
- //--------------------------------------------------------------------
- MigrationLog::MigrationLog()
- :m_pData( new MigrationLog_Data )
- {
- }
-
- //--------------------------------------------------------------------
- MigrationLog::~MigrationLog()
- {
- }
-
- //--------------------------------------------------------------------
- void MigrationLog::logFailure( const MigrationError& _rError )
- {
- m_pData->aFailures.push_back( _rError );
- }
-
- //--------------------------------------------------------------------
- void MigrationLog::logRecoverable( const MigrationError& _rError )
- {
- m_pData->aWarnings.push_back( _rError );
- }
-
- //--------------------------------------------------------------------
- bool MigrationLog::hadFailure() const
- {
- return !m_pData->aFailures.empty();
- }
-
- //--------------------------------------------------------------------
- void MigrationLog::backedUpDocument( const ::rtl::OUString& _rNewDocumentLocation )
- {
- m_pData->sBackupLocation = _rNewDocumentLocation;
- }
-
- //--------------------------------------------------------------------
- DocumentID MigrationLog::startedDocument( const SubDocumentType _eType, const ::rtl::OUString& _rName )
- {
-#if OSL_DEBUG_LEVEL > 0
- bool bAlreadyKnown = false;
- for ( DocumentLogs::const_iterator doc = m_pData->aDocumentLogs.begin();
- doc != m_pData->aDocumentLogs.end() && !bAlreadyKnown;
- ++doc
- )
- {
- bAlreadyKnown = ( doc->second.eType == _eType ) && ( doc->second.sName == _rName );
- }
- OSL_ENSURE( !bAlreadyKnown, "MigrationLog::startedDocument: document is already known!" );
-#endif
-
- DocumentID nID = (DocumentID)( m_pData->aDocumentLogs.size() + 1 );
- while ( m_pData->aDocumentLogs.find( nID ) != m_pData->aDocumentLogs.end() )
- ++nID;
-
- m_pData->aDocumentLogs[ nID ] = DocumentEntry( _eType, _rName );
-
- return nID;
- }
-
- //--------------------------------------------------------------------
- void MigrationLog::movedLibrary( const DocumentID _nDocID, const ScriptType _eScriptType,
- const ::rtl::OUString& _rOriginalLibName, const ::rtl::OUString& _rNewLibName )
- {
- OSL_ENSURE( m_pData->aDocumentLogs.find( _nDocID ) != m_pData->aDocumentLogs.end(),
- "MigrationLog::movedLibrary: document is not known!" );
-
- DocumentEntry& rDocEntry = m_pData->aDocumentLogs[ _nDocID ];
- rDocEntry.aMovedLibraries.push_back( LibraryEntry( _eScriptType, _rOriginalLibName, _rNewLibName ) );
- }
-
- //--------------------------------------------------------------------
- void MigrationLog::finishedDocument( const DocumentID _nDocID )
- {
- OSL_ENSURE( m_pData->aDocumentLogs.find( _nDocID ) != m_pData->aDocumentLogs.end(),
- "MigrationLog::finishedDocument: document is not known!" );
-
- DocumentEntry& rDocEntry = m_pData->aDocumentLogs[ _nDocID ];
- (void)rDocEntry;
- // nothing to do here
- }
-
- //--------------------------------------------------------------------
- const ::rtl::OUString& MigrationLog::getNewLibraryName( DocumentID _nDocID, ScriptType _eScriptType,
- const ::rtl::OUString& _rOriginalLibName ) const
- {
- static ::rtl::OUString s_sEmptyString;
-
- DocumentLogs::const_iterator docPos = m_pData->aDocumentLogs.find( _nDocID );
- if ( docPos == m_pData->aDocumentLogs.end() )
- {
- OSL_FAIL( "MigrationLog::getNewLibraryName: document is not known!" );
- return s_sEmptyString;
- }
-
- const DocumentEntry& rDocEntry( docPos->second );
- for ( ::std::vector< LibraryEntry >::const_iterator lib = rDocEntry.aMovedLibraries.begin();
- lib != rDocEntry.aMovedLibraries.end();
- ++lib
- )
- {
- if ( ( _eScriptType == lib->eType )
- && ( _rOriginalLibName == lib->sOldName )
- )
- return lib->sNewName;
- }
-
- OSL_FAIL( "MigrationLog::getNewLibraryName: doc is known, but library isn't!" );
- return s_sEmptyString;
- }
-
- //--------------------------------------------------------------------
- namespace
- {
- //----------------------------------------------------------------
- static void lcl_appendErrorDescription( ::rtl::OUStringBuffer& _inout_rBuffer, const MigrationError& _rError )
- {
- const sal_Char* pAsciiErrorDescription( NULL );
- ::std::vector< const sal_Char* > aAsciiParameterNames;
- switch ( _rError.eType )
- {
- case ERR_OPENING_SUB_DOCUMENT_FAILED:
- pAsciiErrorDescription = "opening '#doc#' failed";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_CLOSING_SUB_DOCUMENT_FAILED:
- pAsciiErrorDescription = "closing '#doc#' failed";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_STORAGE_COMMIT_FAILED:
- pAsciiErrorDescription = "committing the changes for document '#doc#' failed";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_STORING_DATABASEDOC_FAILED:
- pAsciiErrorDescription = "storing the database document failed";
- break;
-
- case ERR_COLLECTING_DOCUMENTS_FAILED:
- pAsciiErrorDescription = "collecting the forms/reports of the database document failed";
- break;
-
- case ERR_UNEXPECTED_LIBSTORAGE_ELEMENT:
- pAsciiErrorDescription = "unexpected #lib# storage element in document '#doc#', named '#element#'";
- aAsciiParameterNames.push_back( "#doc#" );
- aAsciiParameterNames.push_back( "#libstore#" );
- aAsciiParameterNames.push_back( "#element#" );
- break;
-
- case ERR_CREATING_DBDOC_SCRIPT_STORAGE_FAILED:
- pAsciiErrorDescription = "creating the database document's storage for #scripttype# scripts failed";
- aAsciiParameterNames.push_back( "#scripttype#" );
- break;
-
- case ERR_COMMITTING_SCRIPT_STORAGES_FAILED:
- pAsciiErrorDescription = "saving the #scripttype# scripts for document '#doc#' failed";
- aAsciiParameterNames.push_back( "#scripttype#" );
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_GENERAL_SCRIPT_MIGRATION_FAILURE:
- pAsciiErrorDescription = "general error while migrating #scripttype# scripts of document '#doc#'";
- aAsciiParameterNames.push_back( "#scripttype#" );
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_GENERAL_MACRO_MIGRATION_FAILURE:
- pAsciiErrorDescription = "general error during macro migration of document '#doc#'";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_UNKNOWN_SCRIPT_TYPE:
- pAsciiErrorDescription = "unknown script type: #type#";
- aAsciiParameterNames.push_back( "#type#" );
- break;
-
- case ERR_UNKNOWN_SCRIPT_LANGUAGE:
- pAsciiErrorDescription = "unknown script language: #lang#";
- aAsciiParameterNames.push_back( "#lang#" );
- break;
-
- case ERR_UNKNOWN_SCRIPT_NAME_FORMAT:
- pAsciiErrorDescription = "unknown script name format: #script#";
- aAsciiParameterNames.push_back( "#script#" );
- break;
-
- case ERR_SCRIPT_TRANSLATION_FAILURE:
- pAsciiErrorDescription = "analyzing/translating the script URL failed; script type: #type#; script: #code#";
- aAsciiParameterNames.push_back( "#type#" );
- aAsciiParameterNames.push_back( "#code#" );
- break;
-
- case ERR_INVALID_SCRIPT_DESCRIPTOR_FORMAT:
- pAsciiErrorDescription = "invalid script descriptor format";
- break;
-
- case ERR_ADJUSTING_DOCUMENT_EVENTS_FAILED:
- pAsciiErrorDescription = "adjusting events for document '#doc#' failed";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_ADJUSTING_DIALOG_EVENTS_FAILED:
- pAsciiErrorDescription = "adjusting events for dialog #lib#.#dlg# in document '#doc#' failed";
- aAsciiParameterNames.push_back( "#doc#" );
- aAsciiParameterNames.push_back( "#lib#" );
- aAsciiParameterNames.push_back( "#dlg#" );
- break;
-
- case ERR_ADJUSTING_FORMCOMP_EVENTS_FAILED:
- pAsciiErrorDescription = "adjusting form component events for '#doc#' failed";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_BIND_SCRIPT_STORAGE_FAILED:
- pAsciiErrorDescription = "binding to the script storage failed for document '#doc#'";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_REMOVE_SCRIPTS_STORAGE_FAILED:
- pAsciiErrorDescription = "removing a scripts storage failed for document '#doc#'";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_DOCUMENT_BACKUP_FAILED:
- pAsciiErrorDescription = "backing up the document to #location# failed";
- aAsciiParameterNames.push_back( "#location#" );
- break;
-
- case ERR_UNKNOWN_SCRIPT_FOLDER:
- pAsciiErrorDescription = "unknown script folder '#name#' in document '#doc#'";
- aAsciiParameterNames.push_back( "#doc#" );
- aAsciiParameterNames.push_back( "#name#" );
- break;
-
- case ERR_EXAMINING_SCRIPTS_FOLDER_FAILED:
- pAsciiErrorDescription = "examining the 'Scripts' folder failed for document '#doc#'";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- case ERR_PASSWORD_VERIFICATION_FAILED:
- pAsciiErrorDescription = "password verification failed for document '#doc#', #libtype# library '#name#'";
- aAsciiParameterNames.push_back( "#doc#" );
- aAsciiParameterNames.push_back( "#libtype#" );
- aAsciiParameterNames.push_back( "#name#" );
- break;
-
- case ERR_NEW_STYLE_REPORT:
- pAsciiErrorDescription = "#doc# could not be processed, since you don't have the Oracle Report Builder (TM) extension installed.";
- aAsciiParameterNames.push_back( "#doc#" );
- break;
-
- // do *not* add a default case here: Without a default, some compilers will warn you when
- // you miss a newly-introduced enum value here
- }
- OSL_ENSURE( pAsciiErrorDescription, "lcl_appendErrorDescription: no error message!" );
- if ( pAsciiErrorDescription )
- {
- ::rtl::OUString sSubstituted( ::rtl::OUString::createFromAscii( pAsciiErrorDescription ) );
- OSL_ENSURE( aAsciiParameterNames.size() == _rError.aErrorDetails.size(),
- "lcl_appendErrorDescription: unexpected number of error message parameters!" );
-
- for ( size_t i=0; i < ::std::min( aAsciiParameterNames.size(), _rError.aErrorDetails.size() ); ++i )
- {
- ::comphelper::string::searchAndReplaceAsciiI( sSubstituted, aAsciiParameterNames[i],
- _rError.aErrorDetails[i] );
- }
-
- _inout_rBuffer.append( sSubstituted );
- }
- }
-
- //----------------------------------------------------------------
- void lcl_describeErrors( ::rtl::OUStringBuffer& _rBuffer, const ErrorLog& _rErrors, const sal_uInt16 _nHeadingResId )
- {
- _rBuffer.appendAscii( "=== " );
- _rBuffer.append ( String( MacroMigrationResId( _nHeadingResId ) ) );
- _rBuffer.appendAscii( " ===\n" );
-
- String sException( MacroMigrationResId( STR_EXCEPTION ) );
-
- for ( ErrorLog::const_iterator error = _rErrors.begin();
- error != _rErrors.end();
- ++error
- )
- {
- _rBuffer.append( sal_Unicode( '-' ) );
- _rBuffer.append( sal_Unicode( ' ' ) );
- lcl_appendErrorDescription( _rBuffer, *error );
- _rBuffer.append( sal_Unicode( '\n' ) );
-
- if ( !error->aCaughtException.hasValue() )
- continue;
-
- _rBuffer.append( sException );
- _rBuffer.append( ::comphelper::anyToString( error->aCaughtException ) );
- _rBuffer.append( sal_Unicode( '\n' ) );
- _rBuffer.append( sal_Unicode( '\n' ) );
- }
- }
- }
-
- //--------------------------------------------------------------------
- bool MigrationLog::movedAnyLibrary( const DocumentID _nDocID )
- {
- DocumentLogs::const_iterator docPos = m_pData->aDocumentLogs.find( _nDocID );
- if ( docPos == m_pData->aDocumentLogs.end() )
- {
- OSL_FAIL( "MigrationLog::movedAnyLibrary: document is not known!" );
- return false;
- }
- return !docPos->second.aMovedLibraries.empty();
- }
-
- //--------------------------------------------------------------------
- ::rtl::OUString MigrationLog::getCompleteLog() const
- {
- ::rtl::OUStringBuffer aBuffer;
-
- if ( m_pData->sBackupLocation.getLength() )
- {
- String sBackedUp( MacroMigrationResId( STR_SAVED_COPY_TO ) );
- sBackedUp.SearchAndReplaceAllAscii( "$location$", m_pData->sBackupLocation );
-
- aBuffer.appendAscii( "=== " );
- aBuffer.append ( String( MacroMigrationResId( STR_DATABASE_DOCUMENT ) ) );
- aBuffer.appendAscii( " ===\n" );
- aBuffer.append ( sBackedUp );
- aBuffer.appendAscii( "\n\n" );
- }
-
- if ( !m_pData->aFailures.empty() )
- {
- lcl_describeErrors( aBuffer, m_pData->aFailures
- , STR_ERRORS );
- }
- else
- {
- String sMovedLibTemplate( MacroMigrationResId( STR_MOVED_LIBRARY ) );
-
- for ( DocumentLogs::const_iterator doc = m_pData->aDocumentLogs.begin();
- doc != m_pData->aDocumentLogs.end();
- ++doc
- )
- {
- const DocumentEntry& rDoc( doc->second );
-
- if ( rDoc.aMovedLibraries.empty() )
- continue;
-
- String sDocTitle( MacroMigrationResId( rDoc.eType == eForm ? STR_FORM : STR_REPORT ) );
- sDocTitle.SearchAndReplaceAllAscii( "$name$", rDoc.sName );
-
- aBuffer.appendAscii( "=== " );
- aBuffer.append ( sDocTitle );
- aBuffer.appendAscii( " ===\n" );
-
- for ( ::std::vector< LibraryEntry >::const_iterator lib = rDoc.aMovedLibraries.begin();
- lib != rDoc.aMovedLibraries.end();
- ++lib
- )
- {
- String sMovedLib( sMovedLibTemplate );
- sMovedLib.SearchAndReplaceAllAscii( "$type$", getScriptTypeDisplayName( lib->eType ) );
- sMovedLib.SearchAndReplaceAllAscii( "$old$", lib->sOldName );
- sMovedLib.SearchAndReplaceAllAscii( "$new$", lib->sNewName );
-
- aBuffer.append( sMovedLib );
- aBuffer.append( sal_Unicode( '\n' ) );
- }
-
- aBuffer.append( sal_Unicode( '\n' ) );
- }
- }
-
- if ( !m_pData->aWarnings.empty() )
- {
- lcl_describeErrors( aBuffer, m_pData->aWarnings, STR_WARNINGS );
- }
-
- return aBuffer.makeStringAndClear();
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/migrationlog.hxx b/dbaccess/source/ext/macromigration/migrationlog.hxx
deleted file mode 100644
index 1bcd0411c..000000000
--- a/dbaccess/source/ext/macromigration/migrationlog.hxx
+++ /dev/null
@@ -1,131 +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 DBACCESS_MIGRATIONLOG_HXX
-#define DBACCESS_MIGRATIONLOG_HXX
-
-#include "dbmm_types.hxx"
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-#include <rtl/ustring.hxx>
-
-#include <memory>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- typedef sal_Int16 DocumentID;
- struct MigrationError;
-
- //====================================================================
- //= MigrationLog
- //====================================================================
- struct MigrationLog_Data;
- class MigrationLog
- {
- public:
- MigrationLog();
- ~MigrationLog();
-
- //----------------------------------------------------------------
- //- event logging
-
- /** logs an unrecoverable error during the migration process
- */
- void logFailure( const MigrationError& _rError );
-
- /** logs a recoverable (or at least ignorable) error during the migration process
- */
- void logRecoverable( const MigrationError& _rError );
-
- /// checks whether logFailure has been called
- bool hadFailure() const;
-
- /// logs the fact that the database document has been backed up
- void backedUpDocument( const ::rtl::OUString& _rNewDocumentLocation );
-
- /** logs that the migration for a certain sub document has been started, returns
- a unique ID for this sub document which is to be used in later calls
- */
- DocumentID startedDocument( const SubDocumentType _eType, const ::rtl::OUString& _rName );
-
- /** logs the event that a macro or script library has been moved from within a
- sub document to the database document
- */
- void movedLibrary(
- const DocumentID _nDocID,
- const ScriptType _eScriptType,
- const ::rtl::OUString& _rOriginalLibName,
- const ::rtl::OUString& _rNewLibName
- );
-
- /** logs that the migration for a certain document has been finished
- */
- void finishedDocument( const DocumentID _nDocID );
-
- //----------------------------------------------------------------
- //- information retrieval
-
- /** retrieves the new name of a library
-
- The new library name must previously have been logger by calling
- <member>movedLibrary</member>. If not, an assertion will be raised in
- the non-product builds, and an empty string will be returned.
- */
- const ::rtl::OUString&
- getNewLibraryName(
- DocumentID _nDocID,
- ScriptType _eScriptType,
- const ::rtl::OUString& _rOriginalLibName
- ) const;
-
- /** determines whether for the given document, any library needed to be (and was) moved
- */
- bool movedAnyLibrary( const DocumentID );
-
- /** provides a human-readable version of the log, explaining a user what happened during
- the migration.
- */
- ::rtl::OUString
- getCompleteLog() const;
-
- private:
- ::std::auto_ptr< MigrationLog_Data > m_pData;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MIGRATIONLOG_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/migrationprogress.hxx b/dbaccess/source/ext/macromigration/migrationprogress.hxx
deleted file mode 100644
index 44dbaf838..000000000
--- a/dbaccess/source/ext/macromigration/migrationprogress.hxx
+++ /dev/null
@@ -1,61 +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 DBACCESS_MIGRATIONPROGRESS_HXX
-#define DBACCESS_MIGRATIONPROGRESS_HXX
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //====================================================================
- //= IMigrationProgress
- //====================================================================
- class SAL_NO_VTABLE IMigrationProgress
- {
- public:
- virtual void startObject( const ::rtl::OUString& _rObjectName, const ::rtl::OUString& _rCurrentAction, const sal_uInt32 _nRange ) = 0;
- virtual void setObjectProgressText( const ::rtl::OUString& _rText ) = 0;
- virtual void setObjectProgressValue( const sal_uInt32 _nValue ) = 0;
- virtual void endObject() = 0;
- virtual void start( const sal_uInt32 _nOverallRange ) = 0;
- virtual void setOverallProgressText( const ::rtl::OUString& _rText ) = 0;
- virtual void setOverallProgressValue( const sal_uInt32 _nValue ) = 0;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_MIGRATIONPROGRESS_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/progresscapture.cxx b/dbaccess/source/ext/macromigration/progresscapture.cxx
deleted file mode 100644
index 6ff10cf13..000000000
--- a/dbaccess/source/ext/macromigration/progresscapture.cxx
+++ /dev/null
@@ -1,138 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "progresscapture.hxx"
-#include "migrationprogress.hxx"
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-#include <vcl/svapp.hxx>
-#include <osl/mutex.hxx>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::XInterface;
- using ::com::sun::star::uno::UNO_QUERY;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
- using ::com::sun::star::uno::UNO_SET_THROW;
- using ::com::sun::star::uno::Exception;
- using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::Any;
- using ::com::sun::star::uno::makeAny;
- /** === end UNO using === **/
-
- //====================================================================
- //= ProgressCapture_Data
- //====================================================================
- struct ProgressCapture_Data
- {
- ProgressCapture_Data( const ::rtl::OUString& _rObjectName, IMigrationProgress& _rMasterProgress )
- :sObjectName( _rObjectName )
- ,rMasterProgress( _rMasterProgress )
- ,bDisposed( false )
- {
- }
-
- ::rtl::OUString sObjectName;
- IMigrationProgress& rMasterProgress;
- bool bDisposed;
- };
-
- //====================================================================
- //= ProgressCapture
- //====================================================================
- //--------------------------------------------------------------------
- ProgressCapture::ProgressCapture( const ::rtl::OUString& _rObjectName, IMigrationProgress& _rMasterProgress )
- :m_pData( new ProgressCapture_Data( _rObjectName, _rMasterProgress ) )
- {
- }
-
- //--------------------------------------------------------------------
- ProgressCapture::~ProgressCapture()
- {
- }
-
- //--------------------------------------------------------------------
- void ProgressCapture::dispose()
- {
- SolarMutexGuard aGuard;
- m_pData->bDisposed = true;
- }
-
- //--------------------------------------------------------------------
- void SAL_CALL ProgressCapture::start( const ::rtl::OUString& _rText, ::sal_Int32 _nRange ) throw (RuntimeException)
- {
- SolarMutexGuard aGuard;
- if ( !m_pData->bDisposed )
- m_pData->rMasterProgress.startObject( m_pData->sObjectName, _rText, _nRange );
- }
-
- //--------------------------------------------------------------------
- void SAL_CALL ProgressCapture::end( ) throw (RuntimeException)
- {
- SolarMutexGuard aGuard;
- if ( !m_pData->bDisposed )
- m_pData->rMasterProgress.endObject();
- }
-
- //--------------------------------------------------------------------
- void SAL_CALL ProgressCapture::setText( const ::rtl::OUString& _rText ) throw (RuntimeException)
- {
- SolarMutexGuard aGuard;
- if ( !m_pData->bDisposed )
- m_pData->rMasterProgress.setObjectProgressText( _rText );
- }
-
- //--------------------------------------------------------------------
- void SAL_CALL ProgressCapture::setValue( ::sal_Int32 _nValue ) throw (RuntimeException)
- {
- SolarMutexGuard aGuard;
- if ( !m_pData->bDisposed )
- m_pData->rMasterProgress.setObjectProgressValue( _nValue );
- }
-
- //--------------------------------------------------------------------
- void SAL_CALL ProgressCapture::reset( ) throw (RuntimeException)
- {
- OSL_FAIL( "ProgressCapture::reset: not implemented!" );
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/progresscapture.hxx b/dbaccess/source/ext/macromigration/progresscapture.hxx
deleted file mode 100644
index 720c76a74..000000000
--- a/dbaccess/source/ext/macromigration/progresscapture.hxx
+++ /dev/null
@@ -1,82 +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 DBACCESS_PROGRESSCAPTURE_HXX
-#define DBACCESS_PROGRESSCAPTURE_HXX
-
-/** === begin UNO includes === **/
-#include <com/sun/star/task/XStatusIndicator.hpp>
-/** === end UNO includes === **/
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <memory>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- class IMigrationProgress;
-
- //====================================================================
- //= ProgressCapture
- //====================================================================
- typedef ::cppu::WeakImplHelper1 < ::com::sun::star::task::XStatusIndicator
- > ProgressCapture_Base;
-
- struct ProgressCapture_Data;
-
- class ProgressCapture : public ProgressCapture_Base
- {
- public:
- ProgressCapture( const ::rtl::OUString& _rObjectName, IMigrationProgress& _rMasterProgress );
-
- void dispose();
-
- // XStatusIndicator
- virtual void SAL_CALL start( const ::rtl::OUString& Text, ::sal_Int32 Range ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL end( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setText( const ::rtl::OUString& Text ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setValue( ::sal_Int32 Value ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL reset( ) throw (::com::sun::star::uno::RuntimeException);
-
- protected:
- virtual ~ProgressCapture();
-
- private:
- ::std::auto_ptr< ProgressCapture_Data > m_pData;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_PROGRESSCAPTURE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/progressmixer.cxx b/dbaccess/source/ext/macromigration/progressmixer.cxx
deleted file mode 100644
index a461eedae..000000000
--- a/dbaccess/source/ext/macromigration/progressmixer.cxx
+++ /dev/null
@@ -1,219 +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.
- *
-************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dbaccess.hxx"
-
-#include "progressmixer.hxx"
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-#include <osl/diagnose.h>
-
-#include <map>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- /** === begin UNO using === **/
- /** === end UNO using === **/
-
-#define OVERALL_RANGE 100000
-
- //====================================================================
- //= misc types
- //====================================================================
- struct PhaseData
- {
- // the weight of the phase, relative to all other phases
- PhaseWeight nWeight;
- // the "local" range of the phase
- sal_uInt32 nRange;
- // this is the point in the "overall range" at which this phase starts
- sal_uInt32 nGlobalStart;
- /** the "global" range of the phase, i.e. its range after weighting with all other
- phases
- */
- sal_uInt32 nGlobalRange;
-
- PhaseData()
- :nWeight(1)
- ,nRange(100)
- ,nGlobalStart(0)
- ,nGlobalRange(100)
- {
- }
-
- PhaseData( const PhaseWeight _nWeight )
- :nWeight( _nWeight )
- ,nRange(100)
- ,nGlobalStart(0)
- ,nGlobalRange(100)
- {
- }
- };
-
- typedef ::std::map< PhaseID, PhaseData > Phases;
-
- //====================================================================
- //= ProgressMixer_Data
- //====================================================================
- struct ProgressMixer_Data
- {
- Phases aPhases;
- Phases::iterator pCurrentPhase;
- sal_uInt32 nWeightSum; /// the cached sum of the weights
- double nOverallStretch;
- IProgressConsumer& rConsumer;
-
- ProgressMixer_Data( IProgressConsumer& _rConsumer )
- :aPhases()
- ,pCurrentPhase( aPhases.end() )
- ,nWeightSum( 0 )
- ,nOverallStretch( 0 )
- ,rConsumer( _rConsumer )
- {
- }
- };
-
- //--------------------------------------------------------------------
- namespace
- {
-#if OSL_DEBUG_LEVEL > 0
- //----------------------------------------------------------------
- bool lcl_isRunning( const ProgressMixer_Data& _rData )
- {
- return _rData.pCurrentPhase != _rData.aPhases.end();
- }
-#endif
- //----------------------------------------------------------------
- void lcl_ensureInitialized( ProgressMixer_Data& _rData )
- {
- OSL_PRECOND( _rData.nWeightSum, "lcl_ensureInitialized: we have no phases, this will crash!" );
-
- if ( _rData.nOverallStretch )
- return;
-
- _rData.nOverallStretch = 1.0 * OVERALL_RANGE / _rData.nWeightSum;
-
- // tell the single phases their "overall starting point"
- PhaseWeight nRunningWeight( 0 );
- for ( Phases::iterator phase = _rData.aPhases.begin();
- phase != _rData.aPhases.end();
- ++phase
- )
- {
- phase->second.nGlobalStart = (sal_uInt32)( nRunningWeight * _rData.nOverallStretch );
- nRunningWeight += phase->second.nWeight;
-
- sal_uInt32 nNextPhaseStart = (sal_uInt32)( nRunningWeight * _rData.nOverallStretch );
- phase->second.nGlobalRange = nNextPhaseStart - phase->second.nGlobalStart;
- }
-
- _rData.rConsumer.start( OVERALL_RANGE );
- }
- }
-
- //====================================================================
- //= ProgressMixer
- //====================================================================
- //--------------------------------------------------------------------
- ProgressMixer::ProgressMixer( IProgressConsumer& _rConsumer )
- :m_pData( new ProgressMixer_Data( _rConsumer ) )
- {
- }
-
- //--------------------------------------------------------------------
- ProgressMixer::~ProgressMixer()
- {
- }
-
- //--------------------------------------------------------------------
- void ProgressMixer::registerPhase( const PhaseID _nID, const PhaseWeight _nWeight )
- {
- OSL_PRECOND( !lcl_isRunning( *m_pData ), "ProgressMixer::registerPhase: already running!" );
- OSL_ENSURE( m_pData->aPhases.find( _nID ) == m_pData->aPhases.end(),
- "ProgressMixer::registerPhase: ID already used!" );
- m_pData->aPhases[ _nID ] = PhaseData( _nWeight );
- m_pData->nWeightSum += _nWeight;
- }
-
- //--------------------------------------------------------------------
- void ProgressMixer::startPhase( const PhaseID _nID, const sal_uInt32 _nPhaseRange )
- {
- OSL_ENSURE( m_pData->aPhases.find( _nID ) != m_pData->aPhases.end(),
- "ProgresMixer::startPhase: unknown phase!" );
-
- m_pData->aPhases[ _nID ].nRange = _nPhaseRange;
- m_pData->pCurrentPhase = m_pData->aPhases.find( _nID );
- }
-
- //--------------------------------------------------------------------
- void ProgressMixer::advancePhase( const sal_uInt32 _nPhaseProgress )
- {
- OSL_PRECOND( lcl_isRunning( *m_pData ), "ProgresMixer::advancePhase: not running!" );
-
- // in case this is the first call, ensure all the ranges/weights are calculated
- // correctly
- lcl_ensureInitialized( *m_pData );
-
- const PhaseData& rPhase( m_pData->pCurrentPhase->second );
-
- double nLocalProgress = 1.0 * _nPhaseProgress / rPhase.nRange;
- sal_uInt32 nOverallProgress = (sal_uInt32)
- ( rPhase.nGlobalStart + nLocalProgress * rPhase.nGlobalRange );
-
- m_pData->rConsumer.advance( nOverallProgress );
- }
-
- //--------------------------------------------------------------------
- void ProgressMixer::endPhase()
- {
- OSL_PRECOND( lcl_isRunning( *m_pData ), "ProgresMixer::endPhase: not running!" );
-
- // in case this is the first call, ensure all the ranges/weights are calculated
- // correctly
- lcl_ensureInitialized( *m_pData );
-
- // simply assume the phase's complete range is over
- advancePhase( m_pData->pCurrentPhase->second.nRange );
-
- // if that's the last phase, this is the "global end", too
- Phases::const_iterator pNextPhase( m_pData->pCurrentPhase );
- ++pNextPhase;
- if ( pNextPhase == m_pData->aPhases.end() )
- m_pData->rConsumer.end();
- }
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/progressmixer.hxx b/dbaccess/source/ext/macromigration/progressmixer.hxx
deleted file mode 100644
index 50506f931..000000000
--- a/dbaccess/source/ext/macromigration/progressmixer.hxx
+++ /dev/null
@@ -1,103 +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 DBACCESS_PROGRESSMIXER_HXX
-#define DBACCESS_PROGRESSMIXER_HXX
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-#include <sal/types.h>
-
-#include <memory>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- typedef sal_uInt32 PhaseID;
- typedef sal_uInt32 PhaseWeight;
-
- //====================================================================
- //= IProgressConsumer
- //====================================================================
- class SAL_NO_VTABLE IProgressConsumer
- {
- public:
- virtual void start( sal_uInt32 _nRange ) = 0;
- virtual void advance( sal_uInt32 _nValue ) = 0;
- virtual void end() = 0;
- };
-
- //====================================================================
- //= ProgressMixer
- //====================================================================
- struct ProgressMixer_Data;
- /** a class which mixes (i.e. concatenates) progress values from different
- sources/phases, with different weight
- */
- class ProgressMixer
- {
- public:
- ProgressMixer( IProgressConsumer& _rConsumer );
- ~ProgressMixer();
-
- /** registers a phase of the process, which has the given weight
- in the overall process
- @precond
- the progress is not runnig, yet
- */
- void registerPhase( const PhaseID _nID, const PhaseWeight _nWeight );
-
- /** enters the phase with the given ID, with the phase having
- the given overall range
- */
- void startPhase( const PhaseID _nID, const sal_uInt32 _nPhaseRange );
-
- /** announces a new progress in the current phase.
-
- The given phase progress must be between 0 and the overall phase range
- as specified in ->startPhase.
- */
- void advancePhase( const sal_uInt32 _nPhaseProgress );
-
- /** leaves the current phase, which has been started with ->startPhase previously
- */
- void endPhase();
-
- private:
- ::std::auto_ptr< ProgressMixer_Data > m_pData;
- };
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_PROGRESSMIXER_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ext/macromigration/rangeprogressbar.hxx b/dbaccess/source/ext/macromigration/rangeprogressbar.hxx
deleted file mode 100644
index f4d1c840e..000000000
--- a/dbaccess/source/ext/macromigration/rangeprogressbar.hxx
+++ /dev/null
@@ -1,107 +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 DBACCESS_RANGEPROGRESSBAR_HXX
-#define DBACCESS_RANGEPROGRESSBAR_HXX
-
-/** === begin UNO includes === **/
-/** === end UNO includes === **/
-
-#include <svtools/prgsbar.hxx>
-
-//........................................................................
-namespace dbmm
-{
-//........................................................................
-
- //====================================================================
- //= RangeProgressBar
- //====================================================================
- /** a slight extension of the usual progress bar, which is able to remember a range
- */
- class RangeProgressBar : public ProgressBar
- {
- public:
- RangeProgressBar( Window* _pParent, WinBits nWinBits = WB_STDPROGRESSBAR )
- :ProgressBar( _pParent, nWinBits )
- {
- }
-
- RangeProgressBar( Window* _pParent, const ResId& rResId )
- :ProgressBar( _pParent, rResId )
- {
- }
-
- inline void SetRange( sal_uInt32 _nRange );
- inline sal_uInt32 GetRange() const;
-
- inline void SetValue( sal_uInt32 _nValue );
- inline sal_uInt32 GetValue() const;
-
- private:
- sal_uInt32 m_nRange;
-
- private:
- using ProgressBar::SetValue;
- using ProgressBar::GetValue;
- };
-
- //--------------------------------------------------------------------
- inline void RangeProgressBar::SetRange( sal_uInt32 _nRange )
- {
- m_nRange = _nRange;
- if ( !m_nRange )
- m_nRange = 100;
- }
-
- //--------------------------------------------------------------------
- inline sal_uInt32 RangeProgressBar::GetRange() const
- {
- return m_nRange;
- }
-
- //--------------------------------------------------------------------
- inline void RangeProgressBar::SetValue( sal_uInt32 _nValue )
- {
- ProgressBar::SetValue( (sal_uInt16)( 100.0 * _nValue / m_nRange ) );
- }
-
- //--------------------------------------------------------------------
- inline sal_uInt32 RangeProgressBar::GetValue() const
- {
- return (sal_uInt32)( ProgressBar::GetValue() / 100.0 * m_nRange );
- }
-
-
-//........................................................................
-} // namespace dbmm
-//........................................................................
-
-#endif // DBACCESS_RANGEPROGRESSBAR_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */