calendarui/controller/src/calenservicesimpl.cpp
changeset 0 f979ecb2b13e
child 18 c198609911f9
child 21 9711e452b5e9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/controller/src/calenservicesimpl.cpp	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,586 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of Calendar services
+*
+*/
+
+#include <gulicon.h>
+#include <calcalendarinfo.h>
+#include <mcalenpreview.h>
+
+#include "calenglobaldata.h"
+#include "calendarui_debug.h"
+#include "calenservicesimpl.h"
+#include "calencontroller.h"
+#include "calenviewmanager.h"
+#include "calenicons.h"
+#include "calenattachmentmodel.h"
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::NewL
+// Two phased constructor.
+// Taking the command range start and end points
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalenServicesImpl* CCalenServicesImpl::NewL( TInt aCommandRangeStart,
+                                                                  TInt aCommandRangeEnd )
+    {
+    TRACE_ENTRY_POINT;
+    CCalenServicesImpl* self = new( ELeave ) CCalenServicesImpl(
+                                       aCommandRangeStart, aCommandRangeEnd );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    TRACE_EXIT_POINT;
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::NewL
+// 1st phase of construction.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalenServicesImpl* CCalenServicesImpl::NewL()
+    {
+    TRACE_ENTRY_POINT;
+    CCalenServicesImpl* self = new( ELeave ) CCalenServicesImpl( 0, 0 );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    TRACE_EXIT_POINT;
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::CCalenServicesImpl
+// C++ constructor.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalenServicesImpl::CCalenServicesImpl( TInt aCommandRangeStart,
+                                                        TInt aCommandRangeEnd )
+    : iCommandRangeStart( aCommandRangeStart ),
+      iCommandRangeEnd( aCommandRangeEnd )
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::ConstructL
+// 2nd phase of construction.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::ConstructL()
+    {
+    TRACE_ENTRY_POINT;
+
+    iGlobalData = CCalenGlobalData::InstanceL();
+    iController = CCalenController::InstanceL();
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::Release
+// Performs cleanup of this object.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::Release()
+    {
+    TRACE_ENTRY_POINT;
+
+    if( iGlobalData )
+        {
+        iGlobalData->Release();
+        }
+
+    if( iController )
+        {
+        iController->Release();
+        }
+
+    delete this;
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::SessionL
+// Retrieve the calendar session currently in use by Calendar
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalSession& CCalenServicesImpl::SessionL()
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->CalSessionL();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::EntryViewL
+// Retrieve the calendar entry view currently in use by Calendar
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalEntryView* CCalenServicesImpl::EntryViewL()
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->EntryViewL();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::InstanceViewL
+// Retrieve the calendar instance view currently in use by Calendar
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalInstanceView* CCalenServicesImpl::InstanceViewL()
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->InstanceViewL();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::InterimUtilsL()
+// Retrieve interimutils from globaldata
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalenInterimUtils2& CCalenServicesImpl::InterimUtilsL()
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iGlobalData->InterimUtilsL();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::RegisterForNotificationsL
+// Register for notification of Calendar event
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::RegisterForNotificationsL( MCalenNotificationHandler* aHandler,
+                                                            TCalenNotification aNotification )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    iController->RegisterForNotificationsL( aHandler, aNotification );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::RegisterForNotificationsL
+// Register for array notifications of Calendar events
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::RegisterForNotificationsL( MCalenNotificationHandler* aHandler,
+                                                            RArray<TCalenNotification>& aNotifications )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    iController->RegisterForNotificationsL( aHandler, aNotifications );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::CancelNotifications
+// Cancel notifications of Calendar events
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::CancelNotifications( MCalenNotificationHandler* aHandler )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    iController->CancelNotifications( aHandler );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::IssueCommandL
+// Issue a command to be handled by Calendar or a customization
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TBool CCalenServicesImpl::IssueCommandL( TInt aCommand )
+    {
+    TRACE_ENTRY_POINT;
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iController->IssueCommandL( aCommand );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::IssueNotificationL
+// Issue a notification to Calendar, which will be broadcast synchronously
+// to all registered notification handlers
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::IssueNotificationL( TCalenNotification aNotification )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    iController->BroadcastNotification( aNotification );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::Context
+// Returns the context.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+MCalenContext& CCalenServicesImpl::Context()
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->Context();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::RequestActivationL
+// Request activation of a specific view
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::RequestActivationL( const TVwsViewId& aViewId )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    iController->RequestActivationL( aViewId );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::ActivationNotificationL
+// Notify Calendar that a specific view has been activated
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::ActivationNotificationL( const TVwsViewId& /*aViewId*/ )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::OfferMenuPaneL
+// Offers the menu pane to plugins for customisation
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::OfferMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
+    {
+    TRACE_ENTRY_POINT;
+
+    iController->OfferMenuPaneL( aResourceId, aMenuPane );
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::GetCommandRange
+// Returns the assigned command range
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::GetCommandRange( TInt& aCommandRangeStart, 
+        TInt& aCommandRangeEnd ) const
+    {
+    TRACE_ENTRY_POINT;
+
+    aCommandRangeStart = iCommandRangeStart;
+    aCommandRangeEnd = iCommandRangeEnd;
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::Infobar
+// Descriptor passed to plugins to get customised info bar text
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCoeControl* CCalenServicesImpl::Infobar(const TRect& aRect )
+    {
+    TRACE_ENTRY_POINT;
+
+    TRACE_EXIT_POINT;
+    return iController->Infobar( aRect );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::Infobar
+// Returns the customized text from plugin
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+const TDesC& CCalenServicesImpl::Infobar()
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iController->Infobar();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::CustomPreviewPaneL
+// Returns the customized Preview pane
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+MCalenPreview* CCalenServicesImpl::CustomPreviewPaneL( TRect& aRect )
+	{
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iController->CustomPreviewPaneL( aRect );	
+	}
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::PreviewPane
+// Descriptor passed to plugins to get customised info bar text
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCoeControl* CCalenServicesImpl::PreviewPane( TRect& aRect )
+    {
+    TRACE_ENTRY_POINT;
+
+    TRACE_EXIT_POINT;
+    return iController->PreviewPane( aRect );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::ToolbarOrNull
+// Provides access to the calendar toolbar if one is available
+// ----------------------------------------------------------------------------
+MCalenToolbar* CCalenServicesImpl::ToolbarOrNull()
+    {
+    TRACE_ENTRY_POINT;
+
+    TRACE_EXIT_POINT;
+    return iController->ViewManager().ToolbarOrNull();
+    }
+    
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::GetIconL
+// Get icon of specific type
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CGulIcon* CCalenServicesImpl::GetIconL( MCalenServices::TCalenIcons aIndex )
+    {
+    TRACE_ENTRY_POINT;
+
+    TRACE_EXIT_POINT;
+    return iController->GetIconL( aIndex );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::QueueKeyEvent
+// Queue key events
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TBool CCalenServicesImpl::QueueKeyEvent( const TKeyEvent& aEvent, 
+                                                           TEventCode aType )
+    {
+    TRACE_ENTRY_POINT;
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->QueueKeyEvent( aEvent, aType );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::GetQueuedKeyEventL
+// Get queued key events
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//    
+TBool CCalenServicesImpl::GetQueuedKeyEvent( TKeyEvent& aEvent, 
+                                                                  TEventCode& aType )
+    {
+    TRACE_ENTRY_POINT;
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->GetQueuedKeyEvent( aEvent, aType );
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::ResetKeyEventQueue
+// reset key event queue
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//    
+void CCalenServicesImpl::ResetKeyEventQueue()
+    {
+    TRACE_ENTRY_POINT;
+
+    iGlobalData->ResetKeyEventQueue();
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenController::MissedAlarmStore
+// Returns a reference to the Missed Alarm Store
+// ----------------------------------------------------------------------------
+CMissedAlarmStore* CCalenServicesImpl::MissedAlarmStore()
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iController->MissedAlarmStore();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::GetMissedAlarmsList
+// Get missed alarms list
+// ----------------------------------------------------------------------------
+void CCalenServicesImpl::GetMissedAlarmsList(RArray<TCalenInstanceId>& aMissedAlarmsList)
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iController->GetMissedAlarmsList(aMissedAlarmsList);
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::GetAttachmentData
+// returns ref of CCalenAttachmentModel
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+// 
+CCalenAttachmentModel* CCalenServicesImpl::GetAttachmentData()
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return &iController->AttachmentData();
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::SessionL
+// Retrieve the calendar session currently in use by Calendar
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalSession& CCalenServicesImpl::SessionL(const TDesC& aCalendar )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->CalSessionL(aCalendar);
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::EntryViewL
+// Retrieve the calendar entry view currently in use by Calendar
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalEntryView* CCalenServicesImpl::EntryViewL(const  TCalCollectionId aCollectionId )
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->EntryViewL(aCollectionId);
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenServicesImpl::InstanceViewL
+// Retrieve the calendar instance view currently in use by Calendar
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+CCalInstanceView* CCalenServicesImpl::InstanceViewL(
+                                        const RArray<TInt>& aCollectionIds)
+    {
+    TRACE_ENTRY_POINT;
+
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+
+    TRACE_EXIT_POINT;
+    return iGlobalData->InstanceViewL(aCollectionIds);
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenGlobalData::GetAllCalendarInfoL
+// Get all available calendar info
+// -----------------------------------------------------------------------------
+//
+void CCalenServicesImpl::GetAllCalendarInfoL(
+        RPointerArray<CCalCalendarInfo>& aCalendarInfoList )
+    {
+    TRACE_ENTRY_POINT;
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    iGlobalData->GetAllCalendarInfoL(aCalendarInfoList);
+    TRACE_EXIT_POINT;
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenGlobalData::GetCalFileNameForCollectionId
+// Get calendar file name for the given collection id
+// -----------------------------------------------------------------------------
+//
+const TDesC& CCalenServicesImpl::GetCalFileNameForCollectionId(
+        const TCalCollectionId aCollectionId)
+    {
+    TRACE_ENTRY_POINT;
+    ASSERT( iGlobalData && iController ); // Make sure ConstructL has been called.
+    TRACE_EXIT_POINT;
+    return iGlobalData->GetCalFileNameForCollectionId(aCollectionId);
+    }
+
+// End of file