meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h
changeset 0 8466d47a6819
child 16 4ce476e64c59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2007-2009 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: This file defines class CESMRCasPluginUiLauncher.
+ *
+*/
+
+
+#ifndef CESMRCASPLUGINUILAUNCHER_H
+#define CESMRCASPLUGINUILAUNCHER_H
+
+#include <e32base.h>
+#include <MAgnEntryUi.h>
+#include <badesca.h>
+
+class CCalSession;
+class CCalenInterimUtils2;
+class CMRMailboxUtils;
+class TFscContactActionPluginParams;
+class MVPbkStoreContact;
+class CCalUser;
+class MESMRCasPluginUiLauncherObserver;
+
+
+/**
+ * CESMRCasPluginUiLauncher is responsible for launching MR editor.
+ */
+NONSHARABLE_CLASS( CESMRCasPluginUiLauncher ) :
+    public CBase,
+    public MAgnEntryUiCallback
+    {
+public:
+    /**
+     * Creates and initializes new CESMRCasPluginUiLauncher object.
+     * Ownership is transferred to caller.
+     * @param aCalSession Reference to calendar session.
+     * @param aParams Reference to contact action parameters
+     * @return Pointer to CESMRCasPluginUiLauncher
+     */
+    static CESMRCasPluginUiLauncher* NewL(
+            CCalSession& aCalSession,
+            CCalenInterimUtils2& aCalUtils,
+            CMRMailboxUtils& aMBUtils,
+            const TFscContactActionPluginParams& aParams,
+            MESMRCasPluginUiLauncherObserver& aExecuteObserver );
+
+    /**
+     * C++ destructor.
+     */
+    ~CESMRCasPluginUiLauncher();
+
+public: // Interface
+    /**
+     * Launches UI. Contacts are added to required recipients.
+     * @param aAttendees Reference to attendee email address array
+     */
+    void LaunchMeetingRequestViewL(
+            const RPointerArray<CCalUser>& aAttendees );
+
+private: // From MAgnEntryUiCallback
+    void ProcessCommandL(TInt aCommandId);
+    TInt ProcessCommandWithResultL( TInt aCommandId );
+    TBool IsCommandAvailable( TInt aCommandId );
+
+private: // Implementation
+    CESMRCasPluginUiLauncher(
+            CCalSession& aCalSession,
+            CCalenInterimUtils2& aCalUtils,
+            CMRMailboxUtils& aMBUtils,
+            const TFscContactActionPluginParams& aParams,
+            MESMRCasPluginUiLauncherObserver& aExecuteObserver );
+    void ConstructL();
+    void AddOrganizerL();
+    void AddAttendeesL( const RPointerArray<CCalUser>& aAttendees );
+    void SetStartAndEndTimeL();
+
+private: // data
+    /// Own calendar entry
+    CCalEntry* iCalEntry;
+    /// Own: MR Input parameters
+    MAgnEntryUi::TAgnEntryUiInParams iInParams;
+    /// Own: MR Output parameters
+    MAgnEntryUi::TAgnEntryUiOutParams iOutParams;
+    /// Own: MTM UID
+    HBufC* iMtmUid;
+    /// Ref: Calendar session
+    CCalSession& iCalSession;
+    /// Ref: contact action params
+    const TFscContactActionPluginParams& iParams;
+    /// Ref: Reference to calendar utils
+    CCalenInterimUtils2& iCalUtils;
+    /// Reference to mailbox utils
+    CMRMailboxUtils& iMBUtils;
+    /// Ref: execute observer
+    MESMRCasPluginUiLauncherObserver& iExecuteObserver;
+    };
+
+#endif // CESMRCASPLUGINUILAUNCHER_H
+
+// EOF