diff options
Diffstat (limited to 'framework/source')
-rw-r--r-- | framework/source/accelerators/presethandler.cxx | 9 | ||||
-rw-r--r-- | framework/source/classes/fwktabwindow.cxx | 22 | ||||
-rw-r--r-- | framework/source/dispatch/closedispatcher.cxx | 22 | ||||
-rw-r--r-- | framework/source/dispatch/dispatchprovider.cxx | 37 | ||||
-rw-r--r-- | framework/source/dispatch/menudispatcher.cxx | 20 | ||||
-rw-r--r-- | framework/source/inc/accelerators/presethandler.hxx | 2 | ||||
-rw-r--r-- | framework/source/inc/loadenv/loadenv.hxx | 4 | ||||
-rw-r--r-- | framework/source/interaction/makefile.mk | 2 | ||||
-rw-r--r-- | framework/source/interaction/quietinteraction.cxx (renamed from framework/source/interaction/stillinteraction.cxx) | 18 | ||||
-rw-r--r-- | framework/source/layoutmanager/layoutmanager.cxx | 7 | ||||
-rw-r--r-- | framework/source/loadenv/loadenv.cxx | 32 | ||||
-rw-r--r-- | framework/source/services/desktop.cxx | 50 | ||||
-rw-r--r-- | framework/source/services/frame.cxx | 44 | ||||
-rw-r--r-- | framework/source/services/license.cxx | 3 |
14 files changed, 75 insertions, 197 deletions
diff --git a/framework/source/accelerators/presethandler.cxx b/framework/source/accelerators/presethandler.cxx index 44d0daeaef..0937ee0888 100644 --- a/framework/source/accelerators/presethandler.cxx +++ b/framework/source/accelerators/presethandler.cxx @@ -613,15 +613,6 @@ void PresetHandler::connectToResource( PresetHandler::EConfigType } //----------------------------------------------- -sal_Bool PresetHandler::existsTarget(const ::rtl::OUString& sTarget) const -{ - // SAFE -> ---------------------------------- - ReadGuard aReadLock(m_aLock); - return (m_lTargets.findConst(sTarget) != m_lTargets.end()); - // <- SAFE ---------------------------------- -} - -//----------------------------------------------- void PresetHandler::copyPresetToTarget(const ::rtl::OUString& sPreset, const ::rtl::OUString& sTarget) { diff --git a/framework/source/classes/fwktabwindow.cxx b/framework/source/classes/fwktabwindow.cxx index 973d3cbdc0..8ffa00a492 100644 --- a/framework/source/classes/fwktabwindow.cxx +++ b/framework/source/classes/fwktabwindow.cxx @@ -205,21 +205,6 @@ void FwkTabPage::Resize() } } -// ----------------------------------------------------------------------- - -void FwkTabPage::Reset() -{ - CallMethod( BACK_METHOD ); - ActivatePage(); -} - -// ----------------------------------------------------------------------- - -void FwkTabPage::Save() -{ - CallMethod( OK_METHOD ); -} - // class FwkTabWindow --------------------------------------------- FwkTabWindow::FwkTabWindow( Window* pParent ) : @@ -416,13 +401,6 @@ void FwkTabWindow::RemovePage( sal_Int32 nIndex ) } // ----------------------------------------------------------------------- - -sal_Int32 FwkTabWindow::GetActivePageId() const -{ - return m_aTabCtrl.GetCurPageId(); -} - -// ----------------------------------------------------------------------- void FwkTabWindow::Resize() { Size aPageSize = GetSizePixel(); diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx index f93613bcf9..b49c29e2c8 100644 --- a/framework/source/dispatch/closedispatcher.cxx +++ b/framework/source/dispatch/closedispatcher.cxx @@ -48,6 +48,7 @@ #include <com/sun/star/frame/CommandGroup.hpp> #include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/awt/XTopWindow.hpp> +#include <com/sun/star/document/XActionLockable.hpp> #include "com/sun/star/beans/XFastPropertySet.hpp" #include <toolkit/helper/vclunohelper.hxx> @@ -171,7 +172,7 @@ void SAL_CALL CloseDispatcher::removeStatusListener(const css::uno::Reference< c //----------------------------------------------- void SAL_CALL CloseDispatcher::dispatchWithNotification(const css::util::URL& aURL , - const css::uno::Sequence< css::beans::PropertyValue >& /*lArguments*/, + const css::uno::Sequence< css::beans::PropertyValue >& lArguments, const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException) { @@ -236,7 +237,20 @@ void SAL_CALL CloseDispatcher::dispatchWithNotification(const css::util::URL& aWriteLock.unlock(); // <- SAFE ---------------------------------- - m_aAsyncCallback.Post(0); + sal_Bool bIsSynchron = sal_False; + for (sal_Int32 nArgs=0; nArgs<lArguments.getLength(); nArgs++ ) + { + if ( lArguments[nArgs].Name.equalsAscii("SynchronMode") ) + { + lArguments[nArgs].Value >>= bIsSynchron; + break; + } + } + + if ( bIsSynchron ) + impl_asyncCallback(0); + else + m_aAsyncCallback.Post(0); } //----------------------------------------------- @@ -540,6 +554,10 @@ sal_Bool CloseDispatcher::implts_establishBackingMode() if (!xFrame.is()) return sal_False; + css::uno::Reference < css::document::XActionLockable > xLock( xFrame, css::uno::UNO_QUERY ); + if ( xLock.is() && xLock->isActionLocked() ) + return sal_False; + css::uno::Reference< css::awt::XWindow > xContainerWindow = xFrame->getContainerWindow(); css::uno::Sequence< css::uno::Any > lArgs(1); lArgs[0] <<= xContainerWindow; diff --git a/framework/source/dispatch/dispatchprovider.cxx b/framework/source/dispatch/dispatchprovider.cxx index 4c98599484..1dfee32e85 100644 --- a/framework/source/dispatch/dispatchprovider.cxx +++ b/framework/source/dispatch/dispatchprovider.cxx @@ -47,7 +47,7 @@ #include <pattern/window.hxx> #include <threadhelp/transactionguard.hxx> #include <threadhelp/readguard.hxx> -#include <threadhelp/writeguard.hxx>
+#include <threadhelp/writeguard.hxx> #include <dispatchcommands.h> #include <protocols.h> #include <services.h> @@ -224,24 +224,13 @@ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL Disp return lDispatcher; } -//_________________________________________________________________________________________________________________
-
-::sal_Bool lcl_isCloseDispatch (const css::util::URL& aURL)
-{
- return (
- (aURL.Complete.equals(CMD_UNO_CLOSEDOC )) || - (aURL.Complete.equals(CMD_UNO_CLOSEWIN )) || - (aURL.Complete.equals(CMD_UNO_CLOSEFRAME))
- ); -}
- -//_________________________________________________________________________________________________________________
-
-::sal_Bool lcl_isStartModuleDispatch (const css::util::URL& aURL)
-{
- return (aURL.Complete.equals(CMD_UNO_SHOWSTARTMODULE));
-}
-
+//_________________________________________________________________________________________________________________ + +::sal_Bool lcl_isStartModuleDispatch (const css::util::URL& aURL) +{ + return (aURL.Complete.equals(CMD_UNO_SHOWSTARTMODULE)); +} + //_________________________________________________________________________________________________________________ /** @@ -296,10 +285,10 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryDeskt if (sTargetFrameName==SPECIALTARGET_DEFAULT) { if (implts_isLoadableContent(aURL)) - xDispatcher = implts_getOrCreateDispatchHelper( E_DEFAULTDISPATCHER, xDesktop );
-
- if (lcl_isStartModuleDispatch(aURL))
- xDispatcher = implts_getOrCreateDispatchHelper( E_STARTMODULEDISPATCHER, xDesktop );
+ xDispatcher = implts_getOrCreateDispatchHelper( E_DEFAULTDISPATCHER, xDesktop ); + + if (lcl_isStartModuleDispatch(aURL)) + xDispatcher = implts_getOrCreateDispatchHelper( E_STARTMODULEDISPATCHER, xDesktop ); } //----------------------------------------------------------------------------------------------------- @@ -772,7 +761,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_getOrCreat CloseDispatcher* pDispatcher = new CloseDispatcher( xFactory, xOwner, sTarget ); xDispatchHelper = css::uno::Reference< css::frame::XDispatch >( static_cast< ::cppu::OWeakObject* >(pDispatcher), css::uno::UNO_QUERY ); } - break;
+ break; case E_STARTMODULEDISPATCHER : { diff --git a/framework/source/dispatch/menudispatcher.cxx b/framework/source/dispatch/menudispatcher.cxx index 5fd964341d..c7282fbcc9 100644 --- a/framework/source/dispatch/menudispatcher.cxx +++ b/framework/source/dispatch/menudispatcher.cxx @@ -445,26 +445,6 @@ sal_Bool MenuDispatcher::impldbg_checkParameter_MenuDispatcher( const uno::R } //***************************************************************************************************************** -// We don't know anything about right values of aURL and seqArguments! -// Check valid references only. -sal_Bool MenuDispatcher::impldbg_checkParameter_dispatch( const URL& aURL , - const Sequence< PropertyValue >& seqArguments) -{ - // Set default return value. - sal_Bool bOK = sal_True; - // Check parameter. - if ( - ( &aURL == NULL ) || - ( &seqArguments == NULL ) - ) - { - bOK = sal_False ; - } - // Return result of check. - return bOK ; -} - -//***************************************************************************************************************** // We need a valid URL. What is meaning with "register for nothing"?! // xControl must correct to - nobody can advised otherwise! sal_Bool MenuDispatcher::impldbg_checkParameter_addStatusListener( const uno::Reference< XStatusListener >& xControl, diff --git a/framework/source/inc/accelerators/presethandler.hxx b/framework/source/inc/accelerators/presethandler.hxx index 9b00760d97..4b226b106b 100644 --- a/framework/source/inc/accelerators/presethandler.hxx +++ b/framework/source/inc/accelerators/presethandler.hxx @@ -356,8 +356,6 @@ class PresetHandler : private ThreadHelpBase // attention! Must be the first bas const css::uno::Reference< css::embed::XStorage >& xDocumentRoot , const ::comphelper::Locale& aLocale = ::comphelper::Locale(::comphelper::Locale::X_NOTRANSLATE())); - sal_Bool existsTarget(const ::rtl::OUString& sTarget) const; - //--------------------------------------- /** @short try to copy the specified preset from the share layer to the user layer and establish it as the diff --git a/framework/source/inc/loadenv/loadenv.hxx b/framework/source/inc/loadenv/loadenv.hxx index 9952a2cd8d..ed73c0a859 100644 --- a/framework/source/inc/loadenv/loadenv.hxx +++ b/framework/source/inc/loadenv/loadenv.hxx @@ -67,7 +67,7 @@ namespace framework{ namespace css = ::com::sun::star; - +class QuietInteraction; //_______________________________________________ // definitions @@ -232,6 +232,8 @@ class LoadEnv : private ThreadHelpBase /** TODO document me ... */ void* m_pCheck; + QuietInteraction* m_pQuietInteraction; + //___________________________________________ // native interface diff --git a/framework/source/interaction/makefile.mk b/framework/source/interaction/makefile.mk index 1399335b6c..4ae3564c21 100644 --- a/framework/source/interaction/makefile.mk +++ b/framework/source/interaction/makefile.mk @@ -45,7 +45,7 @@ CDEFS+=-DCOMPMOD_NAMESPACE=framework # --- Generate ----------------------------------------------------- -SLOFILES= $(SLO)$/stillinteraction.obj \ +SLOFILES= $(SLO)$/quietinteraction.obj \ $(SLO)$/preventduplicateinteraction.obj # --- Targets ------------------------------------------------------ diff --git a/framework/source/interaction/stillinteraction.cxx b/framework/source/interaction/quietinteraction.cxx index af6268d407..83c7675b26 100644 --- a/framework/source/interaction/stillinteraction.cxx +++ b/framework/source/interaction/quietinteraction.cxx @@ -1,12 +1,12 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * + * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: stillinteraction.cxx,v $ + * $RCSfile: QuietInteraction.cxx,v $ * $Revision: 1.7 $ * * This file is part of OpenOffice.org. @@ -31,7 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_framework.hxx" -#include "interaction/stillinteraction.hxx" +#include "interaction/quietinteraction.hxx" //_________________________________________________________________________________________________________________ // my own includes @@ -77,18 +77,18 @@ namespace framework{ // exported definitions //_________________________________________________________________________________________________________________ -DEFINE_XINTERFACE_2( StillInteraction , +DEFINE_XINTERFACE_2( QuietInteraction , OWeakObject , DIRECT_INTERFACE(css::lang::XTypeProvider ) , DIRECT_INTERFACE(css::task::XInteractionHandler) ) -DEFINE_XTYPEPROVIDER_2( StillInteraction , +DEFINE_XTYPEPROVIDER_2( QuietInteraction , css::lang::XTypeProvider , css::task::XInteractionHandler ) //_________________________________________________________________________________________________________________ -StillInteraction::StillInteraction() +QuietInteraction::QuietInteraction() : ThreadHelpBase ( &Application::GetSolarMutex() ) , ::cppu::OWeakObject( ) , m_aRequest ( ) @@ -97,7 +97,7 @@ StillInteraction::StillInteraction() //_________________________________________________________________________________________________________________ -void SAL_CALL StillInteraction::handle( const css::uno::Reference< css::task::XInteractionRequest >& xRequest ) throw( css::uno::RuntimeException ) +void SAL_CALL QuietInteraction::handle( const css::uno::Reference< css::task::XInteractionRequest >& xRequest ) throw( css::uno::RuntimeException ) { // safe the request for outside analyzing everytime! css::uno::Any aRequest = xRequest->getRequest(); @@ -172,7 +172,7 @@ void SAL_CALL StillInteraction::handle( const css::uno::Reference< css::task::XI //_________________________________________________________________________________________________________________ -css::uno::Any StillInteraction::getRequest() const +css::uno::Any QuietInteraction::getRequest() const { /* SAFE { */ ReadGuard aReadLock(m_aLock); @@ -182,7 +182,7 @@ css::uno::Any StillInteraction::getRequest() const //_________________________________________________________________________________________________________________ -sal_Bool StillInteraction::wasUsed() const +sal_Bool QuietInteraction::wasUsed() const { /* SAFE { */ ReadGuard aReadLock(m_aLock); diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx index 3ea3d2759d..f4d4f2ce7e 100644 --- a/framework/source/layoutmanager/layoutmanager.cxx +++ b/framework/source/layoutmanager/layoutmanager.cxx @@ -3068,11 +3068,6 @@ void LayoutManager::implts_renumberRowColumnData( return aSize; } -void LayoutManager::implts_sortActiveElement( const UIElement& ) -{ - implts_sortUIElements(); -} - Reference< XUIElement > LayoutManager::implts_createElement( const rtl::OUString& aName ) { Reference< ::com::sun::star::ui::XUIElement > xUIElement; @@ -7038,6 +7033,7 @@ IMPL_LINK( LayoutManager, AsyncLayoutHdl, Timer *, EMPTYARG ) return 0; } +#ifdef DBG_UTIL void LayoutManager::implts_checkElementContainer() { #ifdef DBG_UTIL @@ -7062,6 +7058,7 @@ void LayoutManager::implts_checkElementContainer() } // for ( ; pCheckIter != aUIElementHash.end(); pCheckIter++ ) #endif } +#endif //--------------------------------------------------------------------------------------------------------- // XFrameActionListener diff --git a/framework/source/loadenv/loadenv.cxx b/framework/source/loadenv/loadenv.cxx index 902a5a970f..ed86195618 100644 --- a/framework/source/loadenv/loadenv.cxx +++ b/framework/source/loadenv/loadenv.cxx @@ -55,7 +55,7 @@ #ifndef __FRAMEWORK_CONSTANT_CONTAINERQUERY_HXX_ #include <constant/containerquery.hxx> #endif -#include <interaction/stillinteraction.hxx> +#include <interaction/quietinteraction.hxx> #include <threadhelp/writeguard.hxx> #include <threadhelp/readguard.hxx> #include <threadhelp/resetableguard.hxx> @@ -172,6 +172,7 @@ LoadEnv::LoadEnv(const css::uno::Reference< css::lang::XMultiServiceFactory >& x : ThreadHelpBase( ) , m_xSMGR (xSMGR) , m_pCheck (this ) + , m_pQuietInteraction( 0 ) { } @@ -348,8 +349,9 @@ void LoadEnv::initializeLoading(const ::rtl::OUString& { nMacroMode = css::document::MacroExecMode::NEVER_EXECUTE; nUpdateMode = css::document::UpdateDocMode::NO_UPDATE; - StillInteraction* pInteraction = new StillInteraction(); - xInteractionHandler = css::uno::Reference< css::task::XInteractionHandler >(static_cast< css::task::XInteractionHandler* >(pInteraction), css::uno::UNO_QUERY); + m_pQuietInteraction = new QuietInteraction(); + m_pQuietInteraction->acquire(); + xInteractionHandler = css::uno::Reference< css::task::XInteractionHandler >(static_cast< css::task::XInteractionHandler* >(m_pQuietInteraction), css::uno::UNO_QUERY); } if ( @@ -1660,8 +1662,7 @@ void LoadEnv::impl_reactForLoadingState() m_xTargetFrame->setName(sFrameName); } } - else - if (m_bReactivateControllerOnError) + else if (m_bReactivateControllerOnError) { // Try to reactivate the old document (if any exists!) css::uno::Reference< css::frame::XController > xOldDoc = m_xTargetFrame->getController(); @@ -1677,8 +1678,7 @@ void LoadEnv::impl_reactForLoadingState() m_bReactivateControllerOnError = sal_False; } } - else - if (m_bCloseFrameOnError) + else if (m_bCloseFrameOnError) { // close empty frames css::uno::Reference< css::util::XCloseable > xCloseable (m_xTargetFrame, css::uno::UNO_QUERY); @@ -1712,7 +1712,25 @@ void LoadEnv::impl_reactForLoadingState() // Otherwhise it hold a might existing stream open! m_lMediaDescriptor.clear(); + css::uno::Any aRequest; + bool bThrow = false; + if ( !m_bLoaded && m_pQuietInteraction && m_pQuietInteraction->wasUsed() ) + { + aRequest = m_pQuietInteraction->getRequest(); + m_pQuietInteraction->release(); + m_pQuietInteraction = 0; + bThrow = true; + } + aReadLock.unlock(); + + if (bThrow) + { + css::uno::Exception aEx; + if ( aRequest >>= aEx ) + throw LoadEnvException( LoadEnvException::ID_GENERAL_ERROR, aEx ); + } + // <- SAFE ---------------------------------- } diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx index 679554eabc..fd983ed492 100644 --- a/framework/source/services/desktop.cxx +++ b/framework/source/services/desktop.cxx @@ -2016,47 +2016,6 @@ sal_Bool Desktop::implcp_ctor( const css::uno::Reference< css::lang::XMultiServi //***************************************************************************************************************** // We work with valid listener only. -sal_Bool Desktop::implcp_addTerminateListener( const css::uno::Reference< css::frame::XTerminateListener >& xListener ) -{ - return( - ( &xListener == NULL ) || - ( xListener.is() == sal_False ) - ); -} - -//***************************************************************************************************************** -// We work with valid listener only. -sal_Bool Desktop::implcp_removeTerminateListener( const css::uno::Reference< css::frame::XTerminateListener >& xListener ) -{ - return( - ( &xListener == NULL ) || - ( xListener.is() == sal_False ) - ); -} - -//***************************************************************************************************************** -// The target frame could be ""(!), but flags must be in range of right enum. -sal_Bool Desktop::implcp_findFrame( const ::rtl::OUString& sTargetFrameName, - sal_Int32 nSearchFlags ) -{ - return( - ( &sTargetFrameName == NULL ) || - ( - ( nSearchFlags != css::frame::FrameSearchFlag::AUTO ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::PARENT ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::SELF ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::CHILDREN ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::CREATE ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::SIBLINGS ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::TASKS ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::ALL ) ) && - ( !( nSearchFlags & css::frame::FrameSearchFlag::GLOBAL ) ) - ) - ); -} - -//***************************************************************************************************************** -// We work with valid listener only. sal_Bool Desktop::implcp_addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) { return( @@ -2075,15 +2034,6 @@ sal_Bool Desktop::implcp_removeEventListener( const css::uno::Reference< css::la ); } -//***************************************************************************************************************** -sal_Bool Desktop::implcp_statusChanged( const css::frame::FeatureStateEvent& aEvent ) -{ - return( - ( &aEvent == NULL ) || - ( aEvent.FeatureDescriptor.getLength() < 1 ) - ); -} - #endif // #ifdef ENABLE_ASSERTIONS } // namespace framework diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx index f6e55c671c..1d63a503b2 100644 --- a/framework/source/services/frame.cxx +++ b/framework/source/services/frame.cxx @@ -3243,50 +3243,6 @@ sal_Bool Frame::implcp_setActiveFrame( const css::uno::Reference< css::frame::XF } //***************************************************************************************************************** -// We don't accept null pointer ... but NULL-References are allowed! -sal_Bool Frame::implcp_initialize( const css::uno::Reference< css::awt::XWindow >& xWindow ) -{ - return( &xWindow == NULL ); -} - -//***************************************************************************************************************** -// We don't accept null pointer or references! -sal_Bool Frame::implcp_setCreator( const css::uno::Reference< css::frame::XFramesSupplier >& xCreator ) -{ - return ( - ( &xCreator == NULL ) || - ( xCreator.is() == sal_False ) - ); -} - -//***************************************************************************************************************** -// We don't accept null pointer or references! -sal_Bool Frame::implcp_setName( const ::rtl::OUString& sName ) -{ - return( &sName == NULL ); -} - -//***************************************************************************************************************** -// We don't accept null pointer or references! -// An empty target name is allowed => is the same like "_self" -sal_Bool Frame::implcp_findFrame( const ::rtl::OUString& sTargetFrameName, - sal_Int32 /*nSearchFlags*/ ) -{ - return( &sTargetFrameName == NULL ); -} - -//***************************************************************************************************************** -// We don't accept null pointer! -sal_Bool Frame::implcp_setComponent( const css::uno::Reference< css::awt::XWindow >& xComponentWindow , - const css::uno::Reference< css::frame::XController >& xController ) -{ - return ( - ( &xComponentWindow == NULL ) || - ( &xController == NULL ) - ); -} - -//***************************************************************************************************************** sal_Bool Frame::implcp_addFrameActionListener( const css::uno::Reference< css::frame::XFrameActionListener >& xListener ) { return ( diff --git a/framework/source/services/license.cxx b/framework/source/services/license.cxx index 0627707de0..c34d7908d1 100644 --- a/framework/source/services/license.cxx +++ b/framework/source/services/license.cxx @@ -167,7 +167,7 @@ DEFINE_INIT_SERVICE ( License, ) - +#if 0 IMPL_STATIC_LINK_NOINSTANCE( License, Terminate, void*, EMPTYARG ) { /* @@ -182,6 +182,7 @@ IMPL_STATIC_LINK_NOINSTANCE( License, Terminate, void*, EMPTYARG ) */ return 0; } +#endif static DateTime _oslDateTimeToDateTime(const oslDateTime& aDateTime) { |