connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiDetailsView.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:23:51 +0100
branchRCL_3
changeset 58 83ca720e2b9a
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002 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:  view class
*     
*
*/


// INCLUDE FILES
#include  <ConnectionMonitorUi.rsg>
#include  "ConnectionMonitorUiDetailsView.h"
#include  "ConnectionMonitorUiDetailsContainer.h" 
#include  "ConnectionMonitorUi.hrh"
#include  "ConnectionArray.h"

// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------
// ConnectionMonitorUiDetailsView::ConnectionMonitorUiDetailsView( 
//                                 const CConnectionArray* aConnectionArray )
// ---------------------------------------------------------
//
CConnectionMonitorUiDetailsView::CConnectionMonitorUiDetailsView( 
                             CConnectionArray* const aConnectionArray )
    : CAknView(), 
      iConnectionArray( aConnectionArray ), 
      iViewRefreshState( EFalse )
    {}

// ---------------------------------------------------------
// ConnectionMonitorUiDetailsView::ConstructL()
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::ConstructL()
    {
    BaseConstructL( R_CONNECTIONMONITORUI_DETAILSVIEW );
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::~CConnectionMonitorUiDetailsView()
// ---------------------------------------------------------
//
CConnectionMonitorUiDetailsView::~CConnectionMonitorUiDetailsView()
    {
    delete iContainer;
    }

// ---------------------------------------------------------
// TUid CConnectionMonitorUiDetailsView::Id()
// ?implementation_description
// ---------------------------------------------------------
//
TUid CConnectionMonitorUiDetailsView::Id() const
    {
    return KDetailsViewId;
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::HandleCommandL( TInt aCommand )
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::HandleCommandL( TInt aCommand )
    {   
    switch ( aCommand )
        {
        case EAknSoftkeyOk:
            {
            CloseViewL();
            ActivateMainViewL();
            break;
            }
        default:
            {
            AppUi()->HandleCommandL( aCommand );
            break;
            }
        }
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::CloseViewL()
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::CloseViewL()
    {   
    CMUILOGGER_ENTERFN( "CConnectionMonitorUiDetailsView::CloseViewL" );    
    
    if ( GetViewRefreshState() )
        {
        // Now delete this view
        CConnectionMonitorUiAppUi* appUi =
            (CConnectionMonitorUiAppUi*)AppUi();
        appUi->StartTimerL();
        SetViewRefreshState( EFalse );
        }
    CMUILOGGER_LEAVEFN( "CConnectionMonitorUiDetailsView::CloseViewL" );
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::SetSelectedConnectionId
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::SetSelectedConnection( TUint aIndex )
    {
    iConnectionId = aIndex;
    }
    
// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::GetSelectedConnection
// ---------------------------------------------------------
//
TUint CConnectionMonitorUiDetailsView::GetSelectedConnection()
	{
	TUint result( KErrNone );
	if ( iContainer )
		{
		result = iContainer->GetIndexOfSelectedItem();	
		}
	return result;		
	}


// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::DoActivateL(...)
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::DoActivateL(
   const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/,
   const TDesC8& /*aCustomMessage*/ )
    {
    CMUILOGGER_ENTERFN( "CConnectionMonitorUiDetailsView::DoActivateL" );
    
    if ( !iContainer )
        {
        iContainer = new ( ELeave ) CConnectionMonitorUiDetailsContainer( 
                                                            iConnectionArray );
        iContainer->SetMopParent( this );
        iContainer->ConstructL( ClientRect(), this );
        iContainer->SetSelectedConnectionL( iConnectionId );
        CConnectionMonitorUiAppUi::Static()->StartConnEventNotification( 
                                                                  iContainer );
        iContainer->DrawFirstAllListBoxItem();

        iContainer->PushAndRefreshNaviPaneL();
        iContainer->MakeVisible( ETrue );
        AppUi()->AddToViewStackL( *this, iContainer );
        }
    
    CMUILOGGER_LEAVEFN( "CConnectionMonitorUiDetailsView::DoActivateL" );
    
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::DoDeactivate
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::DoDeactivate()
    {
    CMUILOGGER_ENTERFN( "CConnectionMonitorUiDetailsView::DoDeactivate" );
    
    if ( iContainer )
        {
        AppUi()->RemoveFromViewStack( *this, iContainer );
        CConnectionMonitorUiAppUi::Static()->StopConnEventNotification( 
                                                             iContainer );
        iContainer->PopNaviPane();
        iContainer->MakeVisible( EFalse );

        delete iContainer;
        iContainer = NULL;
        }                
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::HandleListBoxEventL
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::HandleListBoxEventL( 
                                                    CEikListBox* /*aListBox*/,
                                                    TListBoxEvent aEventType )
    {
    switch ( aEventType )
        {
        case EEventEnterKeyPressed:
        //case EEventItemDoubleClicked:
        case EEventItemSingleClicked:
            {
            AppUi()->ActivateLocalViewL( 
                            TUid::Uid( EConnectionMonitorUiMainViewTab ) );
            }
            break;

        default:
            break;
        }
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::GetViewRefreshState
// ---------------------------------------------------------
//
TBool CConnectionMonitorUiDetailsView::GetViewRefreshState()
    {
    return iViewRefreshState;	
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::SetViewRefreshState
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::SetViewRefreshState( 
                                                    TBool aViewRefreshState )
    {
    iViewRefreshState = aViewRefreshState;
    }

// ---------------------------------------------------------
// CConnectionMonitorUiDetailsView::ActivateMainViewL()
// ---------------------------------------------------------
//
void CConnectionMonitorUiDetailsView::ActivateMainViewL()
    {   
    AppUi()->ActivateLocalViewL( TUid::Uid( EConnectionMonitorUiMainViewTab ) );
    }


// End of File