meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 0 8466d47a6819
child 16 b5fbb9b25d57
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp	Mon Mar 15 12:39:10 2010 +0200
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp	Wed Mar 31 21:08:33 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 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"
@@ -25,13 +25,13 @@
 #include "cesmrattendeefield.h"
 #include "cesmrtrackingfieldlabel.h"
 #include "cesmrtrackstatus.h"
-#include "cesmrviewerattachmentsfield.h"
 #include "cesmrviewerattendeesfield.h"
 #include "cesmrresponsefield.h"
-#include "cesmrresponsereadyfield.h"
 #include "cesmrviewerfromfield.h"
+#include "cesmrfieldbuilderinterface.h"
+#include "CFSMailCommon.h"
 
-#include <CalenInterimUtils2.h>
+#include <caleninterimutils2.h>
 
 // DEBUG
 #include "emailtrace.h"
@@ -74,33 +74,45 @@
     }
 
 // ----------------------------------------------------------------------------
-// CESMRFieldBuilderPluginExtension::ExtensionL
+// CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL
 // ----------------------------------------------------------------------------
 //
 TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL(
-        EMRCFSMailBoxCapability aCapa )
+        TMRCFSMailBoxCapability aCapa )
     {
     FUNC_LOG;
+    
     iESMRStatic.ConnectL();
     iESMRStaticAccessed = ETrue;
 
-    TBool response(EFalse);
+    return HasCapability( iESMRStatic.DefaultFSMailBoxL(), aCapa );
+    }
 
-    if (aCapa == EMRCFSAttendeeStatus)
-        {
-        response = iESMRStatic.DefaultFSMailBoxL().HasCapability(
-                EFSMBoxCapaMeetingRequestAttendeeStatus );
-        }
+// ----------------------------------------------------------------------------
+// CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL
+// ----------------------------------------------------------------------------
+//
+TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL(
+            const TDesC& aEmailAddress,
+            TMRCFSMailBoxCapability aCapa )
+    {
+    FUNC_LOG;
+        
+    iESMRStatic.ConnectL();
+    iESMRStaticAccessed = ETrue;
 
-    return response;
+    CFSMailBox* mailBox = iESMRStatic.MailBoxL( aEmailAddress );
+    TBool result = HasCapability( *mailBox, aCapa );
+    delete mailBox;
+    
+    return result;
     }
 
 // ----------------------------------------------------------------------------
 // CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL
 // ----------------------------------------------------------------------------
 //
-TBool CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL(
-        TBool aForceResetDefaultMRMailbox )
+TBool CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL()
     {
     FUNC_LOG;
     TBool retValue( EFalse );
@@ -112,8 +124,7 @@
     CleanupStack::PushL( calUtils2 );
     if ( calUtils2->MRViewersEnabledL() )
         {
-        TRAPD( err, 
-               iESMRStatic.DefaultFSMailBoxL( aForceResetDefaultMRMailbox ) );
+        TRAPD( err, iESMRStatic.DefaultFSMailBoxL() );
 
         if ( KErrNone == err )
             {
@@ -191,6 +202,9 @@
             User::Leave( KErrArgument );
             }
         }
+    // Set field mode
+    field->SetFieldMode( EESMRFieldModeEdit );
+
     return field;
     }
 
@@ -207,11 +221,6 @@
     CESMRField* field = NULL;
     switch ( aField.iFieldId )
         {
-        case EESMRFieldAttachments:
-            {
-            field = CESMRViewerAttachmentsField::NewL();
-            }
-            break;
         case EESMRFieldAttendee:
             {
             field = CESMRViewerAttendeesField::NewL( CCalAttendee::EReqParticipant );
@@ -227,11 +236,6 @@
             field = CESMRResponseField::NewL( aResponseObserver );
             break;
             }
-        case EESMRFieldResponseReadyArea:
-            {
-            field = CESMRResponseReadyField::NewL( aResponseObserver );
-            break;
-            }
         case EESMRFieldOrganizer:
             {
             field = CESMRViewerFromField::NewL();
@@ -262,5 +266,46 @@
 
     return field;
     }
+
+// -----------------------------------------------------------------------------
+// CESMRFieldBuilderPluginExtension::HasCapability
+// -----------------------------------------------------------------------------
+//
+TBool CESMRFieldBuilderPluginExtension::HasCapability(
+        const CFSMailBox& aMailBox,
+        MESMRBuilderExtension::TMRCFSMailBoxCapability aCapability ) const
+    {
+    TBool response(EFalse);
+
+    switch ( aCapability )
+        {
+        case EMRCFSAttendeeStatus:
+            {
+            response = aMailBox.HasCapability(
+                    EFSMBoxCapaMeetingRequestAttendeeStatus );
+            break;
+            }
+            
+        case EMRCFSRemoveFromCalendar:
+            {
+            response = aMailBox.HasCapability( EFSMBoxCapaRemoveFromCalendar );
+            break;
+            }
+            
+        case EMRCFSSupportsAttachmentsInMR:
+            {
+            response = aMailBox.HasCapability( EFSMboxCapaSupportsAttahmentsInMR );
+            }
+            break;
+            
+        default:
+            {
+            break;
+            }
+        }
+
+    return response;
+    }
+
 //EOF