meetingui/attendeeview/UiSrc/CAttendeeEditorDlg.cpp
changeset 0 f979ecb2b13e
equal deleted inserted replaced
-1:000000000000 0:f979ecb2b13e
       
     1 /*
       
     2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Provides interface methods for CAttendeeEditorDlg.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include "cattendeeeditordlg.h"
       
    22 #include "attendeeview.hrh"
       
    23 #include "mattendeeeng.h"
       
    24 #include "attendeenotes.h"
       
    25 #include "cattendeeuiutils.h"
       
    26 #include "attendeeviewconsts.h"
       
    27 #include "cattendeedetailsdlg.h"
       
    28 #include "attendeeviewuid.h"
       
    29 #include <attendeeview_res.rsg>
       
    30 #include <cpbkcontactengine.h>
       
    31 #include <cpbkcontactitem.h>
       
    32 #include <cpbkmultipleentryfetchdlg.h>
       
    33 #include <eikmenub.h>
       
    34 #include <stringloader.h>
       
    35 #include <caluser.h>
       
    36 #include <csxhelp/cale.hlp.hrh>
       
    37 #include <mrcommands.hrh>
       
    38 #include <magnentryui.h>
       
    39 
       
    40 
       
    41 
       
    42 // ============================ MEMBER FUNCTIONS ==============================
       
    43 // ---------------------------------------------------------
       
    44 // CAttendeeEditorDlg::NewL
       
    45 // ---------------------------------------------------------
       
    46 //
       
    47 CAttendeeEditorDlg* CAttendeeEditorDlg::NewL( 
       
    48                                   MDesCArray *aArray,
       
    49                                   TInt aMenuBarResourceId,
       
    50                                   TInt aOkMenuBarResourceId,
       
    51                                   MAttendeeEng& aEngine,
       
    52                                   TCoeHelpContext& aHelpContext,
       
    53                                   MAgnEntryUiCallback& aEntryUiCallback  )
       
    54     {
       
    55     CAttendeeEditorDlg* self = NewLC( aArray,
       
    56                                       aMenuBarResourceId,
       
    57                                       aOkMenuBarResourceId,
       
    58                                       aEngine,
       
    59                                       aHelpContext,
       
    60                                       aEntryUiCallback );
       
    61     CleanupStack::Pop( self ); //self
       
    62     return self;
       
    63     }
       
    64 
       
    65 // ---------------------------------------------------------
       
    66 // CAttendeeEditorDlg::NewLC
       
    67 // ---------------------------------------------------------
       
    68 //
       
    69 CAttendeeEditorDlg* CAttendeeEditorDlg::NewLC( 
       
    70                                  MDesCArray *aArray,
       
    71                                  TInt aMenuBarResourceId,
       
    72                                  TInt aOkMenuBarResourceId,
       
    73                                  MAttendeeEng& aEngine,
       
    74                                  TCoeHelpContext& aHelpContext,
       
    75                                  MAgnEntryUiCallback& aEntryUiCallback  )
       
    76     {
       
    77     CAttendeeEditorDlg* self = 
       
    78         new(ELeave)CAttendeeEditorDlg( aArray, 
       
    79                                        aEngine, 
       
    80                                        aMenuBarResourceId,
       
    81                                        aOkMenuBarResourceId,
       
    82                                        aHelpContext,
       
    83                                        aEntryUiCallback );
       
    84     CleanupStack::PushL( self );
       
    85     self->ConstructL( aMenuBarResourceId );
       
    86     return self;
       
    87     }
       
    88 // ----------------------------------------------------------------------------
       
    89 // CAttendeeEditorDlg::CAttendeeEditorDlg
       
    90 // C++ default constructor can NOT contain any code, that
       
    91 // might leave.
       
    92 // ----------------------------------------------------------------------------
       
    93 //
       
    94 CAttendeeEditorDlg::CAttendeeEditorDlg( 
       
    95                                   MDesCArray *aArray, 
       
    96                                   MAttendeeEng& aEngine,
       
    97                                   TInt aMenuBarResourceId,
       
    98                                   TInt aOkMenuBarResourceId,
       
    99                                   TCoeHelpContext& aHelpContext,
       
   100                                   MAgnEntryUiCallback& aEntryUiCallback  ):
       
   101     CAttendeeDialogBase( aArray, 
       
   102                          aEngine, 
       
   103                          aMenuBarResourceId, 
       
   104                          aOkMenuBarResourceId,
       
   105                          aEntryUiCallback ),
       
   106     iHelpContext(aHelpContext)
       
   107     {
       
   108     }
       
   109 
       
   110 // ---------------------------------------------------------
       
   111 // CAttendeeEditorDlg::~CAttendeeEditorDlg
       
   112 // ---------------------------------------------------------
       
   113 //
       
   114 CAttendeeEditorDlg::~CAttendeeEditorDlg()
       
   115     {
       
   116     }
       
   117 
       
   118 // ---------------------------------------------------------
       
   119 // CAttendeeEditorDlg::OfferKeyEventL
       
   120 // ---------------------------------------------------------
       
   121 //
       
   122 TKeyResponse CAttendeeEditorDlg::OfferKeyEventL( const TKeyEvent &aKeyEvent, 
       
   123                                                  TEventCode aType )
       
   124     {
       
   125     if ( aType == EEventKey )
       
   126         {
       
   127         if ( aKeyEvent.iCode == EKeyBackspace )              
       
   128             {            
       
   129             if ( ListBox()->Model()->NumberOfItems() > 0 )
       
   130                 {
       
   131                 DeleteAttendeesCmdL();
       
   132                 return EKeyWasConsumed;
       
   133                 }
       
   134             }
       
   135         }
       
   136     return CAttendeeDialogBase::OfferKeyEventL( aKeyEvent, aType );
       
   137     }
       
   138 
       
   139 // ---------------------------------------------------------
       
   140 // CAttendeeEditorDlg::DynInitMenuPaneL
       
   141 // ---------------------------------------------------------
       
   142 //
       
   143 void CAttendeeEditorDlg::DynInitMenuPaneL( TInt aResourceId, 
       
   144                                            CEikMenuPane *aMenuPane )
       
   145     {	    
       
   146    
       
   147     const TInt visible( ListBox()->Model()->NumberOfItems() );
       
   148     const TInt marked( ListBox()->SelectionIndexes()->Count() );
       
   149     switch( aResourceId )
       
   150         {
       
   151         case R_ATTENDEEVIEW_EDITOR_MENU:
       
   152             {               
       
   153             if ( visible > 0 )
       
   154                 {
       
   155                 FilterMenuItems( aMenuPane );
       
   156                 if ( marked > 0 )
       
   157                     {
       
   158                     aMenuPane->SetItemDimmed( EAttAddAttendeesCmd, ETrue );
       
   159                     aMenuPane->SetItemDimmed( EAttCmdSendMeetingRequest, ETrue );
       
   160                     aMenuPane->SetItemDimmed( EAttCmdSendMeetingUpdate, ETrue );   
       
   161                     aMenuPane->SetItemDimmed( EAttDetails, ETrue );                    
       
   162                     
       
   163                     //if all marked are same dim that selection
       
   164                     const CArrayFix<TInt>& indexes( *ListBox()->SelectionIndexes());                
       
   165                     const TInt count( indexes.Count() );
       
   166                 
       
   167                     if( count == 1 && ( iEngine.At( indexes.At( 0 ) ).IsOrganizer() ) )
       
   168                         {
       
   169                         //Organizer only one selected item which is organizer
       
   170                         aMenuPane->SetItemDimmed( EAttDeleteAttendeesCmd, ETrue );
       
   171                         }
       
   172                                 
       
   173                     TBool allOptional(ETrue);
       
   174                     TBool allRequired(ETrue);                
       
   175                     for ( TInt i( 0 ); i < count; ++i )
       
   176                         {
       
   177                     
       
   178                         if( iEngine.At(indexes.At( i )).AttendanceL() != CAttendeeItem::EOptional &&
       
   179                                       !iEngine.At(indexes.At( i )).IsOrganizer() )
       
   180                             { //Not optional and not organizer
       
   181                             allOptional = EFalse;
       
   182                             }
       
   183                         else if( iEngine.At(indexes.At( i )).AttendanceL() != CAttendeeItem::ERequire &&
       
   184                                            !iEngine.At(indexes.At( i )).IsOrganizer() )
       
   185                             { //Not required and not organizer
       
   186                             allRequired = EFalse;
       
   187                             }                                            
       
   188                         }
       
   189                         
       
   190                         if ( allOptional )
       
   191                             {
       
   192                             aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue );
       
   193                             }
       
   194                         if ( allRequired )
       
   195                             {
       
   196                             aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );
       
   197                             }
       
   198                     }
       
   199                 else
       
   200                     {
       
   201                     if ( iEngine.At( ListBox()->CurrentItemIndex()).IsOrganizer() )
       
   202                         { //organizer (both set as optional and required dimmed)
       
   203                         aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue );
       
   204                         aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );                                            
       
   205                         aMenuPane->SetItemDimmed( EAttDeleteAttendeesCmd, ETrue );
       
   206                         }
       
   207                     else if ( iEngine.At( ListBox()->CurrentItemIndex() ).AttendanceL() == 
       
   208                               CAttendeeItem::ERequire )
       
   209                         { //required but not organizer (set as optional visible)
       
   210                         aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );                        
       
   211                         }
       
   212                     else if ( iEngine.At( ListBox()->CurrentItemIndex() ).AttendanceL() == 
       
   213                               CAttendeeItem::EOptional )
       
   214                         { //optional (set as required visible)
       
   215                         aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue );
       
   216                         } 
       
   217                     }
       
   218                 }
       
   219             else 
       
   220                 {
       
   221                 aMenuPane->SetItemDimmed( EAttCmdSendMeetingRequest, ETrue );
       
   222                 aMenuPane->SetItemDimmed( EAttCmdSendMeetingUpdate, ETrue );   
       
   223                 aMenuPane->SetItemDimmed( EAttDetails, ETrue );
       
   224                 aMenuPane->SetItemDimmed( EAttDeleteAttendeesCmd, ETrue );
       
   225                 aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );
       
   226                 aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue ); 
       
   227                 }                                                       
       
   228             break;
       
   229             } 
       
   230         case R_ATTENDEEVIEW_EDITOR_CONTEXT_MENU:
       
   231             {
       
   232             if ( visible > 0 )
       
   233                 {
       
   234                 if ( marked > 0 )
       
   235                     {
       
   236                     aMenuPane->SetItemDimmed( EAttCmdSendMeetingRequest, ETrue );
       
   237                     aMenuPane->SetItemDimmed( EAttCmdSendMeetingUpdate, ETrue );
       
   238                     aMenuPane->SetItemDimmed( EAttDetails, ETrue );                    
       
   239                     aMenuPane->SetItemDimmed( EAttAddAttendeesCmd, ETrue ); 
       
   240                     
       
   241                     //if all marked are same dim that selection
       
   242                     const CArrayFix<TInt>& indexes( *ListBox()->SelectionIndexes());                
       
   243                     const TInt count( indexes.Count() );
       
   244                 
       
   245                     if (count == 1 && (iEngine.At(indexes.At(0)).IsOrganizer()))
       
   246                         {
       
   247                         //Organizer only one selected item which is organizer
       
   248                         aMenuPane->SetItemDimmed( EAttDeleteAttendeesCmd, ETrue );
       
   249                         }
       
   250                                 
       
   251                     TBool allOptional(ETrue);
       
   252                     TBool allRequired(ETrue);
       
   253                 
       
   254                     for ( TInt i( 0 ); i < count; ++i )
       
   255                         {
       
   256                     
       
   257                         if ( iEngine.At(indexes.At( i )).AttendanceL() != CAttendeeItem::EOptional &&
       
   258                                       !iEngine.At(indexes.At( i )).IsOrganizer())
       
   259                             { //Not optional and not organizer
       
   260                             allOptional = EFalse;
       
   261                             }
       
   262                         else if(iEngine.At(indexes.At( i )).AttendanceL() != CAttendeeItem::ERequire &&
       
   263                                            !iEngine.At(indexes.At( i )).IsOrganizer())
       
   264                             { //Not required and not organizer
       
   265                             allRequired = EFalse;
       
   266                             }                    
       
   267                         
       
   268                         }
       
   269                         
       
   270                         if ( allOptional )
       
   271                             {
       
   272                             aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue );
       
   273                             }
       
   274                         if ( allRequired )
       
   275                             {
       
   276                             aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );
       
   277                             }                   
       
   278                     }
       
   279                 else
       
   280                     {
       
   281                     if( iEngine.At( ListBox()->CurrentItemIndex()).IsOrganizer() )
       
   282                         {                                                                    
       
   283                         aMenuPane->SetItemDimmed( EAttDeleteAttendeesCmd, ETrue );
       
   284                         }
       
   285                     FilterMenuItems(aMenuPane);
       
   286                     aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue );
       
   287                     aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );
       
   288                     }
       
   289                 }
       
   290             else
       
   291                 {
       
   292                 aMenuPane->SetItemDimmed( EAttCmdSendMeetingRequest, ETrue );
       
   293                 aMenuPane->SetItemDimmed( EAttCmdSendMeetingUpdate, ETrue );
       
   294                 aMenuPane->SetItemDimmed( EAttDetails, ETrue );
       
   295                 aMenuPane->SetItemDimmed( EAttDeleteAttendeesCmd, ETrue );
       
   296                 aMenuPane->SetItemDimmed( EAttSetAsOptionalCmd, ETrue );
       
   297                 aMenuPane->SetItemDimmed( EAttSetAsRequireCmd, ETrue );
       
   298                 }
       
   299             break;
       
   300             }      
       
   301         default:
       
   302             {
       
   303             CAttendeeDialogBase::DynInitMenuPaneL( aResourceId, aMenuPane );
       
   304             break;
       
   305             }
       
   306         }
       
   307     }
       
   308 
       
   309 // ---------------------------------------------------------
       
   310 // CAttendeeEditorDlg::SelectionListProcessCommandL
       
   311 // ---------------------------------------------------------
       
   312 //
       
   313 void CAttendeeEditorDlg::SelectionListProcessCommandL( TInt aCommandId )
       
   314     {        
       
   315     switch( aCommandId )
       
   316         {           
       
   317         case EAttAddFromContactsCmd:
       
   318             {
       
   319             AddFromContactsCmdL();
       
   320             break;
       
   321             }
       
   322         case EAttAddNewAttendeeCmd:
       
   323             {
       
   324             AddNewAttendeeCmdL();
       
   325             break;
       
   326             }        
       
   327         case EAttDeleteAttendeesCmd:
       
   328             {
       
   329             DeleteAttendeesCmdL();
       
   330             break;
       
   331             }      
       
   332         case EAttSetAsRequireCmd:
       
   333             {
       
   334             ChangeAttendanceCmdL( CAttendeeItem::ERequire );
       
   335             break;
       
   336             }
       
   337         case EAttSetAsOptionalCmd:
       
   338             {
       
   339             ChangeAttendanceCmdL( CAttendeeItem::EOptional );
       
   340             break;
       
   341             }
       
   342         case EAttCmdSendMeetingRequest:
       
   343             {
       
   344             iEntryUiCallback.ProcessCommandWithResultL( EMRCommandSend );
       
   345             delete this;
       
   346             break;
       
   347             }            
       
   348         case EAttCmdSendMeetingUpdate:
       
   349             {
       
   350             iEntryUiCallback.ProcessCommandWithResultL( EMRCommandSendUpdate );
       
   351             delete this;
       
   352             break;
       
   353             }            
       
   354         default:
       
   355             {
       
   356             CAttendeeDialogBase::SelectionListProcessCommandL( aCommandId );
       
   357             break;
       
   358             }
       
   359         }    
       
   360     }
       
   361 
       
   362 // ----------------------------------------------------
       
   363 // CAttendeeEditorDlg::MakeEmptyTextListBoxL
       
   364 // ----------------------------------------------------
       
   365 //
       
   366 void CAttendeeEditorDlg::MakeEmptyTextListBoxL()
       
   367     {
       
   368     HBufC* textFromResourceFile = 
       
   369         StringLoader::LoadLC( R_ATTENDEE_EDITOR_EMPTY_TEXT, 
       
   370                               CEikonEnv::Static() );
       
   371     ListBox()->View()->SetListEmptyTextL( *textFromResourceFile );
       
   372     CleanupStack::PopAndDestroy( textFromResourceFile );  
       
   373     }
       
   374 
       
   375 
       
   376 // ---------------------------------------------------------
       
   377 // CAttendeeEditorDlg::AddFromContactsCmdL
       
   378 // ---------------------------------------------------------
       
   379 //
       
   380 void CAttendeeEditorDlg::AddFromContactsCmdL()
       
   381     {    
       
   382     CPbkContactEngine& contactEngine = iEngine.ContactEngine();
       
   383     CContactViewBase& filteredView = 
       
   384         contactEngine.FilteredContactsViewL( CContactDatabase::EMailable );
       
   385 
       
   386     CPbkMultipleEntryFetchDlg::TParams params;
       
   387     //param need to put in cleanupstack ( see CPbkMultipleEntryFetchDlg )
       
   388     CleanupStack::PushL( params );
       
   389     params.iContactView = &filteredView;        
       
   390 
       
   391     CPbkMultipleEntryFetchDlg* fetchDlg = CPbkMultipleEntryFetchDlg::NewL(
       
   392                                             params, contactEngine );
       
   393     const TInt res = fetchDlg->ExecuteLD();
       
   394 	fetchDlg = NULL;
       
   395 
       
   396     iUiUtils->CreateNaviLabelL( R_ATTENDEE_NAVI_LABEL );
       
   397             
       
   398     if ( res )
       
   399         {
       
   400         const TInt count( params.iMarkedEntries->Count() );
       
   401         for ( TInt i( 0 ); i < count; ++i )
       
   402             {
       
   403             const TContactItemId cid = ( *params.iMarkedEntries )[i];        
       
   404             CPbkContactItem* pbkItem = contactEngine.ReadContactLC( cid );
       
   405                                                               
       
   406             const TPbkContactItemField* address = 
       
   407                         SelectEmailAddressL( *pbkItem );
       
   408             
       
   409             if ( address )
       
   410                 {
       
   411                 iEngine.AddItemL( *pbkItem, address );
       
   412                 }
       
   413 
       
   414             CleanupStack::PopAndDestroy( pbkItem );
       
   415             } 
       
   416         ListBox()->HandleItemAdditionL();         
       
   417         }
       
   418     
       
   419     //param need to pop and destroy when it not needed anymore
       
   420     CleanupStack::PopAndDestroy();
       
   421 
       
   422     iEngine.SortAttendeesL();
       
   423     }
       
   424 
       
   425 // ---------------------------------------------------------
       
   426 // CAttendeeEditorDlg::AddNewAttendeeCmdL
       
   427 // ---------------------------------------------------------
       
   428 //
       
   429 void CAttendeeEditorDlg::AddNewAttendeeCmdL()
       
   430     {
       
   431     HBufC* buffer = HBufC::NewLC( KAttendeeBufferSize );  
       
   432     TPtr ptr( buffer->Des() );
       
   433     ptr.Zero();
       
   434 
       
   435     do
       
   436         {
       
   437         if ( !AttendeeNotes::EmailAddressQueryL( ptr ) )
       
   438             {
       
   439             //user canceled
       
   440             CleanupStack::PopAndDestroy(buffer); //buffer
       
   441             return;
       
   442             }
       
   443         }while( !CheckEmailAddressL( ptr ) );
       
   444 
       
   445         
       
   446     iEngine.AddItemL( *buffer );
       
   447     ListBox()->HandleItemAdditionL();
       
   448     CleanupStack::PopAndDestroy(buffer); //buffer
       
   449 
       
   450     iEngine.SortAttendeesL();
       
   451     }
       
   452 
       
   453 // ---------------------------------------------------------
       
   454 // CAttendeeEditorDlg::CheckEmailAddressL
       
   455 // ---------------------------------------------------------
       
   456 //
       
   457 TBool CAttendeeEditorDlg::CheckEmailAddressL( TDesC& aEmail ) const
       
   458     {
       
   459     if ( aEmail.Find( KFindString ) == KErrNotFound )
       
   460         {
       
   461         AttendeeNotes::InformationNoteL( R_ATTENDEE_INCORRECT_EMAIL_NOTE );
       
   462         return EFalse;
       
   463         }
       
   464     return ETrue;
       
   465     }
       
   466 
       
   467 // ---------------------------------------------------------
       
   468 // CAttendeeEditorDlg::DeleteAttendeesCmdL
       
   469 // ---------------------------------------------------------
       
   470 //
       
   471 void CAttendeeEditorDlg::DeleteAttendeesCmdL()
       
   472     {
       
   473     const TInt marked( ListBox()->SelectionIndexes()->Count() );
       
   474 
       
   475     if ( marked )
       
   476         {
       
   477         if ( AttendeeNotes::AttendeeViewConfirmationQueryL( marked ) )
       
   478             {
       
   479             iEngine.DeleteItemsL( *ListBox()->SelectionIndexes() );
       
   480             ListBox()->ClearSelection();
       
   481             ListBox()->HandleItemRemovalL();
       
   482             }
       
   483         }
       
   484     else
       
   485         {
       
   486         if ( AttendeeNotes::AttendeeViewConfirmationQueryL( marked ) )
       
   487             {
       
   488             iEngine.DeleteItemL( ListBox()->CurrentItemIndex() );
       
   489             ListBox()->HandleItemRemovalL();
       
   490             }        
       
   491         }   
       
   492     iEngine.SortAttendeesL();
       
   493     }
       
   494 
       
   495 // ---------------------------------------------------------
       
   496 // CAttendeeEditorDlg::ChangeAttendanceCmdL
       
   497 // ---------------------------------------------------------
       
   498 //
       
   499 void CAttendeeEditorDlg::ChangeAttendanceCmdL( 
       
   500                           const CAttendeeItem::TAttendance aAttendance )
       
   501     {
       
   502     const TInt marked( ListBox()->SelectionIndexes()->Count() );
       
   503 
       
   504     if ( marked )
       
   505         {
       
   506         iEngine.ChangeAttendancesL( 
       
   507                     *ListBox()->SelectionIndexes(), aAttendance );
       
   508         ListBox()->ClearSelection();
       
   509         }
       
   510     else
       
   511         {  
       
   512         iEngine.ChangeAttendanceL( 
       
   513                     ListBox()->CurrentItemIndex(), aAttendance );
       
   514         }  
       
   515     iEngine.SortAttendeesL();
       
   516     }
       
   517     
       
   518 // ----------------------------------------------------
       
   519 // CAttendeeDialogBase::DetailsCmdL
       
   520 // ---------------------------------------------------------
       
   521 //
       
   522 void CAttendeeEditorDlg::DetailsCmdL()
       
   523     {
       
   524     TInt index( ListBox()->CurrentItemIndex() );
       
   525     if ( index >= 0 && index < ListBox()->Model()->NumberOfItems() )
       
   526         {
       
   527         CPbkContactItem* item = iEngine.PbkContactItemL( index );
       
   528         if ( !item )
       
   529             {
       
   530             item = CreateContactL(
       
   531                     iEngine.At( index ).AgnAttendee()->Address() );
       
   532             }
       
   533         CleanupStack::PushL( item );
       
   534 
       
   535         CAttendeeDetailsDlg* dlg = CAttendeeDetailsDlg::NewL(
       
   536                                                 item,
       
   537                                                 &iEngine.ContactEngine(),
       
   538                                                 iEngine.At( index ).AgnAttendee()->StatusL(),
       
   539                                                 ETrue ); 
       
   540         dlg->RunLD();
       
   541 
       
   542         CleanupStack::PopAndDestroy( item );
       
   543         }
       
   544     }
       
   545     
       
   546 // -----------------------------------------------------------------------------
       
   547 // CAttendeeEditorDlg::GetHelpContext
       
   548 // -----------------------------------------------------------------------------
       
   549 //
       
   550 void CAttendeeEditorDlg::GetHelpContext( TCoeHelpContext& aContext ) const
       
   551     {
       
   552     
       
   553     //If help text was given in construction use it 
       
   554     if(!iHelpContext.IsNull())
       
   555         {
       
   556         aContext = iHelpContext;
       
   557         }
       
   558     else
       
   559         {
       
   560         //Remove comments after new cale.hlp.hrh is ready
       
   561         //aContext.iContext = KCALE_HLP_ATTENDEE_EDIT;
       
   562         //aContext.iMajor = TUid::Uid( KEcomDllUID );
       
   563         }
       
   564     
       
   565     }
       
   566 
       
   567 // -----------------------------------------------------------------------------
       
   568 // CAttendeeEditorDlg::FilterMenuItems
       
   569 // -----------------------------------------------------------------------------
       
   570 //
       
   571 void CAttendeeEditorDlg::FilterMenuItems( CEikMenuPane *aMenuPane )
       
   572     {
       
   573  
       
   574     if ( iEntryUiCallback.IsCommandAvailable( EMRCommandSend ) )
       
   575         {        
       
   576         aMenuPane->SetItemDimmed( EAttCmdSendMeetingUpdate, ETrue );        
       
   577         }  
       
   578     
       
   579     if ( iEntryUiCallback.IsCommandAvailable( EMRCommandSendUpdate ) )
       
   580         {
       
   581         aMenuPane->SetItemDimmed( EAttCmdSendMeetingRequest, ETrue );
       
   582         }           
       
   583     }
       
   584 
       
   585 
       
   586 // End of File