diff options
Diffstat (limited to 'xmlscript/test/imexp.cxx')
-rw-r--r-- | xmlscript/test/imexp.cxx | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/xmlscript/test/imexp.cxx b/xmlscript/test/imexp.cxx deleted file mode 100644 index d4dfd1679423..000000000000 --- a/xmlscript/test/imexp.cxx +++ /dev/null @@ -1,209 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <config_folders.h> - -#include <stdio.h> -#include <osl/file.h> - -#include <rtl/ustrbuf.hxx> -#include <sal/log.hxx> - -#include <xmlscript/xmldlg_imexp.hxx> -#include <xmlscript/xml_helper.hxx> - -#include <cppuhelper/servicefactory.hxx> -#include <cppuhelper/bootstrap.hxx> - -#include <comphelper/processfactory.hxx> - -#include <vcl/svapp.hxx> - -#include <com/sun/star/awt/UnoControlDialog.hpp> -#include <com/sun/star/awt/Toolkit.hpp> -#include <com/sun/star/awt/XToolkit.hpp> -#include <com/sun/star/awt/XControlModel.hpp> -#include <com/sun/star/awt/XControl.hpp> -#include <com/sun/star/awt/XDialog.hpp> -#include <com/sun/star/container/XNameContainer.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/io/XActiveDataSource.hpp> -#include <com/sun/star/registry/XSimpleRegistry.hpp> -#include <com/sun/star/registry/XImplementationRegistration.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> - -using namespace ::cppu; -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; - -Reference< XComponentContext > createInitialComponentContext( - OUString const & inst_dir ) -{ - Reference< XComponentContext > xContext; - - try - { - OUString file_url; - oslFileError rc = osl_getFileURLFromSystemPath( - inst_dir.pData, &file_url.pData ); - OSL_ASSERT( osl_File_E_None == rc ); - - OUString unorc = file_url + ("/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("louno") ); - - return defaultBootstrap_InitialComponentContext( unorc ); - } - - catch( const Exception& rExc ) - { - SAL_WARN( "xmlscript", rExc ); - } - - return xContext; -} - -Reference< container::XNameContainer > importFile( - char const * fname, - Reference< XComponentContext > const & xContext ) -{ - // create the input stream - FILE *f = ::fopen( fname, "rb" ); - if (f) - { - ::fseek( f, 0 ,SEEK_END ); - int nLength = ::ftell( f ); - ::fseek( f, 0, SEEK_SET ); - - ByteSequence bytes( nLength ); - ::fread( bytes.getArray(), nLength, 1, f ); - ::fclose( f ); - - Reference< container::XNameContainer > xModel( xContext->getServiceManager()->createInstanceWithContext( - "com.sun.star.awt.UnoControlDialogModel", xContext ), UNO_QUERY ); - ::xmlscript::importDialogModel( ::xmlscript::createInputStream( bytes ), xModel, xContext ); - - return xModel; - } - else - { - throw Exception( "### Cannot read file!" ); - } -} - -void exportToFile( - char const * fname, - Reference< container::XNameContainer > const & xModel, - Reference< XComponentContext > const & xContext ) -{ - Reference< io::XInputStreamProvider > xProvider( ::xmlscript::exportDialogModel( xModel, xContext ) ); - Reference< io::XInputStream > xStream( xProvider->createInputStream() ); - - Sequence< sal_Int8 > bytes; - sal_Int32 nRead = xStream->readBytes( bytes, xStream->available() ); - for (;;) - { - Sequence< sal_Int8 > readBytes; - nRead = xStream->readBytes( readBytes, 1024 ); - if (! nRead) - break; - OSL_ASSERT( readBytes.getLength() >= nRead ); - - sal_Int32 nPos = bytes.getLength(); - bytes.realloc( nPos + nRead ); - memcpy( bytes.getArray() + nPos, readBytes.getConstArray(), (sal_uInt32)nRead ); - } - - FILE * f = ::fopen( fname, "w" ); - ::fwrite( bytes.getConstArray(), 1, bytes.getLength(), f ); - ::fclose( f ); -} - -class MyApp : public Application -{ -public: - void Main(); -}; - -MyApp aMyApp; - -void MyApp::Main() -{ - if (GetCommandLineParamCount() < 2) - { - OSL_FAIL( "usage: imexp inst_dir inputfile [outputfile]" ); - return; - } - - Reference< XComponentContext > xContext( - createInitialComponentContext( OUString( GetCommandLineParam( 0 ) ) ) ); - Reference< lang::XMultiServiceFactory > xMSF( - xContext->getServiceManager(), UNO_QUERY ); - - try - { - ::comphelper::setProcessServiceFactory( xMSF ); - - Reference< awt::XToolkit> xToolkit = awt::Toolkit::create( xContext ); - - // import dialogs - OString aParam1( OUStringToOString( - OUString( GetCommandLineParam( 1 ) ), - RTL_TEXTENCODING_ASCII_US ) ); - Reference< container::XNameContainer > xModel( - importFile( aParam1.getStr(), xContext ) ); - OSL_ASSERT( xModel.is() ); - - Reference< awt::XUnoControlDialog > xDlg = UnoControlDialog::create( xContext ); - xDlg->setModel( xModel ); - xDlg->createPeer( xToolkit, 0 ); - xDlg->execute(); - - if (GetCommandLineParamCount() == 3) - { - // write modified dialogs - OString aParam2( OUStringToOString( - OUString( GetCommandLineParam( 2 ) ), RTL_TEXTENCODING_ASCII_US ) ); - exportToFile( aParam2.getStr(), xModel, xContext ); - } - } - catch (const xml::sax::SAXException & rExc) - { - OUString aStr( rExc ); - uno::Exception exc; - if (rExc.WrappedException >>= exc) - { - aStr += " >>> "; - aStr += exc; - } - SAL_WARN( "xmlscript", aStr ); - } - catch (const uno::Exception & rExc) - { - SAL_WARN( "xmlscript", rExc ); - } - - Reference< lang::XComponent > xComp( xContext, UNO_QUERY ); - if (xComp.is()) - { - xComp->dispose(); - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |