[Libreoffice-commits] .: 4 commits - cui/source sfx2/source sw/source ucbhelper/inc ucbhelper/source ucbhelper/workben unusedcode.easy
Caolán McNamara
caolan at kemper.freedesktop.org
Fri Mar 9 02:27:21 PST 2012
cui/source/dialogs/about.cxx | 9
cui/source/inc/about.hxx | 3
dev/null |binary
sfx2/source/appl/appserv.cxx | 111
sw/source/filter/inc/msfilter.hxx | 4
sw/source/filter/ww8/writerhelper.cxx | 20
sw/source/filter/ww8/writerhelper.hxx | 10
sw/source/filter/ww8/wrtww8.cxx | 14
sw/source/filter/ww8/wrtww8.hxx | 2
ucbhelper/inc/ucbhelper/content.hxx | 106
ucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx | 9
ucbhelper/source/client/content.cxx | 165 -
ucbhelper/source/provider/simplecertificatevalidationrequest.cxx | 33
ucbhelper/workben/myucp/makefile.mk | 89
ucbhelper/workben/myucp/myucp_content.cxx | 944 -------
ucbhelper/workben/myucp/myucp_content.hxx | 194 -
ucbhelper/workben/myucp/myucp_contentcaps.cxx | 223 -
ucbhelper/workben/myucp/myucp_datasupplier.cxx | 399 ---
ucbhelper/workben/myucp/myucp_datasupplier.hxx | 80
ucbhelper/workben/myucp/myucp_provider.cxx | 158 -
ucbhelper/workben/myucp/myucp_provider.hxx | 98
ucbhelper/workben/myucp/myucp_resultset.cxx | 98
ucbhelper/workben/myucp/myucp_resultset.hxx | 65
ucbhelper/workben/myucp/myucp_services.cxx | 129 -
ucbhelper/workben/ucbexplorer/makefile.mk | 71
ucbhelper/workben/ucbexplorer/ucbexplorer.cxx | 1192 ----------
ucbhelper/workben/ucbexplorer/ucbexplorer.hrc | 58
ucbhelper/workben/ucbexplorer/ucbexplorer.src | 131 -
unusedcode.easy | 4
29 files changed, 113 insertions(+), 4306 deletions(-)
New commits:
commit a2a96edbbca627649a86688cb0db1f89e19caa05
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Mar 9 09:37:36 2012 +0000
reorganize license dialog to avoid Resource leaks
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 24e8188..a5314b9 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -180,6 +180,78 @@ static void showDocument( const char* pBaseName )
}
}
+namespace
+{
+ class LicenseDialog : public ModalDialog
+ {
+ private:
+ FixedText aText;
+ OKButton aShow;
+ CancelButton aClose;
+
+ DECL_LINK(CancelHdl, void *);
+ DECL_LINK(ShowHdl, void *);
+ public:
+ LicenseDialog(Window *pParent=NULL);
+ };
+
+ LicenseDialog::LicenseDialog(Window *pParent)
+ : ModalDialog(pParent, SfxResId(DLG_HELP_LICENSING))
+ , aText( this )
+ , aShow( this, SfxResId( PB_LICENSING_SHOW ) )
+ , aClose( this, SfxResId( PB_LICENSING_CLOSE ) )
+ {
+ aClose.SetClickHdl( LINK( this, LicenseDialog, CancelHdl ) );
+ aShow.SetClickHdl( LINK( this, LicenseDialog, ShowHdl ) );
+
+ String aLicensing;
+ for ( int i = STR_LICENSING_INFORMATION_1; i <= STR_LICENSING_INFORMATION_5; ++i )
+ {
+ if ( i != STR_LICENSING_INFORMATION_1 )
+ aLicensing += String( RTL_CONSTASCII_USTRINGPARAM( "\n\n" ) );
+ aLicensing += String( SfxResId( i ) );
+ }
+
+ aText.SetText( aLicensing );
+
+ // positions and sizes are computed to always fit the language
+ Size aTextSize( aText.GetOptimalSize( WINDOWSIZE_PREFERRED ) );
+ Size aShowSize( aShow.GetOptimalSize( WINDOWSIZE_PREFERRED ) );
+ Size aCloseSize( aClose.GetOptimalSize( WINDOWSIZE_PREFERRED ) );
+
+ long nDelimX = 12;
+ long nDelimY = 12;
+ long nWidth = aTextSize.Width() + 2*nDelimX;
+ long nButtonY = aTextSize.Height() + 2*nDelimY;
+ Size aButtonSize( std::max( aShowSize.Width(), aCloseSize.Width() ) + nDelimX,
+ std::max( aShowSize.Height(), aCloseSize.Height() ) );
+
+ SetSizePixel( Size( nWidth, aTextSize.Height() + 3*nDelimY + aButtonSize.Height() ) );
+ aText.SetPosSizePixel( Point( nDelimX, nDelimY ), aTextSize );
+ aShow.SetPosSizePixel( Point( ( nWidth - nDelimX ) / 2 - aButtonSize.Width(), nButtonY ), aButtonSize );
+ aClose.SetPosSizePixel( Point( aShow.GetPosPixel().X() + aButtonSize.Width() + nDelimX, nButtonY ), aButtonSize );
+
+ aText.Show();
+
+ FreeResource();
+ }
+
+ IMPL_LINK_NOARG(LicenseDialog, CancelHdl)
+ {
+ Close();
+ return 0;
+ }
+
+ IMPL_LINK_NOARG(LicenseDialog, ShowHdl)
+ {
+ EndDialog(RET_OK);
+ showDocument("LICENSE");
+ return 0;
+ }
+
+}
+
+
void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
{
bool bDone = false;
@@ -377,43 +449,8 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
case SID_SHOW_LICENSE:
{
- ModalDialog aDialog( NULL, SfxResId( DLG_HELP_LICENSING ) );
-
- String aLicensing;
- for ( int i = STR_LICENSING_INFORMATION_1; i <= STR_LICENSING_INFORMATION_5; ++i )
- {
- if ( i != STR_LICENSING_INFORMATION_1 )
- aLicensing += String( RTL_CONSTASCII_USTRINGPARAM( "\n\n" ) );
- aLicensing += String( SfxResId( i ) );
- }
-
- FixedText aText( &aDialog );
- aText.SetText( aLicensing );
- OKButton aShow( &aDialog, SfxResId( PB_LICENSING_SHOW ) );
- CancelButton aClose( &aDialog, SfxResId( PB_LICENSING_CLOSE ) );
-
- // positions and sizes are computed to always fit the language
- Size aTextSize( aText.GetOptimalSize( WINDOWSIZE_PREFERRED ) );
- Size aShowSize( aShow.GetOptimalSize( WINDOWSIZE_PREFERRED ) );
- Size aCloseSize( aClose.GetOptimalSize( WINDOWSIZE_PREFERRED ) );
-
- long nDelimX = 12;
- long nDelimY = 12;
- long nWidth = aTextSize.Width() + 2*nDelimX;
- long nButtonY = aTextSize.Height() + 2*nDelimY;
- Size aButtonSize( std::max( aShowSize.Width(), aCloseSize.Width() ) + nDelimX,
- std::max( aShowSize.Height(), aCloseSize.Height() ) );
-
- aDialog.SetSizePixel( Size( nWidth, aTextSize.Height() + 3*nDelimY + aButtonSize.Height() ) );
- aText.SetPosSizePixel( Point( nDelimX, nDelimY ), aTextSize );
- aShow.SetPosSizePixel( Point( ( nWidth - nDelimX ) / 2 - aButtonSize.Width(), nButtonY ), aButtonSize );
- aClose.SetPosSizePixel( Point( aShow.GetPosPixel().X() + aButtonSize.Width() + nDelimX, nButtonY ), aButtonSize );
-
- aText.Show();
-
- if ( aDialog.Execute() == RET_OK )
- showDocument( "LICENSE" );
-
+ LicenseDialog aDialog;
+ aDialog.Execute();
break;
}
commit d527c1df688db82f93a2fb336f2c5ae0a243104f
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Mar 9 09:22:08 2012 +0000
callcatcher: update list
diff --git a/ucbhelper/inc/ucbhelper/content.hxx b/ucbhelper/inc/ucbhelper/content.hxx
index e49999b..c9b06ec 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 c770c8e..7a9f2e7 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 59cc399..c4e5d8d 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 c12ae0d..952139b 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 73c3d0b..0000000
--- 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 8afe738..0000000
--- 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 d2a4668..0000000
--- 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 9d8cdc1..0000000
--- 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 77f1088..0000000
--- 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 a4bafb8..0000000
--- 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 35057de..0000000
--- 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 729cb5a..0000000
--- 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 {
-
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list