meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 0 8466d47a6819
child 16 b5fbb9b25d57
equal deleted inserted replaced
11:0396474f30f5 12:4ce476e64c59
     1 /*
     1 /*
     2 * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    23 #include "tesmrentryfield.h"
    23 #include "tesmrentryfield.h"
    24 #include "mesmrresponseobserver.h"
    24 #include "mesmrresponseobserver.h"
    25 #include "cesmrattendeefield.h"
    25 #include "cesmrattendeefield.h"
    26 #include "cesmrtrackingfieldlabel.h"
    26 #include "cesmrtrackingfieldlabel.h"
    27 #include "cesmrtrackstatus.h"
    27 #include "cesmrtrackstatus.h"
    28 #include "cesmrviewerattachmentsfield.h"
       
    29 #include "cesmrviewerattendeesfield.h"
    28 #include "cesmrviewerattendeesfield.h"
    30 #include "cesmrresponsefield.h"
    29 #include "cesmrresponsefield.h"
    31 #include "cesmrresponsereadyfield.h"
       
    32 #include "cesmrviewerfromfield.h"
    30 #include "cesmrviewerfromfield.h"
    33 
    31 #include "cesmrfieldbuilderinterface.h"
    34 #include <CalenInterimUtils2.h>
    32 #include "CFSMailCommon.h"
       
    33 
       
    34 #include <caleninterimutils2.h>
    35 
    35 
    36 // DEBUG
    36 // DEBUG
    37 #include "emailtrace.h"
    37 #include "emailtrace.h"
    38 
    38 
    39 // ======== MEMBER FUNCTIONS ========
    39 // ======== MEMBER FUNCTIONS ========
    72     MESMRBuilderExtension* capa = static_cast<MESMRBuilderExtension*>( this );
    72     MESMRBuilderExtension* capa = static_cast<MESMRBuilderExtension*>( this );
    73     return capa;
    73     return capa;
    74     }
    74     }
    75 
    75 
    76 // ----------------------------------------------------------------------------
    76 // ----------------------------------------------------------------------------
    77 // CESMRFieldBuilderPluginExtension::ExtensionL
    77 // CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL
    78 // ----------------------------------------------------------------------------
    78 // ----------------------------------------------------------------------------
    79 //
    79 //
    80 TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL(
    80 TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL(
    81         EMRCFSMailBoxCapability aCapa )
    81         TMRCFSMailBoxCapability aCapa )
    82     {
    82     {
    83     FUNC_LOG;
    83     FUNC_LOG;
       
    84     
    84     iESMRStatic.ConnectL();
    85     iESMRStatic.ConnectL();
    85     iESMRStaticAccessed = ETrue;
    86     iESMRStaticAccessed = ETrue;
    86 
    87 
    87     TBool response(EFalse);
    88     return HasCapability( iESMRStatic.DefaultFSMailBoxL(), aCapa );
    88 
    89     }
    89     if (aCapa == EMRCFSAttendeeStatus)
    90 
    90         {
    91 // ----------------------------------------------------------------------------
    91         response = iESMRStatic.DefaultFSMailBoxL().HasCapability(
    92 // CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL
    92                 EFSMBoxCapaMeetingRequestAttendeeStatus );
    93 // ----------------------------------------------------------------------------
    93         }
    94 //
    94 
    95 TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL(
    95     return response;
    96             const TDesC& aEmailAddress,
       
    97             TMRCFSMailBoxCapability aCapa )
       
    98     {
       
    99     FUNC_LOG;
       
   100         
       
   101     iESMRStatic.ConnectL();
       
   102     iESMRStaticAccessed = ETrue;
       
   103 
       
   104     CFSMailBox* mailBox = iESMRStatic.MailBoxL( aEmailAddress );
       
   105     TBool result = HasCapability( *mailBox, aCapa );
       
   106     delete mailBox;
       
   107     
       
   108     return result;
    96     }
   109     }
    97 
   110 
    98 // ----------------------------------------------------------------------------
   111 // ----------------------------------------------------------------------------
    99 // CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL
   112 // CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL
   100 // ----------------------------------------------------------------------------
   113 // ----------------------------------------------------------------------------
   101 //
   114 //
   102 TBool CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL(
   115 TBool CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL()
   103         TBool aForceResetDefaultMRMailbox )
       
   104     {
   116     {
   105     FUNC_LOG;
   117     FUNC_LOG;
   106     TBool retValue( EFalse );
   118     TBool retValue( EFalse );
   107 
   119 
   108     iESMRStatic.ConnectL();
   120     iESMRStatic.ConnectL();
   110 
   122 
   111     CCalenInterimUtils2* calUtils2 = CCalenInterimUtils2::NewL();
   123     CCalenInterimUtils2* calUtils2 = CCalenInterimUtils2::NewL();
   112     CleanupStack::PushL( calUtils2 );
   124     CleanupStack::PushL( calUtils2 );
   113     if ( calUtils2->MRViewersEnabledL() )
   125     if ( calUtils2->MRViewersEnabledL() )
   114         {
   126         {
   115         TRAPD( err, 
   127         TRAPD( err, iESMRStatic.DefaultFSMailBoxL() );
   116                iESMRStatic.DefaultFSMailBoxL( aForceResetDefaultMRMailbox ) );
       
   117 
   128 
   118         if ( KErrNone == err )
   129         if ( KErrNone == err )
   119             {
   130             {
   120             // If can fetch the default FS mailbox -->
   131             // If can fetch the default FS mailbox -->
   121             // We are able to originate MR as well.
   132             // We are able to originate MR as well.
   189         default:
   200         default:
   190             {
   201             {
   191             User::Leave( KErrArgument );
   202             User::Leave( KErrArgument );
   192             }
   203             }
   193         }
   204         }
       
   205     // Set field mode
       
   206     field->SetFieldMode( EESMRFieldModeEdit );
       
   207 
   194     return field;
   208     return field;
   195     }
   209     }
   196 
   210 
   197 // -----------------------------------------------------------------------------
   211 // -----------------------------------------------------------------------------
   198 // CESMRFieldBuilderPluginExtension::CreateViewerFieldL
   212 // CESMRFieldBuilderPluginExtension::CreateViewerFieldL
   205     {
   219     {
   206     FUNC_LOG;
   220     FUNC_LOG;
   207     CESMRField* field = NULL;
   221     CESMRField* field = NULL;
   208     switch ( aField.iFieldId )
   222     switch ( aField.iFieldId )
   209         {
   223         {
   210         case EESMRFieldAttachments:
       
   211             {
       
   212             field = CESMRViewerAttachmentsField::NewL();
       
   213             }
       
   214             break;
       
   215         case EESMRFieldAttendee:
   224         case EESMRFieldAttendee:
   216             {
   225             {
   217             field = CESMRViewerAttendeesField::NewL( CCalAttendee::EReqParticipant );
   226             field = CESMRViewerAttendeesField::NewL( CCalAttendee::EReqParticipant );
   218             break;
   227             break;
   219             }
   228             }
   223             break;
   232             break;
   224             }
   233             }
   225         case EESMRFieldResponseArea:
   234         case EESMRFieldResponseArea:
   226             {
   235             {
   227             field = CESMRResponseField::NewL( aResponseObserver );
   236             field = CESMRResponseField::NewL( aResponseObserver );
   228             break;
       
   229             }
       
   230         case EESMRFieldResponseReadyArea:
       
   231             {
       
   232             field = CESMRResponseReadyField::NewL( aResponseObserver );
       
   233             break;
   237             break;
   234             }
   238             }
   235         case EESMRFieldOrganizer:
   239         case EESMRFieldOrganizer:
   236             {
   240             {
   237             field = CESMRViewerFromField::NewL();
   241             field = CESMRViewerFromField::NewL();
   260     // Set field mode
   264     // Set field mode
   261     field->SetFieldMode( EESMRFieldModeView );
   265     field->SetFieldMode( EESMRFieldModeView );
   262 
   266 
   263     return field;
   267     return field;
   264     }
   268     }
       
   269 
       
   270 // -----------------------------------------------------------------------------
       
   271 // CESMRFieldBuilderPluginExtension::HasCapability
       
   272 // -----------------------------------------------------------------------------
       
   273 //
       
   274 TBool CESMRFieldBuilderPluginExtension::HasCapability(
       
   275         const CFSMailBox& aMailBox,
       
   276         MESMRBuilderExtension::TMRCFSMailBoxCapability aCapability ) const
       
   277     {
       
   278     TBool response(EFalse);
       
   279 
       
   280     switch ( aCapability )
       
   281         {
       
   282         case EMRCFSAttendeeStatus:
       
   283             {
       
   284             response = aMailBox.HasCapability(
       
   285                     EFSMBoxCapaMeetingRequestAttendeeStatus );
       
   286             break;
       
   287             }
       
   288             
       
   289         case EMRCFSRemoveFromCalendar:
       
   290             {
       
   291             response = aMailBox.HasCapability( EFSMBoxCapaRemoveFromCalendar );
       
   292             break;
       
   293             }
       
   294             
       
   295         case EMRCFSSupportsAttachmentsInMR:
       
   296             {
       
   297             response = aMailBox.HasCapability( EFSMboxCapaSupportsAttahmentsInMR );
       
   298             }
       
   299             break;
       
   300             
       
   301         default:
       
   302             {
       
   303             break;
       
   304             }
       
   305         }
       
   306 
       
   307     return response;
       
   308     }
       
   309 
   265 //EOF
   310 //EOF
   266 
   311