vpnui/vpnmanagementui/src/vpnuiloader.cpp
changeset 17 8962128a2656
parent 4 29b591713d44
child 19 c29f8e059978
--- a/vpnui/vpnmanagementui/src/vpnuiloader.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,621 +0,0 @@
-/*
-* Copyright (c) 2003 - 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:   VPN management main view
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <aknnotewrappers.h> // for warning & information notes
-#include <AknWaitDialog.h>
-#include <cmmanagerext.h>
-#include <cmdestinationext.h>
-#include <cmpluginvpndef.h>
-#include <cmapplicationsettingsui.h>
-#include <commdb.h>
-#include <sysutil.h>
-#include <ErrorUI.h>
-#include <bautils.h>
-#include <vpnmanagementuirsc.rsg>
-#include "vpnuiloader.h"
-#include "vpnmanagementuiview.h"
-#include "vpnmanagementuipolicyview.h"
-#include "vpnmanagementuiserverview.h"
-#include "vpnmanagementuilogview.h"
-#include "vpnmanagementuiserversettingsview.h"
-#include "version.h"
-#include "vpnmanagementuiserversettingscontainer.h"
-
-#include "log_vpnmanagementui.h"
-
-// CONSTANTS
-
-
-using namespace CMManager;
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CVpnUiLoader::CVpnUiLoader()
-// Constructor with parent
-// ---------------------------------------------------------
-//
-CVpnUiLoader::CVpnUiLoader( CVpnManagementUiView* aUiView ):
-    iVpnManagementUiView(aUiView),
-    iResourceLoader(*iCoeEnv)
-    {
-    LOG_("CVpnUiLoader::CVpnUiLoader()");
-    ASSERT( aUiView );
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::~CVpnUiLoader()
-// Destructor
-// ---------------------------------------------------------
-//
-CVpnUiLoader::~CVpnUiLoader()
-    {
-    LOG_("CVpnUiLoader::~CVpnUiLoader()");
-    iVpnManagementUiView = NULL;
-    
-    if ( iLogViewVisited == EFalse )
-       delete iVpnManagementUiLogView;
-        
-    if ( iPolicyViewVisited == EFalse )
-       delete iVpnManagementUiPolicyView;
-       
-    delete iVpnManagementUiParametersView;
-    delete iVpnManagementUiServerView;
-        
-    if(iVersionInfoInNaviPane)
-        {
-        delete iVersionInfoInNaviPane; 
-        }
-    delete iVpnApiWrapper;
-    delete iWaitDialog;
-	iResourceLoader.Close();
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader* CVpnUiLoader::NewL()
-// ---------------------------------------------------------
-//
-CVpnUiLoader* CVpnUiLoader::NewL(
-    const TRect& aRect, TUid aViewId,
-    CVpnManagementUiView* aUiView )
-    {
-    CVpnUiLoader* self = NewLC( aRect, aViewId, aUiView );
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader* CVpnUiLoader::NewLC()
-// ---------------------------------------------------------
-//
-CVpnUiLoader* CVpnUiLoader::NewLC(
-    const TRect& aRect, TUid aViewId,
-    CVpnManagementUiView* aUiView )
-    {
-    CVpnUiLoader* self = new ( ELeave ) CVpnUiLoader( aUiView );
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect, aViewId );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::ConstructL()
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::ConstructL( const TRect& aRect, TUid aViewId )
-    {
-    LOG_("CVpnUiLoader::ConstructL() - begin");
-    
-    AddResourceFileL();
-    //Initialization
-    iBackFromServerDefinition = EFalse;
-    iNewServerDefinition = EFalse;
-    iPolicyUpdate = EFalse;
-
-    CEikStatusPane* statusPane = STATIC_CAST(
-        CAknAppUi*, iEikonEnv->EikAppUi())->StatusPane();
-
-    // Fetch pointer to the default navi pane control
-    iNaviPane =  static_cast<CAknNavigationControlContainer*> (
-        statusPane->ControlL( TUid::Uid(EEikStatusPaneUidNavi) ) );
-    
-	iPreviousAppViewId = aViewId;
-	CreateWindowL();
-
-    iVpnManagementUiPolicyView = CVpnManagementUiPolicyView::NewL( 
-        aRect, *this);
-    iVpnManagementUiServerView = CVpnManagementUiServerView::NewL( 
-        aRect, *this);
-    iVpnManagementUiLogView = CVpnManagementUiLogView::NewL( aRect, *this);
-    iVpnManagementUiParametersView = CServerSettingsView::NewL( aRect, *this);
-
-	SetRect(aRect);
-
-    LOG(Log::Printf(_L("CVpnUiLoader::ConstructL() - end\n")));
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::FocusChanged(TDrawNow aDrawNow)
-// Added here because FocusChanged need to be included
-// in every control derived from CCoeControl that can have listbox 
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::FocusChanged(TDrawNow aDrawNow)
-	{
-	if (iListBox) 
-		{
-		iListBox->SetFocus(IsFocused(), aDrawNow);
-		}
-	}
-
-// ---------------------------------------------------------
-// CVpnUiLoader::ChangeViewL(TInt aNewTab, TInt aSelectionIndex)
-// Called when the view tab is changed
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::ChangeViewL(TInt aNewTab, TInt aSelectionIndex)
-    {
-    LOG_1("CVpnUiLoader::ChangeViewL():%d", aNewTab);
-	switch (aNewTab)
-		{
-
-		case KChangeViewPrevious:
-            {
-            TVwsViewId currentViewId;
-            ((CAknViewAppUi*)iAvkonAppUi)->GetActiveViewId(currentViewId);
-            
-            if(iPreviousViewId == currentViewId.iViewUid)
-                {
-                ((CAknViewAppUi*)iAvkonAppUi)->RegisterViewL(*iVpnManagementUiView);
-				((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL( KVpnManagementPluginUid );
-                }
-            else
-                {
-                ((CAknViewAppUi*)iAvkonAppUi)->RegisterViewL(*iVpnManagementUiView);
-				((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL( 
-                iPreviousViewId );
-                }
-			break;
-            }
-		case KChangeViewBack:
-      ((CAknViewAppUi*)iAvkonAppUi)->RemoveView(KVpnManagementUiPolicyViewId);
-			((CAknViewAppUi*)iAvkonAppUi)->RemoveView(KVpnManagementUiLogViewId);
-			((CAknViewAppUi*)iAvkonAppUi)->RemoveView(KVpnManagementUiParametersViewId);
-			((CAknViewAppUi*)iAvkonAppUi)->RemoveView(KVpnManagementUiServerViewId);
-			((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL( iGsViewId.iViewUid );
-			ReleaseResource(ETrue);
-            if(iObserver)
-                {
-                iObserver->UiComplete(KUirEventNone);
-                }
-			break;
-
-		case KChangeViewPolicy: //Policy view
-            {
-            // the current view is saved so we 
-            // know where to come back
-            TVwsViewId localCurrentViewId;
-			((CAknViewAppUi*)iAvkonAppUi)->GetActiveViewId( 
-                localCurrentViewId );
-
-			iPreviousViewId = localCurrentViewId.iViewUid;
-			if ( iPolicyViewVisited == EFalse)
-			    ((CAknViewAppUi*)iAvkonAppUi)->AddViewL(iVpnManagementUiPolicyView);
-			iPolicyViewVisited=ETrue;
-			((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL(
-                  KVpnManagementUiPolicyViewId );
-			break;
-            }
-		case KChangeViewServer:  //Policy server view  
-            {
-            // the current view is saved so we 
-            // know where to come back
-            TVwsViewId localCurrentViewId;
-			((CAknViewAppUi*)iAvkonAppUi)->GetActiveViewId( 
-                localCurrentViewId );
-
-			iPreviousViewId = localCurrentViewId.iViewUid;
-
-			((CAknViewAppUi*)iAvkonAppUi)->AddViewL(iVpnManagementUiServerView);
-			((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL( 
-                  KVpnManagementUiServerViewId ); 
-			break;
-            }
-        case KChangeViewLog: //Log view
-            {
-            // the current view is saved so we 
-            // know where to come back
-            TVwsViewId localCurrentViewId;
-			((CAknViewAppUi*)iAvkonAppUi)->GetActiveViewId( 
-                localCurrentViewId );
-
-			iPreviousViewId = localCurrentViewId.iViewUid;
-			if ( iLogViewVisited == EFalse)
-			    ((CAknViewAppUi*)iAvkonAppUi)->AddViewL(iVpnManagementUiLogView);
-			iLogViewVisited=ETrue;
-			((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL(
-                  KVpnManagementUiLogViewId );
-            break;
-			}
-
-        case KChangeViewSettings: //VPN policy server parameters view
-			{
-			// the current view is saved so that close settings 
-            // knows where to come back
-			TVwsViewId localCurrentViewId;
-			((CAknViewAppUi*)iAvkonAppUi)->GetActiveViewId( 
-                localCurrentViewId );
-
-			iPreviousViewId = localCurrentViewId.iViewUid;
-            //Put selected server to CustomMessageId 
-			((CAknViewAppUi*)iAvkonAppUi)->AddViewL(iVpnManagementUiParametersView);
-			((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL(
-                  KVpnManagementUiParametersViewId,
-                TUid::Uid( aSelectionIndex), KNullDesC8 );
-			break;
-			}
-
-		default:
-			break;	
-		}
-    }
-
-// ----------------------------------------------------
-// CVpnUiLoader::ActivateTitleL(TInt aCurrentTitle)
-// Activates the VPN policies, VPN policy servers and
-// VPN log views title
-// ----------------------------------------------------
-//
-void CVpnUiLoader::ActivateTitleL(TInt aCurrentTitle)
-    {
-	CEikStatusPane* sp = STATIC_CAST( 
-        CAknAppUi*, iEikonEnv->EikAppUi())->StatusPane();
-	// Fetch pointer to the default title pane control
-	CAknTitlePane* title = STATIC_CAST( 
-        CAknTitlePane*, sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle)) );
-	TResourceReader reader;
-
-    if ( aCurrentTitle == KViewTitleManagementView )
-	    {
-		iCoeEnv->CreateResourceReaderLC( reader, R_VPN_MANAGEMENT_TITLE );
-		}
-	if ( aCurrentTitle == KViewTitlePolicyView )
-		{
-		iCoeEnv->CreateResourceReaderLC( reader, R_VPN_POLICIES_TITLE );
-		}
-    if ( aCurrentTitle == KViewTitleServerView )
-		{
-		iCoeEnv->CreateResourceReaderLC( reader, R_VPN_POLICY_SERVERS_TITLE );
-		}
-    if ( aCurrentTitle == KViewTitleLogView )
-		{
-		iCoeEnv->CreateResourceReaderLC( reader, R_VPN_LOG_TITLE );
-		}
-
-	title->SetFromResourceL( reader );
-	CleanupStack::PopAndDestroy();  // reader
-    }
-
-void CVpnUiLoader::ActivateTitleL(TInt aCurrentTitle, TDes& aText)
-    {
-	CEikStatusPane* sp = STATIC_CAST( 
-        CAknAppUi*, iEikonEnv->EikAppUi())->StatusPane();
-	// Fetch pointer to the default title pane control
-	CAknTitlePane* title = STATIC_CAST( 
-        CAknTitlePane*, sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle)) );
-
-    if ( aCurrentTitle == KViewTitleParametersView )
-        {
-        title->SetTextL(aText);
-        }
-    }
-// ----------------------------------------------------
-// CVpnUiLoader::ActivateNaviTextL()
-// Activates the VPN log view Navipane text (Version information)
-// ----------------------------------------------------
-//
-void CVpnUiLoader::ActivateNaviTextL()
-    {
-  	// version information in navi pane text shown in VPN Log view
-    //TBuf<KVersionLine> version(KVersion);
-    HBufC* naviText = StringLoader::LoadLC( 
-        R_VPN_NAVI_CLIENT_VERSION, KVersion/*version*/ );
-    TPtr naviDes=naviText->Des();
-    AknTextUtils::DisplayTextLanguageSpecificNumberConversion(naviDes);
-    iVersionInfoInNaviPane = iNaviPane->CreateMessageLabelL(*naviText);
-    CleanupStack::PopAndDestroy(); //naviText
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::PushNaviPaneL
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::PushNaviPaneL()
-    {
-    iNaviPane->PushL( *iVersionInfoInNaviPane );
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::PopNaviPane
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::PopNaviPane()
-    {
-    if(iVersionInfoInNaviPane)
-        {
-        delete iVersionInfoInNaviPane; //A control is popped from stack
-        iVersionInfoInNaviPane = NULL;
-        }
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::PushDefaultNaviPaneL
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::PushDefaultNaviPaneL()
-    {
-    iNaviPane->PushDefaultL();
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::HandleControlEventL(
-//      CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
-// Cannot be changed to non-leaving function. 
-// L-function is required by the class definition, even if empty.
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::HandleControlEventL(
-    CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::OfferKeyEventL()
-// ---------------------------------------------------------
-//
-TKeyResponse CVpnUiLoader::OfferKeyEventL(
-    const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
-	{
-	// Listbox takes all event even if it doesn't use them
-	return EKeyWasNotConsumed; 
-	}
-
-// ----------------------------------------------------------
-// AddResourceFileL()
-// ----------------------------------------------------------
-//
-void CVpnUiLoader::AddResourceFileL(TBool aKeepOpen)
-	{
-	if (!iKeepOpen)
-	    {
-    	iKeepOpen = aKeepOpen;    
-        _LIT(KResourceFile, "\\resource\\vpnmanagementuirsc.rsc");	
-	TFileName resourceFileName(KResourceFile);
-    TFileName dllName;
-    Dll::FileName(dllName);
-    TBuf<2> drive = dllName.Left(2);
-    resourceFileName.Insert(0, drive);
-
-    // To enable loading of e.g. vpnmanagementuirsc.r**
-    BaflUtils::NearestLanguageFile(iCoeEnv->FsSession(), resourceFileName);
-	iResourceLoader.OpenL(resourceFileName);
-        LOG_("CVpnUiLoader::AddResourceFileL(");
-	    }
-	}
-// ----------------------------------------------------------
-// ReleaseResource()
-// ----------------------------------------------------------
-//
-void CVpnUiLoader::ReleaseResource(TBool aForceClose)
-    {
-    if(!iKeepOpen || aForceClose) 
-        {
-        LOG_("CVpnUiLoader::ReleaseResource()");
-        iKeepOpen = EFalse;
-        iResourceLoader.Close();
-        }
-    }	
-// ---------------------------------------------------------
-// CVpnUiLoader::DialogDismissedL
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::DialogDismissedL( TInt /*aButtonId*/ )
-    {
-    // The UI is left in an inactive state if the progress dialog is cancelled
-    // very quickly. Thus, we ensure that the UI ends up in an active
-    // state by activating the view that should be active.
-    TVwsViewId activeViewId;
-    ((CAknViewAppUi*)iAvkonAppUi)->GetActiveViewId(activeViewId);
-    ((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL(activeViewId.iViewUid);
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::ShowWaitNoteL
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::ShowWaitNoteL()
-    {
-    // Initialization (before the progress dialog is shown)
-    iTextToShow = EConnectingVia; // "Connecting via '%U'"
-    iWaitNoteStartTime.UniversalTime();
-            
-    if ( iWaitDialog )
-        {
-        delete iWaitDialog;
-        iWaitDialog = NULL;
-        }
-    iWaitDialog = new ( ELeave ) CAknWaitDialog
-                ( REINTERPRET_CAST(CEikDialog**,&iWaitDialog),ETrue );
-    iWaitDialog->PrepareLC( R_VPN_WAIT_NOTE );
-    iWaitDialog->SetTone( CAknNoteDialog::ENoTone );
-    iWaitDialog->SetCallback( this );
-
-    SetTextL();
-
-    iWaitDialog->RunLD();
-    iWaitDialog->DrawNow();
-    }
-
-void CVpnUiLoader::DeleteWaitNoteL()
-    {
-    TInt error;
-    // Dismiss wait dialog
-    TRAP(error, iWaitDialog->ProcessFinishedL()); // deletes the wait dialog
-    if (error != KErrNone)
-        {
-        // on error destroy wait note by force.
-        delete iWaitDialog;
-        }
-    iWaitDialog = NULL;
-    }
-
-void CVpnUiLoader::SetTextL()
-    {
-	LOG(Log::Printf(_L("CVpnUiLoader::SetTextL()\n")));
-
-    TTime now;
-    now.UniversalTime();
-
-    TTimeIntervalSeconds secondsPassed;
-    now.SecondsFrom(iWaitNoteStartTime, secondsPassed);
-    
-    if (secondsPassed.Int() < KSecondsToShowConnectingVia)
-        {
-        iTextToShow = EConnectingVia; //0
-        }
-    else
-        {
-        iTextToShow = EProcessingStepN; //1
-        iStateCodeToShow = 0;
-        }
-    
-    if (iTextToShow == EConnectingVia)
-        {
-        HBufC* string = StringLoader::LoadLC( R_VPN_CONNECTING_VIA_AP, iSelectionName );
-        iWaitDialog->SetTextL( *string ); 
-        CleanupStack::PopAndDestroy( string );
-        }
-    else
-        {
-        HBufC* string = StringLoader::LoadLC( R_VPN_WAIT_POLICY_DL_PROCESSING, iStateCodeToShow );
-        iWaitDialog->SetTextL( *string ); 
-        CleanupStack::PopAndDestroy( string );
-        }
-    }
-
-
-void CVpnUiLoader::GetSelectionNameL( TDes& aText )
-    {
-    TCmSettingSelection selection = TCmSettingSelection();
-   
-    //Reset update operation for Connecting via note
-    iPolicyUpdate = EFalse;
-
-    HBufC* name = NULL;
-    TInt err = KErrNone;    
-	if ( selection.iResult ==  EDestination )
-		{
-		TRAP( err, (name = CServerSettingsContainer::GetDestinationNameL( selection.iId )));
-		}
-	else if ( selection.iResult == EConnectionMethod )
-		{
-		TRAP( err, (name = CServerSettingsContainer::GetConnectionMethodNameL( selection.iId )));
-		}
-	
-	if ( name )
-		{
-		aText.Copy(*name);
-		}	
-	delete name;
-	name = NULL;
-    }
-
-    
-// ---------------------------------------------------------
-// CVpnUiLoader::FFSSpaceBelowCriticalLevelL
-// ---------------------------------------------------------
-//
-TBool CVpnUiLoader::FFSSpaceBelowCriticalLevelL
-        ( TBool aShowErrorNote, TInt aBytesToWrite /*=0*/ )
-    {
-    LOG_("CVpnUiLoader::FFSSpaceBelowCriticalLevelL() - begin");
-
-    TBool ret( EFalse );
-    if ( SysUtil::FFSSpaceBelowCriticalLevelL
-                ( &(CCoeEnv::Static()->FsSession()), aBytesToWrite ) )
-        {
-        ret = ETrue;
-        if ( aShowErrorNote )
-            {
-            CErrorUI* errorUi = CErrorUI::NewLC( *(CCoeEnv::Static()) );
-            errorUi->ShowGlobalErrorNoteL( KErrDiskFull );
-            CleanupStack::PopAndDestroy();  // errorUi
-            }
-        }
-    
-    LOG( Log::Printf(_L("CVpnUiLoader::FFSSpaceBelowCriticalLevelL() - end\n")));
-
-    return ret;
-    }
-    
-// ---------------------------------------------------------
-// CVpnUiLoader::GetVpnManagementUiView()
-// 
-// ---------------------------------------------------------
-//
-CAknView* CVpnUiLoader::GetVpnManagementUiView() const
-    {
-	return iVpnManagementUiView;
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::VpnApiWrapperL()
-// ---------------------------------------------------------
-//
-CVpnApiWrapper& CVpnUiLoader::VpnApiWrapperL()
-    {
-    LOG_("CVpnUiLoader::VpnApiWrapperL()");
-    if (!iVpnApiWrapper)
-        iVpnApiWrapper = CVpnApiWrapper::NewL();
-    return *iVpnApiWrapper;
-    }
-    
-// ---------------------------------------------------------
-// CVpnUiLoader::GsViewId()
-// Called when the view tab is changed
-// ---------------------------------------------------------
-//
-TVwsViewId CVpnUiLoader::GSViewId() const
-    {
-    return iGsViewId;
-    }
-
-// ---------------------------------------------------------
-// CVpnUiLoader::SetGsViewId( TVwsViewId )
-// Called when the view tab is changed
-// ---------------------------------------------------------
-//
-void CVpnUiLoader::SetGSViewId( TVwsViewId aGsViewUid )
-    {
-    iGsViewId = aGsViewUid;
-    }
-    
-// End of File