wlansecuritysettings/wlaneapsettingsui/EapTls/ConfigUi/src/EapTlsUiView.cpp
branchRCL_3
changeset 18 bad0cc58d154
parent 17 30e048a7b597
child 19 c74b3d9f6b9e
--- a/wlansecuritysettings/wlaneapsettingsui/EapTls/ConfigUi/src/EapTlsUiView.cpp	Thu Aug 19 09:58:27 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1267 +0,0 @@
-/*
-* Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: Implementation of EAP TLS UI settings dialog
-*
-*/
-
-/*
-* %version: 41 %
-*/
-
-// INCLUDE FILES
-#include <eikdialg.h>
-#include <AknDialog.h>
-#include <aknlists.h>
-#include "EapTlsUiView.h"
-#include "EapTlsUi.hrh"
-#include <eaptlsui.rsg>
-#include <akntextsettingpage.h>
-#include <aknsettingitemlist.h>
-#include "EapTlsUiSettingArray.h"
-#include <aknnavi.h>
-#include <akntabgrp.h>
-#include <aknnavide.h>
-#include <aknnotewrappers.h> // TEMPORARY, for info message...
-#include <aknradiobuttonsettingpage.h>
-#include <EapTlsPeapUiConnection.h>
-#include <EapTlsPeapUiDataConnection.h>
-#include <EapTlsPeapUiCipherSuites.h>
-#include <EapTlsPeapUiEapTypes.h>
-#include <EapTlsPeapUiCertificates.h>
-#include <AknIconArray.h>
-#include <AknsUtils.h>
-
-#include <featmgr.h>
-#include <hlplch.h>
-#include <csxhelp/cp.hlp.hrh>
-
-
-// CONSTANTS
-// UID of general settings app, in which help texts are included
-const TUid KHelpUidPlugin = { 0x100058EC };
-
-static const TInt KSuiteArrayGranularity = 4;
-static const TInt KCertificateArrayGranularity = 5;
-static const TInt KMaxLengthOfSuiteName = 255;
-
-_LIT( KNameSeparator, " " );
-_LIT( KEmptyString, "" );
-
-/* This is the maximum length of a certificate's full name, includes
-label, primary and secondary names */
-const TUint32 KMaxFullCertLabelLength = KMaxCertLabelLength + 2 * 
-                                    KMaxNameLength + 1; // 1 is for separator.
-
-// MODULE DATA STRUCTURES
-enum TPageIds
-    {
-    ESettingsPage = 0,
-    ECipherSuitePage
-    };
-
-enum TSettingIds
-    {
-    EUserCertificateItem = 0,
-    ECaCertificateItem,
-    EUsernameInUseItem,
-    EUsernameItem,
-    ERealmInUseItem,
-    ERealmItem
-    };
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::CEapTlsUiDialog
-// -----------------------------------------------------------------------------
-//
-CEapTlsUiDialog::CEapTlsUiDialog( CEapTlsPeapUiConnection* aConnection, 
-								  TInt& aButtonId ) 
-: CAknDialog(),
-  iConnection( aConnection ),
-  iDataConnection( 0 ), 
-  iCipherSuites( 0 ), 
-  iCertificates( 0 ),
-  iUserCertificateListBox( 0 ), 
-  iCaCertificateListBox( 0 ), 
-  iCipherSuiteListBox( 0 ), 
-  iSettingArray( 0 ), 
-  iSettingListBox( 0 ), 
-  iCipherSuitesViewArray( 0 ), 
-  iPreviousText( 0 ), 
-  iButtonId( &aButtonId ),
-  iIsUIConstructionCompleted( EFalse )
-    {
-    }
-
-
-// ---------------------------------------------------------
-// CEapTlsUiDialog::ConstructAndRunLD
-// ---------------------------------------------------------
-//
-TInt CEapTlsUiDialog::ConstructAndRunLD( TInt aResourceId )
-    {
-    CleanupStack::PushL( this );
-
-    iSettingArray = CEapTlsSettingItemArray::NewL();
-
-    User::LeaveIfError( iConnection->Connect() );
-    
-    // Basic data
-    iDataConnection = iConnection->GetDataConnection();
-    if ( iDataConnection == 0 )
-        {
-        User::Leave( KErrNoMemory );
-        }
-    User::LeaveIfError( iDataConnection->Open() );
-    User::LeaveIfError( iDataConnection->GetData( &iUiData ) );
-    
-    // Cipher suites
-    iCipherSuites = iConnection->GetCipherSuiteConnection();
-    if ( iCipherSuites == 0 )
-        {
-        User::Leave( KErrNoMemory );
-        }
-    User::LeaveIfError( iCipherSuites->Open() );
-    User::LeaveIfError( iCipherSuites->GetCipherSuites( &iUiCipherSuites ) );
-
-    iCipherSuitesViewArray = new( ELeave ) CDesCArrayFlat( 
-                                                    KSuiteArrayGranularity );
-
-    FeatureManager::InitializeLibL();
-    
-    ConstructL( R_TLS_MENUBAR );
-    
-    // ExecuteLD will PushL( this ), so we have to Pop it...
-    CleanupStack::Pop( this ); // this
-    
-    return CAknDialog::ExecuteLD( aResourceId );
-    }
-    
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::OfferKeyEventL
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CEapTlsUiDialog::OfferKeyEventL( const TKeyEvent& aKeyEvent,
-                                                    TEventCode aType )
-    {
-    TKeyResponse result( EKeyWasNotConsumed );
-    
-    TInt pageId = ActivePageId();
-    if ( aType == EEventKey && pageId == KEAPTLSCIPHERPAGE )
-        {
-        TInt indexBefore = iCipherSuiteListBox->CurrentItemIndex();
-        
-        // Handle Enter key here, since it doesn't seem to convert into
-        // the proper command id via the normal route
-        // (maybe some Avkon support for Enter key is still missing in
-        // S60 3.2 2008_wk22)
-        if ( aKeyEvent.iCode == EKeyEnter )
-            {
-            if ( ( *iUiCipherSuites )[indexBefore].iIsEnabled )
-                {
-                OkToExitL( ETlsUiCmdDisable );
-                }
-            else
-                {
-                OkToExitL( ETlsUiCmdEnable );
-                }
-                
-            result = EKeyWasConsumed;
-            }
-        else
-            {        
-            result = CAknDialog::OfferKeyEventL( aKeyEvent, aType );
-            }
-            
-        TInt indexAfter = iCipherSuiteListBox->CurrentItemIndex();
-
-        if ( indexBefore != indexAfter )
-            {
-            CEikButtonGroupContainer& cba = ButtonGroupContainer();
-            if( ( *iUiCipherSuites )[ indexAfter ].iIsEnabled )
-                {
-                cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_DISABLE );
-                }
-            else
-                {
-                cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_ENABLE );
-                }
-            
-            cba.DrawDeferred();
-            }
-        }
-    else
-        {
-        result = CAknDialog::OfferKeyEventL( aKeyEvent, aType );
-        }
-
-    return result;
-    }
-    
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::~CEapTlsUiDialog
-// -----------------------------------------------------------------------------
-//
-CEapTlsUiDialog::~CEapTlsUiDialog()
-    {
-    if ( iSettingArray )
-        {
-        iSettingArray->Array()->ResetAndDestroy();
-        }
-
-    delete iSettingArray;
-    iSettingListBox = 0;
-
-    iDataConnection->Close();
-    delete iDataConnection;
-
-    iCipherSuites->Close();
-    delete iCipherSuites;
-    
-    iCertificates->Close();
-    delete iCertificates;
-    
-    iConnection->Close();
-        
-    iCipherSuitesViewArray->Reset();
-    delete iCipherSuitesViewArray;
-    
-    delete iPreviousText;
-    
-    FeatureManager::UnInitializeLib();
-    }
-
-
-// ---------------------------------------------------------
-// CEapTlsUiDialog::HandleListBoxEventL
-// ---------------------------------------------------------
-//
-void CEapTlsUiDialog::HandleListBoxEventL( CEikListBox* aListBox,
-                                           TListBoxEvent aEventType )
-    {
-    switch ( aEventType )
-        {
-        case EEventEnterKeyPressed:
-        case EEventItemSingleClicked:
-            {
-            if ( aListBox == iSettingListBox )
-                {
-                OkToExitL( ETlsUiCmdChange );                 
-                }
-                
-            else if ( aListBox == iCipherSuiteListBox )
-                {
-                TInt index = iCipherSuiteListBox->CurrentItemIndex();
-                if( iUiCipherSuites->At( index ).iIsEnabled )
-                    {
-                    OkToExitL( ETlsUiCmdDisable );
-                    }
-                else
-                    {
-                    OkToExitL( ETlsUiCmdEnable );
-                    }                 
-                }
-                
-            else
-                {
-                // Do nothing; we should never end up here
-                }
-        
-            break;
-            }
-
-        case EEventItemActioned:
-        case EEventEditingStarted:
-        case EEventEditingStopped:
-        case EEventPenDownOnItem:
-        case EEventItemDraggingActioned:
-            {
-            break;
-            }
-
-        default:
-            {
-            break;
-            };
-        };
-    }    
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::PreLayoutDynInitL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::PreLayoutDynInitL()
-    {
-    // Change title
-    ChangeTitleL( ETrue );
-    
-    iSettingListBox = static_cast<CAknSettingStyleListBox*>( 
-                                    ControlOrNull( ETlsSettingsListbox ) );
-    iSettingListBox->SetComponentsToInheritVisibility( ETrue );
-
-    iCipherSuiteListBox = static_cast<CAknSingleGraphicStyleListBox*>( 
-                            ControlOrNull( ETlsSettingsCipherSuiteListbox ) );
-    iCipherSuiteListBox->SetComponentsToInheritVisibility( ETrue );
-        
-      // Certificates
-    iCertificates = iConnection->GetCertificateConnection( this );
-    User::LeaveIfError( iCertificates->Open() );
-    iCertificates->GetCertificates( &iUiUserCertificates, &iUiCACertificates );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::CompleteReadCertificates
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::CompleteReadCertificates( const TInt aResult )
-    {
-    if ( aResult == KErrNone ) // Certifiocates are received from core
-        {
-        TRAPD( err, CompleteUiConstructionL() );
-        if ( err != KErrNone)
-            {
-            TRAP_IGNORE( TryExitL( KErrCancel ) );
-            }
-        }
-    else
-        {
-        TRAP_IGNORE( TryExitL( KErrCancel ) );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::CompleteUiConstructionL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::CompleteUiConstructionL()
-    {
-    // Initialize setting page 
-    iSettingListBox = static_cast<CAknSettingStyleListBox*>( 
-                                        ControlOrNull( ETlsSettingsListbox ) );
-    iSettingListBox->SetMopParent( this );
-    iSettingListBox->CreateScrollBarFrameL( ETrue );
-    iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
-                                                CEikScrollBarFrame::EOff,
-                                                CEikScrollBarFrame::EAuto );
-    iSettingListBox->SetListBoxObserver( this );                                                
-    DrawSettingsListL();
-
-    // Initialize cipher suites page
-    iCipherSuiteListBox = static_cast<CAknSingleGraphicStyleListBox*>( 
-                            ControlOrNull( ETlsSettingsCipherSuiteListbox ) );
-    iCipherSuiteListBox->CreateScrollBarFrameL( ETrue );
-    iCipherSuiteListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
-                                                CEikScrollBarFrame::EOff,
-                                                CEikScrollBarFrame::EAuto );
-    iCipherSuiteListBox->UpdateScrollBarsL();
-    
-    iCipherSuiteListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    iCipherSuiteListBox->SetListBoxObserver( this );    
-
-    //Following deletes internal array created from resources. 
-    // To prevent memory leak.
-    MDesCArray* internalArray = iCipherSuiteListBox->Model()->ItemTextArray();
-    delete internalArray;
-    
-    SetIconsL();
-    DrawCipherSuitesL();
-    
-    iIsUIConstructionCompleted = ETrue;
-    }
-    
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::PostLayoutDynInitL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::PostLayoutDynInitL()
-    {
-    TUid naviPaneUid;
-    naviPaneUid.iUid = EEikStatusPaneUidNavi;
-
-    CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
-    CEikStatusPaneBase::TPaneCapabilities subPane = 
-                                statusPane->PaneCapabilities( naviPaneUid );
-    if ( subPane.IsPresent() && subPane.IsAppOwned() )
-        {
-        CAknNavigationControlContainer* naviPane = 
-                                static_cast<CAknNavigationControlContainer*>(
-                                        statusPane->ControlL( naviPaneUid ) );
-        CAknNavigationDecorator* naviDecorator = naviPane->ResourceDecorator();
-        if ( naviDecorator )
-            {
-            CAknTabGroup* tabGroup = static_cast<CAknTabGroup*>( 
-                                        naviDecorator->DecoratedControl() );
-            tabGroup->SetActiveTabById( 0 ); 
-            tabGroup->SetTabFixedWidthL( KTabWidthWithOneTab );
-            }
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::ChangeTitleL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::ChangeTitleL( TBool aIsStarted )
-    {
-    TUid titlePaneUid;
-    titlePaneUid.iUid = EEikStatusPaneUidTitle;
-
-    CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
-    CEikStatusPaneBase::TPaneCapabilities subPane = 
-                                statusPane->PaneCapabilities( titlePaneUid );
-    
-    if ( subPane.IsPresent() && subPane.IsAppOwned() )
-        {
-        CAknTitlePane* titlePane = static_cast<CAknTitlePane*>( 
-                                        statusPane->ControlL( titlePaneUid ) );
-        if ( aIsStarted )
-            {
-            // Store previous application title text
-            const TDesC* prevText = titlePane->Text();    
-            iPreviousText = HBufC::NewL( prevText->Length() );
-            iPreviousText->Des().Append( *prevText );   
-            
-            TDesC* titleText = iEikonEnv->AllocReadResourceLC( 
-                                                        R_TLS_SETTINGS_TITLE );
-            titlePane->SetTextL( *titleText );
-            CleanupStack::PopAndDestroy( titleText ); 
-            }
-        else
-            {
-            // Set calling application title text back
-            titlePane->SetTextL( *iPreviousText );    
-            }    
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::OkToExitL
-// -----------------------------------------------------------------------------
-//
-TBool CEapTlsUiDialog::OkToExitL( TInt aButtonId )
-    {
-    TBool ret( EFalse );
-    switch ( aButtonId )
-        {
-        case EEikBidOk:
-            {
-            if( iIsUIConstructionCompleted )
-                {
-                TPageIds index = static_cast<TPageIds>( ActivePageIndex() );
-                if ( index == ESettingsPage )
-                    {
-                    ShowSettingPageL( EFalse );
-                    }
-                }
-            else
-                {
-                #if defined(_DEBUG) || defined(DEBUG)
-				RDebug::Print(_L("CEapTlsUiDialog::OkToExitL - UI not ready - Ignoring key press.\n") );
-				#endif
-                }
-            break;
-            }
-
-        case EAknSoftkeyOptions:
-            {
-            DisplayMenuL();
-            break;
-            }
-
-        case EAknSoftkeyBack:
-        case EAknCmdExit:
-            {
-            if( iIsUIConstructionCompleted )
-                {
-                iDataConnection->Update();
-                ChangeTitleL( EFalse );
-                ret = ETrue;
-                }
-            break;
-            }
-            
-        case ETlsUiCmdChange:
-            {
-            TPageIds index = static_cast<TPageIds>( ActivePageIndex() );
-            if ( index == ESettingsPage )
-                {
-                if( iIsUIConstructionCompleted )
-    				{
-        			ShowSettingPageL( EFalse );
-    				}
-    			else
-    			    {
-    				#if defined(_DEBUG) || defined(DEBUG)
-    				RDebug::Print(_L("CEapPeapUiDialog::ProcessCommandL - UI not ready - Ignoring key press.\n") );
-    				#endif
-    			    }
-                }
-            break;
-            }
-        case ETlsUiCmdEnable:
-        case ETlsUiCmdDisable:
-            {
-            ProcessCommandL( aButtonId );
-            ret = EFalse;
-            break;
-            }
-
-        default:
-            {
-            break;
-            }
-        }
-
-    if ( ret )
-        {
-        *iButtonId = aButtonId;
-        }
-
-    return ret;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::DrawSettingsListL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::DrawSettingsListL()
-    {  
-    iSettingArray->Array()->ResetAndDestroy();
-    TInt ordinal = 0;
-
-    TInt activeUserCertificate = CheckActiveUserCertificate();
-    TBuf<KMaxFullCertLabelLength> aActiveuserCertificateName = KEmptyString();
-    if ( activeUserCertificate != KErrNotFound )
-        {
-		TBuf<KMaxFullCertLabelLength> text;
-		GetFullCertLabel( 
-                iUiUserCertificates->At( activeUserCertificate ).iCertEntry,
-                text );
-		aActiveuserCertificateName.Copy( text );		
-        }
-    else
-        {
-        TDesC* notDefinedText = iEikonEnv->AllocReadResourceLC( 
-                                                        R_TLS_NOT_DEFINED );
-        aActiveuserCertificateName.Copy( *notDefinedText );
-        CleanupStack::PopAndDestroy( notDefinedText );
-        }
-
-    iSettingArray->AddTextItemL( aActiveuserCertificateName,
-                                 ETlsSettingsUserCert,
-                                 R_TLS_USER_CERT_SETTING,
-                                 R_TLS_USERNAME_PAGE,
-                                 NULL,
-                                 ordinal++ );
-
-    TInt activeCaCertificate = CheckActiveCaCertificate();
-    TBuf<KMaxFullCertLabelLength> aActiveCaCertificateName = KEmptyString();
-    if ( activeCaCertificate != KErrNotFound )
-        {
-		TBuf<KMaxFullCertLabelLength> text;
-		GetFullCertLabel(
-                    iUiCACertificates->At( activeCaCertificate ).iCertEntry, 
-                    text );
-		aActiveCaCertificateName.Copy( text );				
-        }
-    else
-        {
-        TDesC* notDefinedText = iEikonEnv->AllocReadResourceLC( 
-                                                        R_TLS_NOT_DEFINED );
-        aActiveCaCertificateName.Copy( *notDefinedText );
-        CleanupStack::PopAndDestroy( notDefinedText );                
-        }
-
-    iSettingArray->AddTextItemL( aActiveCaCertificateName,
-                                 ETlsSettingsCaCert,
-                                 R_TLS_CA_CERT_SETTING,
-                                 R_TLS_USERNAME_PAGE,
-                                 NULL,
-                                 ordinal++ );
-
-    iSettingArray->AddBinarySettingItemL( R_TLS_DISPLAY_AUTOUSECONF_PAGE,
-                                          R_TLS_USERNAME_INUSESTRING, 
-                                          R_TLS_USERNAME_AUTOUSECONF_TEXTS,
-                                          ordinal++,
-                                          *iUiData->GetUseManualUsername() );
-                                
-    iSettingArray->AddTextItemL( iUiData->GetManualUsername(),
-                                 ETlsTabSheetSettingsUsername,
-                                 R_TLS_USERNAME_STRING,
-                                 R_TLS_USERNAME_PAGE,
-                                 NULL,
-                                 ordinal++ );
-
-    iSettingArray->AddBinarySettingItemL( R_TLS_DISPLAY_AUTOUSECONF_PAGE, 
-                                          R_TLS_REALM_INUSESTRING, 
-                                          R_TLS_REALM_AUTOUSECONF_TEXTS,
-                                          ordinal++,
-                                          *iUiData->GetUseManualRealm() );    
-
-    iSettingArray->AddTextItemL( iUiData->GetManualRealm(),
-                                 ETlsTabSheetSettingsRealm,
-                                 R_TLS_REALM_STRING,
-                                 R_TLS_REALM_PAGE,
-                                 NULL,
-                                 ordinal++ );
-
-    iSettingArray->AddBinarySettingItemL( R_TLS_DISPLAY_AUTOUSECONF_PAGE,
-                                          R_TLS_TLS_PRIVACY_STRING, 
-                                          R_TLS_TLS_PRIVACY_AUTOUSECONF_TEXTS,
-                                          ordinal++,
-                                          *iUiData->GetTlsPrivacy() );
-        
-    iSettingListBox->Model()->SetItemTextArray( iSettingArray->Array() );
-    iSettingListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    iSettingArray->Array()->RecalculateVisibleIndicesL();
-    iSettingListBox->HandleItemAdditionL();
-    iSettingListBox->UpdateScrollBarsL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::DynInitMenuPaneL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::DynInitMenuPaneL( TInt aResourceId, 
-                                        CEikMenuPane* aMenuPane )
-    {
-    CAknDialog::DynInitMenuPaneL( aResourceId, aMenuPane );
-
-    if ( aMenuPane && aResourceId == R_TLS_MENU_PANE )
-        {
-        if ( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
-            aMenuPane->DeleteMenuItem( EAknCmdHelp );
-            }
-
-        TPageIds index = static_cast<TPageIds>( ActivePageIndex() );
-        if ( index == ESettingsPage )
-            {
-            aMenuPane->SetItemDimmed( ETlsUiCmdEnable,  ETrue );
-            aMenuPane->SetItemDimmed( ETlsUiCmdDisable, ETrue );
-            }
-        else if ( index == ECipherSuitePage )
-            {
-            aMenuPane->SetItemDimmed( ETlsUiCmdChange, ETrue );
-
-            if ( iCipherSuitesViewArray->Count() > 0 )
-                {
-                TInt currIndex = iCipherSuiteListBox->CurrentItemIndex();
-                TBool enabled = iUiCipherSuites->At( currIndex ).iIsEnabled;
-
-                // Hide either "Enable" or "Disable", as appropriate.
-                aMenuPane->SetItemDimmed( ETlsUiCmdEnable,  enabled );
-                aMenuPane->SetItemDimmed( ETlsUiCmdDisable, !enabled );
-                }
-            else
-                {
-                aMenuPane->SetItemDimmed( ETlsUiCmdEnable,  ETrue );
-                aMenuPane->SetItemDimmed( ETlsUiCmdDisable, ETrue );
-                }
-            }
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::ProcessCommandL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::ProcessCommandL( TInt aCommand )
-    {
-    if ( MenuShowing() )
-        {
-        HideMenu();
-        }
-
-    TPageIds pageIndex = static_cast<TPageIds>( ActivePageIndex() );
-    switch( aCommand )
-        {
-        case EAknCmdExit:
-            {
-            TryExitL( aCommand );
-            break;
-            }
-
-        case EAknCmdHelp:
-            {
-            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
-                                    iEikonEnv->EikAppUi()->AppHelpContextL() );
-            break;
-            }
-
-        case ETlsUiCmdChange:
-            {
-            if ( pageIndex == ESettingsPage )
-                {
-                if( iIsUIConstructionCompleted )
-    				{
-        			ShowSettingPageL( ETrue );
-    				}
-    			else
-    			    {
-    				#if defined(_DEBUG) || defined(DEBUG)
-    				RDebug::Print(_L("CEapTlsUiDialog::ProcessCommandL - UI not ready - Ignoring key press.\n") );
-    				#endif						
-    			    }
-                }    
-            break;
-            }
-
-        case ETlsUiCmdEnable:
-            {
-            if ( pageIndex == ECipherSuitePage )    // Safety check in tls.
-                {
-                TInt index = iCipherSuiteListBox->CurrentItemIndex();
-                iUiCipherSuites->At( index ).iIsEnabled = ETrue;
-                iCipherSuites->Update();
-                DrawCipherSuitesL();
-                CEikButtonGroupContainer& cba = ButtonGroupContainer();
-                cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_DISABLE );
-                cba.DrawDeferred();
-                }
-            break;
-            }
-
-        case ETlsUiCmdDisable:
-            {
-            if ( pageIndex == ECipherSuitePage )    // Safety check in tls.
-                {
-                TInt index = iCipherSuiteListBox->CurrentItemIndex();
-                iUiCipherSuites->At( index ).iIsEnabled = EFalse;
-                iCipherSuites->Update();                
-                DrawCipherSuitesL();
-                CEikButtonGroupContainer& cba = ButtonGroupContainer();
-                cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_ENABLE );
-                cba.DrawDeferred();
-                }            
-            break;
-            }
-
-        default:
-            {
-            break;
-            }
-        }
-    }
-    
-    
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::PageChangedL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::PageChangedL( TInt aPageId )
-    {
-    if ( !iIsUIConstructionCompleted )
-        {
-        return;
-        }
-    
-    if ( aPageId == KEAPTLSSETTINGSPAGE )
-        {
-        if (iSettingListBox->ScrollBarFrame())
-            {
-            iSettingListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(ETrue);
-            }
-        if (iCipherSuiteListBox->ScrollBarFrame())
-            {
-            iCipherSuiteListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse);
-            }
-        }
-
-    else if ( aPageId == KEAPTLSCIPHERPAGE )
-        {
-        if (iSettingListBox->ScrollBarFrame())
-            {
-            iSettingListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse);
-            }
-        if (iCipherSuiteListBox->ScrollBarFrame())
-            {
-            iCipherSuiteListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(ETrue);
-            }
-        }
-        
-    CEikButtonGroupContainer& cba = ButtonGroupContainer();
-    if( aPageId == KEAPTLSSETTINGSPAGE )
-        {
-        cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_EDIT );
-        }
-    else if( aPageId == KEAPTLSCIPHERPAGE )
-        {
-        TInt index = iCipherSuiteListBox->CurrentItemIndex();
-        if( ( *iUiCipherSuites )[ index ].iIsEnabled )
-            {
-            cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_DISABLE );
-            }
-        else
-            {
-            cba.SetCommandSetL( R_TLS_UI_SOFTKEYS_OPTIONS_BACK_ENABLE );
-            }
-        }
-    cba.DrawDeferred();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::ShowSettingPageL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::ShowSettingPageL( TInt aCalledFromMenu ) 
-    {
-    TInt index = iSettingListBox->CurrentItemIndex();
-    if ( index == EUserCertificateItem )
-        {
-        TInt activeUserCertificate = CheckActiveUserCertificate();
-        CDesCArrayFlat* tempArray = new( ELeave )CDesCArrayFlat( 
-                                                KCertificateArrayGranularity );
-        CleanupStack::PushL( tempArray );
-    
-        TDesC* noneText = iEikonEnv->AllocReadResourceLC( 
-                                                        R_TLS_NONE_SELECTION );
-        tempArray->InsertL( 0, *noneText );
-        CleanupStack::PopAndDestroy( noneText );
-    
-        for ( TInt i = 0; i < iUiUserCertificates->Count() ; i++ )
-            {
-            TEapTlsPeapUiCertificate certificate = 
-                                                iUiUserCertificates->At( i );
-            SCertEntry entry = certificate.iCertEntry;
-			TBuf<KMaxFullCertLabelLength> text;
-			GetFullCertLabel( entry, text);
-			tempArray->InsertL( i+1, text );
-            }
-
-        TInt selected( 0 );    
-        if ( activeUserCertificate == KErrNotFound )
-            {
-            selected = ShowRadioButtonSettingPageL( R_TLS_USER_CERT_SETTING, 
-                                                    tempArray, 0 );
-            }
-        else 
-            {
-            selected = ShowRadioButtonSettingPageL( R_TLS_USER_CERT_SETTING, 
-                                                    tempArray, 
-                                                    activeUserCertificate+1 );
-                                    //Plus 1 cause we added 'none' selection
-            }
-
-        CleanupStack::PopAndDestroy( tempArray );
-        UserCertificateHouseKeeping( selected );    
-        iCertificates->Update();
-        DrawSettingsListL(); // List must be drawn again at this stage
-        }
-    else if ( index == ECaCertificateItem )
-        {
-        TInt activeCaCertificate = CheckActiveCaCertificate();
-
-        CDesCArrayFlat* tempArray = new( ELeave )CDesCArrayFlat( 
-                                                KCertificateArrayGranularity );
-        CleanupStack::PushL( tempArray );
-
-        TDesC* noneText = iEikonEnv->AllocReadResourceLC( 
-                                                        R_TLS_NONE_SELECTION );
-        tempArray->InsertL( 0, *noneText );
-        CleanupStack::PopAndDestroy( noneText );
-
-        for ( TInt i = 0; i < iUiCACertificates->Count(); i++ )
-            {
-            TEapTlsPeapUiCertificate certificate = iUiCACertificates->At( i );
-            SCertEntry entry = certificate.iCertEntry;
-            TBuf<KMaxFullCertLabelLength> text;
-			GetFullCertLabel( entry, text );
-			tempArray->InsertL( i+1, text );
-            }
-
-        TInt selected( 0 );
-        if ( activeCaCertificate == KErrNotFound )
-            {
-            selected = ShowRadioButtonSettingPageL( R_TLS_CA_CERT_SETTING, 
-                                                    tempArray, 0 );
-            }
-        else
-            {
-            selected = ShowRadioButtonSettingPageL( R_TLS_CA_CERT_SETTING, 
-                                                    tempArray, 
-                                                    activeCaCertificate+1 );
-                                    //Plus 1 cause we added 'none' selection
-            }
-
-        CleanupStack::PopAndDestroy( tempArray );
-        CaCertificateHouseKeeping( selected );
-        iCertificates->Update();
-        DrawSettingsListL(); // List must be drawn again at this stage
-        }
-    else
-        {
-        CAknSettingItem* item = iSettingArray->Array()->At( index );
-        item->EditItemL( aCalledFromMenu );
-        item->StoreL();
-        }
-    DrawNow();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::ShowRadioButtonSettingPageL
-// -----------------------------------------------------------------------------
-//
-TInt CEapTlsUiDialog::ShowRadioButtonSettingPageL( TInt aTitle, 
-                                                   CDesCArrayFlat* aValues,
-                                                   TInt aCurrentItem )
-    {
-    // title of the dialog
-    HBufC* title = iCoeEnv->AllocReadResourceLC( aTitle );
-
-    // We have everything to create dialog
-    CAknRadioButtonSettingPage* dlg = new( ELeave )CAknRadioButtonSettingPage(
-                                                R_RADIO_BUTTON_SETTING_PAGE,
-                                                aCurrentItem, 
-                                                aValues );
-    CleanupStack::PushL( dlg );
-    dlg->SetSettingTextL( *title ); 
-    CleanupStack::Pop( dlg ); 
-    dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged );
-    CleanupStack::PopAndDestroy( title ); 
-    // index must be re-turned upside down, because options list is upside down
-    return aCurrentItem;
-    }
-  
- 
-  
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::DrawCipherSuitesL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::DrawCipherSuitesL()
-    {
-    iCipherSuitesViewArray->Reset();
-    TInt listCount( 0 );
-    TBuf<KMaxLengthOfSuiteName> temp;
-
-    for ( TInt i = 0; i < iUiCipherSuites->Count() ; i++ )
-        {
-        temp.Zero();
-        _LIT( KTab, "\t" );
-        temp.Append( KTab );
-        TEapTlsPeapUiCipherSuite suite = iUiCipherSuites->At( i );
-        TUint32 suiteId = suite.iCipherSuite;
-
-        switch ( suiteId )
-            {
-            case 0x0004:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_RSARC4MD5 );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );
-                break;
-                }
-
-            case 0x0005:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_RSARC4SHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );
-                break;
-                }
-
-            case 0x000a:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_RSA3DESSHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );
-                break;
-                }
-
-            case 0x0016:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_DHERSA3DESSHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );            
-                break;
-                }
-
-            case 0x0013:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_DHEDSS3DESSHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );        
-                break;
-                }
-
-            case 0x002F:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_RSAAESSHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );                
-                break;
-                }
-
-            case 0x0032:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_DHERSAAESSHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );        
-                break;
-                }
-
-            case 0x0033:
-                {
-                HBufC* suite = iCoeEnv->AllocReadResourceLC( 
-                                                R_TLS_SUITE_DHEDSSAESSHA );
-                temp.Append( *suite );
-                CleanupStack::PopAndDestroy( suite );                     
-                break;
-                }
-
-            default:
-                {
-                temp.Append( KEmptyString );                                    
-                break;
-                }
-
-            }
-
-        if (iUiCipherSuites->At( i ).iIsEnabled)
-            {
-            // Add mark icon to indicate that the suite is enabled
-            _LIT( KTab0, "\t0" );
-            temp.Append( KTab0 );    
-            }
-
-        iCipherSuitesViewArray->InsertL( listCount, temp );
-        listCount++;                
-        }
-
-    iCipherSuiteListBox->Model()->SetItemTextArray( iCipherSuitesViewArray );
-    iCipherSuiteListBox->HandleItemAdditionL();
-    iCipherSuiteListBox->DrawDeferred();
-    iCipherSuiteListBox->UpdateScrollBarsL();        
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::CheckActiveUserCertificate
-// -----------------------------------------------------------------------------
-//
-TInt CEapTlsUiDialog::CheckActiveUserCertificate()
-    {
-    for ( TInt i = 0; i < iUiUserCertificates->Count(); i++ )
-        {
-        if ( iUiUserCertificates->At( i ).iIsEnabled )
-            {
-            return i;
-            }
-        }
-
-    return KErrNotFound;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::CheckActiveCaCertificate
-// -----------------------------------------------------------------------------
-//
-TInt CEapTlsUiDialog::CheckActiveCaCertificate()
-    {
-    for ( TInt i = 0; i < iUiCACertificates->Count(); i++ )
-        {
-        if ( iUiCACertificates->At( i ).iIsEnabled )
-            {
-            return i;
-            }
-        }
-
-    return KErrNotFound;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::UserCertificateHouseKeeping
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::UserCertificateHouseKeeping( TInt aSelected )
-    {
-    for ( TInt i = 0; i < iUiUserCertificates->Count(); i++ )
-        {
-        iUiUserCertificates->At( i ).iIsEnabled = EFalse;
-        }
-
-    if ( aSelected != 0 ) // Zero index is none
-        {
-        iUiUserCertificates->At( aSelected-1 ).iIsEnabled = ETrue;
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::CaCertificateHouseKeeping
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::CaCertificateHouseKeeping( TInt aSelected )
-    {
-    for ( TInt i = 0; i < iUiCACertificates->Count(); i++ )
-        {
-        iUiCACertificates->At( i ).iIsEnabled = EFalse;
-        }
-
-    if ( aSelected != 0 ) // Zero index is none
-        {        
-        iUiCACertificates->At( aSelected-1 ).iIsEnabled = ETrue;
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::SetIconsL
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::SetIconsL()
-    {
-    CArrayPtr< CGulIcon >* icons = new( ELeave ) CAknIconArray( 1 );
-    CleanupStack::PushL( icons );
-
-    MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
-
-/*    icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, 
-                                        KAknsIIDQgnIndiMarkedAdd,
-                                        AknIconUtils::AvkonIconFileName(),
-                                        EMbmAvkonQgn_indi_marked_add, 
-                                        EMbmAvkonQgn_indi_marked_add_mask ) );
-*/
-
-    CGulIcon* icon = CGulIcon::NewLC();
-    CFbsBitmap* bitmap = NULL;
-    CFbsBitmap* mask = NULL;    
-    AknsUtils::CreateColorIconL( skinInstance,
-                                 KAknsIIDQgnIndiMarkedAdd, 
-                                 KAknsIIDQsnIconColors, 
-                                 EAknsCIQsnIconColorsCG13, 
-                                 bitmap, 
-                                 mask, 
-                                 AknIconUtils::AvkonIconFileName(),
-                                 EMbmAvkonQgn_indi_marked_add, 
-                                 EMbmAvkonQgn_indi_marked_add_mask,
-                                 KRgbBlack );
-    icon->SetBitmap( bitmap );
-    icon->SetMask( mask );    
-    icons->AppendL( icon );
-                
-    CleanupStack::Pop( icon ); 
-    CleanupStack::Pop( icons ); // icons
-
-    iCipherSuiteListBox->ItemDrawer()->ColumnData()->SetIconArray( icons );
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CEapTlsUiDialog::GetHelpContext
-// -----------------------------------------------------------------------------
-//
-void CEapTlsUiDialog::GetHelpContext( TCoeHelpContext& aContext ) const
-    {
-    aContext.iMajor = KHelpUidPlugin;
-    TPageIds index = static_cast< TPageIds >( ActivePageIndex() );
-    switch ( index )
-        {
-        case ECipherSuitePage:
-            {
-            aContext.iContext = KSET_HLP_WLAN_EAP_TLS_SUITES;
-            break;
-            }
-
-        default:
-            {
-            aContext.iContext = KSET_HLP_WLAN_EAP_TLS_SETT;
-            break;
-            }
-        }
-    }
-
-
-
-void CEapTlsUiDialog::GetFullCertLabel( const SCertEntry& aCert, 
-                                        TDes& aFullLabel )
-    {
-    TInt length = 0;
-
-	// For label.
-    length += aCert.iLabel.Length();
-
-	// For separator between label and primary name.    
-    length += KNameSeparator.iTypeLength;    
-    
-    // For primary name.
-    length += aCert.iPrimaryName.Length();
-
-    if ( !( aCert.iLabel.Length() ) )
-        {	
-    	// For secondary name.
-	    length += aCert.iSecondaryName.Length();
-        }
-    
-    if( length > aFullLabel.MaxLength() )
-        {
-#if defined(_DEBUG) || defined(DEBUG)
-		RDebug::Print(_L("CEapTlsUiDialog::GetFullCertLabel - ERROR! Length Mismatch in Certificate's full name\n") );
-#endif
-        }
-
-    HBufC* label = NULL;
-    TRAPD(err, label = HBufC::NewL( length ));
-    if (err)
-        {
-#if defined(_DEBUG) || defined(DEBUG)
-        RDebug::Print(_L("CEapTlsUiDialog::GetFullCertLabel - ERROR! LEAVE: HBufC::NewL\n") );
-#endif
-        return;
-        }
-    label->Des().Append( aCert.iLabel );
-
-    label->Des().Append( KNameSeparator );
-    label->Des().Append( aCert.iPrimaryName );
-
-    if ( !( aCert.iLabel.Length() ) )
-        {
-    	// Secondary name, only if no label. Certificate manager does the same way.
-	    label->Des().Append( aCert.iSecondaryName );
-        }
-            
-	aFullLabel.Copy( label->Des().Left( aFullLabel.MaxLength() ) );   
-    
-    delete label;
-    label = NULL;
-    }
-
-
-//  End of File