diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-03-09 09:22:08 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-03-09 10:26:50 +0000 |
commit | d527c1df688db82f93a2fb336f2c5ae0a243104f (patch) | |
tree | 255a7f7f4cf9c3847deb55b066e4387a4d31ce4b /ucbhelper | |
parent | fd468f7c928902600ce612df0141d6ed98b09b9e (diff) |
callcatcher: update list
Diffstat (limited to 'ucbhelper')
23 files changed, 2 insertions, 4240 deletions
diff --git a/ucbhelper/inc/ucbhelper/content.hxx b/ucbhelper/inc/ucbhelper/content.hxx index e49999bab3cf..c9b06ec031ce 100644 --- a/ucbhelper/inc/ucbhelper/content.hxx +++ b/ucbhelper/inc/ucbhelper/content.hxx @@ -324,20 +324,6 @@ public: /** * This method can be used to read multiple property values. * - * @param nPropertyHandles is a sequence of handles of properties for - * that the values shall be obtained. - * @return an XRow interface that can be used to obtain the property - * values. - */ - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > - getPropertyValues( const ::com::sun::star::uno::Sequence< - sal_Int32 >& nPropertyHandles ) - throw( ::com::sun::star::ucb::CommandAbortedException, - ::com::sun::star::uno::RuntimeException, - ::com::sun::star::uno::Exception ); - /** - * This method can be used to read multiple property values. - * * @param rPropertyNames is a sequence of names of properties for * that the values shall be obtained. * @return the property values. @@ -348,20 +334,7 @@ public: throw( ::com::sun::star::ucb::CommandAbortedException, ::com::sun::star::uno::RuntimeException, ::com::sun::star::uno::Exception ); - /** - * This method can be used to read multiple property values. - * - * @param nPropertyHandles is a sequence of handles of properties for - * that the values shall be obtained. - * @return an XRow interface that can be used to obtain the property - * values. - */ - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow > - getPropertyValuesInterface( const ::com::sun::star::uno::Sequence< - sal_Int32 >& nPropertyHandles ) - throw( ::com::sun::star::ucb::CommandAbortedException, - ::com::sun::star::uno::RuntimeException, - ::com::sun::star::uno::Exception ); + /** * This method can be used to set multiple property values. * @@ -400,44 +373,6 @@ public: throw( ::com::sun::star::ucb::CommandAbortedException, ::com::sun::star::uno::RuntimeException, ::com::sun::star::uno::Exception ); - /** - * This method can be used to set multiple property values. - * - * @param nPropertyHandles is a sequence of handles of properties for - * that values shall be set. - * @return a sequence of any's which has exactly the same number - * of elements as the number of properties to set. Every - * sequence element contains the status for a property. The - * first sequence elements corresponds to the first element in - * the sequence of property names and so on. - * - * An any containing: - * - No value indicates, that the property value was set - * successfully. - * - com::sun::star::beans::UnknownPropertyException indicates, - * that the property is not known to the content implementation. - * - com::sun::star::beans::IllegalTypeException indicates, that - * the data type of the property value is not acceptable. - * - com::sun::star::lang::IllegalAccessException indicates, that - * the property is constant. - * - com::sun::star::lang::IllegalArgumentException indicates, - * that the property value is not acceptable. For instance, - * setting an empty title may be illegal. - * - Any other execption derived from - * com::sun::star::uno::Exception indicates, that the value was - * not set successfully. For example, this can be a - * com::sun:star::ucb::InteractiveAugmentedIOException - * transporting the error code - * com::sun::star::ucb::IOErrorCode::ACCESS_DENIED. - */ - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > - setPropertyValues( const ::com::sun::star::uno::Sequence< - sal_Int32 >& nPropertyHandles, - const ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Any >& rValues ) - throw( ::com::sun::star::ucb::CommandAbortedException, - ::com::sun::star::uno::RuntimeException, - ::com::sun::star::uno::Exception ); ////////////////////////////////////////////////////////////////////// // General command execution. @@ -705,44 +640,7 @@ public: throw( ::com::sun::star::ucb::CommandAbortedException, ::com::sun::star::uno::RuntimeException, ::com::sun::star::uno::Exception ); - /** - * This method creates, initializes and inserts (commits) a new content - * inside this (the target folder) content. For example, it can be used to - * create a new file system file. - * Internally this method does a - * XCommandProcessor::execute( "createNewContent", ... ); - * XCommandProcessor::execute( "setPropertyValues", ... ); - * XCommandProcessor::execute( "insert", ... ); calling sequence. - * - * @param rContentType is the type for the new UCB content. Each content - * provider implementation may introduce own types for its content - * objects (See queryCreatableContentsInfo()). - * @param nPropertyHandes is a sequence of handles of properties for that - * values are to set at the new content before it will be inserted - * ( commited ). - * The order of the handles must correspond to the order of the - * property values. - * @param rPropertyValues is a sequence of property values that are to - * set at the new content before it will be inserted ( commited ). - * The order of the values must correspond to the order of the - * property handles. - * @param rStream is a stream containing the content data for the new - * content (i.e. the content of a file to create) - * @param rNewContent will be filled by the implementation of this method - * with the new content. - */ - sal_Bool - insertNewContent( const ::rtl::OUString& rContentType, - const ::com::sun::star::uno::Sequence< - sal_Int32 >& nPropertyHandles, - const ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Any >& rPropertyValues, - const ::com::sun::star::uno::Reference< - ::com::sun::star::io::XInputStream >& rStream, - Content& rNewContent ) - throw( ::com::sun::star::ucb::CommandAbortedException, - ::com::sun::star::uno::RuntimeException, - ::com::sun::star::uno::Exception ); + /** * This method transfers (copies/moves) a content. It creates a new * resource inside this (the target folder) content. diff --git a/ucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx b/ucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx index c770c8e7c21a..7a9f2e782cd8 100644 --- a/ucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx +++ b/ucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx @@ -63,15 +63,6 @@ public: SimpleCertificateValidationRequest( const sal_Int32 & lCertificateValidity, const com::sun::star::uno::Reference<com::sun::star::security::XCertificate> pCertificate, const rtl::OUString & hostname ); - - /** - * After passing this request to XInteractionHandler::handle, this method - * returns the continuation that was choosen by the interaction handler. - * - * @return the continuation choosen by an interaction handler or - * CONTINUATION_UNKNOWN, if the request was not (yet) handled. - */ - sal_Int32 getResponse() const; }; } // namespace ucbhelper diff --git a/ucbhelper/source/client/content.cxx b/ucbhelper/source/client/content.cxx index 59cc3997057e..c4e5d8dc9037 100644 --- a/ucbhelper/source/client/content.cxx +++ b/ucbhelper/source/client/content.cxx @@ -559,27 +559,6 @@ Sequence< Any > Content::getPropertyValues( } //========================================================================= -Sequence< Any > Content::getPropertyValues( - const Sequence< sal_Int32 >& nPropertyHandles ) - throw( CommandAbortedException, RuntimeException, Exception ) -{ - Reference< XRow > xRow = getPropertyValuesInterface( nPropertyHandles ); - - sal_Int32 nCount = nPropertyHandles.getLength(); - Sequence< Any > aValues( nCount ); - - if ( xRow.is() ) - { - Any* pValues = aValues.getArray(); - - for ( sal_Int32 n = 0; n < nCount; ++n ) - pValues[ n ] = xRow->getObject( n + 1, Reference< XNameAccess >() ); - } - - return aValues; -} - -//========================================================================= Reference< XRow > Content::getPropertyValuesInterface( const Sequence< rtl::OUString >& rPropertyNames ) throw( CommandAbortedException, RuntimeException, Exception ) @@ -613,39 +592,6 @@ Reference< XRow > Content::getPropertyValuesInterface( } //========================================================================= -Reference< XRow > Content::getPropertyValuesInterface( - const Sequence< sal_Int32 >& nPropertyHandles ) - throw( CommandAbortedException, RuntimeException, Exception ) -{ - sal_Int32 nCount = nPropertyHandles.getLength(); - Sequence< Property > aProps( nCount ); - Property* pProps = aProps.getArray(); - - const sal_Int32* pHandles = nPropertyHandles.getConstArray(); - - for ( sal_Int32 n = 0; n< nCount; ++n ) - { - Property& rProp = pProps[ n ]; - - rProp.Name = rtl::OUString(); // n/a - rProp.Handle = pHandles[ n ]; -// rProp.Type = -// rProp.Attributes = ; - } - - Command aCommand; - aCommand.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("getPropertyValues")); - aCommand.Handle = -1; // n/a - aCommand.Argument <<= aProps; - - Any aResult = m_xImpl->executeCommand( aCommand ); - - Reference< XRow > xRow; - aResult >>= xRow; - return xRow; -} - -//========================================================================= Sequence< Any > Content::setPropertyValues( const Sequence< rtl::OUString >& rPropertyNames, const Sequence< Any >& rValues ) @@ -694,54 +640,6 @@ Sequence< Any > Content::setPropertyValues( } //========================================================================= -Sequence< Any > Content::setPropertyValues( - const Sequence< sal_Int32 >& nPropertyHandles, - const Sequence< Any >& rValues ) - throw( CommandAbortedException, RuntimeException, Exception ) -{ - if ( nPropertyHandles.getLength() != rValues.getLength() ) - { - ucbhelper::cancelCommandExecution( - makeAny( IllegalArgumentException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "Length of property handles sequence and value " - "sequence are unequal!" )), - get(), - -1 ) ), - m_xImpl->getEnvironment() ); - // Unreachable - } - - sal_Int32 nCount = rValues.getLength(); - Sequence< PropertyValue > aProps( nCount ); - PropertyValue* pProps = aProps.getArray(); - - const sal_Int32* pHandles = nPropertyHandles.getConstArray(); - const Any* pValues = rValues.getConstArray(); - - for ( sal_Int32 n = 0; n< nCount; ++n ) - { - PropertyValue& rProp = pProps[ n ]; - - rProp.Name = rtl::OUString(); // n/a - rProp.Handle = pHandles[ n ]; - rProp.Value = pValues[ n ]; -// rProp.State = ; - } - - Command aCommand; - aCommand.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("setPropertyValues")); - aCommand.Handle = -1; // n/a - aCommand.Argument <<= aProps; - - Any aResult = m_xImpl->executeCommand( aCommand ); - - Sequence< Any > aErrors; - aResult >>= aErrors; - return aErrors; -} - -//========================================================================= Any Content::executeCommand( const rtl::OUString& rCommandName, const Any& rCommandArgument ) throw( CommandAbortedException, RuntimeException, Exception ) @@ -1149,69 +1047,6 @@ sal_Bool Content::insertNewContent( const rtl::OUString& rContentType, } //========================================================================= -sal_Bool Content::insertNewContent( const rtl::OUString& rContentType, - const Sequence< sal_Int32 >& - nPropertyHandles, - const Sequence< Any >& rPropertyValues, - const Reference< XInputStream >& rData, - Content& rNewContent ) - throw( CommandAbortedException, RuntimeException, Exception ) -{ - if ( rContentType.isEmpty() ) - return sal_False; - - // First, try it using "createNewContent" command -> the "new" way. - ContentInfo aInfo; - aInfo.Type = rContentType; - aInfo.Attributes = 0; - - Command aCommand; - aCommand.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("createNewContent")); - aCommand.Handle = -1; // n/a - aCommand.Argument <<= aInfo; - - Reference< XContent > xNew; - try - { - m_xImpl->executeCommand( aCommand ) >>= xNew; - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - if ( !xNew.is() ) - { - // Second, try it using XContentCreator interface -> the "old" - // way (not providing the chance to supply an XCommandEnvironment. - Reference< XContentCreator > xCreator( m_xImpl->getContent(), UNO_QUERY ); - - if ( !xCreator.is() ) - return sal_False; - - xNew = xCreator->createNewContent( aInfo ); - - if ( !xNew.is() ) - return sal_False; - } - - Content aNewContent( xNew, m_xImpl->getEnvironment() ); - aNewContent.setPropertyValues( nPropertyHandles, rPropertyValues ); - aNewContent.executeCommand( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("insert")), - makeAny( - InsertCommandArgument( - rData.is() ? rData : new EmptyInputStream, - sal_False /* ReplaceExisting */ ) ) ); - aNewContent.m_xImpl->inserted(); - - rNewContent = aNewContent; - return sal_True; -} - -//========================================================================= sal_Bool Content::transferContent( const Content& rSourceContent, InsertOperation eOperation, const rtl::OUString & rTitle, diff --git a/ucbhelper/source/provider/simplecertificatevalidationrequest.cxx b/ucbhelper/source/provider/simplecertificatevalidationrequest.cxx index c12ae0d8cfbb..952139bb94e8 100644 --- a/ucbhelper/source/provider/simplecertificatevalidationrequest.cxx +++ b/ucbhelper/source/provider/simplecertificatevalidationrequest.cxx @@ -53,37 +53,4 @@ SimpleCertificateValidationRequest::SimpleCertificateValidationRequest( const sa pCertificate.get(); } -//========================================================================= -sal_Int32 SimpleCertificateValidationRequest::getResponse() const -{ - rtl::Reference< InteractionContinuation > xSelection = getSelection(); - if ( xSelection.is() ) - { - InteractionContinuation * pSelection = xSelection.get(); - - uno::Reference< task::XInteractionAbort > xAbort( - pSelection, uno::UNO_QUERY ); - if ( xAbort.is() ) - return 1; - - uno::Reference< task::XInteractionRetry > xRetry( - pSelection, uno::UNO_QUERY ); - if ( xRetry.is() ) - return 2; - - uno::Reference< task::XInteractionApprove > xApprove( - pSelection, uno::UNO_QUERY ); - if ( xApprove.is() ) - return 4; - - uno::Reference< task::XInteractionDisapprove > xDisapprove( - pSelection, uno::UNO_QUERY ); - if ( xDisapprove.is() ) - return 8; - - OSL_FAIL( "CertificateValidationRequest - Unknown continuation!" ); - } - return 0; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/makefile.mk b/ucbhelper/workben/myucp/makefile.mk deleted file mode 100644 index 73c3d0bb6f34..000000000000 --- a/ucbhelper/workben/myucp/makefile.mk +++ /dev/null @@ -1,89 +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. -# -#************************************************************************* - -# @@@ UCP Version - Increase, if your UCP libraray becomes incompatible. -UCP_VERSION=1 - -# @@@ Name for your UCP. Will become part of the library name (See below). -UCP_NAME=myucp - -# @@@ Relative path to project root. -PRJ=..$/.. - -# @@@ Name of the project your UCP code recides it. -PRJNAME=ucbhelper - -TARGET=ucp$(UCP_NAME)$(UCP_VERSION).uno - -ENABLE_EXCEPTIONS=TRUE -USE_DEFFILE=TRUE - -# --- Settings --------------------------------------------------------- - -.INCLUDE: settings.mk -.INCLUDE : ../../version.mk - -# --- General ----------------------------------------------------- - -# no "lib" prefix -DLLPRE = - -# @@@ Adjust template file names. Add own files here. -SLOFILES=\ - $(SLO)$/myucp_services.obj \ - $(SLO)$/myucp_provider.obj \ - $(SLO)$/myucp_content.obj \ - $(SLO)$/myucp_contentcaps.obj \ - $(SLO)$/myucp_resultset.obj \ - $(SLO)$/myucp_datasupplier.obj - -LIB1TARGET=$(SLB)$/_$(TARGET).lib -LIB1OBJFILES=$(SLOFILES) - -# --- Shared-Library --------------------------------------------------- - -SHL1TARGET=$(TARGET) -SHL1IMPLIB=i$(TARGET) -SHL1VERSIONMAP=$(SOLARENV)/src/component.map - -# @@@ Add additional libs here. -SHL1STDLIBS=\ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) \ - $(SALHELPERLIB) \ - $(UCBHELPERLIB) - -SHL1DEF=$(MISC)$/$(SHL1TARGET).def -SHL1LIBS=$(LIB1TARGET) - -DEF1NAME=$(SHL1TARGET) - -# --- Targets ---------------------------------------------------------- - -.INCLUDE: target.mk - diff --git a/ucbhelper/workben/myucp/myucp_content.cxx b/ucbhelper/workben/myucp/myucp_content.cxx deleted file mode 100644 index 8afe738e23fc..000000000000 --- a/ucbhelper/workben/myucp/myucp_content.cxx +++ /dev/null @@ -1,944 +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. - * - ************************************************************************/ - - -/************************************************************************** - TODO - ************************************************************************** - - *************************************************************************/ - -#include "osl/diagnose.h" - -#include "com/sun/star/beans/PropertyAttribute.hpp" -#include "com/sun/star/beans/XPropertyAccess.hpp" -#include "com/sun/star/lang/IllegalAccessException.hpp" -#include "com/sun/star/sdbc/XRow.hpp" -#include "com/sun/star/ucb/XCommandInfo.hpp" -#include "com/sun/star/ucb/XPersistentPropertySet.hpp" -#include "ucbhelper/contentidentifier.hxx" -#include "ucbhelper/propertyvalueset.hxx" -#include "ucbhelper/cancelcommandexecution.hxx" - -#include "myucp_content.hxx" -#include "myucp_provider.hxx" - -#ifdef IMPLEMENT_COMMAND_INSERT -#include "com/sun/star/ucb/InsertCommandArgument.hpp" -#include "com/sun/star/ucb/MissingInputStreamException.hpp" -#include "com/sun/star/ucb/MissingPropertiesException.hpp" -#endif -#ifdef IMPLEMENT_COMMAND_OPEN -#include "com/sun/star/io/XOutputStream.hpp" -#include "com/sun/star/io/XActiveDataSink.hpp" -#include "com/sun/star/ucb/OpenCommandArgument2.hpp" -#include "com/sun/star/ucb/OpenMode.hpp" -#include "com/sun/star/ucb/UnsupportedDataSinkException.hpp" -#include "com/sun/star/ucb/UnsupportedOpenModeException.hpp" -#include "myucp_resultset.hxx" -#endif - -using namespace com::sun::star; - -// @@@ Adjust namespace name. -using namespace myucp; - -//========================================================================= -//========================================================================= -// -// Content Implementation. -// -//========================================================================= -//========================================================================= - -Content::Content( const uno::Reference< lang::XMultiServiceFactory >& rxSMgr, - ::ucbhelper::ContentProviderImplHelper* pProvider, - const uno::Reference< ucb::XContentIdentifier >& Identifier ) -: ContentImplHelper( rxSMgr, pProvider, Identifier ) -{ - // @@@ Fill m_aProps here or implement lazy evaluation logic for this. - // m_aProps.aTitle = - // m_aprops.aContentType = - // m_aProps.bIsDocument = - // m_aProps.bIsFolder = -} - -//========================================================================= -// virtual -Content::~Content() -{ -} - -//========================================================================= -// -// XInterface methods. -// -//========================================================================= - -// virtual -void SAL_CALL Content::acquire() - throw() -{ - ContentImplHelper::acquire(); -} - -//========================================================================= -// virtual -void SAL_CALL Content::release() - throw() -{ - ContentImplHelper::release(); -} - -//========================================================================= -// virtual -uno::Any SAL_CALL Content::queryInterface( const uno::Type & rType ) - throw ( uno::RuntimeException ) -{ - uno::Any aRet; - - return aRet.hasValue() ? aRet : ContentImplHelper::queryInterface( rType ); -} - -//========================================================================= -// -// XTypeProvider methods. -// -//========================================================================= - -XTYPEPROVIDER_COMMON_IMPL( Content ); - -//========================================================================= -// virtual -uno::Sequence< uno::Type > SAL_CALL Content::getTypes() - throw( uno::RuntimeException ) -{ - // @@@ Add own interfaces. - - static cppu::OTypeCollection* pCollection = 0; - - if ( !pCollection ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if ( !pCollection ) - { - static cppu::OTypeCollection aCollection( - CPPU_TYPE_REF( lang::XTypeProvider ), - CPPU_TYPE_REF( lang::XServiceInfo ), - CPPU_TYPE_REF( lang::XComponent ), - CPPU_TYPE_REF( ucb::XContent ), - CPPU_TYPE_REF( ucb::XCommandProcessor ), - CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ), - CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ), - CPPU_TYPE_REF( beans::XPropertyContainer ), - CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ), - CPPU_TYPE_REF( container::XChild ) ); - pCollection = &aCollection; - } - } - - return (*pCollection).getTypes(); -} - -//========================================================================= -// -// XServiceInfo methods. -// -//========================================================================= - -// virtual -rtl::OUString SAL_CALL Content::getImplementationName() - throw( uno::RuntimeException ) -{ - // @@@ Adjust implementation name. - // Prefix with reversed company domain name. - return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.myucp.Content")); -} - -//========================================================================= -// virtual -uno::Sequence< rtl::OUString > SAL_CALL Content::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - // @@@ Adjust macro name. - uno::Sequence< rtl::OUString > aSNS( 1 ); - aSNS.getArray()[ 0 ] - = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( MYUCP_CONTENT_SERVICE_NAME )); - return aSNS; -} - -//========================================================================= -// -// XContent methods. -// -//========================================================================= - -// virtual -rtl::OUString SAL_CALL Content::getContentType() - throw( uno::RuntimeException ) -{ - // @@@ Adjust macro name ( def in myucp_provider.hxx ). - return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( MYUCP_CONTENT_TYPE )); -} - -//========================================================================= -// -// XCommandProcessor methods. -// -//========================================================================= - -// virtual -uno::Any SAL_CALL Content::execute( - const ucb::Command& aCommand, - sal_Int32 /* CommandId */, - const uno::Reference< ucb::XCommandEnvironment >& Environment ) - throw( uno::Exception, - ucb::CommandAbortedException, - uno::RuntimeException ) -{ - uno::Any aRet; - - if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "getPropertyValues" ) ) ) - { - ////////////////////////////////////////////////////////////////// - // getPropertyValues - ////////////////////////////////////////////////////////////////// - - uno::Sequence< beans::Property > Properties; - if ( !( aCommand.Argument >>= Properties ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ::ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - aRet <<= getPropertyValues( Properties, Environment ); - } - else if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "setPropertyValues" ) ) ) - { - ////////////////////////////////////////////////////////////////// - // setPropertyValues - ////////////////////////////////////////////////////////////////// - - uno::Sequence< beans::PropertyValue > aProperties; - if ( !( aCommand.Argument >>= aProperties ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ::ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - if ( !aProperties.getLength() ) - { - OSL_FAIL( "No properties!" ); - ::ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - aRet <<= setPropertyValues( aProperties, Environment ); - } - else if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) ) - { - ////////////////////////////////////////////////////////////////// - // getPropertySetInfo - ////////////////////////////////////////////////////////////////// - - // Note: Implemented by base class. - aRet <<= getPropertySetInfo( Environment ); - } - else if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "getCommandInfo" ) ) ) - { - ////////////////////////////////////////////////////////////////// - // getCommandInfo - ////////////////////////////////////////////////////////////////// - - // Note: Implemented by base class. - aRet <<= getCommandInfo( Environment ); - } -#ifdef IMPLEMENT_COMMAND_OPEN - else if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "open" ) ) ) - { - ucb::OpenCommandArgument2 aOpenCommand; - if ( !( aCommand.Argument >>= aOpenCommand ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ::ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - sal_Bool bOpenFolder = - ( ( aOpenCommand.Mode == ucb::OpenMode::ALL ) || - ( aOpenCommand.Mode == ucb::OpenMode::FOLDERS ) || - ( aOpenCommand.Mode == ucb::OpenMode::DOCUMENTS ) ); - - if ( bOpenFolder /*&& isFolder( Environment )*/ ) - { - // open as folder - return result set - - uno::Reference< ucb::XDynamicResultSet > xSet - = new DynamicResultSet( m_xSMgr, - this, - aOpenCommand, - Environment ); - aRet <<= xSet; - } - - if ( aOpenCommand.Sink.is() ) - { - // Open document - supply document data stream. - - // Check open mode - if ( ( aOpenCommand.Mode - == ucb::OpenMode::DOCUMENT_SHARE_DENY_NONE ) || - ( aOpenCommand.Mode - == ucb::OpenMode::DOCUMENT_SHARE_DENY_WRITE ) ) - { - // Unsupported. - ::ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedOpenModeException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - sal_Int16( aOpenCommand.Mode ) ) ), - Environment ); - // Unreachable - } - - - rtl::OUString aURL = m_xIdentifier->getContentIdentifier(); - uno::Reference< io::XOutputStream > xOut - = uno::Reference< io::XOutputStream >( - aOpenCommand.Sink, uno::UNO_QUERY ); - if ( xOut.is() ) - { - // @@@ write data into xOut - } - else - { - uno::Reference< io::XActiveDataSink > xDataSink( - aOpenCommand.Sink, uno::UNO_QUERY ); - if ( xDataSink.is() ) - { - uno::Reference< io::XInputStream > xIn - /* @@@ your XInputStream + XSeekable impl. object */; - xDataSink->setInputStream( xIn ); - } - else - { - // Note: aOpenCommand.Sink may contain an XStream - // implementation. Support for this type of - // sink is optional... - ::ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedDataSinkException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - aOpenCommand.Sink ) ), - Environment ); - // Unreachable - } - } - } - } -#endif // IMPLEMENT_COMMAND_OPEN - -#ifdef IMPLEMENT_COMMAND_INSERT - else if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "insert" ) ) ) - { - ////////////////////////////////////////////////////////////////// - // insert - ////////////////////////////////////////////////////////////////// - - ucb::InsertCommandArgument arg; - if ( !( aCommand.Argument >>= arg ) ) - { - OSL_FAIL( "Wrong argument type!" ); - ::ucbhelper::cancelCommandExecution( - uno::makeAny( lang::IllegalArgumentException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ), - -1 ) ), - Environment ); - // Unreachable - } - - insert( arg.Data, arg.ReplaceExisting, Environment ); - } -#endif // IMPLEMENT_COMMAND_INSERT - -#ifdef IMPLEMENT_COMMAND_DELETE - else if ( aCommand.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "delete" ) ) ) - { - ////////////////////////////////////////////////////////////////// - // delete - ////////////////////////////////////////////////////////////////// - - sal_Bool bDeletePhysical = sal_False; - aCommand.Argument >>= bDeletePhysical; - destroy( bDeletePhysical ); - - // Remove own and all children's Additional Core Properties. - removeAdditionalPropertySet( sal_True ); - - // Remove own and all childrens(!) persistent data. -// removeData(); - } -#endif // IMPLEMENT_COMMAND_DELETE - else - { - ////////////////////////////////////////////////////////////////// - // Unsupported command - ////////////////////////////////////////////////////////////////// - - OSL_FAIL( "Content::execute - unsupported command!" ); - - ::ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::UnsupportedCommandException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ) ) ), - Environment ); - // Unreachable - } - - return aRet; -} - -//========================================================================= -// virtual -void SAL_CALL Content::abort( sal_Int32 ) - throw( uno::RuntimeException ) -{ - // @@@ Implement logic to abort running commands, if this makes - // sense for your content. -} - -//========================================================================= -// -// Non-interface methods. -// -//========================================================================= - -// virtual -rtl::OUString Content::getParentURL() -{ - rtl::OUString aURL = m_xIdentifier->getContentIdentifier(); - - // @@@ Extract URL of parent from aURL and return it... - - return rtl::OUString(); -} - -//========================================================================= -// static -uno::Reference< sdbc::XRow > Content::getPropertyValues( - const uno::Reference< lang::XMultiServiceFactory >& rSMgr, - const uno::Sequence< beans::Property >& rProperties, - const ContentProperties& rData, - const rtl::Reference< - ::ucbhelper::ContentProviderImplHelper >& rProvider, - const rtl::OUString& rContentId ) -{ - // Note: Empty sequence means "get values of all supported properties". - - rtl::Reference< ::ucbhelper::PropertyValueSet > xRow - = new ::ucbhelper::PropertyValueSet( rSMgr ); - - sal_Int32 nCount = rProperties.getLength(); - if ( nCount ) - { - uno::Reference< beans::XPropertySet > xAdditionalPropSet; - sal_Bool bTriedToGetAdditonalPropSet = sal_False; - - const beans::Property* pProps = rProperties.getConstArray(); - for ( sal_Int32 n = 0; n < nCount; ++n ) - { - const beans::Property& rProp = pProps[ n ]; - - // Process Core properties. - - if ( rProp.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) ) - { - xRow->appendString ( rProp, rData.aContentType ); - } - else if ( rProp.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) - { - xRow->appendString ( rProp, rData.aTitle ); - } - else if ( rProp.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) ) - { - xRow->appendBoolean( rProp, rData.bIsDocument ); - } - else if ( rProp.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) ) - { - xRow->appendBoolean( rProp, rData.bIsFolder ); - } - else - { - // @@@ Note: If your data source supports adding/removing - // properties, you should implement the interface - // XPropertyContainer by yourself and supply your own - // logic here. The base class uses the service - // "com.sun.star.ucb.Store" to maintain Additional Core - // properties. But using server functionality is preferred! - - // Not a Core Property! Maybe it's an Additional Core Property?! - - if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() ) - { - xAdditionalPropSet - = uno::Reference< beans::XPropertySet >( - rProvider->getAdditionalPropertySet( rContentId, - sal_False ), - uno::UNO_QUERY ); - bTriedToGetAdditonalPropSet = sal_True; - } - - if ( xAdditionalPropSet.is() ) - { - if ( !xRow->appendPropertySetValue( - xAdditionalPropSet, - rProp ) ) - { - // Append empty entry. - xRow->appendVoid( rProp ); - } - } - else - { - // Append empty entry. - xRow->appendVoid( rProp ); - } - } - } - } - else - { - // Append all Core Properties. - xRow->appendString ( - beans::Property( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ContentType")), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData.aContentType ); - xRow->appendString ( - beans::Property( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND ), - rData.aTitle ); - xRow->appendBoolean( - beans::Property( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsDocument")), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData.bIsDocument ); - xRow->appendBoolean( - beans::Property( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsFolder")), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::READONLY ), - rData.bIsFolder ); - - // @@@ Append other properties supported directly. - - // @@@ Note: If your data source supports adding/removing - // properties, you should implement the interface - // XPropertyContainer by yourself and supply your own - // logic here. The base class uses the service - // "com.sun.star.ucb.Store" to maintain Additional Core - // properties. But using server functionality is preferred! - - // Append all Additional Core Properties. - - uno::Reference< beans::XPropertySet > xSet( - rProvider->getAdditionalPropertySet( rContentId, sal_False ), - uno::UNO_QUERY ); - xRow->appendPropertySet( xSet ); - } - - return uno::Reference< sdbc::XRow >( xRow.get() ); -} - -//========================================================================= -uno::Reference< sdbc::XRow > Content::getPropertyValues( - const uno::Sequence< beans::Property >& rProperties, - const uno::Reference< ucb::XCommandEnvironment >& /* xEnv */) -{ - osl::Guard< osl::Mutex > aGuard( m_aMutex ); - return getPropertyValues( m_xSMgr, - rProperties, - m_aProps, - rtl::Reference< - ::ucbhelper::ContentProviderImplHelper >( - m_xProvider.get() ), - m_xIdentifier->getContentIdentifier() ); -} - -//========================================================================= -uno::Sequence< uno::Any > Content::setPropertyValues( - const uno::Sequence< beans::PropertyValue >& rValues, - const uno::Reference< ucb::XCommandEnvironment >& /* xEnv */) -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex ); - - uno::Sequence< uno::Any > aRet( rValues.getLength() ); - uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() ); - sal_Int32 nChanged = 0; - - beans::PropertyChangeEvent aEvent; - aEvent.Source = static_cast< cppu::OWeakObject * >( this ); - aEvent.Further = sal_False; -// aEvent.PropertyName = - aEvent.PropertyHandle = -1; -// aEvent.OldValue = -// aEvent.NewValue = - - const beans::PropertyValue* pValues = rValues.getConstArray(); - sal_Int32 nCount = rValues.getLength(); - - uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet; - sal_Bool bTriedToGetAdditonalPropSet = sal_False; - - for ( sal_Int32 n = 0; n < nCount; ++n ) - { - const beans::PropertyValue& rValue = pValues[ n ]; - - if ( rValue.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) ) - { - // Read-only property! - aRet[ n ] <<= lang::IllegalAccessException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "Property is read-only!" )), - static_cast< cppu::OWeakObject * >( this ) ); - } - else if ( rValue.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) ) - { - // Read-only property! - aRet[ n ] <<= lang::IllegalAccessException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "Property is read-only!" )), - static_cast< cppu::OWeakObject * >( this ) ); - } - else if ( rValue.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) ) - { - // Read-only property! - aRet[ n ] <<= lang::IllegalAccessException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "Property is read-only!" )), - static_cast< cppu::OWeakObject * >( this ) ); - } - else if ( rValue.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) - { - rtl::OUString aNewValue; - if ( rValue.Value >>= aNewValue ) - { - if ( aNewValue != m_aProps.aTitle ) - { - aEvent.PropertyName = rValue.Name; - aEvent.OldValue = uno::makeAny( m_aProps.aTitle ); - aEvent.NewValue = uno::makeAny( aNewValue ); - - aChanges.getArray()[ nChanged ] = aEvent; - - m_aProps.aTitle = aNewValue; - nChanged++; - } - else - { - // Old value equals new value. No error! - } - } - else - { - aRet[ n ] <<= beans::IllegalTypeException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "Property value has wrong type!" )), - static_cast< cppu::OWeakObject * >( this ) ); - } - } - - else - { - // @@@ Note: If your data source supports adding/removing - // properties, you should implement the interface - // XPropertyContainer by yourself and supply your own - // logic here. The base class uses the service - // "com.sun.star.ucb.Store" to maintain Additional Core - // properties. But using server functionality is preferred! - - // Not a Core Property! Maybe it's an Additional Core Property?! - - if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() ) - { - xAdditionalPropSet = getAdditionalPropertySet( sal_False ); - bTriedToGetAdditonalPropSet = sal_True; - } - - if ( xAdditionalPropSet.is() ) - { - try - { - uno::Any aOldValue - = xAdditionalPropSet->getPropertyValue( rValue.Name ); - if ( aOldValue != rValue.Value ) - { - xAdditionalPropSet->setPropertyValue( - rValue.Name, rValue.Value ); - - aEvent.PropertyName = rValue.Name; - aEvent.OldValue = aOldValue; - aEvent.NewValue = rValue.Value; - - aChanges.getArray()[ nChanged ] = aEvent; - nChanged++; - } - else - { - // Old value equals new value. No error! - } - } - catch ( beans::UnknownPropertyException const & e ) - { - aRet[ n ] <<= e; - } - catch ( lang::WrappedTargetException const & e ) - { - aRet[ n ] <<= e; - } - catch ( beans::PropertyVetoException const & e ) - { - aRet[ n ] <<= e; - } - catch ( lang::IllegalArgumentException const & e ) - { - aRet[ n ] <<= e; - } - } - else - { - aRet[ n ] <<= uno::Exception( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "No property set for storing the value!" )), - static_cast< cppu::OWeakObject * >( this ) ); - } - } - } - - if ( nChanged > 0 ) - { - // @@@ Save changes. -// storeData(); - - aGuard.clear(); - aChanges.realloc( nChanged ); - notifyPropertiesChange( aChanges ); - } - - return aRet; -} - -#ifdef IMPLEMENT_COMMAND_INSERT - -//========================================================================= -void Content::queryChildren( ContentRefList& rChildren ) -{ - // @@@ Adapt method to your URL scheme... - - // Obtain a list with a snapshot of all currently instanciated contents - // from provider and extract the contents which are direct children - // of this content. - - ::ucbhelper::ContentRefList aAllContents; - m_xProvider->queryExistingContents( aAllContents ); - - ::rtl::OUString aURL = m_xIdentifier->getContentIdentifier(); - sal_Int32 nPos = aURL.lastIndexOf( '/' ); - - if ( nPos != ( aURL.getLength() - 1 ) ) - { - // No trailing slash found. Append. - aURL += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")); - } - - sal_Int32 nLen = aURL.getLength(); - - ::ucbhelper::ContentRefList::const_iterator it = aAllContents.begin(); - ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end(); - - while ( it != end ) - { - ::ucbhelper::ContentImplHelperRef xChild = (*it); - ::rtl::OUString aChildURL - = xChild->getIdentifier()->getContentIdentifier(); - - // Is aURL a prefix of aChildURL? - if ( ( aChildURL.getLength() > nLen ) && - ( aChildURL.compareTo( aURL, nLen ) == 0 ) ) - { - nPos = aChildURL.indexOf( '/', nLen ); - - if ( ( nPos == -1 ) || - ( nPos == ( aChildURL.getLength() - 1 ) ) ) - { - // No further slashes / only a final slash. It's a child! - rChildren.push_back( - ContentRef( - static_cast< Content * >( xChild.get() ) ) ); - } - } - ++it; - } -} - -//========================================================================= -void Content::insert( - const uno::Reference< io::XInputStream > & xInputStream, - sal_Bool bReplaceExisting, - const uno::Reference< ucb::XCommandEnvironment >& Environment ) - throw( uno::Exception ) -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex ); - - // Check, if all required properties were set. - - bool bNeedInputStream = true; // @@@ adjust to real requirements - if ( bNeedInputStream && !xInputStream.is() ) - { - OSL_FAIL( "Content::insert - No data stream!" ); - - ::ucbhelper::cancelCommandExecution( - uno::makeAny( ucb::MissingInputStreamException( - rtl::OUString(), - static_cast< cppu::OWeakObject * >( this ) ) ), - Environment ); - // Unreachable - } - - // Assemble new content identifier... - - uno::Reference< ucb::XContentIdentifier > xId /* @@@ create content identifier */; - - // Fail, if a resource with given id already exists. - if ( !bReplaceExisting /*&& hasData( xId ) @@@ impl for hasData() */ ) - { - uno::Any aProps - = uno::makeAny( beans::PropertyValue( - rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM( "Uri" ) ), - -1, - uno::makeAny( xId->getContentIdentifier() ), - beans::PropertyState_DIRECT_VALUE ) ); - ucbhelper::cancelCommandExecution( - ucb::IOErrorCode_ALREADY_EXISTING, - uno::Sequence< uno::Any >(&aProps, 1), - Environment, - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("content already existing!!")), - this ); - // Unreachable - } - - m_xIdentifier = xId; - -// @@@ -// storeData(); - - aGuard.clear(); - inserted(); -} - -#endif // IMPLEMENT_COMMAND_INSERT - -#ifdef IMPLEMENT_COMMAND_DELETE - -//========================================================================= -void Content::destroy( sal_Bool bDeletePhysical ) - throw( uno::Exception ) -{ - // @@@ take care about bDeletePhysical -> trashcan support - - uno::Reference< ucb::XContent > xThis = this; - - deleted(); - - osl::Guard< osl::Mutex > aGuard( m_aMutex ); - - // Process instanciated children... - - ContentRefList aChildren; - queryChildren( aChildren ); - - ContentRefList::const_iterator it = aChildren.begin(); - ContentRefList::const_iterator end = aChildren.end(); - - while ( it != end ) - { - (*it)->destroy( bDeletePhysical ); - ++it; - } -} - -#endif // IMPLEMENT_COMMAND_DELETE - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_content.hxx b/ucbhelper/workben/myucp/myucp_content.hxx deleted file mode 100644 index d2a4668fbe98..000000000000 --- a/ucbhelper/workben/myucp/myucp_content.hxx +++ /dev/null @@ -1,194 +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. - * - ************************************************************************/ - -// @@@ Adjust multi-include-protection-ifdef. -#ifndef _MYUCP_CONTENT_HXX -#define _MYUCP_CONTENT_HXX - -#include <list> - -#include "rtl/ref.hxx" -#include "ucbhelper/contenthelper.hxx" - -namespace com { namespace sun { namespace star { namespace beans { - struct Property; - struct PropertyValue; -} } } } - -namespace com { namespace sun { namespace star { namespace sdbc { - class XRow; -} } } } - -namespace com { namespace sun { namespace star { namespace io { - class XInputStream; -} } } } - -// @@@ Adjust namespace name. -namespace myucp -{ - -//========================================================================= - -// @@@ Adjust service name. - -// UNO service name for the content. Prefix with reversed company domain main. -#define MYUCP_CONTENT_SERVICE_NAME "com.sun.star.ucb.MyContent" - -//========================================================================= - -struct ContentProperties -{ - ::rtl::OUString aTitle; // Title - ::rtl::OUString aContentType; // ContentType - sal_Bool bIsDocument; // IsDocument - sal_Bool bIsFolder; // IsFolder - - // @@@ Add other properties supported by your content. - - ContentProperties() - : bIsDocument( sal_True ), bIsFolder( sal_False ) {} -}; - -//========================================================================= - -class Content : public ::ucbhelper::ContentImplHelper -{ - ContentProperties m_aProps; - -private: - virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property > - getProperties( const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment > & xEnv ); - virtual com::sun::star::uno::Sequence< com::sun::star::ucb::CommandInfo > - getCommands( const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment > & xEnv ); - virtual ::rtl::OUString getParentURL(); - - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow > - getPropertyValues( const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::Property >& rProperties, - const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XCommandEnvironment >& xEnv ); - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > - setPropertyValues( const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rValues, - const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XCommandEnvironment >& xEnv ); - -#define IMPLEMENT_COMMAND_OPEN -#define IMPLEMENT_COMMAND_INSERT -#define IMPLEMENT_COMMAND_DELETE - -#ifdef IMPLEMENT_COMMAND_INSERT - typedef rtl::Reference< Content > ContentRef; - typedef std::list< ContentRef > ContentRefList; - void queryChildren( ContentRefList& rChildren ); - - // Command "insert" - void insert( const ::com::sun::star::uno::Reference< - ::com::sun::star::io::XInputStream > & xInputStream, - sal_Bool bReplaceExisting, - const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment >& Environment ) - throw( ::com::sun::star::uno::Exception ); -#endif - -#ifdef IMPLEMENT_COMMAND_DELETE - - // Command "delete" - void destroy( sal_Bool bDeletePhysical ) - throw( ::com::sun::star::uno::Exception ); -#endif - -public: - Content( const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr, - ::ucbhelper::ContentProviderImplHelper* pProvider, - const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XContentIdentifier >& Identifier ); - virtual ~Content(); - - // XInterface - XINTERFACE_DECL() - - // XTypeProvider - XTYPEPROVIDER_DECL() - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL - getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL - getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XContent - virtual rtl::OUString SAL_CALL - getContentType() - throw( com::sun::star::uno::RuntimeException ); - - // XCommandProcessor - virtual com::sun::star::uno::Any SAL_CALL - execute( const com::sun::star::ucb::Command& aCommand, - sal_Int32 CommandId, - const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment >& Environment ) - throw( com::sun::star::uno::Exception, - com::sun::star::ucb::CommandAbortedException, - com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL - abort( sal_Int32 CommandId ) - throw( com::sun::star::uno::RuntimeException ); - - ////////////////////////////////////////////////////////////////////// - // Additional interfaces - ////////////////////////////////////////////////////////////////////// - - // @@@ Add additional interfaces ( like com::sun::star::ucb::XContentCreator ). - - ////////////////////////////////////////////////////////////////////// - // Non-interface methods. - ////////////////////////////////////////////////////////////////////// - - // Called from resultset data supplier. - static ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow > - getPropertyValues( const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XMultiServiceFactory >& rSMgr, - const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::Property >& rProperties, - const ContentProperties& rData, - const rtl::Reference< - ::ucbhelper::ContentProviderImplHelper >& rProvider, - const ::rtl::OUString& rContentId ); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_contentcaps.cxx b/ucbhelper/workben/myucp/myucp_contentcaps.cxx deleted file mode 100644 index 9d8cdc11755a..000000000000 --- a/ucbhelper/workben/myucp/myucp_contentcaps.cxx +++ /dev/null @@ -1,223 +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. - * - ************************************************************************/ - - -/************************************************************************** - TODO - ************************************************************************** - - *************************************************************************/ - -#include "com/sun/star/beans/Property.hpp" -#include "com/sun/star/beans/PropertyAttribute.hpp" -#include "com/sun/star/beans/PropertyValue.hpp" -#include "com/sun/star/ucb/CommandInfo.hpp" -#include "com/sun/star/uno/Sequence.hxx" - -#include "myucp_content.hxx" - -#ifdef IMPLEMENT_COMMAND_INSERT -#include "com/sun/star/ucb/InsertCommandArgument.hpp" -#endif - -#ifdef IMPLEMENT_COMMAND_OPEN -#include "com/sun/star/ucb/OpenCommandArgument2.hpp" -#endif - -using namespace com::sun::star; - -// @@@ Adjust namespace name. -using namespace myucp; - -//========================================================================= -// -// Content implementation. -// -//========================================================================= - -//========================================================================= -// -// IMPORTENT: If any property data ( name / type / ... ) are changed, then -// Content::getPropertyValues(...) must be adapted too! -// -//========================================================================= - -// virtual -uno::Sequence< beans::Property > Content::getProperties( - const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ ) -{ - // @@@ Add additional properties... - - // @@@ Note: If your data source supports adding/removing properties, - // you should implement the interface XPropertyContainer - // by yourself and supply your own logic here. The base class - // uses the service "com.sun.star.ucb.Store" to maintain - // Additional Core properties. But using server functionality - // is preferred! In fact you should return a table conatining - // even that dynamicly added properties. - -// osl::Guard< osl::Mutex > aGuard( m_aMutex ); - - //================================================================= - // - // Supported properties - // - //================================================================= - - #define PROPERTY_COUNT 4 - - static beans::Property aPropertyInfoTable[] = - { - /////////////////////////////////////////////////////////////// - // Mandatory properties - /////////////////////////////////////////////////////////////// - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), - -1, - getCppuBooleanType(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY - ), - beans::Property( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), - -1, - getCppuType( static_cast< const rtl::OUString * >( 0 ) ), - beans::PropertyAttribute::BOUND - ) - /////////////////////////////////////////////////////////////// - // Optional standard properties - /////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////// - // New properties - /////////////////////////////////////////////////////////////// - }; - return uno::Sequence< - beans::Property >( aPropertyInfoTable, PROPERTY_COUNT ); -} - -//========================================================================= -// virtual -uno::Sequence< ucb::CommandInfo > Content::getCommands( - const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ ) -{ - // @@@ Add additional commands... - -// osl::Guard< osl::Mutex > aGuard( m_aMutex ); - - //================================================================= - // - // Supported commands - // - //================================================================= - - sal_uInt32 nCommandCount = 4; -#ifdef IMPLEMENT_COMMAND_DELETE - nCommandCount++; -#endif -#ifdef IMPLEMENT_COMMAND_INSERT - nCommandCount++; -#endif -#ifdef IMPLEMENT_COMMAND_OPEN - nCommandCount++; -#endif - - static const ucb::CommandInfo aCommandInfoTable[] = - { - /////////////////////////////////////////////////////////////// - // Mandatory commands - /////////////////////////////////////////////////////////////// - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), - -1, - getCppuVoidType() - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), - -1, - getCppuVoidType() - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), - -1, - getCppuType( - static_cast< uno::Sequence< beans::Property > * >( 0 ) ) - ), - ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), - -1, - getCppuType( - static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) ) - ) - /////////////////////////////////////////////////////////////// - // Optional standard commands - /////////////////////////////////////////////////////////////// - -#ifdef IMPLEMENT_COMMAND_DELETE - , ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ), - -1, - getCppuBooleanType() - ) -#endif -#ifdef IMPLEMENT_COMMAND_INSERT - , ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ), - -1, - getCppuType( - static_cast< ucb::InsertCommandArgument * >( 0 ) ) - ) -#endif -#ifdef IMPLEMENT_COMMAND_OPEN - , ucb::CommandInfo( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ), - -1, - getCppuType( static_cast< ucb::OpenCommandArgument2 * >( 0 ) ) - ) -#endif - /////////////////////////////////////////////////////////////// - // New commands - /////////////////////////////////////////////////////////////// - }; - - return uno::Sequence< - ucb::CommandInfo >( aCommandInfoTable, nCommandCount ); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_datasupplier.cxx b/ucbhelper/workben/myucp/myucp_datasupplier.cxx deleted file mode 100644 index 77f10880392f..000000000000 --- a/ucbhelper/workben/myucp/myucp_datasupplier.cxx +++ /dev/null @@ -1,399 +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. - * - ************************************************************************/ - - -/************************************************************************** - TODO - ************************************************************************** - - *************************************************************************/ - -#include <vector> - -#include "ucbhelper/contentidentifier.hxx" -#include "ucbhelper/providerhelper.hxx" - -#include "myucp_datasupplier.hxx" -#include "myucp_content.hxx" - -using namespace com::sun::star; - -// @@@ Adjust namespace name. -namespace myucp -{ - -//========================================================================= -// -// struct ResultListEntry. -// -//========================================================================= - -struct ResultListEntry -{ - rtl::OUString aId; - uno::Reference< ucb::XContentIdentifier > xId; - uno::Reference< ucb::XContent > xContent; - uno::Reference< sdbc::XRow > xRow; - const ContentProperties& rData; - - ResultListEntry( const ContentProperties& rEntry ) : rData( rEntry ) {} -}; - -//========================================================================= -// -// ResultList. -// -//========================================================================= - -typedef std::vector< ResultListEntry* > ResultList; - -//========================================================================= -// -// struct DataSupplier_Impl. -// -//========================================================================= - -struct DataSupplier_Impl -{ - osl::Mutex m_aMutex; - ResultList m_aResults; - rtl::Reference< Content > m_xContent; - uno::Reference< lang::XMultiServiceFactory > m_xSMgr; -// @@@ The data source and an iterator for it -// Entry m_aFolder; -// Entry::iterator m_aIterator; - sal_Int32 m_nOpenMode; - sal_Bool m_bCountFinal; - - DataSupplier_Impl( const uno::Reference< lang::XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rContent, - sal_Int32 nOpenMode ) - : m_xContent( rContent ), m_xSMgr( rxSMgr ), -// m_aFolder( rxSMgr, rContent->getIdentifier()->getContentIdentifier() ), - m_nOpenMode( nOpenMode ), m_bCountFinal( sal_False ) {} - ~DataSupplier_Impl(); -}; - -//========================================================================= -DataSupplier_Impl::~DataSupplier_Impl() -{ - ResultList::const_iterator it = m_aResults.begin(); - ResultList::const_iterator end = m_aResults.end(); - - while ( it != end ) - { - delete (*it); - ++it; - } -} - -//========================================================================= -//========================================================================= -// -// DataSupplier Implementation. -// -//========================================================================= -//========================================================================= - -DataSupplier::DataSupplier( const uno::Reference< lang::XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rContent, - sal_Int32 nOpenMode ) -: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) ) -{ -} - -//========================================================================= -// virtual -DataSupplier::~DataSupplier() -{ - delete m_pImpl; -} - -//========================================================================= -// virtual -rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aId; - if ( aId.getLength() ) - { - // Already cached. - return aId; - } - } - - if ( getResult( nIndex ) ) - { - rtl::OUString aId - = m_pImpl->m_xContent->getIdentifier()->getContentIdentifier(); - - aId += m_pImpl->m_aResults[ nIndex ]->rData.aTitle; - - m_pImpl->m_aResults[ nIndex ]->aId = aId; - return aId; - } - return rtl::OUString(); -} - -//========================================================================= -// virtual -uno::Reference< ucb::XContentIdentifier > -DataSupplier::queryContentIdentifier( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - uno::Reference< ucb::XContentIdentifier > xId - = m_pImpl->m_aResults[ nIndex ]->xId; - if ( xId.is() ) - { - // Already cached. - return xId; - } - } - - rtl::OUString aId = queryContentIdentifierString( nIndex ); - if ( aId.getLength() ) - { - uno::Reference< ucb::XContentIdentifier > xId - = new ::ucbhelper::ContentIdentifier( aId ); - m_pImpl->m_aResults[ nIndex ]->xId = xId; - return xId; - } - return uno::Reference< ucb::XContentIdentifier >(); -} - -//========================================================================= -// virtual -uno::Reference< ucb::XContent > -DataSupplier::queryContent( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - uno::Reference< ucb::XContent > xContent - = m_pImpl->m_aResults[ nIndex ]->xContent; - if ( xContent.is() ) - { - // Already cached. - return xContent; - } - } - - uno::Reference< ucb::XContentIdentifier > xId - = queryContentIdentifier( nIndex ); - if ( xId.is() ) - { - try - { - uno::Reference< ucb::XContent > xContent - = m_pImpl->m_xContent->getProvider()->queryContent( xId ); - m_pImpl->m_aResults[ nIndex ]->xContent = xContent; - return xContent; - - } - catch ( ucb::IllegalIdentifierException& ) - { - } - } - return uno::Reference< ucb::XContent >(); -} - -//========================================================================= -// virtual -sal_Bool DataSupplier::getResult( sal_uInt32 nIndex ) -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( m_pImpl->m_aResults.size() > nIndex ) - { - // Result already present. - return sal_True; - } - - // Result not (yet) present. - - if ( m_pImpl->m_bCountFinal ) - return sal_False; - - // Try to obtain result... - - sal_uInt32 nOldCount = m_pImpl->m_aResults.size(); - sal_Bool bFound = sal_False; - - // @@@ Obtain data and put it into result list... -/* - sal_uInt32 nPos = nOldCount; - while ( m_pImpl->m_aFolder.next( m_pImpl->m_aIterator ) ) - { - m_pImpl->m_aResults.push_back( - new ResultListEntry( *m_pImpl->m_aIterator ) ); - - if ( nPos == nIndex ) - { - // Result obtained. - bFound = sal_True; - break; - } - - nPos++; - } -*/ - - if ( !bFound ) - m_pImpl->m_bCountFinal = sal_True; - - rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get(); - if ( xResultSet.is() ) - { - // Callbacks follow! - aGuard.clear(); - - if ( nOldCount < m_pImpl->m_aResults.size() ) - xResultSet->rowCountChanged( - nOldCount, m_pImpl->m_aResults.size() ); - - if ( m_pImpl->m_bCountFinal ) - xResultSet->rowCountFinal(); - } - - return bFound; -} - -//========================================================================= -// virtual -sal_uInt32 DataSupplier::totalCount() -{ - osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( m_pImpl->m_bCountFinal ) - return m_pImpl->m_aResults.size(); - - sal_uInt32 nOldCount = m_pImpl->m_aResults.size(); - - // @@@ Obtain data and put it into result list... -/* - while ( m_pImpl->m_aFolder.next( m_pImpl->m_aIterator ) ) - m_pImpl->m_aResults.push_back( - new ResultListEntry( *m_pImpl->m_aIterator ) ); -*/ - m_pImpl->m_bCountFinal = sal_True; - - rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get(); - if ( xResultSet.is() ) - { - // Callbacks follow! - aGuard.clear(); - - if ( nOldCount < m_pImpl->m_aResults.size() ) - xResultSet->rowCountChanged( - nOldCount, m_pImpl->m_aResults.size() ); - - xResultSet->rowCountFinal(); - } - - return m_pImpl->m_aResults.size(); -} - -//========================================================================= -// virtual -sal_uInt32 DataSupplier::currentCount() -{ - return m_pImpl->m_aResults.size(); -} - -//========================================================================= -// virtual -sal_Bool DataSupplier::isCountFinal() -{ - return m_pImpl->m_bCountFinal; -} - -//========================================================================= -// virtual -uno::Reference< sdbc::XRow > -DataSupplier::queryPropertyValues( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - { - uno::Reference< sdbc::XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow; - if ( xRow.is() ) - { - // Already cached. - return xRow; - } - } - - if ( getResult( nIndex ) ) - { - uno::Reference< sdbc::XRow > xRow = Content::getPropertyValues( - m_pImpl->m_xSMgr, - getResultSet()->getProperties(), - m_pImpl->m_aResults[ nIndex ]->rData, - m_pImpl->m_xContent->getProvider().get(), - queryContentIdentifierString( nIndex ) ); - m_pImpl->m_aResults[ nIndex ]->xRow = xRow; - return xRow; - } - - return uno::Reference< sdbc::XRow >(); -} - -//========================================================================= -// virtual -void DataSupplier::releasePropertyValues( sal_uInt32 nIndex ) -{ - osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex ); - - if ( nIndex < m_pImpl->m_aResults.size() ) - m_pImpl->m_aResults[ nIndex ]->xRow = uno::Reference< sdbc::XRow >(); -} - -//========================================================================= -// virtual -void DataSupplier::close() -{ -} - -//========================================================================= -// virtual -void DataSupplier::validate() - throw( ucb::ResultSetException ) -{ -} - -} // namespace - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_datasupplier.hxx b/ucbhelper/workben/myucp/myucp_datasupplier.hxx deleted file mode 100644 index a4bafb8e4480..000000000000 --- a/ucbhelper/workben/myucp/myucp_datasupplier.hxx +++ /dev/null @@ -1,80 +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. - * - ************************************************************************/ - -// @@@ Adjust multi-include-protection-ifdef. -#ifndef _MYUCP_DATASUPPLIER_HXX -#define _MYUCP_DATASUPPLIER_HXX - -#include "rtl/ref.hxx" -#include "ucbhelper/resultset.hxx" - -// @@@ Adjust namespace name. -namespace myucp { - -struct DataSupplier_Impl; -class Content; - -class DataSupplier : public ucbhelper::ResultSetDataSupplier -{ - DataSupplier_Impl* m_pImpl; - -public: - DataSupplier( const com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rContent, - sal_Int32 nOpenMode ); - virtual ~DataSupplier(); - - virtual rtl::OUString queryContentIdentifierString( sal_uInt32 nIndex ); - virtual com::sun::star::uno::Reference< - com::sun::star::ucb::XContentIdentifier > - queryContentIdentifier( sal_uInt32 nIndex ); - virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent > - queryContent( sal_uInt32 nIndex ); - - virtual sal_Bool getResult( sal_uInt32 nIndex ); - - virtual sal_uInt32 totalCount(); - virtual sal_uInt32 currentCount(); - virtual sal_Bool isCountFinal(); - - virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRow > - queryPropertyValues( sal_uInt32 nIndex ); - virtual void releasePropertyValues( sal_uInt32 nIndex ); - - virtual void close(); - - virtual void validate() - throw( com::sun::star::ucb::ResultSetException ); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_provider.cxx b/ucbhelper/workben/myucp/myucp_provider.cxx deleted file mode 100644 index 35057dedee19..000000000000 --- a/ucbhelper/workben/myucp/myucp_provider.cxx +++ /dev/null @@ -1,158 +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. - * - ************************************************************************/ - - -/************************************************************************** - TODO - ************************************************************************** - - *************************************************************************/ - -#include "osl/diagnose.h" -#include "osl/mutex.hxx" - -#include "ucbhelper/contentidentifier.hxx" - -#include "myucp_provider.hxx" -#include "myucp_content.hxx" - -using namespace com::sun::star; - -// @@@ Adjust namespace name. -namespace myucp { - -//========================================================================= -//========================================================================= -// -// ContentProvider Implementation. -// -//========================================================================= -//========================================================================= - -ContentProvider::ContentProvider( - const uno::Reference< lang::XMultiServiceFactory >& rSMgr ) -: ::ucbhelper::ContentProviderImplHelper( rSMgr ) -{ -} - -//========================================================================= -// virtual -ContentProvider::~ContentProvider() -{ -} - -//========================================================================= -// -// XInterface methods. -// -//========================================================================= - -// @@@ Add own interfaces. -XINTERFACE_IMPL_3( ContentProvider, - lang::XTypeProvider, - lang::XServiceInfo, - ucb::XContentProvider ); - -//========================================================================= -// -// XTypeProvider methods. -// -//========================================================================= - -// @@@ Add own interfaces. -XTYPEPROVIDER_IMPL_3( ContentProvider, - lang::XTypeProvider, - lang::XServiceInfo, - ucb::XContentProvider ); - -//========================================================================= -// -// XServiceInfo methods. -// -//========================================================================= - -// @@@ Adjust implementation name. Keep the prefix "com.sun.star.comp."! -// @@@ Adjust service name. -XSERVICEINFO_IMPL_1( ContentProvider, - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "com.sun.star.comp.myucp.ContentProvider" )), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - MYUCP_CONTENT_PROVIDER_SERVICE_NAME )) ); - -//========================================================================= -// -// Service factory implementation. -// -//========================================================================= - -ONE_INSTANCE_SERVICE_FACTORY_IMPL( ContentProvider ); - -//========================================================================= -// -// XContentProvider methods. -// -//========================================================================= - -// virtual -uno::Reference< ucb::XContent > SAL_CALL ContentProvider::queryContent( - const uno::Reference< ucb::XContentIdentifier >& Identifier ) - throw( ucb::IllegalIdentifierException, uno::RuntimeException ) -{ - // Check URL scheme... - - rtl::OUString aScheme( RTL_CONSTASCII_USTRINGPARAM( MYUCP_URL_SCHEME ) ); - if ( !Identifier->getContentProviderScheme().equalsIgnoreAsciiCase( aScheme ) ) - throw ucb::IllegalIdentifierException(); - - uno::Reference< ucb::XContentIdentifier > xCanonicId = Identifier; - - osl::MutexGuard aGuard( m_aMutex ); - - // Check, if a content with given id already exists... - uno::Reference< ucb::XContent > xContent - = queryExistingContent( xCanonicId ).get(); - if ( xContent.is() ) - return xContent; - - // @@@ Decision, which content implementation to instanciate may be - // made here ( in case you have different content classes ). - - // Create a new content. - - xContent = new Content( m_xSMgr, this, xCanonicId ); - registerNewContent( xContent ); - - if ( !xContent->getIdentifier().is() ) - throw ucb::IllegalIdentifierException(); - - return xContent; -} - -} // namespace - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_provider.hxx b/ucbhelper/workben/myucp/myucp_provider.hxx deleted file mode 100644 index 729cb5a36687..000000000000 --- a/ucbhelper/workben/myucp/myucp_provider.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. - * - ************************************************************************/ - -// @@@ Adjust multi-include-protection-ifdef. -#ifndef _MYUCP_PROVIDER_HXX -#define _MYUCP_PROVIDER_HXX - -#include "ucbhelper/providerhelper.hxx" - -// @@@ Adjust namespace name. -namespace myucp { - -//========================================================================= - -// @@@ Adjust defines. - -// UNO service name for the provider. This name will be used by the UCB to -// create instances of the provider. Prefix with reversed company domain name. -#define MYUCP_CONTENT_PROVIDER_SERVICE_NAME \ - "com.sun.star.ucb.MyContentProvider" -#define MYUCP_CONTENT_PROVIDER_SERVICE_NAME_LENGTH 34 - -// URL scheme. This is the scheme the provider will be able to create -// contents for. The UCB will select the provider ( i.e. in order to create -// contents ) according to this scheme. -#define MYUCP_URL_SCHEME \ - "vnd.sun.star.myucp" -#define MYUCP_URL_SCHEME_LENGTH 18 - -// UCB Content Type. -#define MYUCP_CONTENT_TYPE \ - "application/" MYUCP_URL_SCHEME "-content" - -//========================================================================= - -class ContentProvider : public ::ucbhelper::ContentProviderImplHelper -{ -public: - ContentProvider( const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XMultiServiceFactory >& rSMgr ); - virtual ~ContentProvider(); - - // XInterface - XINTERFACE_DECL() - - // XTypeProvider - XTYPEPROVIDER_DECL() - - // XServiceInfo - XSERVICEINFO_DECL() - - // XContentProvider - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XContent > SAL_CALL - queryContent( const ::com::sun::star::uno::Reference< - ::com::sun::star::ucb::XContentIdentifier >& Identifier ) - throw( ::com::sun::star::ucb::IllegalIdentifierException, - ::com::sun::star::uno::RuntimeException ); - - ////////////////////////////////////////////////////////////////////// - // Additional interfaces - ////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////// - // Non-interface methods. - ////////////////////////////////////////////////////////////////////// -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_resultset.cxx b/ucbhelper/workben/myucp/myucp_resultset.cxx deleted file mode 100644 index 154314c924a6..000000000000 --- a/ucbhelper/workben/myucp/myucp_resultset.cxx +++ /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. - * - ************************************************************************/ - - -/************************************************************************** - TODO - ************************************************************************** - - - This implementation is not a dynamic result set!!! It only implements - the necessary interfaces, but never recognizes/notifies changes!!! - - *************************************************************************/ - -#include "myucp_datasupplier.hxx" -#include "myucp_resultset.hxx" - -using namespace com::sun::star; - -// @@@ Adjust namespace name. -namespace myucp { - -//========================================================================= -//========================================================================= -// -// DynamicResultSet Implementation. -// -//========================================================================= -//========================================================================= - -DynamicResultSet::DynamicResultSet( - const uno::Reference< lang::XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rxContent, - const ucb::OpenCommandArgument2& rCommand, - const uno::Reference< ucb::XCommandEnvironment >& rxEnv ) -: ResultSetImplHelper( rxSMgr, rCommand ), - m_xContent( rxContent ), - m_xEnv( rxEnv ) -{ -} - -//========================================================================= -// -// Non-interface methods. -// -//========================================================================= - -void DynamicResultSet::initStatic() -{ - m_xResultSet1 - = new ::ucbhelper::ResultSet( m_xSMgr, - m_aCommand.Properties, - new DataSupplier( m_xSMgr, - m_xContent, - m_aCommand.Mode ), - m_xEnv ); -} - -//========================================================================= -void DynamicResultSet::initDynamic() -{ - m_xResultSet1 - = new ::ucbhelper::ResultSet( m_xSMgr, - m_aCommand.Properties, - new DataSupplier( m_xSMgr, - m_xContent, - m_aCommand.Mode ), - m_xEnv ); - m_xResultSet2 = m_xResultSet1; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_resultset.hxx b/ucbhelper/workben/myucp/myucp_resultset.hxx deleted file mode 100644 index a36509f961ff..000000000000 --- a/ucbhelper/workben/myucp/myucp_resultset.hxx +++ /dev/null @@ -1,65 +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. - * - ************************************************************************/ - -// @@@ Adjust multi-include-protection-ifdef. -#ifndef _MYUCP_RESULTSET_HXX -#define _MYUCP_RESULTSET_HXX - -#include "rtl/ref.hxx" -#include "ucbhelper/resultsethelper.hxx" - -#include "myucp_content.hxx" - -// @@@ Adjust namespace name. -namespace myucp { - -class DynamicResultSet : public ::ucbhelper::ResultSetImplHelper -{ - rtl::Reference< Content > m_xContent; - com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment > m_xEnv; - -private: - virtual void initStatic(); - virtual void initDynamic(); - -public: - DynamicResultSet( - const com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory >& rxSMgr, - const rtl::Reference< Content >& rxContent, - const com::sun::star::ucb::OpenCommandArgument2& rCommand, - const com::sun::star::uno::Reference< - com::sun::star::ucb::XCommandEnvironment >& rxEnv ); -}; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/myucp/myucp_services.cxx b/ucbhelper/workben/myucp/myucp_services.cxx deleted file mode 100644 index aa99c5bdd584..000000000000 --- a/ucbhelper/workben/myucp/myucp_services.cxx +++ /dev/null @@ -1,129 +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. - * - ************************************************************************/ - - -#include "com/sun/star/lang/XMultiServiceFactory.hpp" -#include "com/sun/star/lang/XSingleServiceFactory.hpp" -#include "com/sun/star/registry/XRegistryKey.hpp" - -#include "myucp_provider.hxx" - -using namespace com::sun::star; - -namespace { - -//========================================================================= -sal_Bool writeInfo( void * pRegistryKey, - const rtl::OUString & rImplementationName, - uno::Sequence< rtl::OUString > const & rServiceNames ) -{ - rtl::OUString aKeyName( RTL_CONSTASCII_USTRINGPARAM("/") ); - aKeyName += rImplementationName; - aKeyName += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES")); - - uno::Reference< registry::XRegistryKey > xKey; - try - { - xKey = static_cast< registry::XRegistryKey * >( - pRegistryKey )->createKey( aKeyName ); - } - catch ( registry::InvalidRegistryException const & ) - { - } - - if ( !xKey.is() ) - return sal_False; - - sal_Bool bSuccess = sal_True; - - for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n ) - { - try - { - xKey->createKey( rServiceNames[ n ] ); - } - catch ( registry::InvalidRegistryException const & ) - { - bSuccess = sal_False; - break; - } - } - return bSuccess; -} - -} - -//========================================================================= -extern "C" sal_Bool SAL_CALL component_writeInfo( - void * /*pServiceManager*/, void * pRegistryKey ) -{ - return pRegistryKey && - - ////////////////////////////////////////////////////////////////////// - // Write info into registry. - ////////////////////////////////////////////////////////////////////// - - // @@@ Adjust namespace names. - writeInfo( pRegistryKey, - ::myucp::ContentProvider::getImplementationName_Static(), - ::myucp::ContentProvider::getSupportedServiceNames_Static() ); -} - -//========================================================================= -extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( - const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ ) -{ - void * pRet = 0; - - uno::Reference< lang::XMultiServiceFactory > xSMgr( - reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ) ); - uno::Reference< lang::XSingleServiceFactory > xFactory; - - ////////////////////////////////////////////////////////////////////// - // Create factory, if implementation name matches. - ////////////////////////////////////////////////////////////////////// - - // @@@ Adjust namespace names. - if ( ::myucp::ContentProvider::getImplementationName_Static(). - compareToAscii( pImplName ) == 0 ) - { - xFactory = ::myucp::ContentProvider::createServiceFactory( xSMgr ); - } - - ////////////////////////////////////////////////////////////////////// - - if ( xFactory.is() ) - { - xFactory->acquire(); - pRet = xFactory.get(); - } - - return pRet; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/ucbexplorer/bmp/document.bmp b/ucbhelper/workben/ucbexplorer/bmp/document.bmp Binary files differdeleted file mode 100644 index 63baf47eca46..000000000000 --- a/ucbhelper/workben/ucbexplorer/bmp/document.bmp +++ /dev/null diff --git a/ucbhelper/workben/ucbexplorer/bmp/fldclose.bmp b/ucbhelper/workben/ucbexplorer/bmp/fldclose.bmp Binary files differdeleted file mode 100644 index c0f26b337f7a..000000000000 --- a/ucbhelper/workben/ucbexplorer/bmp/fldclose.bmp +++ /dev/null diff --git a/ucbhelper/workben/ucbexplorer/bmp/fldopen.bmp b/ucbhelper/workben/ucbexplorer/bmp/fldopen.bmp Binary files differdeleted file mode 100644 index f38643510e78..000000000000 --- a/ucbhelper/workben/ucbexplorer/bmp/fldopen.bmp +++ /dev/null diff --git a/ucbhelper/workben/ucbexplorer/bmp/link.bmp b/ucbhelper/workben/ucbexplorer/bmp/link.bmp Binary files differdeleted file mode 100644 index 0269a76d98d0..000000000000 --- a/ucbhelper/workben/ucbexplorer/bmp/link.bmp +++ /dev/null diff --git a/ucbhelper/workben/ucbexplorer/makefile.mk b/ucbhelper/workben/ucbexplorer/makefile.mk deleted file mode 100644 index f8c1272e6760..000000000000 --- a/ucbhelper/workben/ucbexplorer/makefile.mk +++ /dev/null @@ -1,71 +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. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=ucbhelper -TARGET=ucbexplorer -TARGETTYPE=GUI -LIBTARGET=NO -ENABLE_EXCEPTIONS=TRUE - -# --- Settings --- - -.INCLUDE : settings.mk - -# --- Files --- - -OBJFILES=$(OBJ)$/$(TARGET).obj - -SRS1NAME=$(TARGET) -SRC1FILES=$(TARGET).src - -# -# UCBEXPLORER -# - -APP1TARGET=$(TARGET) - -RESLIB1NAME=$(TARGET) -RESLIB1SRSFILES=$(SRS)$/$(TARGET).srs - -APP1OBJS=$(OBJ)$/$(TARGET).obj -APP1RES=$(RES)$/$(TARGET).res - -APP1STDLIBS=$(SALLIB) \ - $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(TOOLSLIB) \ - $(SVTOOLLIB) \ - $(COMPHELPERLIB) \ - $(UCBHELPERLIB) \ - $(VCLLIB) - -# --- Targets --- - -.INCLUDE : target.mk - diff --git a/ucbhelper/workben/ucbexplorer/ucbexplorer.cxx b/ucbhelper/workben/ucbexplorer/ucbexplorer.cxx deleted file mode 100644 index 8915cff4cd8b..000000000000 --- a/ucbhelper/workben/ucbexplorer/ucbexplorer.cxx +++ /dev/null @@ -1,1192 +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. - * - ************************************************************************/ - -#include <cppuhelper/weak.hxx> -#include <cppuhelper/bootstrap.hxx> -#include <comphelper/processfactory.hxx> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/beans/XPropertySetInfo.hpp> -#include <com/sun/star/io/XActiveDataSink.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/sdbc/XResultSet.hpp> -#include <com/sun/star/ucb/XCommandInfo.hpp> -#include <com/sun/star/ucb/XContentAccess.hpp> -#include <com/sun/star/ucb/CommandAbortedException.hpp> -#include <com/sun/star/ucb/ContentInfo.hpp> -#include <com/sun/star/ucb/ContentInfoAttribute.hpp> - -#include "rtl/ref.hxx" -#include <ucbhelper/content.hxx> -#include <ucbhelper/contentbroker.hxx> -#include <ucbhelper/commandenvironment.hxx> -#include <svtools/svtreebx.hxx> -#include <vcl/wrkwin.hxx> -#include <vcl/svapp.hxx> -#include <vcl/menu.hxx> -#include <vcl/dialog.hxx> -#include <vcl/fixed.hxx> -#include <vcl/group.hxx> -#include <vcl/button.hxx> -#include <vcl/msgbox.hxx> -#include <ucbhelper/macros.hxx> -#include <ucbhelper/configurationkeys.hxx> - -#include "ucbexplorer.hrc" - -using namespace com::sun::star; -using namespace com::sun::star::beans; -using namespace com::sun::star::io; -using namespace com::sun::star::lang; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::task; -using namespace com::sun::star::ucb; -using namespace com::sun::star::uno; - -using ::rtl::OUString; - -//========================================================================= -// -// class TestDataSink. -// -//========================================================================= - -class TestDataSink : public cppu::OWeakObject, public XActiveDataSink -{ - uno::Reference< XInputStream > m_xStream; - -public: -// TestDataSink() {} -// virtual ~TestDataSink(); - - // XInterface methods - virtual Any SAL_CALL queryInterface( const Type & rType ) - throw( RuntimeException ); - virtual void SAL_CALL acquire() - throw (); - virtual void SAL_CALL release() - throw (); - - // XActiveDataSink methods. - virtual void SAL_CALL setInputStream( - const uno::Reference< XInputStream >& aStream ) - throw( RuntimeException ); - virtual uno::Reference< XInputStream > SAL_CALL getInputStream() - throw( RuntimeException ); -}; - -//========================================================================= -// -// class StringInputDialog. -// -//========================================================================= - -class StringInputDialog : public ModalDialog -{ -private: - FixedText m_aNameText; - Edit m_aNameEdit; - GroupBox m_aNameGroup; - OKButton m_aOKBtn; - CancelButton m_aCancelBtn; - HelpButton m_aHelpBtn; - - DECL_LINK( OKHdl, Button * ); - DECL_LINK( NameHdl, Edit * ); - -public: - StringInputDialog( ResMgr& rResMgr, - const String& rTitle, - const String& rDefaultText, - String* pGroupName = 0 ); - String GetValue() const { return m_aNameEdit.GetText(); } - void SetValue( const String& rNewName ) { m_aNameEdit.SetText( rNewName ); } -}; - -//========================================================================= -// -// class UcbExplorerListBoxEntry. -// -//========================================================================= - -class UcbExplorerListBoxEntry : public SvLBoxEntry -{ - friend class UcbExplorerTreeListBox; - - enum EntryType { FOLDER, DOCUMENT, LINK }; - - ::ucbhelper::Content m_aContent; - EntryType m_eType; - -public: - UcbExplorerListBoxEntry(); - virtual ~UcbExplorerListBoxEntry(); - - BOOL createNewContent( const ContentInfo& rInfo, - ::ucbhelper::Content& rNewContent ); -}; - -//========================================================================= -// -// class UcbExplorerTreeListBox. -// -//========================================================================= - -class UcbExplorerTreeListBox : public SvTreeListBox -{ - Bitmap m_aFolderClosed; - Bitmap m_aFolderOpened; - Bitmap m_aDocument; - Bitmap m_aLink; - -private: - virtual SvLBoxEntry* CreateEntry() const; - virtual void RequestingChildren( SvLBoxEntry* pParent ); - -public: - UcbExplorerTreeListBox( ResMgr & rResMgr, Window* pParent, WinBits nWinStyle = 0 ); - virtual ~UcbExplorerTreeListBox(); - - virtual void Command( const CommandEvent& rCEvt ); - - UcbExplorerListBoxEntry* - InsertEntry( ::ucbhelper::Content& rContent, SvLBoxEntry* pParent ); - UcbExplorerListBoxEntry* - InsertEntry( const String& rURL, SvLBoxEntry* pParent = 0 ); -}; - -//========================================================================= -// -// class UcbExplorerWindow. -// -//========================================================================= - -class UcbExplorerWindow : public WorkWindow -{ - friend class MyApp; - - UcbExplorerTreeListBox m_aTree; - -public: - UcbExplorerWindow( ResMgr & rResMgr, Window *pParent, WinBits nWinStyle ); - virtual ~UcbExplorerWindow(); - - virtual void Resize(); -}; - -//========================================================================= -// -// class MyApp. -// -//========================================================================= - -class MyApp : public Application -{ -public: - virtual void Main(); -}; - -//========================================================================= -// -// TestDataSink implementation. -// -//========================================================================= - -// virtual -Any SAL_CALL TestDataSink::queryInterface( const Type & rType ) - throw( RuntimeException ) -{ - Any aRet = cppu::queryInterface( - rType, - static_cast< XActiveDataSink * >( this ) ); - return aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType ); -} - -//========================================================================= -// virtual -void SAL_CALL TestDataSink::acquire() - throw() -{ - OWeakObject::acquire(); -} - -//========================================================================= -// virtual -void SAL_CALL TestDataSink::release() - throw() -{ - OWeakObject::release(); -} - -//========================================================================= -// virtual -void SAL_CALL TestDataSink::setInputStream( - const uno::Reference< XInputStream >& aStream ) - throw( RuntimeException ) -{ - m_xStream = aStream; -} - -//========================================================================= -// virtual -uno::Reference< XInputStream > SAL_CALL TestDataSink::getInputStream() - throw( RuntimeException ) -{ - return m_xStream; -} - -//========================================================================= -// -// StringInputDialog implementation. -// -//========================================================================= - -StringInputDialog::StringInputDialog( ResMgr& rResMgr, - const String& rTitle, - const String& rDefaultText, - String* pGroupName ) - : ModalDialog( 0, ResId( DLG_STRINGINPUT, rResMgr ) ), - m_aNameText ( this, ResId( FT_STRINGINPUT_DLG_NAME, rResMgr ) ), - m_aNameEdit ( this, ResId( ED_STRINGINPUT_DLG_NAME, rResMgr ) ), - m_aNameGroup( this, ResId( GB_STRINGINPUT_DLG_NAME, rResMgr ) ), - m_aOKBtn ( this, ResId( BT_STRINGINPUT_DLG_OK, rResMgr ) ), - m_aCancelBtn( this, ResId( BT_STRINGINPUT_DLG_CANCEL, rResMgr ) ), - m_aHelpBtn ( this, ResId( BT_STRINGINPUT_DLG_HELP, rResMgr ) ) -{ - FreeResource(); - SetText( rTitle ); - m_aNameEdit.SetText( rDefaultText ); - m_aOKBtn.SetClickHdl( LINK( this, StringInputDialog, OKHdl ) ); - m_aNameEdit.SetModifyHdl( LINK( this, StringInputDialog, NameHdl ) ); - - if ( pGroupName ) - m_aNameGroup.SetText( *pGroupName ); -}; - -//========================================================================= -IMPL_LINK_NOARG(StringInputDialog, OKHdl) -{ - // trim the strings - m_aNameEdit.SetText( - m_aNameEdit.GetText().EraseLeadingChars().EraseTrailingChars() ); - EndDialog( RET_OK ); - return 1; -} - -//========================================================================= -IMPL_LINK_NOARG(StringInputDialog, NameHdl) -{ -/* - // trim the strings - String aName = m_aNameEdit.GetText(); - aName.EraseLeadingChars().EraseTrailingChars(); - if ( aName.Len() ) - { - if ( !m_aOKBtn.IsEnabled() ) - m_aOKBtn.Enable( TRUE ); - } - else - { - if ( m_aOKBtn.IsEnabled() ) - m_aOKBtn.Enable( FALSE ); - } -*/ - return 0; -} - -//========================================================================= -// -// UcbExplorerListBoxEntry implementation. -// -//========================================================================= - -UcbExplorerListBoxEntry::UcbExplorerListBoxEntry() -{ -} - -//========================================================================= -// virtual -UcbExplorerListBoxEntry::~UcbExplorerListBoxEntry() -{ -} - -//========================================================================= -BOOL UcbExplorerListBoxEntry::createNewContent( const ContentInfo& rInfo, - ::ucbhelper::Content& rNewContent ) -{ - sal_Int32 nCount = rInfo.Properties.getLength(); - Sequence< Any > aPropValues( nCount ); - Sequence< OUString > aPropNames( nCount ); - - if ( nCount > 0 ) - { - // Collect property values. - - Any* pValues = aPropValues.getArray(); - const Property* pProps = rInfo.Properties.getConstArray(); - for ( sal_Int32 n = 0; n < nCount; ++n ) - { - const OUString& rName = pProps[ n ].Name; - - std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr( "ucbexplorer" ) ); - StringInputDialog* pDlg = new StringInputDialog( *xManager.get(), rName, rName ); - USHORT nRet = pDlg->Execute(); - if ( nRet == RET_OK ) - { - OUString aValue( pDlg->GetValue() ); - - // Convert value according to supplied type info... - - const Type& rType = pProps[ n ].Type; - - if ( rType == getCppuType( - static_cast< const OUString * >( 0 ) ) ) - { - // string - pValues[ n ] <<= aValue; - } - else if ( rType == getCppuType( - static_cast< const sal_Int32 * >( 0 ) ) ) - { - // long - pValues[ n ] <<= aValue.toInt32(); - } - else if ( rType == getCppuType( - static_cast< const sal_Int16 * >( 0 ) ) ) - { - // short - pValues[ n ] <<= sal_Int16( aValue.toInt32() ) ; - } - else if ( rType == getCppuBooleanType() ) - { - // boolean - pValues[ n ] <<= sal_Bool( aValue.toChar() ) ; - } - else if ( rType == getCppuCharType() ) - { - // char - pValues[ n ] <<= aValue.toChar(); - } - else if ( rType == getCppuType( - static_cast< const sal_Int8 * >( 0 ) ) ) - { - // byte - pValues[ n ] <<= sal_Int8( aValue.toChar() ) ; - } - else if ( rType == getCppuType( - static_cast< const sal_Int64 * >( 0 ) ) ) - { - // hyper - pValues[ n ] <<= aValue.toInt64(); - } - else if ( rType == getCppuType( - static_cast< const float * >( 0 ) ) ) - { - // float - pValues[ n ] <<= aValue.toFloat(); - } - else if ( rType == getCppuType( - static_cast< const double * >( 0 ) ) ) - { - // double - pValues[ n ] <<= aValue.toDouble(); - } - else - { - // See com/sun/star/ucb/ContentInfo.idl - OSL_FAIL( "UcbExplorerListBoxEntry::createNewContent - " - "Invlid type for bootstrap property!" ); - } - } - - delete pDlg; - - if ( nRet != RET_OK ) - return FALSE; - - aPropNames[ n ] = rName; - } - } - - uno::Reference< XInputStream > xData; - - if ( rInfo.Attributes & ContentInfoAttribute::INSERT_WITH_INPUTSTREAM ) - { - // Let the user specify the URL of a content containing the - // data to supply to the new content. - - std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr( "ucbexplorer" ) ); - StringInputDialog* pDlg = new StringInputDialog( - *xManager.get(), - OUString(RTL_CONSTASCII_USTRINGPARAM( - "Document Data Source URL" )), - OUString() ); - USHORT nRet = pDlg->Execute(); - if ( nRet == RET_OK ) - { - // Create a content object for the given URL. - - OUString aSourceURL( pDlg->GetValue() ); - if ( aSourceURL.getLength() == 0 ) - { - OSL_FAIL( "UcbExplorerListBoxEntry::createNewContent - " - "No document data URL!" ); - return FALSE; - } - - try - { - uno::Reference< XCommandEnvironment > xEnv; - - ::ucbhelper::ContentBroker* pBroker = ::ucbhelper::ContentBroker::get(); - if ( pBroker ) - { - uno::Reference< XInteractionHandler > xInteractionHandler( - pBroker->getServiceManager()->createInstance( - OUString(RTL_CONSTASCII_USTRINGPARAM( - "com.sun.star.task.InteractionHandler" )) ), - UNO_QUERY ); - - uno::Reference< XProgressHandler > xProgressHandler - /* = new ProgressHandler( *pBroker ) */ ; - - xEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, - xProgressHandler ); - } - - ::ucbhelper::Content aSourceContent( aSourceURL, xEnv ); - - // Get source data. - rtl::Reference< TestDataSink > xSourceData = new TestDataSink; - aSourceContent.openStream( xSourceData.get() ); - xData = xSourceData->getInputStream(); - } - catch ( ContentCreationException const & ) - { - OSL_FAIL( "UcbExplorerListBoxEntry::createNewContent - " - "No content for document data!" ); - return FALSE; - } - catch ( CommandAbortedException const & ) - { - return FALSE; - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - return FALSE; - } - } - - delete pDlg; - - if ( nRet != RET_OK ) - return FALSE; - } - - // Create new content. - - ULONG n = Application::ReleaseSolarMutex(); - BOOL bRet = sal_False; - - try - { - bRet = m_aContent.insertNewContent( - rInfo.Type, aPropNames, aPropValues, xData, rNewContent ); - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - Application::AcquireSolarMutex( n ); - return bRet; -} - -//========================================================================= -// -// UcbExplorerTreeListBox implementation. -// -//========================================================================= - -UcbExplorerTreeListBox::UcbExplorerTreeListBox( ResMgr & rResMgr, - Window* pParent, - WinBits nWinStyle ) -: SvTreeListBox( pParent, nWinStyle ), - m_aFolderClosed( ResId( BMP_FOLDER_CLOSED, rResMgr ) ), - m_aFolderOpened( ResId( BMP_FOLDER_OPENED, rResMgr ) ), - m_aDocument( ResId( BMP_DOCUMENT, rResMgr ) ), - m_aLink( ResId( BMP_LINK, rResMgr ) ) -{ -} - -//========================================================================= -// virtual -UcbExplorerTreeListBox::~UcbExplorerTreeListBox() -{ -} - -//========================================================================= -// virtual -SvLBoxEntry* UcbExplorerTreeListBox::CreateEntry() const -{ - return new UcbExplorerListBoxEntry(); -} - -//========================================================================= -// virtual -void UcbExplorerTreeListBox::RequestingChildren( SvLBoxEntry* pParent ) -{ - UcbExplorerListBoxEntry* pEntry - = static_cast< UcbExplorerListBoxEntry * >( pParent ); - if ( !pEntry->HasChildren() ) - { - switch ( pEntry->m_eType ) - { - case UcbExplorerListBoxEntry::FOLDER: - { - ULONG n = Application::ReleaseSolarMutex(); - - try - { - Sequence< OUString > aPropertyNames( 0 ); -// OUString* pNames = aPropertyNames.getArray(); -// pNames[ 0 ] = OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); - - uno::Reference< XResultSet > xResultSet - = pEntry->m_aContent.createCursor( - aPropertyNames, - ::ucbhelper::INCLUDE_FOLDERS_AND_DOCUMENTS ); - uno::Reference< XContentAccess > xContentAccess( - xResultSet, UNO_QUERY ); - - if ( xResultSet.is() && xContentAccess.is() ) - { - while ( xResultSet->next() ) - { - Application::AcquireSolarMutex( n ); - - InsertEntry( - xContentAccess->queryContentIdentifierString(), - pParent ); - - n = Application::ReleaseSolarMutex(); - } - } - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - Application::AcquireSolarMutex( n ); - break; - } - - case UcbExplorerListBoxEntry::DOCUMENT: - break; - - case UcbExplorerListBoxEntry::LINK: - break; - - default: - break; - } - } -} - -//========================================================================= -// virtual -void UcbExplorerTreeListBox::Command( const CommandEvent& rCEvt ) -{ - if ( rCEvt.GetCommand() == COMMAND_CONTEXTMENU ) - { - const Point& rPos = rCEvt.GetMousePosPixel(); - UcbExplorerListBoxEntry* pEntry - = static_cast< UcbExplorerListBoxEntry * >( - GetEntry( rPos, TRUE ) ); - if ( pEntry ) - { - std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr( "ucbexplorer" ) ); - PopupMenu* pMenu = new PopupMenu( ResId( MENU_POPUP, *xManager.get() ) ); - PopupMenu* pNewMenu = 0; - -// pMenu->SetSelectHdl( LINK( this, -// SfxCommonTemplateDialog_Impl, -// MenuSelectHdl ) ); - - ////////////////////////////////////////////////////////////// - // Configure "New" - ////////////////////////////////////////////////////////////// - - Sequence< ContentInfo > aInfo - = pEntry->m_aContent.queryCreatableContentsInfo(); - const ContentInfo* pInfo = aInfo.getConstArray(); - sal_Int32 nCount = aInfo.getLength(); - BOOL bCanCreate = ( nCount > 0 ); - - pNewMenu = new PopupMenu; - pMenu->SetPopupMenu( MENU_NEW, pNewMenu ); - - for ( sal_Int32 n = 0; n < nCount; ++n ) - { - const ContentInfo& rInfo = pInfo[ n ]; - pNewMenu->InsertItem( 20000 + n + 1, rInfo.Type ); - } - - pMenu->EnableItem( MENU_NEW, bCanCreate ); - - ////////////////////////////////////////////////////////////// - // Configure "Rename" - ////////////////////////////////////////////////////////////// - - sal_Bool bEnable = sal_False; - - try - { - Property aProp = - pEntry->m_aContent.getProperties()->getPropertyByName( - OUString(RTL_CONSTASCII_USTRINGPARAM("Title")) ); - bEnable = !( aProp.Attributes & PropertyAttribute::READONLY ); - } - catch( UnknownPropertyException const & ) - { - // getPropertyByName - bEnable = sal_False; - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - pMenu->EnableItem( MENU_RENAME, bEnable ); - - ////////////////////////////////////////////////////////////// - // Configure "Delete" - ////////////////////////////////////////////////////////////// - - try - { - pMenu->EnableItem( MENU_DELETE, - pEntry->m_aContent - .getCommands()->hasCommandByName( - OUString(RTL_CONSTASCII_USTRINGPARAM( - "delete" )) ) ); - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - ////////////////////////////////////////////////////////////// - // Execute menu. - ////////////////////////////////////////////////////////////// - - USHORT nSelected = pMenu->Execute( this, rPos ); - switch ( nSelected ) - { -// case MENU_NEW: -// break; - - case MENU_RENAME: - { - OUString aNewTitle; - - try - { - pEntry->m_aContent.getPropertyValue( - OUString(RTL_CONSTASCII_USTRINGPARAM("Title")) ) - >>= aNewTitle; - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - std::auto_ptr< ResMgr > xManager( - ResMgr::CreateResMgr( "ucbexplorer" ) ); - StringInputDialog* pDlg - = new StringInputDialog( - *xManager.get(), - OUString(RTL_CONSTASCII_USTRINGPARAM("Title")), - aNewTitle ); - - USHORT nRet = pDlg->Execute(); - - Any aValue; - - if ( nRet == RET_OK ) - { - aNewTitle = pDlg->GetValue(); - aValue <<= aNewTitle; - } - - delete pDlg; - - if ( nRet != RET_OK ) - break; - - sal_Bool bOK = sal_False; - - ULONG n = Application::ReleaseSolarMutex(); - - try - { - pEntry->m_aContent.setPropertyValue( - OUString(RTL_CONSTASCII_USTRINGPARAM("Title")), - aValue ); - bOK = sal_True; - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - } - - Application::AcquireSolarMutex( n ); - - if ( bOK ) - { - OUString aText( aNewTitle ); - OUString aTargetURL; - try - { - pEntry->m_aContent.getPropertyValue( - OUString(RTL_CONSTASCII_USTRINGPARAM("TargetURL")) ) - >>= aTargetURL; - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - // The property is optional! - } - - if ( aTargetURL.getLength() > 0 ) - { - // Insert link. - aText += OUString(RTL_CONSTASCII_USTRINGPARAM(" --> ")); - aText += aTargetURL; - } - - SetEntryText( pEntry, aText ); - } - break; - } - - case MENU_DELETE: - { - ULONG n = Application::ReleaseSolarMutex(); - sal_Bool bOK = sal_True; - - try - { - pEntry->m_aContent.executeCommand( - OUString(RTL_CONSTASCII_USTRINGPARAM("delete")), - makeAny( sal_True ) ); - } - catch ( CommandAbortedException const & ) - { - bOK = sal_False; - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - bOK = sal_False; - } - - Application::AcquireSolarMutex( n ); - - if ( bOK ) - RemoveSelection(); - - break; - } - - default: - { - if ( ( nSelected > 20000 ) && - ( ( nSelected - 20000 ) <= aInfo.getLength() ) ) - { - // New-menu entry selected. - - ::ucbhelper::Content aNewContent; - if ( pEntry->createNewContent( - aInfo.getConstArray()[ nSelected - 20001 ], - aNewContent ) ) - { - if ( !IsExpanded( pEntry ) ) - Expand( pEntry ); - else - InsertEntry( aNewContent, pEntry ); - } - } - break; - } - } - - delete pNewMenu; - delete pMenu; - return; - } - } - - SvTreeListBox::Command( rCEvt ); -} - -//========================================================================= -UcbExplorerListBoxEntry* UcbExplorerTreeListBox::InsertEntry( - ::ucbhelper::Content& rContent, - SvLBoxEntry* pParent ) -{ - try - { - OUString aTitle; - rContent.getPropertyValue( - OUString(RTL_CONSTASCII_USTRINGPARAM("Title")) ) >>= aTitle; - if ( !aTitle.getLength() ) - aTitle = OUString(RTL_CONSTASCII_USTRINGPARAM("/")); - - UcbExplorerListBoxEntry* pEntry = 0; - - if ( rContent.isFolder() ) - { - // Insert folder. - pEntry = static_cast< UcbExplorerListBoxEntry * >( - SvTreeListBox::InsertEntry( aTitle, - m_aFolderOpened, - m_aFolderClosed, - pParent, - TRUE ) ); - pEntry->m_eType = UcbExplorerListBoxEntry::FOLDER; - } - else - { - OUString aTargetURL; - try - { - rContent.getPropertyValue( - OUString(RTL_CONSTASCII_USTRINGPARAM("TargetURL")) ) >>= aTargetURL; - } - catch ( CommandAbortedException const & ) - { - } - catch ( RuntimeException const & ) - { - throw; - } - catch ( Exception const & ) - { - // The property is optional! - } - - if ( aTargetURL.getLength() > 0 ) - { - // Insert link. - aTitle += OUString(RTL_CONSTASCII_USTRINGPARAM(" --> ")); - aTitle += aTargetURL; - pEntry = static_cast< UcbExplorerListBoxEntry * >( - SvTreeListBox::InsertEntry( aTitle, - m_aLink, - m_aLink, - pParent, - TRUE ) ); - pEntry->m_eType = UcbExplorerListBoxEntry::LINK; - } - else - { - // Insert Document - pEntry = static_cast< UcbExplorerListBoxEntry * >( - SvTreeListBox::InsertEntry( aTitle, - m_aDocument, - m_aDocument, - pParent, - TRUE ) ); - pEntry->m_eType = UcbExplorerListBoxEntry::DOCUMENT; - } - } - - pEntry->m_aContent = rContent; - return pEntry; - } - catch ( CommandAbortedException const & ) - { - } - catch ( Exception const & ) - { - } - - return 0; -} - -//========================================================================= -UcbExplorerListBoxEntry* UcbExplorerTreeListBox::InsertEntry( - const String& rURL, - SvLBoxEntry* pParent ) -{ - try - { - uno::Reference< XCommandEnvironment > xEnv; - - ::ucbhelper::ContentBroker* pBroker = ::ucbhelper::ContentBroker::get(); - if ( pBroker ) - { - uno::Reference< XInteractionHandler > xInteractionHandler( - pBroker->getServiceManager()->createInstance( - OUString(RTL_CONSTASCII_USTRINGPARAM( - "com.sun.star.task.InteractionHandler" )) ), - UNO_QUERY ); - - uno::Reference< XProgressHandler > xProgressHandler - /* = new ProgressHandler( *pBroker ) */ ; - - xEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, - xProgressHandler ); - } - - ::ucbhelper::Content aContent( rURL, xEnv ); - return InsertEntry( aContent, pParent ); - } - catch ( ContentCreationException const & ) - { - } - - return 0; -} - -//========================================================================= -// -// UcbExplorerWindow implementation. -// -//========================================================================= - -UcbExplorerWindow::UcbExplorerWindow( ResMgr & rResMgr, Window *pParent, WinBits nWinStyle ) -: WorkWindow( pParent, nWinStyle ), - m_aTree( rResMgr, this, WB_HSCROLL ) -{ - Font aTreeFont( m_aTree.GetFont() ); - aTreeFont.SetName( String( RTL_CONSTASCII_USTRINGPARAM("Courier") ) ); - aTreeFont.SetFamily( FAMILY_MODERN ); - aTreeFont.SetPitch( PITCH_FIXED ); - aTreeFont.SetSize( Size( 0, 12 ) ); - - m_aTree.SetFont( aTreeFont ); - m_aTree.SetIndent( 20 ); - m_aTree.SetPosPixel( Point( 0, 0 ) ); - - m_aTree.Show(); -} - -//------------------------------------------------------------------------- -// virtual -UcbExplorerWindow::~UcbExplorerWindow() -{ -} - -//------------------------------------------------------------------------- -// virtual -void UcbExplorerWindow::Resize() -{ - m_aTree.SetSizePixel( GetOutputSizePixel() ); -} - -//========================================================================= -// -// MyApp implementation. -// -//========================================================================= - -// virtual -void MyApp::Main() -{ - ////////////////////////////////////////////////////////////////////// - // Initialize local Service Manager and basic services. - ////////////////////////////////////////////////////////////////////// - - uno::Reference< XMultiServiceFactory > xFac; - try - { - uno::Reference< XComponentContext > xCtx( - cppu::defaultBootstrap_InitialComponentContext() ); - if ( !xCtx.is() ) - { - OSL_FAIL( "Error creating initial component context!" ); - return; - } - - xFac = uno::Reference< XMultiServiceFactory >( - xCtx->getServiceManager(), UNO_QUERY ); - - if ( !xFac.is() ) - { - OSL_FAIL( "No service manager!" ); - return; - } - } - catch ( com::sun::star::uno::Exception const & ) - { - OSL_FAIL( "Exception during creation of initial component context!" ); - return; - } - - comphelper::setProcessServiceFactory( xFac ); - - uno::Reference< XComponent > xComponent( xFac, UNO_QUERY ); - - ////////////////////////////////////////////////////////////////////// - // Create UCB. - ////////////////////////////////////////////////////////////////////// - -#if 1 - // Init UCB (Read configuration from registry) - Sequence< Any > aArgs( 2 ); - aArgs[ 0 ] <<= OUString(RTL_CONSTASCII_USTRINGPARAM( UCB_CONFIGURATION_KEY1_LOCAL )); - aArgs[ 1 ] <<= OUString(RTL_CONSTASCII_USTRINGPARAM( UCB_CONFIGURATION_KEY2_OFFICE )); - sal_Bool bSuccess = ::ucbhelper::ContentBroker::initialize( xFac, aArgs ); -#else - // Init UCB (Use provided configuration data) - ::ucbhelper::ContentProviderDataList aProviders; - aProviders.push_back( - ::ucbhelper::ContentProviderData( - OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.FileContentProvider")), - OUString(RTL_CONSTASCII_USTRINGPARAM("file")), - OUString() ) ); - sal_Bool bSuccess = ::ucbhelper::ContentBroker::initialize( xFac, aProviders ); -#endif - - if ( !bSuccess ) - { - OSL_FAIL( "Error creating UCB!" ); - return; - } - - ////////////////////////////////////////////////////////////////////// - // Create/init/show app window. - ////////////////////////////////////////////////////////////////////// - - std::auto_ptr< ResMgr > xManager( ResMgr::CreateResMgr( "ucbexplorer" ) ); - - UcbExplorerWindow aAppWin( *xManager.get(), 0, WB_APP | WB_STDWORK ); - - MenuBar aMBMain( ResId( MENU_MAIN, *xManager.get() ) ); - - // Check for command line params - - String aRootURL = GetCommandLineParam( 0 ); - if ( aRootURL.Len() == 0 ) - aRootURL = UniString::CreateFromAscii( - RTL_CONSTASCII_STRINGPARAM( "vnd.sun.star.hier:/" ) ); - - String aTitle( ResId( TEXT_TITLEBAR, *xManager.get() ) ); - aTitle.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " - " ) ); - aTitle += aRootURL; - - aAppWin.SetText( aTitle ); - - aAppWin.SetPosSizePixel( 0, 0, 500, 750 ); - - aAppWin.Show(); - - aAppWin.m_aTree.InsertEntry( aRootURL ); - - ////////////////////////////////////////////////////////////////////// - // Execute app. - ////////////////////////////////////////////////////////////////////// - - Execute(); - - ////////////////////////////////////////////////////////////////////// - // Cleanup. - ////////////////////////////////////////////////////////////////////// - - // m_aTree holds UCB contents! - aAppWin.m_aTree.Clear(); - - ::ucbhelper::ContentBroker::deinitialize(); - - if ( xComponent.is() ) - xComponent->dispose(); -} - -//========================================================================= -// -// The Application. -// -//========================================================================= - -MyApp aMyApp; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucbhelper/workben/ucbexplorer/ucbexplorer.hrc b/ucbhelper/workben/ucbexplorer/ucbexplorer.hrc deleted file mode 100644 index 7d6aa8dba4ad..000000000000 --- a/ucbhelper/workben/ucbexplorer/ucbexplorer.hrc +++ /dev/null @@ -1,58 +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. - * - ************************************************************************/ - -// UCB Explorer ( resource identifiers ) - -#ifndef _UCBEXPLORER_HRC -#define _UCBEXPLORER_HRC - -#define MENU_MAIN 1000 -#define MENU_FILE 100 -#define MENU_EXIT 10 - -#define MENU_POPUP 1001 -#define MENU_NEW 10 -#define MENU_RENAME 11 -#define MENU_DELETE 12 - -#define TEXT_TITLEBAR 5000 - -#define BMP_FOLDER_CLOSED 6001 -#define BMP_FOLDER_OPENED 6002 -#define BMP_DOCUMENT 6003 -#define BMP_LINK 6004 - -#define DLG_STRINGINPUT 7000 -#define FT_STRINGINPUT_DLG_NAME 10 -#define ED_STRINGINPUT_DLG_NAME 11 -#define GB_STRINGINPUT_DLG_NAME 12 -#define BT_STRINGINPUT_DLG_OK 13 -#define BT_STRINGINPUT_DLG_CANCEL 14 -#define BT_STRINGINPUT_DLG_HELP 15 - - -#endif /* !_UCBEXPLORER_HRC */ diff --git a/ucbhelper/workben/ucbexplorer/ucbexplorer.src b/ucbhelper/workben/ucbexplorer/ucbexplorer.src deleted file mode 100644 index aac9b6ac8571..000000000000 --- a/ucbhelper/workben/ucbexplorer/ucbexplorer.src +++ /dev/null @@ -1,131 +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 "ucbexplorer.hrc" - -Menu MENU_MAIN -{ - ItemList = - - { - MenuItem - { - Identifier = MENU_FILE ; - Text [ en-US ] = "~File" ; - SubMenu = Menu - { - ItemList = - - { - MenuItem - { - Identifier = MENU_EXIT ; - Text [ en-US ] = "~Exit" ; - AccelKey = KeyCode - { - Function = KEYFUNC_QUIT ; - }; - }; - }; - }; - }; - }; -}; - -Menu MENU_POPUP -{ - ItemList = - - { - MenuItem - { - Identifier = MENU_NEW ; - Text [ en-US ] = "~New" ; - }; - MenuItem - { - Identifier = MENU_RENAME ; - Text [ en-US ] = "~Rename" ; - }; - MenuItem - { - Identifier = MENU_DELETE ; - Text [ en-US ] = "~Delete" ; - }; - }; -}; - -ModalDialog DLG_STRINGINPUT -{ - HelpID = "ucbhelper:ModalDialog:DLG_STRINGINPUT"; - Border = TRUE ; - Moveable = TRUE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 218 , 44 ) ; - FixedText FT_STRINGINPUT_DLG_NAME - { - Pos = MAP_APPFONT ( 12 , 18 ) ; - Size = MAP_APPFONT ( 28 , 10 ) ; - Text [ en-US ] = "~Value" ; - }; - Edit ED_STRINGINPUT_DLG_NAME - { - HelpID = "ucbhelper:Edit:DLG_STRINGINPUT:ED_STRINGINPUT_DLG_NAME"; - Pos = MAP_APPFONT ( 40 , 16 ) ; - Size = MAP_APPFONT ( 110 , 12 ) ; - Border = TRUE ; - Left = TRUE ; - }; - GroupBox GB_STRINGINPUT_DLG_NAME - { - Group = TRUE ; - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 150 , 36 ) ; - }; - OKButton BT_STRINGINPUT_DLG_OK - { - Pos = MAP_APPFONT ( 162 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - DefButton = TRUE ; - }; - CancelButton BT_STRINGINPUT_DLG_CANCEL - { - Pos = MAP_APPFONT ( 162 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - HelpButton BT_STRINGINPUT_DLG_HELP - { - Pos = MAP_APPFONT ( 162 , 200 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; -}; - -String TEXT_TITLEBAR -{ - Text [ en-US ] = "UCB Explorer" ; -}; |