calendarui/controller/src/calenviewmanager.cpp
changeset 18 c198609911f9
parent 0 f979ecb2b13e
child 23 fd30d51f876b
--- a/calendarui/controller/src/calenviewmanager.cpp	Tue Feb 02 10:12:19 2010 +0200
+++ b/calendarui/controller/src/calenviewmanager.cpp	Fri Apr 16 14:57:40 2010 +0300
@@ -12,1792 +12,579 @@
 * Contributors:
 *
 * Description:  Calendar view manager
-*
+ *
 */
 
 
-#include <aknViewAppUi.h>
-#include <centralrepository.h>
-#include <AknQueryDialog.h>
-#include <Calendar.rsg>
-#include <calencommonui.rsg>
-#include <akntoolbar.h>
-#include <calendateutils.h>
-#include <calencommandhandler.h>
-#include <calencommands.hrh>                // Calendar commands
-#include <calentoolbar.h>
-#include <akntoolbarextension.h>
-#include <calenactionuiutils.h>
+//system includes
+#include <QDebug>
+#include <hbmainwindow.h>
 
-#include "calendarui_debug.h"
+//user includes
 #include "calenviewmanager.h"
-#include "CalenUid.h"
 #include "calencontroller.h"
-#include "calenviewpopulator.h"
-#include "calenglobaldata.h"
-#include "CalendarPrivateCRKeys.h"          // includes CalendarInternalCRKeys.h
-#include "calenmonthview.h"                 // Native month view
-#include "calenweekview.h"                  // Native week view
-#include "calendayview.h"                   // Native day view
-#include "calentodoview.h"                  // Native todo view
-#include "caleneventview.h"                 // Event View
-#include "calenmissedalarmsview.h"			// Missed alarms view
-#include "calenmissedeventview.h"			// Missed event view
-#include "calensetting.h"                   // CCalenSetting::TViewType
-#include "calencmdlinelauncher.h"           // Command line launcher
+#include "hb_calencommands.hrh"
 #include "calenservicesimpl.h"
-#include "CleanupResetAndDestroy.h"
-#include "calentoolbarimpl.h"
-#include "calencustomisationmanager.h"
-#include "calenviewinfo.h"
-#include "calentitlepane.h"
-#include "calenicons.h"
-#include "calendummyview.h"
-
-const TInt KArrayGranularity = 5;
+#include "calenmonthview.h"
+#include "calendayview.h"
+#include "calenmonthview.h"
+#include "agendaeventviewer.h"
+#include "calennotificationhandler.h"
+#include "CalenUid.h"
+#include "calenactionuiutils.h"
+#include "calensettingsview.h"
+#include "calendocloader.h"
+#include "calendarui_debug.h"
+#include "calencommon.h"
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::NewL
-// 1st phase of construction
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-CCalenViewManager* CCalenViewManager::NewL( CAknViewAppUi& aAppUi,
-                                            CCalenController& aController )
-    {
-    TRACE_ENTRY_POINT;
-
-    CCalenViewManager* self = new( ELeave ) CCalenViewManager( aAppUi,aController );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    TRACE_EXIT_POINT;
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::CCalenViewManager
-// C++ default Constructor.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-CCalenViewManager::CCalenViewManager( CAknViewAppUi& aAppUi, 
-                                      CCalenController& aController )
-    : iAppUi( aAppUi ), iController( aController )
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::~CCalenViewManager
-// Destructor.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-CCalenViewManager::~CCalenViewManager()
-    {
-    TRACE_ENTRY_POINT;
-
-    delete iPopulator;
-    delete iToolbar;
-
-    if( iSetting )
-        {
-        iSetting->Release();
-        }
-
-    if( iGlobalData )
-        {
-        iGlobalData->Release();
-        }
-
-    iViewInfoArray.ResetAndDestroy();
-    iKnownPlugins.Reset();
-    
-    delete iRemovedActiveView;
-    delete iViewRemovalCallback;
-    delete iIcons;
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::ConstructL
+// CalenViewManager::CalenViewManager
 // 2nd phase of construction.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::ConstructL()
-    {
-    TRACE_ENTRY_POINT;
-
-    iGlobalData = CCalenGlobalData::InstanceL();
-    iPopulator = CCalenViewPopulator::NewL( iController );
-
-    // Only create a toolbar impl if touch is enabled and a CAknToolbar exists
-    if( AknLayoutUtils::PenEnabled() )
-        {
-        CAknAppUi* appUi = static_cast<CAknAppUi*>( CEikonEnv::Static()->EikAppUi() );
-        if (appUi->CurrentFixedToolbar())
-            {
-            iToolbar = CCalenToolbarImpl::NewL( iController );
-            }
-        }
-
-    iSetting = CCalenSetting::InstanceL();
-    iPreviousViewId.iViewUid = KNullUid;
-    iAvoidRepopulation = EFalse;
-    iStartupComplete = ETrue;
-    
-    TRACE_EXIT_POINT;
-    }
+CalenViewManager::CalenViewManager( CCalenController& aController,
+                                         bool isFromServiceFrmwrk)
+: mController(aController)
+{
+	TRACE_ENTRY_POINT;
+	
+	mCalenEventViewer = NULL;
+	mMonthViewDocLoader = NULL;
+	mDayViewDocLoader = NULL;	
+	mDayViewAltDocLoader = NULL;
+	
+	mController.MainWindow().setItemVisible(Hb::NaviPaneItem, false);
+	
+	if (isFromServiceFrmwrk) {
+		// Dont load any views until our remote slot gets called in
+		// calenserviceprovider.cpp
+		// Just have an empty mainwindow
+	} else {
+		// Do the normal startup
+		// Load the month view and active it and add it to main window
+		mFirstView = ECalenMonthView;
+		loadMonthView();
+		ActivateDefaultViewL(ECalenMonthView);
+		mController.MainWindow().addView(mCalenMonthView);
+	}
+	
+	TRACE_EXIT_POINT;
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::SetCustomisationManagerL
-// Creates custom views.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::ConstructCustomViewsL(
-                             CCalenCustomisationManager& aCustomisationManager )
-    {
-    TRACE_ENTRY_POINT;
-
-    iCustomisationManager = &aCustomisationManager;
-    ConstructCustomViewsL();
-    ConstructNativeViewsL();
-
-    TUid defViewUid = iSetting->DefaultView();
-    ActivateDefaultViewL( defViewUid );
-    	
-    // Register for view activation events
-    iAppUi.AddViewActivationObserverL( this );
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::ViewInfoArray
-// Get info array
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-RPointerArray<CCalenViewInfo>& CCalenViewManager::ViewInfoArray()
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    return iViewInfoArray;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::CustomiszationManager
-// Return reference to the customisation manager
+// CalenViewManager::~CalenViewManager
+// Destructor.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-CCalenCustomisationManager& CCalenViewManager::CustomisationManager()
-    {
-    TRACE_ENTRY_POINT;
+CalenViewManager::~CalenViewManager()
+{
+	TRACE_ENTRY_POINT;
 
-    ASSERT( iCustomisationManager );
-
-    TRACE_EXIT_POINT;
-    return *iCustomisationManager;
-    }
+	delete mCalenMonthView;
+	delete mCalenDayView;
+	delete mSettingsView;
+	delete mDayViewDocLoader;
+	delete mDayViewAltDocLoader;
+	delete mMonthViewDocLoader;
+	TRACE_EXIT_POINT;
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::ConstructNativeViewsL
-// Constructs the S60 native views and registers them with the view server
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::ConstructNativeViewsL()
-    {
-    TRACE_ENTRY_POINT;
-
-    CCalenTitlePane::NewAndSwapL(iAppUi.StatusPane());
-    MCalenServices& services = iController.Services();
-    
-    
-    // Add the native views for the todo view, week view, day view , month
-    // view and event view unless they are already provided by custom views 
-    // in ROM.This is enforced by the customisation manager rejecting any 
-    // views that try to replace the native views but are not in ROM.
-
-    if (CreateNativeViewL(KUidCalenMonthView))
-        {
-        // Views take ownership of services object instantly. 
-        // No need for cleanup stack.
-        CCalenMonthView* monthView = CCalenMonthView::NewL(services);
-        AddNativeViewL(monthView); // takes ownership immediately.
-        }
-
-    if (CreateNativeViewL(KUidCalenWeekView))
-        {
-        // Views take ownership of services object instantly. 
-        // No need for cleanup stack.
-        CCalenWeekView* weekView = CCalenWeekView::NewL(services);
-        AddNativeViewL(weekView); // takes ownership immediately.
-        }
-        
-    if (CreateNativeViewL(KUidCalenDayView))
-        {  
-        // Views take ownership of services object instantly. 
-        // No need for cleanup stack.
-        CCalenDayView* dayView = CCalenDayView::NewL(services);
-        AddNativeViewL(dayView); // takes ownership immediately.
-        }
-    
-    if (CreateNativeViewL(KUidCalenTodoView))
-        {
-        // Views take ownership of services object instantly. 
-        // No need for cleanup stack.
-        CCalenTodoView* todoView = CCalenTodoView::NewL(services);
-        AddNativeViewL(todoView); // takes ownership immediately.
-        }
-	
-	if( CreateNativeViewL(KUidCalenEventView))
-		{
-        // Views take ownership of services object instantly. 
-		// No need for cleanup stack.
-        CCalenEventView* eventView = CCalenEventView::NewL(services);
-        AddNativeViewL(eventView); // takes ownership immediately.
-		}
-
-	if( CreateNativeViewL(KUidCalenMissedAlarmsView))
-		{
-        // Views take ownership of services object instantly. 
-		// No need for cleanup stack.
-        CCalenMissedAlarmsView* missedAlarmsView = CCalenMissedAlarmsView::NewL(services);
-        AddNativeViewL(missedAlarmsView); // takes ownership immediately.
-		}
-
-	if( CreateNativeViewL(KUidCalenMissedEventView))
-		{
-        // Views take ownership of services object instantly. 
-		// No need for cleanup stack.
-        CCalenMissedEventView* missedEventView = CCalenMissedEventView::NewL(services);
-        AddNativeViewL(missedEventView); // takes ownership immediately.
-		}
-	
-	if(CreateNativeViewL(KUidCalenDummyView))
-	    {
-	    CCalenDummyView* dummyView = CCalenDummyView::NewL(services);
-	    AddNativeViewL(dummyView);
-	    }
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::CreateNativeViewL
-// Checks to see if the native view needs to created.
+// CalenViewManager::constructAndActivateView
+// Constructs and activates the requested view
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-TBool CCalenViewManager::CreateNativeViewL(TUid aViewUid)
-    {
-    TRACE_ENTRY_POINT;
-    
-    TBool createNativeView = ETrue;
-    TBool (*compareFn)(const TUid*, const CCalenViewInfo&) 
-                                         = CCalenViewInfo::ViewInfoIdentifier;
-                                            
-    TInt position = iViewInfoArray.Find( aViewUid, compareFn );
-    if ( position != KErrNotFound )
-        {
-        // A plugin is trying to replace a native view, find if it is rom
-        // based or not
-        TBool romBased = CustomisationManager().IsViewRomBased( aViewUid );
-        if ( romBased )
-            {
-            createNativeView = EFalse;
-            }
-        else
-            {
-            // A non-rom plugin cannot replace the native views, so the view is
-            // removed
-            iAppUi.RemoveView( aViewUid );
-            
-            // Remove the entry from the view info array
-            iViewInfoArray.Remove( position );
-            
-            createNativeView = ETrue;
-            }
-        }
-        
-    TRACE_EXIT_POINT;
-    return createNativeView;
-    }
- 
+void CalenViewManager::constructAndActivateView(int view)
+{
+	TRACE_ENTRY_POINT;
+	if (view == ECalenMonthView) {
+		mFirstView = ECalenMonthView;
+		loadMonthView();
+		ActivateDefaultViewL(ECalenMonthView);
+		// Add month view to mainwindow.
+		mController.MainWindow().addView(mCalenMonthView);
+	} else if (view == ECalenDayView) {
+		mFirstView = ECalenDayView;
+		loadDayView();
+		ActivateDefaultViewL(ECalenDayView);
+		// Add day view to mainwindow.
+		mController.MainWindow().addView(mCalenDayView);
+	}
+	TRACE_EXIT_POINT;
+}
+
 // ----------------------------------------------------------------------------
-// CCalenViewManager::ConstructCustomViewsL
-// Constructs any custom views from all the plugins and registers them 
-// with the view server
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::ConstructCustomViewsL()
-    {
-    TRACE_ENTRY_POINT;
-
-    // Get the array of active plugins
-    const RArray<TUid>& plugins = CustomisationManager().ActivePlugins();
-
-    // For every active plugin, discover if it offers any customised views
-    // and adds them to the view server.
-    TInt numPlugins = plugins.Count();
-    for( TInt pluginIndex( 0 ); pluginIndex < numPlugins; ++pluginIndex )
-        {
-        TUid pluginUid = plugins[pluginIndex];
-        ConstructCustomViewL( pluginUid );
-        }
-
-    TRACE_EXIT_POINT;
-    }
-    
-// ----------------------------------------------------------------------------
-// CCalenViewManager::ConstructCustomViewsL
-// Constructs the custom views from a particular plugin and registers them
-//  with the view server
+// CalenViewManager::loadMonthView
+// Loads month view frm the docml
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::ConstructCustomViewL( TUid aPluginUid )
-    {
-    TRACE_ENTRY_POINT;
-
-    iKnownPlugins.AppendL( aPluginUid );
-
-    RPointerArray<CCalenView> customViews;
-    CleanupResetAndDestroyPushL( customViews );
-
-    CustomisationManager().GetCustomViewsL( aPluginUid, customViews );
-    for( TInt viewIndex( customViews.Count()-1 ); viewIndex >= 0; --viewIndex )
-        {
-        CCalenView* customView = customViews[viewIndex];
-        iAppUi.AddViewL( customView );
-        customViews.Remove( viewIndex );
-        }
-    CleanupStack::PopAndDestroy(); // customViews
-
-    TRACE_EXIT_POINT;
-    }    
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::ActivateDefaultViewL
-// Activates the default view (retrieved from settings).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::ActivateDefaultViewL( TUid aDefaultView )
-    {
-    TRACE_ENTRY_POINT;
-
-    // Find the default view in the view cycle list
-    TInt position = iViewInfoArray.Find(
-                            aDefaultView, CCalenViewInfo::ViewInfoIdentifier );
-    if( position != KErrNotFound )
-        {
-        iAppUi.SetDefaultViewL( *iAppUi.View( aDefaultView ) );
-        iViewCycleIndex = position;
-        }
-	else
-	    {
-	    CRepository* repository = CRepository::NewL( KCRUidCalendar );
-	    CleanupStack::PushL(repository);
-	    TInt tmp( static_cast<TInt>( KUidCalenMonthView.iUid ) );
-	    TInt position = iViewInfoArray.Find( KUidCalenMonthView, CCalenViewInfo::ViewInfoIdentifier );
-	    User::LeaveIfError( repository->Set( KCalendarDefaultStartView, tmp ) );
-	    iAppUi.SetDefaultViewL( *iAppUi.View( KUidCalenMonthView ) );
-	    iViewCycleIndex = position;
-	    CleanupStack::PopAndDestroy(repository);  
-	    }
-    TRACE_EXIT_POINT;
-
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::InterruptPopulationL
-// Interrupts the population of the current view. When the editors are launched
-// the view population is interrupted as it will be repopulated when the
-// the editor closes.
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::InterruptPopulationL()
-    {
-    TRACE_ENTRY_POINT;
-
-    // Cancel population of current view, if it's ongoing.
-    iPopulator->InterruptPopulationL();
-
-    TRACE_EXIT_POINT;
-    }
+void CalenViewManager::loadMonthView()
+{
+	bool loadSuccess = false;
+	Qt::Orientation currentOrienation = mController.MainWindow().orientation();
+	// Create the month view docloader object.
+	mMonthViewDocLoader = new CalenDocLoader(mController);
+	mMonthViewDocLoader->load(CALEN_MONTHVIEW_XML_FILE, &loadSuccess);
+	Q_ASSERT_X(loadSuccess, "calenviewmanager.cpp", 
+											"Unable to load month view XML");
+	// Based on the current orientation, load the appropriate section
+	if (Qt::Vertical == currentOrienation) {
+		mMonthViewDocLoader->load(CALEN_MONTHVIEW_XML_FILE, 
+											CALEN_PORTRAIT, &loadSuccess);
+		} else {
+			mMonthViewDocLoader->load(CALEN_MONTHVIEW_XML_FILE, 
+											CALEN_LANDSCAPE, &loadSuccess);
+		}
+	Q_ASSERT_X(loadSuccess, "calenviewmanager.cpp", "Unable to load XML");
+	
+	// Get the calenmonth view from the loader.
+	mCalenMonthView = static_cast<CalenMonthView *> 
+							(mMonthViewDocLoader->findWidget(CALEN_MONTHVIEW));
+	Q_ASSERT_X(mCalenDayView, "calenviewmanager.cpp", 
+											"Unable to load calenMonth view");
+	
+	// Setup the month view.
+	mCalenMonthView->setupView(mMonthViewDocLoader);
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::RemoveCurrentViewFromMenu
-// Removes the current view from the cascading view switch menu
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::RemoveCurrentViewFromMenu( CEikMenuPane* aMenuPane )
-    {
-    TRACE_ENTRY_POINT;
-
-    TUid uid = CurrentView();
-
-    if( uid == KUidCalenMonthView )
-        {
-        aMenuPane->DeleteMenuItem( ECalenMonthView );
-        }
-    else if( uid == KUidCalenWeekView )
-        {
-        aMenuPane->DeleteMenuItem( ECalenWeekView );
-        }
-    else if( uid == KUidCalenDayView )
-        {
-        aMenuPane->DeleteMenuItem( ECalenDayView );
-        }
-    else if( uid == KUidCalenTodoView )
-        {
-        aMenuPane->DeleteMenuItem( ECalenTodoView );
-        }
-    else
-        {
-        // Assert as this point should never be reached
-        ASSERT( 0 );
-        }
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::AddNativeViewL
-// Adds a view to the array.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::AddNativeViewL( CCalenView* aView )
-    {
-    TRACE_ENTRY_POINT;
-
-    CleanupStack::PushL( aView );
-    iAppUi.AddViewL( aView );
-    CleanupStack::Pop( aView );
-
-    const TDesC& menuName = aView->LocalisedViewNameL( CCalenView::EMenuName );
-    const TDesC& settingsName = aView->LocalisedViewNameL( CCalenView::ESettingsName );
-
-    TUid viewUid = aView->Id();
-    
-
-    CCalenViewInfo* viewInfo = CCalenViewInfo::NewL( aView->Id(),
-                                                     KUidCalendar,
-                                                     menuName,
-                                                     settingsName,
-                                                     aView->CyclePosition() );
-        
-    // Discover if a native view has been hidden by a plugin.                                             
-    TBool hidden = iCustomisationManager->HiddenView( viewUid );
-    viewInfo->Hide( hidden );
-    
-    // Append to view info array
-    iViewInfoArray.InsertInOrderAllowRepeatsL( viewInfo, 
-                                       CCalenViewInfo::CyclePositionComparison );
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::HandleCommandL
-// Handles view manager commands.
+// CalenViewManager::loadDayView
+// Loads the day view frm the docml
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-TBool  CCalenViewManager::HandleCommandL( const TCalenCommand& aCommand )
-    {
-    TRACE_ENTRY_POINT;
-    
-    TBool commandUsed(EFalse);
-    
-    switch( aCommand.Command() )
-        {
-        case ECalenMonthView:
-            {
-            RequestActivationL( KUidCalenMonthView );
-            }
-            break;
-        case ECalenWeekView:
-            {
-            RequestActivationL( KUidCalenWeekView );
-            }
-            break;
-        case ECalenDayView:
-            {
-            // reset the flag iForwardedToDayView as view switching is active
-            if(iPreviousToDayView.iViewUid!=KNullUid)
-                {
-                iPreviousToDayView.iViewUid = KNullUid;
-                }
-            RequestActivationL( KUidCalenDayView, KCalenDummyUid, KNullDesC8() );
-            }
-            break;
-        case ECalenTodoView:
-            {
-            if (iAvoidRepopulation)
-                {
-                iAvoidRepopulation = EFalse;
-                }
-            RequestActivationL( KUidCalenTodoView );
-            }
-            break;
-        case ECalenEventView:
-            {
-            // Fix for EJCU-7LKC2C :: to prevent the display of blank view, 
-            // just set the iAvoidRepopulation to EFalse, 
-            // so that view is populated properly
-
-            if (iAvoidRepopulation)
-                {
-                iAvoidRepopulation = EFalse;
-                }
-
-        	RequestActivationL( KUidCalenEventView );
-            }
-        	break;
-        case ECalenForwardsToDayView:
-            {
-            // set the view iPreviousToDayView to handle the day view's cba
-            // when returning from event view.
-            // From month/week view -> day view -> event view -> day view
-            iPreviousToDayView = iCurrentViewId;
-            RequestActivationL( KUidCalenDayView, KUidCalenShowBackCba );
-            }
-            break;
-        case ECalenNextView:
-            {
-            CycleNextViewL();
-            }
-            break;
-        case ECalenPrevView:
-            {
-            CyclePrevViewL();
-            }
-            break;
-        case ECalenSwitchView:
-            {
-            ShowSwitchViewQueryL();
-            }
-            break;
-        case ECalenStartActiveStep:
-            {
-            StartActiveStepL();
-            }
-            break;
-        case ECalenFasterAppExit:
-        	{
-        	HandleFasterAppExitCommandL();
-        	}
-            break;
-        case ECalenGotoToday:
-            {
-            // get today's date
-            TTime today = CalenDateUtils::Today();
-
-            // get the context    
-            MCalenContext& context = iController.Services().Context();
-            TCalTime todayCalTime;
-            todayCalTime.SetTimeLocalL( today );
-            // set today's date to the context
-            context.SetFocusDateAndTimeL( todayCalTime, iCurrentViewId  );
-            
-            SetRepopulation(EFalse);
-            // reactivate the current view
-            RequestActivationL(iCurrentViewId.iViewUid);
-
-			// dim "today" toolbar item since focus is on today            
-            iToolbar->Toolbar().SetItemDimmed( ECalenGotoToday, ETrue, ETrue);
-            }
-            break;
-
-        default:
-            break;
-        }
-
-    TRACE_EXIT_POINT;
-    return commandUsed;
-    }
+void CalenViewManager::loadDayView()
+{
+	bool loadSuccess = false;
+	// Create the day view docloader object.
+	mDayViewDocLoader = new CalenDocLoader(mController);
+	
+	// Load default section
+	mDayViewDocLoader->load(CALEN_DAYVIEW_XML_FILE, &loadSuccess);
+	if (!loadSuccess) {
+		qFatal("calenviewmanager.cpp : Unable to load XML");
+	}
+	
+	// Get the calenday view from the loader
+	mCalenDayView = static_cast<CalenDayView *> (mDayViewDocLoader->findWidget(CALEN_DAYVIEW));
+	if (!mCalenDayView) {
+		qFatal("calenviewmanager.cpp : Unable to find day view");
+	}
+	
+	// Setup the day view
+	mCalenDayView->setupView(mDayViewDocLoader);
+	
+	// The following code is done to provide swipe support
+	// in day view. Idea is to create two views and keep
+	// switiching between these two using view switch effects
+	// to provide an illusion of flow to the user
+	loadAlternateDayView();
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::CalenCommandHandlerExtensionL
-// Dummy implementation.
+// CalenViewManager::constructOtherViews
+// Constructs the other views apart frm firstview and adds them to main window
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-TAny* CCalenViewManager::CalenCommandHandlerExtensionL( TUid /*aExtensionUid*/ )
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    return NULL;
-    }
+void CalenViewManager::constructOtherViews()
+{
+	// Load all other views except mFirstView
+	
+	// NOTE: Right now, since Calendar has only two views, month view 
+	// and day view, when client launches day view, then there is no need
+	// to construct the month view as per UI REQ., but tomorrow if new views
+	// come after day view, then we need to construct those views if they are
+	// native views. Right now, there is a event viewer but its not a native
+	// view. Hence, if day view is launched, dont construct month view
+	if (mFirstView == ECalenDayView) {
+		// Construct other views as mentioned above
+		return;
+	} else {
+		// Load all other views 
+		loadDayView();
+	}
+
+	// Setup the settings view
+	mSettingsView = new CalenSettingsView(mController.Services());
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::CurrentView
-// Returns the current view's view uid.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-TUid CCalenViewManager::CurrentView() const
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    return iCurrentViewId.iViewUid;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::HandleViewActivation
-// From MCoeViewActivationObserver
-// Called just before a view in this application is activated by the view server
+// CalenViewManager::getFirstView
+// Returns the first view
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::HandleViewActivation( const TVwsViewId& aNewlyActivatedViewId,
-                                             const TVwsViewId& aViewIdToBeDeactivated )
-    {
-    TRACE_ENTRY_POINT;
-
-    TBool externalViewSwitch( EFalse );
-    // See if this is an internal or external view switch request
-    if( aViewIdToBeDeactivated.iAppUid != KUidCalendar )
-        {
-        externalViewSwitch = ETrue;
-        }
-
-    // If this is an internal view switch (view cycling from the '*' key)
-    // then ActivateLocalViewL will handle any necessary state changes.
-    // If this is an external view switch then we need to find out if Calendar was already
-    // running or if it is being launched to a specific view by another application
-    // calling ActivateViewL with Calendars UID and the UID of one of the standard views.
-    // In this case we need to set the current view in the state or we would get the
-    // default view (from the settings) activated instead of the requested view.
-    if( externalViewSwitch )
-        {
-        // Check that the view being activated belongs to Calendar.  Although I don't see
-        // how this would be called if this was false anyway.
-        if( aNewlyActivatedViewId.iAppUid == KUidCalendar )
-            {
-            // Make sure that any when any open dialogs are closed Calendar will not close as well.
-            // This could be true if Calendar was originally launched directly to the editor, and
-            // so should be closed when the dialog is closed.  If an external view switch request
-            // arrives, we want the dialog to close but Calendar to remain open.
-            // Otherwise we get a CONE 44 panic.
-            //iIsExitOnDlgClose = EFalse;
-
-            iCurrentViewId = aNewlyActivatedViewId;
-            }
-        }
-
-    iViewsActivated = ETrue;
-    
-    // check for iAvoidRepopulation to avoid repopulation whenever
-    // 1) Application comes to foreground
-    // 2) Applictaion is opened after fake exit
-    if(!iAvoidRepopulation)
-        {
-        TRAPD(error,StartActiveStepL());
-        if(error!=KErrNone)
-            {
-            // do avoid warning
-            }
-        }
-    
-    // Reset the flag iAvoidRepopulation
-    if (iAvoidRepopulation)
-        {
-        iAvoidRepopulation = EFalse;
-        }
-    TRACE_EXIT_POINT;
-    }
+int CalenViewManager::getFirstView()
+{
+	return mFirstView;
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::RemoveDeActivatedView
-// Asyncronous callback function to remove the current view after it has been 
-// disabled.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-TInt CCalenViewManager::RemoveDeActivatedView( TAny* aObject )
-    {
-    TRACE_ENTRY_POINT;
-    
-    CCalenViewManager* thisPtr( static_cast<CCalenViewManager*>( aObject ) );
-    TRAP_IGNORE( thisPtr->RemoveDeActivatedViewL() );
-    
-    TRACE_EXIT_POINT;
-    return 0;
-    }
- 
-// ----------------------------------------------------------------------------
-// CCalenViewManager::RemoveDeActivatedViewL.
-// (Leaving version)
-// Asyncronous callback function to remove the current view after it has been 
-// disabled.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//   
-void CCalenViewManager::RemoveDeActivatedViewL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    TUid removedViewUid = iRemovedActiveView->ViewUid();
-    TUid removedPluginUid = iRemovedActiveView->PluginUid();
-    
-    // The view isn't the current view, so we
-    // can remove it directly from the view server
-    iAppUi.RemoveView( removedViewUid );
-
-    // Delete the view info
-    delete iRemovedActiveView;;
-    iRemovedActiveView = NULL;
-    
-    // Unload the plugin.
-    RArray<TUid> pluginArray;
-    CleanupClosePushL( pluginArray );
-    
-    pluginArray.AppendL( removedPluginUid );
-    iCustomisationManager->UnloadPluginsL( pluginArray );
-    CleanupStack::PopAndDestroy(); // pluginArray
-    
-    if(!iController.IsFasterAppFlagEnabled())
-        {
-        // Refresh the current view by simulating a settings close
-        iController.BroadcastNotification( ECalenNotifySettingsClosed );
-        }
-    else
-        {
-        iController.BroadcastNotification( ECalenNotifyCheckPluginUnloading );
-        }
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::CycleNextViewL
-// Requests activation for the next view in the view cycle
-// (other items were commented in a header).
+// CalenViewManager::showNextDay
+// other items were commented in a header
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::CycleNextViewL()
-    {
-    TRACE_ENTRY_POINT;
-
-    // Increment until we get to a valid view.
-    do{
-        ++iViewCycleIndex;
-
-        if( iViewCycleIndex >= iViewInfoArray.Count() )
-            {
-            iViewCycleIndex = 0;
-            }
-        }
-    while( iViewInfoArray[iViewCycleIndex]->CyclePosition() == CCalenView::ENoCyclePosition );
-
-    RequestActivationL( iViewInfoArray[iViewCycleIndex]->ViewUid() );
-
-    TRACE_EXIT_POINT;
+void CalenViewManager::showNextDay()
+{
+    // Set the context for the next day
+    QDateTime currentDay = mController.Services().Context().focusDateAndTimeL();
+    currentDay = currentDay.addDays(1);
+    mController.Services().Context().setFocusDateL(currentDay, ECalenDayView);
+    mCurrentViewId = ECalenDayView;
+    // Check which is the currently activated view
+    if (mController.MainWindow().currentView() == mCalenDayView) {
+        HbEffect::add(mCalenDayView,
+                      ":/fxml/view_hide",
+                      "hide");
+        HbEffect::add(mCalenDayViewAlt,
+                      ":/fxml/view_show",
+                      "show");
+        // Set the other day view as the current view
+        // and animate to provide illusion of swipe
+        mController.MainWindow().setCurrentView(mCalenDayViewAlt, true, Hb::ViewSwitchUseNormalAnim);
+        mCalenDayViewAlt->doPopulation();
+    } else {
+        HbEffect::add(mCalenDayViewAlt,
+                      ":/fxml/view_hide",
+                      "hide");
+        HbEffect::add(mCalenDayView,
+                      ":/fxml/view_show",
+                      "show");
+        mController.MainWindow().setCurrentView(mCalenDayView, true, Hb::ViewSwitchUseNormalAnim);
+        mCalenDayView->doPopulation();
     }
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::CyclePrevViewL
-// Requests activation for the previous view in the view cycle
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::CyclePrevViewL()
-    {
-    TRACE_ENTRY_POINT;
-
-    // Decrement until we get to a valid view.
-    do{
-        --iViewCycleIndex;
-
-        if( iViewCycleIndex < 0 )
-            {
-            iViewCycleIndex = iViewInfoArray.Count()-1;
-            }
-        }
-    while ( iViewInfoArray[iViewCycleIndex]->CyclePosition() == CCalenView::ENoCyclePosition );
-
-    RequestActivationL( iViewInfoArray[iViewCycleIndex]->ViewUid() );
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::RequestActivationL
-// Request activation of a specific view.
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::RequestActivationL( const TVwsViewId& aViewId )
-    {
-    TRACE_ENTRY_POINT;
-    
-    RequestActivationL( aViewId.iViewUid );
-
-    TRACE_EXIT_POINT;
-    }
-
-// ----------------------------------------------------------------------------
-// CCalenViewManager::RequestActivationL
-// Call this to try to activate a view
-// (other items were commented in a header).
+// CalenViewManager::showPrevDay
+// other items were commented in a header
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::RequestActivationL( const TUid& aViewUid,
-                                            const TUid& aMessageId,
-                                            const TDesC8& aMessage )
-    {
-    TRACE_ENTRY_POINT;
-
-    // Cancel population of current view, if it's ongoing.
-    iPopulator->InterruptPopulationL();
-    // We start population of the newly activated view in HandleViewActivationL.
-    
-    // cache the previousviewid as we are getting aViewUid as reference.
-    TUid cachePreviousViewId = iCurrentViewId.iViewUid;
-    
-    iCurrentViewId.iViewUid = aViewUid;
-    // Update the view cycle index as iViewInfoArray would have changed
-	iViewCycleIndex = iViewInfoArray.Find( iCurrentViewId.iViewUid, 
-                                            CCalenViewInfo::ViewInfoIdentifier );
-    
-	if( iController.IsFasterAppFlagEnabled() )
-		{
-	    // Leave the application in background
-	    iAppUi.HideInBackground();
-	    // Disable bring-to-foreground on view activation
-		iAppUi.SetCustomControl(1); 
-		
-		// activate the view
-		iAppUi.ActivateLocalViewL( aViewUid, KCalenHideInBackGround, KNullDesC8() );
-	
-		// Enable bring-to-foreground on view activation.
-		iAppUi.SetCustomControl(0);  
-		}
-	else
-		{
-		iAppUi.ActivateLocalViewL( aViewUid, aMessageId, aMessage );
-		}
-	
-	// set the previous view id
-	iPreviousViewId.iViewUid = cachePreviousViewId;
-	
-	TRACE_EXIT_POINT;
+void CalenViewManager::showPrevDay()
+{
+    QDateTime currentDay = mController.Services().Context().focusDateAndTimeL();
+    currentDay = currentDay.addDays(-1);
+    mController.Services().Context().setFocusDateL(currentDay, ECalenDayView);
+    mCurrentViewId = ECalenDayView;
+    if (mController.MainWindow().currentView() == mCalenDayView) {
+        HbEffect::add(mCalenDayView,
+                      ":/fxml/view_show",
+                      "hide");
+        HbEffect::add(mCalenDayViewAlt,
+                      ":/fxml/view_hide",
+                      "show");
+        mController.MainWindow().setCurrentView(mCalenDayViewAlt, true, Hb::ViewSwitchUseBackAnim);
+        mCalenDayViewAlt->doPopulation();
+    } else {
+        HbEffect::add(mCalenDayViewAlt,
+                      ":/fxml/view_show",
+                      "hide");
+        HbEffect::add(mCalenDayView,
+                      ":/fxml/view_hide",
+                      "show");
+        mController.MainWindow().setCurrentView(mCalenDayView, true, Hb::ViewSwitchUseBackAnim);
+        mCalenDayView->doPopulation();
     }
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::StartActiveStepL
-// Starts population of the current view.
+// CalenViewManager::removeDayViews
+// other items were commented in a header
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::StartActiveStepL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    // check for current viewid
-    // populate the view only if iCurrentViewId is set
-    if(iCurrentViewId.iViewUid != KNullUid)
-        {
-        iPopulator->InterruptPopulationL();
-        iPopulator->BeginPopulationL(reinterpret_cast<CCalenView*>(iAppUi.View(CurrentView())));
-        }
-
-    TRACE_EXIT_POINT;
-    }
+void CalenViewManager::removeDayViews()
+{
+    mController.MainWindow().removeView(mCalenDayView);
+    mController.MainWindow().removeView(mCalenDayViewAlt);
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::ShowSwitchViewQueryL
-// Prompts the user to chose a view to switch to. If cancelled, returns
-// KErrCancel, otherwise one of ECalen*view.
+// CalenViewManager::~ActivateDefaultViewL
+//  Activates the default view, as retrieved from settings.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::ShowSwitchViewQueryL()
-    {
-    TRACE_ENTRY_POINT;
-
-    // Create list of view names and uids
-    CDesCArrayFlat* viewNames = new( ELeave ) CDesCArrayFlat( KArrayGranularity );
-    CleanupStack::PushL( viewNames );
+void CalenViewManager::ActivateDefaultViewL(int defaultView)
+{
+	TRACE_ENTRY_POINT;
+	mCurrentViewId = defaultView;
+	if (ECalenMonthView == defaultView) {
+		mCalenMonthView->doPopulation();
+	} else if (ECalenDayView == defaultView) {
+		mCalenDayView->doPopulation();
+	}
+	TRACE_EXIT_POINT;
+}
 
-    RArray<TUid> viewUids;
-    CleanupClosePushL( viewUids );
-											
-	const RArray<TUid>& activePlugins = CustomisationManager().ActivePlugins();											
-											
-    for( TInt index( 0 ); index < iViewInfoArray.Count(); ++index )
-        {
-        CCalenViewInfo& viewInfo = *( iViewInfoArray[index] );
-        if( index != iViewCycleIndex )
-            {
-            TUid pluginUid = viewInfo.PluginUid();
-            TInt position = activePlugins.Find( pluginUid );
-	        	
-            // If the view is from plugin or native view with cycle position,
-            // then add it to the switch view list
-            if(( position != KErrNotFound ) ||
-                 ( viewInfo.CyclePosition() != CCalenView::ENoCyclePosition ))
-                {
-                // Fetch the view name
-                TUid viewUid = viewInfo.ViewUid();
-                const TDesC& viewName = viewInfo.MenuName();
-                viewNames->AppendL( viewName );
-                viewUids.AppendL(viewUid );      
-                }
-            }
-        }
-        
-    // Show list query.
-    TInt choice = KErrCancel; //KErrNotFound;
-    CAknListQueryDialog* dlg = new( ELeave ) CAknListQueryDialog( &choice );
-    dlg->PrepareLC( R_CALENDAR_SWITCH_VIEW_QUERY ); // pushes dlg to CS
-    dlg->SetItemTextArray( viewNames );
-    dlg->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
-    // Set title
-    CAknPopupHeadingPane* heading = dlg->Heading();
-    HBufC* title = NULL;
-    title = CCoeEnv::Static()->AllocReadResourceLC( R_CALENDAR_SWITCH_VIEW_QUERY_TITLE );
-    heading->SetTextL( *title );
-    CleanupStack::PopAndDestroy( title );
-
-    if( dlg->RunLD() )
-        {
-        // user made a choice
-        TUid viewUid = viewUids[choice];
-        RequestActivationL( viewUid );
-        }
-
-    CleanupStack::PopAndDestroy(); // viewUids
-    CleanupStack::PopAndDestroy( viewNames );
-
-    TRACE_EXIT_POINT;
-    }
-    
 // ----------------------------------------------------------------------------
-// CCalenViewManager::HandleNotification
-// Calls back when notifications that it has been registered for are broadcast
+// Refresh current view.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
-//
-void CCalenViewManager::HandleNotification(const TCalenNotification aNotification )
-    {
-    TRACE_ENTRY_POINT;
-    
-    PIM_TRAPD_HANDLE( HandleNotificationL( aNotification ) );
-  
-    TRACE_EXIT_POINT;
-    }
-    
+void CalenViewManager::refreshCurrentViewL()
+{
+	TRACE_ENTRY_POINT;
+	activateCurrentView();
+	TRACE_EXIT_POINT;
+}
+
 // ----------------------------------------------------------------------------
-// CCalenViewManager::HandleNotificationL
-// Called from HandleNotification() when notifications that it has been
-//  registered for are broadcast
+// Activate current view.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
-//
-void CCalenViewManager::HandleNotificationL( TCalenNotification aNotification )
-    {
-    TRACE_ENTRY_POINT;
-    
-    switch( aNotification )
-        {
-        case ECalenNotifyPluginEnabledDisabled:
-            {
-            UpdatePluginListL();
-            }
-            break;
-        case ECalenNotifySettingsClosed:
-            {
-            // Nothing has changed, refresh statuspane only.
-            iAppUi.StatusPane()->DrawNow();
-            }
-            break;
-        case ECalenNotifySettingsChanged:
-            {
-            HandleSettingsChangeNotificationL();
-            }
-            break;       
-        case ECalenNotifyEntryDeleted:
-        case ECalenNotifyInstanceDeleted:    
-			{
-			HandleEntryDeleteNotificationL();
-			}
+void CalenViewManager::activateCurrentView()
+{
+	TRACE_ENTRY_POINT;
+	switch (mCurrentViewId) {
+		case ECalenMonthView:
+		    mCalenMonthView->doPopulation();
 			break;
-        case ECalenNotifySystemLocaleChanged:	
-        case ECalenNotifyEntrySaved:
-        case ECalenNotifyMultipleEntriesDeleted:
-        case ECalenNotifyExternalDatabaseChanged:
-        case ECalenNotifyCancelDelete:
-        case ECalenNotifyCalendarFieldChanged:
-        case ECalenNotifyMarkedEntryCompleted:
-        case ECalenNotifyCalendarInfoCreated:
-        case ECalenNotifyCalendarInfoUpdated:
-            {
-            StartActiveStepL();
-            }
-            break;
-        case ECalenNotifyCalendarFileDeleted:
-            {
-            if(iCurrentViewId.iViewUid==KUidCalenEventView)
-                {
-                //If the entry which is being viewed belongs to a calendar 
-                //that is deleted we check for collection ids of entry and 
-                //calendar session if they are same return to previous view
-                TPtrC calFileName = iGlobalData->Context().GetCalendarFileNameL();
-                TPtrC calFileNameForColId = 
-                        iGlobalData->GetCalFileNameForCollectionId(iGlobalData->Context().InstanceId().iColId);
-                if(!calFileNameForColId.CompareF(calFileName))
-                    {
-                    ActivateDefaultViewL(iPreviousToDayView.iViewUid);
-                    }
-                }
-            else
-                {
-                // refresh the current view
-                StartActiveStepL();
-                }
-            }
-            break;         
-        case ECalenNotifyEntryClosed:
-            {
-            HandleEntryClosedNotificationL();
-            }
-            break;
-        case ECalenNotifySystemTimeChanged:
-            {
-            HandleSystemTimeChangeNotificationL();
-            }
-            break;
-        case ECalenNotifyAppForegrounded:
-        	{
-        	// check for system time change whenever fake exit is done
-        	// or application comes to foreground
-            if(!iStartupComplete)
-                {
-                iController.CheckSystemTimeAtStartUpL();
-                }
-        	
-            if( iController.IsFasterAppFlagEnabled() )
-			    {
-			    iAppUi.HideApplicationFromFSW(EFalse);
-			    iController.SetFasterAppFlag( EFalse );
-			    
-			    ReloadAllPluginsL();
-			    }
-        	}
-        	break;
-        case ECalenNotifyDayViewClosed:
-            {
-            if(iPreviousToDayView.iViewUid!= KNullUid)
-                {
-                // activate the previous view from where day view is launched
-                // From month/week view -> day view
-                RequestActivationL(iPreviousToDayView.iViewUid);
-                }
-            }
-            break;
-        case ECalenNotifyAppBackgrounded:
-            {
-            // set the flag iAvoidRepopulation to prevent repopulation
-            // whenever application is brought to foreground
-            iAvoidRepopulation = ETrue;
-            
-            if( iController.IsFasterAppFlagEnabled() )
-                {
-                iController.RemoveDeadCalendarsL();
-                }
-            }
-            break;
-        case ECalenNotifyViewPopulationComplete:
-            {
-            if(iStartupComplete)
-                {
-                iController.CheckSystemTimeAtStartUpL();
-                iStartupComplete = EFalse;
-                }
-            break;
-            }
-        case ECalenNotifyAttachmentViewerClosed:
-        		{
-            if( iCurrentViewId.iViewUid==KUidCalenEventView)
-                {
-                StartActiveStepL();
-                }
-            }            
-        case ECalenNotifyAttachmentRemoved:
-        case ECalenNotifyAttachmentAdded:    
-            {
-            if( iCurrentViewId.iViewUid==KUidCalenEventView && 
-                !iAvoidRepopulation    )
-                {
-                StartActiveStepL();
-                }
-            }
-        case ECalenNotifyDeleteFailed:
-        // Do nothing on deletion failed
-        default:
-            break; 
-        }
+		case ECalenDayView:
+		    if (mController.MainWindow().currentView() == mCalenDayView) {
+                mCalenDayView->doPopulation();
+                mController.MainWindow().setCurrentView(mCalenDayView);
+		    } else {
+		        mCalenDayViewAlt->doPopulation();
+		        mController.MainWindow().setCurrentView(mCalenDayViewAlt);
+		    }
+			break;
+		case ECalenLandscapeDayView:
+		    // mCalenLandscapeDayView->doPopulation();;
+			break;
+	}
+	TRACE_EXIT_POINT;
+}
 
-    TRACE_EXIT_POINT;
-    }
-    
 // ----------------------------------------------------------------------------
-// CCalenViewManager::UpdatePluginListL
-// Discovers if a plugin has been enabled or disabled 
-// (other items were commented in a header).
-// ----------------------------------------------------------------------------
-//
-void CCalenViewManager::UpdatePluginListL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    const RArray<TUid>& activePlugins = CustomisationManager().ActivePlugins();
-    
-    // Check for any new plugins
-    TInt activeCount = activePlugins.Count();
-    for( TInt index( 0 ); index < activeCount; ++index )
-        {
-        // For every active plugin, check to see if it is in the known list,
-        // if it isn't construct any custom views.
-        TUid pluginUid = activePlugins[index];
-        TInt position = iKnownPlugins.Find( pluginUid );
-        if( position == KErrNotFound )
-            {
-            ConstructCustomViewL( pluginUid );
-            }
-        }
-
-    RArray<TUid> disabledPlugins;
-    CleanupClosePushL( disabledPlugins );
-        
-    // Check for any disabled plugins
-    TInt knownCount = iKnownPlugins.Count();
-    for( TInt index( knownCount - 1 ); index >= 0; --index )
-        {
-        // For every known plugin, check to see if it is in the active list,
-        // if it isn't add to the disable plugin list, and remove from the
-        // known list.
-        TUid pluginUid = iKnownPlugins[index];
-        TInt position = activePlugins.Find( pluginUid );
-        if ( position == KErrNotFound )
-            {
-            disabledPlugins.AppendL( pluginUid );
-            iKnownPlugins.Remove( index );
-            }
-        }
-    
-    TInt disabledPluginCount = disabledPlugins.Count();
-    if( disabledPluginCount != 0 )
-        {
-        RemoveDisabledPluginsViewsL( disabledPlugins );
-        // Re sort the view info array
-        iViewInfoArray.Sort(  CCalenViewInfo::CyclePositionComparison );
-        }
-    else
-        {      
-        // Update the view cycle index as iViewInfoArray would have changed
-        iViewCycleIndex = iViewInfoArray.Find( iCurrentViewId.iViewUid, CCalenViewInfo::ViewInfoIdentifier );       
-        }
-    UpdateToolbarNextViewIconL(iCurrentViewId.iViewUid);
-    
-    CleanupStack::PopAndDestroy(); // disabledPlugins
-    TRACE_EXIT_POINT;
-    } 
-    
-// ----------------------------------------------------------------------------
-// CCalenViewManager::RemoveDisabledPluginsViewsL
-// Removes any custom views provided by disabled plugins
-// from the view server.
+// CalenViewManager::launchEventView
+// Launch event view.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-void CCalenViewManager::RemoveDisabledPluginsViewsL( RArray<TUid>& aDisabledPlugins )
-    {
-    TRACE_ENTRY_POINT;
+void CalenViewManager::launchEventView()
+{
+	MCalenContext& context = mController.Services().Context();
+	AgendaEntry viewEntry= mController.Services().agendaInterface()->fetchById(
+			context.instanceId().mEntryLocalUid );
+	if (viewEntry.isRepeating() 
+			&& viewEntry.type() != AgendaEntry::TypeTodo) {
+		QDateTime startDateTime = context.focusDateAndTimeL();
+		viewEntry.setStartAndEndTime(startDateTime, 
+		                     startDateTime.addSecs(viewEntry.durationInSecs()));
+	}
+	mCalenEventViewer = new AgendaEventViewer(
+			mController.Services().agendaInterface(), this);
+	connect(mCalenEventViewer, SIGNAL(viewingCompleted(bool)),
+	        this, SLOT(handleViewingCompleted(bool)));
+	connect(mCalenEventViewer, SIGNAL(editingStarted()),
+	        this, SLOT(handleEditingStarted()));
+	connect(mCalenEventViewer, SIGNAL(editingCompleted()),
+	        this, SLOT(handleEditingCompleted()));
+	connect(mCalenEventViewer, SIGNAL(deletingStarted()),
+		        this, SLOT(handleDeletingStarted()));
+	connect(mCalenEventViewer, SIGNAL(deletingCompleted()),
+			        this, SLOT(handleDeletingCompleted()));
 
-    // Find what views are provided by the disabled plugins
-    TInt disabledPluginCount = aDisabledPlugins.Count();
-    RArray<TUid> removedViews;
-    CleanupClosePushL( removedViews );
-    
-    TUid activeViewUid = CurrentView();
-    
-    for( TInt index( disabledPluginCount - 1 ); index >= 0; --index )
-        {
-        TUid pluginUid = aDisabledPlugins[index];
-        
-        // Does this plugin offer any views
-        TInt position = iViewInfoArray.Find( pluginUid, 
-                                             CCalenViewInfo::ViewPluginIdentifier );
-        TBool alreadySet = EFalse;
-        while( position != KErrNotFound )
-            {
-            CCalenViewInfo* view = iViewInfoArray[position];
-            TUid viewUid = view->ViewUid();
-            
-            // Remove from the view cycle list
-            iViewInfoArray.Remove( position );
-            
-            RArray<TInt> hiddenViews;
-            iCustomisationManager->GetHiddenViewIdL(pluginUid, hiddenViews);
-            
-            if( viewUid == activeViewUid )
-                {
-                // Removing the active view is done in three parts
-                // 1) It is removed from the viewInfo list
-                // 2) When settings is closed, the view is switched
-                // to the next view in the view cycle list.
-                // 3) When the view is deactivated it can be deleted.
-                
-                // Store the information about the current view.
-                iRemovedActiveView = view;
-                
-                // Update the view cycle index so that hidden view is launched while cycling next view
-                if(hiddenViews.Count())
-                    {
-                    // Find the index of teh hidden view
-                    TInt viewInfoIndex = iViewInfoArray.Find(TUid::Uid(hiddenViews[0]), CCalenViewInfo::ViewInfoIdentifier);
-                    iViewCycleIndex = viewInfoIndex - 1;  // Decrementing it as CycleNextView() funciton will increment it   
-                    }
-                else if(!alreadySet)
-                    {
-                    TInt nextViewCycleIndex = iViewCycleIndex - 1; // To update the view cycle index in plugin disable case
-            
-                    // Update the view cycle index as iViewInfoArray would have changed
-                    iViewCycleIndex = iViewInfoArray.Find( iCurrentViewId.iViewUid, CCalenViewInfo::ViewInfoIdentifier ); 
-                    
-                    // If the current active view has been removed,
-                    if(iViewCycleIndex == -1)
-                        {
-                            iViewCycleIndex = nextViewCycleIndex;
-                        } 
-                    alreadySet = ETrue;
-                    }
-                
-                hiddenViews.Reset();
-                // Remove the plugin from the disabled plugin list
-                // to stop the plugin being deleted.
-                aDisabledPlugins.Remove( index );
-                }
-            else
-                {
-                // The view isn't the current view, so we
-                // can remove it directly from the view server
-                iAppUi.RemoveView( viewUid );
 
-                // Delete the view info
-                delete view;
-                if(!alreadySet)
-                    {
-	                TInt nextViewCycleIndex = iViewCycleIndex - 1; // To update the view cycle index in plugin disable case
-                        
-	                // Update the view cycle index as iViewInfoArray would have changed
-	                iViewCycleIndex = iViewInfoArray.Find( iCurrentViewId.iViewUid, CCalenViewInfo::ViewInfoIdentifier ); 
-                
-	                // If the current active view has been removed,
-	                if(iViewCycleIndex == -1)
-	                    {
-	                        iViewCycleIndex = nextViewCycleIndex;
-	                    }
-	                alreadySet = ETrue;
-                    }
-               
-                }
-                
-            position = iViewInfoArray.Find( pluginUid, 
-                                        CCalenViewInfo::ViewPluginIdentifier );
-            }
-        }
-        
-    // Unload the disabled plugins
-    iCustomisationManager->UnloadPluginsL( aDisabledPlugins );
-        
-    CleanupStack::PopAndDestroy(); // removedViews
-    
-    TRACE_EXIT_POINT;
-    }
-    
-// ----------------------------------------------------------------------------
-// CCalenViewManager::ToolbarOrNull
-// Provides access to the calendar toolbar if one is available
-// ----------------------------------------------------------------------------
-MCalenToolbar* CCalenViewManager::ToolbarOrNull()
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    return iToolbar;
-    }        
-    
-// ----------------------------------------------------------------------------
-// CCalenViewManager::ViewsActivated
-// Returns if the first view activation on start-up has taken place
-// ----------------------------------------------------------------------------
-TBool CCalenViewManager::ViewsActivated() const
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    return iViewsActivated;
-    }
+	// Launch agenda event viewer
+	mCalenEventViewer->view(viewEntry, AgendaEventViewer::ActionEditDelete);
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::UpdateToolbarNextViewIconL
-// Updates the nextview icon on the toolbar when default view is not month view
+// CalenViewManager::loadAlternateDayView
+// other items were commented in a header
 // ----------------------------------------------------------------------------
-void CCalenViewManager::UpdateToolbarNextViewIconL(TUid aViewUid)
-	{
-	// Set the view cycle index based on the newly activated view,
-    // if the view is in the cycle array.
-    TInt index = iViewInfoArray.Find( aViewUid, CCalenViewInfo::ViewInfoIdentifier );
-    if( index != KErrNotFound )
-        {
-        iViewCycleIndex = index;
-        if( iToolbar )
-            {
-            TInt nextVwIndex = iViewCycleIndex;
-            do{
-               nextVwIndex = ( nextVwIndex + 1 )%(iViewInfoArray.Count());
-              }
-            while( iViewInfoArray[nextVwIndex]->CyclePosition() == CCalenView::ENoCyclePosition );
-            
-            CCalenView* nextview = static_cast<CCalenView*>( 
-                                        iAppUi.View( iViewInfoArray[nextVwIndex]->ViewUid() ) );
-            iToolbar->SetNextViewIcon( nextview->ViewIconL() );
-            }
-        }
-	}
+//
+void CalenViewManager::loadAlternateDayView()
+{
+    bool loadSuccess = false;
+    // Create the day view docloader object.
+    mDayViewAltDocLoader = new CalenDocLoader(mController);
+
+    // Load default section
+    mDayViewAltDocLoader->load(CALEN_DAYVIEW_XML_FILE, &loadSuccess);
+    if (!loadSuccess) {
+        qFatal("calenviewmanager.cpp : Unable to load XML");
+    }
+
+    // Get the calenday view from the loader
+    mCalenDayViewAlt = static_cast<CalenDayView *> (mDayViewAltDocLoader->findWidget(CALEN_DAYVIEW));
+    if (!mCalenDayViewAlt) {
+        qFatal("calenviewmanager.cpp : Unable to find alternate day view");
+    }
+
+    // Setup the day view
+    mCalenDayViewAlt->setupView(mDayViewAltDocLoader);
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::HandleFasterAppExitCommandL
-// Handles ECalenFasterAppExit command
-// ----------------------------------------------------------------------------
-void CCalenViewManager::HandleFasterAppExitCommandL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    if(iToolbar)
-        {
-        iToolbar->SetToolbarExtensionFocus(EFalse);
-        }
-    
-    // For Handling : When the default view is changed keeping that view open, 
-    // from day view changing the default view from month view to day view, 
-    // we need to reset the previous view id.
-    if(iPreviousToDayView.iViewUid!=KNullUid)
-        {
-        iPreviousToDayView.iViewUid = KNullUid;
-        }
-    
-    // For handling specific case::Calendar exited from FSW 
-    // iAvoidRepopulation is set when app backgrounded.
-    // Reset the flag for activating the view in background
-    if(iAvoidRepopulation)
-        {
-        iAvoidRepopulation = EFalse;
-        }
-    
-    // In case of fasterapp exit, first activate the dummy view before deleting the plugin views
-    // Get the default view before we remove plugins
-    iPreviousViewId.iViewUid = KNullUid;
-    
-    iController.SetExitOnDialogFlag( EFalse ); // for making iisexitondialogclose EFalse.
-
-    TUid defView = iSetting->DefaultView();
-   
-    // unload all plugins
-    iCustomisationManager->DisableAllPluginsL();
-    ActivateViewOnFakeExitL(defView);
-    // Though the current view is active view, there is no need to issue a callback as we are exiting the whole application.
-    if( iRemovedActiveView )
-        {
-        
-        if( !iViewRemovalCallback )
-            {
-            TCallBack callback( RemoveDeActivatedView, this );
-            iViewRemovalCallback = new( ELeave ) CAsyncCallBack( callback,
-                                                    CActive::EPriorityStandard );
-            }
-        iViewRemovalCallback->CallBack();
-        }
-
-    TRACE_EXIT_POINT;
-    }
-// ----------------------------------------------------------------------------
-// CCalenViewManager::HandleSettingsChangeNotificationL
-// Handles ECalenNotifySettingsChanged notification
+// CalenViewManager::HandleCommandL
+// Handles view manager commands.
+// @return ETrue if command is handled, EFalse otherwise
 // ----------------------------------------------------------------------------
-void CCalenViewManager::HandleSettingsChangeNotificationL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    if( iController.IsFasterAppFlagEnabled() )
-        {
-        TUid newViewUid = iSetting->DefaultView();
-        if(IsNativeView(newViewUid))
-            {
-            TUid oldViewUid = CurrentView();
-            if( newViewUid.iUid != oldViewUid.iUid )
-                {
-                RequestActivationL( newViewUid );
-                }
-            }
-        
-        // If the plugins are activated using general settings.
-        // unload all plugins.Only load the plugins when application
-        // comes to foreground
-        const RArray<TUid>& plugins = CustomisationManager().ActivePlugins();
-        if(plugins.Count())
-            {
-            // unload all plugins
-            iCustomisationManager->DisableAllPluginsL();
-            }
-        }
-
-    if( iRemovedActiveView )
-        {
-        // If the active view has been disabled, the next view in 
-        // the view cycle list is activated and the current view
-        // is removed asyncronously.
-        CycleNextViewL();
-
-        if( !iViewRemovalCallback )
-            {
-            TCallBack callback( RemoveDeActivatedView, this );
-            iViewRemovalCallback = new( ELeave ) CAsyncCallBack( callback,
-                                                    CActive::EPriorityStandard );
-            }
-    
-        iViewRemovalCallback->CallBack();
-        }
-    else if(iCustomisationManager->HiddenView(iCurrentViewId.iViewUid))
-         {
-         // Get the uid of the plugin view that is hiding the current view
-         TUid viewUid = iCustomisationManager->GetReplacePluginViewIdL(iCurrentViewId.iViewUid);
-             
-         // update the view cycle index before activating the plugin view
-         iViewCycleIndex = iViewInfoArray.Find( viewUid, 
-                                    CCalenViewInfo::ViewInfoIdentifier );
-         RequestActivationL(viewUid);
-         }
-   else
-        {
-        StartActiveStepL();
-        }
-    
-    TRACE_EXIT_POINT;
-    }
+//
+TBool CalenViewManager::HandleCommandL(const TCalenCommand& command)
+{
+	TRACE_ENTRY_POINT;
+	TBool commandUsed(EFalse);
+	
+	switch (command.Command()) {
+		case ECalenMonthView:
+		    removeDayViews();
+			// Add month view to mainwindow.
+			mController.MainWindow().addView(mCalenMonthView);
+			mCurrentViewId = ECalenMonthView;
+			activateCurrentView();
+			break;
+		case ECalenDayView:
+			// Remove month view from mainwindow.
+			mController.MainWindow().removeView(mCalenMonthView);
+			mCurrentViewId = ECalenDayView;
+			// Add day view to mainwindow.
+			mController.MainWindow().addView(mCalenDayView);
+			mController.MainWindow().addView(mCalenDayViewAlt);
+			activateCurrentView();
+			break;
+		case ECalenEventView:
+			launchEventView();
+			break;
+		case ECalenLandscapeDayView:
+			mCurrentViewId = ECalenLandscapeDayView;
+			activateCurrentView();
+			break;
+		case ECalenStartActiveStep:
+			activateCurrentView();
+			break;
+		case ECalenShowNextDay:
+		    showNextDay();
+		    break;
+		case ECalenShowPrevDay:
+            showPrevDay();
+		    break;
+	}
+	TRACE_EXIT_POINT;
+	return commandUsed;
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::HandleEntryDeleteNotificationL
-// Handles ECalenNotifyEntryDeleted and ECalenNotifyInstanceDeleted
-// notifications
+// CalenViewManager::HandleNotification
+//  Handles notifications.
+// (other items were commented in a header).
 // ----------------------------------------------------------------------------
-void CCalenViewManager::HandleEntryDeleteNotificationL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    if(iCurrentViewId.iViewUid == KUidCalenEventView)   
-        {
-        // Activate the previous view when an event is deleted from
-        // the event view 
-        if(iPreviousViewId.iViewUid != KNullUid)
-            {
-            RequestActivationL(iPreviousViewId.iViewUid);   
-            }
-        }
-    else
-        {
-        // refresh the current view
-        StartActiveStepL();             
-        }
-    
-    TRACE_EXIT_POINT;
-    }
+//
+void CalenViewManager::HandleNotification(
+                                         const TCalenNotification notification)
+{
+	TRACE_ENTRY_POINT;
+	switch (notification) {
+		case ECalenNotifySystemLocaleChanged:
+		case ECalenNotifyExternalDatabaseChanged:
+		case ECalenNotifyDialogClosed:
+		case ECalenNotifyMultipleEntriesDeleted:
+		case ECalenNotifyEntrySaved:
+		case ECalenNotifyEntryDeleted:
+		case ECalenNotifyInstanceDeleted:
+		case ECalenNotifyEntryClosed:
+		case ECalenNotifySettingsClosed:
+			mController.Services().IssueCommandL(ECalenStartActiveStep);
+			break;
+		default:
+			break;
+	}
+	TRACE_EXIT_POINT;
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::HandleEntryClosedNotificationL
-// Handles ECalenNotifyEntryClosed notification
+// CalenViewManager::settingsView
+//  Returns the settings view
+// (other items were commented in a header).
 // ----------------------------------------------------------------------------
-void CCalenViewManager::HandleEntryClosedNotificationL()
-    {
-    TRACE_ENTRY_POINT;
+//
+CalenSettingsView* CalenViewManager::settingsView()
+{
+	return mSettingsView;
+}
+
+// ----------------------------------------------------------------------------
+// CalenViewManager::handleViewingCompleted
+//  Slot to handle signal viewingCompleted by the agenda event viewer
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CalenViewManager::handleViewingCompleted(bool status)
+{
+	qDebug() <<"calendar: CalenViewManager::handleEditingCompleted -->";
 	
-	// reset tha flag iAvoidRepopulation to refresh the view.
-	iAvoidRepopulation = EFalse;
-    
-    // if previous view is native view activate that view
-    // otherwise commandlauncher will handle  
-    if(iPreviousViewId.iViewUid != KNullUid)
-        {
-        // if iPreviousToDayView is active activate the day view with "Back" cba.
-        if(iPreviousToDayView.iViewUid!=KNullUid)
-            {
-            RequestActivationL(iPreviousViewId.iViewUid, KUidCalenShowBackCba);
-            }
-        else
-            {
-            if( !iController.GetExitOnDialogFlag() )
-                {
-                RequestActivationL(iPreviousViewId.iViewUid);
-                }
-            }
-        }
-
-	// reset tha flag iAvoidRepopulation to avoid the repopulation.
-	iAvoidRepopulation = ETrue;
-    
-    TRACE_EXIT_POINT;
-    }
+	Q_UNUSED(status)
+	// Cleanup.
+	mCalenEventViewer->deleteLater();
+	mController.Services().IssueNotificationL(ECalenNotifyEntryClosed);
+	
+	qDebug() <<"calendar: CalenViewManager::handleEditingCompleted <--";
+}
 
 // ----------------------------------------------------------------------------
-// CCalenViewManager::HandleSystemTimeChangeNotificationL
-// Handles ECalenNotifySystemTimeChanged notification
+// CalenViewManager::handleEditingStarted
+//  Slot to handle signal editingStarted by the agenda event viewer
+// (other items were commented in a header).
 // ----------------------------------------------------------------------------
-void CCalenViewManager::HandleSystemTimeChangeNotificationL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    if( iController.IsFasterAppFlagEnabled() )
-        {
-        //Set the context whenever system time is changed
-        TUid newViewUid = iSetting->DefaultView();
-        MCalenContext& context = iController.Services().Context();
-        TCalTime focusTime = context.DefaultCalTimeForViewsL();
-        context.SetFocusDateAndTimeL( focusTime,
-                                      TVwsViewId( KUidCalendar, newViewUid ));
-
-        // reset tha flag iAvoidRepopulation to refresh the view whenever
-        // system time is changed
-        iAvoidRepopulation = EFalse;
-        
-        if(IsNativeView(newViewUid))
-            {
-            // activate the default view in background
-            RequestActivationL( newViewUid );
-            }
-        
-        // set the flag iAvoidRepopulation to avoid repopulation
-        iAvoidRepopulation = ETrue;
-        }
-    else
-        {
-        // refresh the current view
-        StartActiveStepL();
-        }
-    
-    TRACE_EXIT_POINT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCalenViewManager::IconsL
-// Create a CCalenIcons object if neccessary and return a reference
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-CCalenIcons& CCalenViewManager::IconsL()
-    {
-    TRACE_ENTRY_POINT;
-
-    if (!iIcons)
-        {
-        // Icons
-        iIcons = CCalenIcons::NewL();
-        }
+//
+void CalenViewManager::handleEditingStarted()
+{
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted -->";
+	
+	mController.IssueCommandL(ECalenEditEntryFromViewer);
+	
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted <--";
+}
 
-    TRACE_EXIT_POINT;
-    return *iIcons;
-    }
-
-// -----------------------------------------------------------------------------
-// CCalenViewManager::GetNextViewIconL
-// Gets next view icon 
-// -----------------------------------------------------------------------------
-CGulIcon* CCalenViewManager::GetNextViewIconL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    // Set the view cycle index based on the newly activated view,
-    // if the view is in the cycle array.
-    TInt index = iViewInfoArray.Find( iCurrentViewId.iViewUid, CCalenViewInfo::ViewInfoIdentifier );
-    if( index != KErrNotFound )
-        {
-        iViewCycleIndex = index;
-        TInt nextVwIndex = iViewCycleIndex;
-        do
-            {
-            nextVwIndex = ( nextVwIndex + 1 )%(iViewInfoArray.Count());
-            }while( iViewInfoArray[nextVwIndex]->CyclePosition() == CCalenView::ENoCyclePosition );
-        
-        // Get the next view icon
-        CCalenView* nextview = static_cast<CCalenView*>( iAppUi.View( iViewInfoArray[nextVwIndex]->ViewUid() ) );
-        return( nextview->ViewIconL() );
-        }
-             
-    TRACE_EXIT_POINT;
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CCalenViewManager::SetRepopulation
-// Resets the flag iAvoidRepopulation to activate the view.
-// -----------------------------------------------------------------------------
-void CCalenViewManager::SetRepopulation(TBool aRePopulate)
-    {
-    TRACE_ENTRY_POINT;
-    // to prevent the display of blank view, 
-    // set the iAvoidRepopulation to EFalse, 
-    // so that view is populated properly
-    
-    iAvoidRepopulation = aRePopulate;
-    
-    TRACE_EXIT_POINT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCalenViewManager::CalenToolbar
-// Returns calendar toolbar
-// -----------------------------------------------------------------------------
-CCalenToolbarImpl* CCalenViewManager::CalenToolbar()
-    {
-    TRACE_ENTRY_POINT;
-    TRACE_EXIT_POINT;
-    return iToolbar;
-    }
+// ----------------------------------------------------------------------------
+// CalenViewManager::handleEditingCompleted
+//  Slot to handle signal editingCompleted by the agenda event viewer
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CalenViewManager::handleEditingCompleted()
+{
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted -->";
+	
+	mController.Services().IssueNotificationL(ECalenNotifyEditorClosedFromViewer);
+	
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted <--";
+}
 
-// -----------------------------------------------------------------------------
-// CCalenViewManager::ReloadAllPluginsL
-// Reload all plugins
-// -----------------------------------------------------------------------------
-void CCalenViewManager::ReloadAllPluginsL()
-    {
-    TRACE_ENTRY_POINT;
-    
-    // load all plugins
-    iCustomisationManager->DoPluginLoadingL();
-    UpdatePluginListL();
-    
-    // only activate plugin view if it is default view
-    TUid defaultViewUid = iSetting->DefaultView();
-    if(!IsNativeView(defaultViewUid))
-        {
-        iAvoidRepopulation = EFalse;
-                
-        // Find the default view in the view cycle list
-        TInt position = iViewInfoArray.Find(
-                defaultViewUid, CCalenViewInfo::ViewInfoIdentifier );
-        if( position != KErrNotFound )
-            {
-            TVwsViewId targetViewId( KUidCalendar, defaultViewUid);
-            RequestActivationL(targetViewId);
-            iViewCycleIndex = position;
-            }
-        else
-            {
-            // if plugin providing default view is already uninstalled
-            // activate month view as default view
-            CRepository* repository = CRepository::NewL( KCRUidCalendar );
-            CleanupStack::PushL(repository);
-            TInt tmp( static_cast<TInt>( KUidCalenMonthView.iUid ) );
-            TInt position = iViewInfoArray.Find( KUidCalenMonthView, CCalenViewInfo::ViewInfoIdentifier );
-            User::LeaveIfError( repository->Set( KCalendarDefaultStartView, tmp ) );
-            iAppUi.SetDefaultViewL( *iAppUi.View( KUidCalenMonthView ) );
-            TVwsViewId targetViewId( KUidCalendar, KUidCalenMonthView);
-            RequestActivationL(targetViewId);
-            iViewCycleIndex = position;
-            CleanupStack::PopAndDestroy(repository);  
-            }
-        }
-    else // If default view is native view, then activate it
-        {
-        iAvoidRepopulation = EFalse;
-        // In case of launching missed event view or missed alarms view, there
-        // is no need to activate default view.
-        if( ( iCurrentViewId.iViewUid.iUid != KCalenMissedEventViewUidValue ) && 
-                          ( iCurrentViewId.iViewUid.iUid != KCalenMissedAlarmsViewUidValue ) )
-            {
-            // Find the default view in the view cycle list
-            TInt position = iViewInfoArray.Find(
-                    defaultViewUid, CCalenViewInfo::ViewInfoIdentifier );
-            if( position != KErrNotFound )
-                {
-                TVwsViewId targetViewId( KUidCalendar, defaultViewUid);
-                RequestActivationL(targetViewId);
-                iViewCycleIndex = position;
-                }
-            }
-        }
-    
-    TRACE_EXIT_POINT;
-    }
+// ----------------------------------------------------------------------------
+// CalenViewManager::handleDeletingStarted
+//  Slot to handle signal deletingStarted by the agenda event viewer
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CalenViewManager::handleDeletingStarted()
+{
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted -->";
+	
+	mController.IssueCommandL(ECalenDeleteEntryFromViewer);
+	
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted <--";
+}
 
-// -----------------------------------------------------------------------------
-// CCalenViewManager::GetPreviousViewUid
-// Rest of the details are commented in header.
-// -----------------------------------------------------------------------------
-TUid CCalenViewManager::GetPreviousViewUid()
-    {
-    return iPreviousViewId.iViewUid;
-    }
-
-// -----------------------------------------------------------------------------
-// CCalenViewManager::IsNativeView
-// Check for native view
-// -----------------------------------------------------------------------------
-TBool CCalenViewManager::IsNativeView(TUid aViewUid)
-    {
-    TRACE_ENTRY_POINT;
-
-    if( (aViewUid == KUidCalenMonthView)||
-        (aViewUid == KUidCalenWeekView) ||
-        (aViewUid == KUidCalenDayView) ||
-        (aViewUid == KUidCalenTodoView) )
-        {
-        TRACE_EXIT_POINT;
-        return ETrue;
-        }
-    TRACE_EXIT_POINT;
-    return EFalse;
-    }
+// ----------------------------------------------------------------------------
+// CalenViewManager::handleDeletingCompleted
+//  Slot to handle signal deletingCompleted by the agenda event viewer
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CalenViewManager::handleDeletingCompleted()
+{
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted -->";
+	
+	mController.Services().IssueNotificationL(ECalenNotifyEntryDeleted);
+	
+	qDebug() <<"calendar: CalenViewManager::handleEditingStarted <--";
+}
 
-// -----------------------------------------------------------------------------
-// CCalenViewManager::ActivateViewOnFakeExitL
-// Check for native view
-// -----------------------------------------------------------------------------
-void CCalenViewManager::ActivateViewOnFakeExitL(TUid aDefView)
-    {
-    TRACE_ENTRY_POINT;
-    
-    if(IsNativeView(aDefView))
-        {
-        // activate the view in background
-        RequestActivationL( aDefView, KCalenHideInBackGround, KNullDesC8() );
-        }
-    else
-        {
-        RequestActivationL( KUidCalenDummyView, KCalenHideInBackGround, KNullDesC8() );
-        }
-    
-    // set the flag to avoid repopulation when application is
-    // opened after faster exit
-    iAvoidRepopulation = ETrue;
-    
-    // set the context 
-    MCalenContext& context = iController.Services().Context();
-    TCalTime focusTime = context.DefaultCalTimeForViewsL();
-    context.SetFocusDateAndTimeL( focusTime,
-                                  TVwsViewId( KUidCalendar, aDefView) );
-    
-    TRACE_EXIT_POINT;
-    }
-// End of file
+// End of file	--Don't remove this.