memana/analyzetoolclient/configurationappgui/src/atconfigurationappguisettingitemlistview.cpp
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:51:35 +0200
changeset 0 f0f2b8682603
permissions -rw-r--r--
Add initial version of AnalyzeTool client under EPL

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

#include <aknviewappui.h>
#include <eikmenub.h>
#include <avkon.hrh>
#include <akncontext.h>
#include <akntitle.h>
#include <stringloader.h>
#include <barsread.h>
#include <eikbtgpc.h>
#include <atconfigurationappgui.rsg>

#include "atconfigurationappgui.hrh"
#include "atconfigurationappguisettingitemlistview.h"
#include "atconfigurationappguisettingitemlist.hrh"
#include "atconfigurationappguisettingitemlist.h"
#include "atlog.h"

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::CATConfigurationAppGuiSettingItemListView()
// First phase of Symbian two-phase construction.
// -----------------------------------------------------------------------------
//
CATConfigurationAppGuiSettingItemListView::CATConfigurationAppGuiSettingItemListView() :
iLastViewId( TUid::Uid( EATConfigurationAppGuiListBoxViewId ) )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::CATConfigurationAppGuiSettingItemListView()" );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::~CATConfigurationAppGuiSettingItemListView()
// Destructor.
// -----------------------------------------------------------------------------
//
CATConfigurationAppGuiSettingItemListView::~CATConfigurationAppGuiSettingItemListView()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::~CATConfigurationAppGuiSettingItemListView()" );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::NewL()
// Symbian two-phase constructor.
// -----------------------------------------------------------------------------
//
CATConfigurationAppGuiSettingItemListView* CATConfigurationAppGuiSettingItemListView::NewL()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::NewL()" );
    
    CATConfigurationAppGuiSettingItemListView* self = CATConfigurationAppGuiSettingItemListView::NewLC();
    CleanupStack::Pop( self );
    return self;
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::NewLC()
// Symbian two-phase constructor.
// -----------------------------------------------------------------------------
//
CATConfigurationAppGuiSettingItemListView* CATConfigurationAppGuiSettingItemListView::NewLC()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::NewLC()" );
    
    CATConfigurationAppGuiSettingItemListView* self = new ( ELeave ) CATConfigurationAppGuiSettingItemListView();
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::ConstructL()
// Second-phase constructor for view.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::ConstructL()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::ConstructL()" );
    
    BaseConstructL( R_ATCONFIGURATION_APP_GUI_SETTING_ITEM_LIST_VIEW );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::Id()
// Returns the UID for this view.
// -----------------------------------------------------------------------------
//
TUid CATConfigurationAppGuiSettingItemListView::Id() const
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::Id()" );
    
    return TUid::Uid( EATConfigurationAppGuiSettingItemListViewId );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::HandleCommandL()
// Handle a command for this view.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::HandleCommandL( TInt aCommand )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::HandleCommandL()" );
    
    TBool commandHandled = EFalse;
    switch ( aCommand )
        { // Code to dispatch to the AknView's menu and CBA commands is generated here
        case EATConfigurationAppGuiSettingItemListViewMenuItem1Command:
            commandHandled = HandleChangeSelectedSettingItemL( aCommand );
            break;
        case EAknSoftkeyBack:
            {
            AppUi()->ActivateLocalViewL( iLastViewId );
            commandHandled = ETrue;
            break;    
            }
        default:
            break;
        }

        
    if ( !commandHandled ) 
        {

        if ( aCommand == EAknSoftkeyBack )
            {
            AppUi()->HandleCommandL( EEikCmdExit );
            }

        }
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::DoActivateL()
// Handles user actions during activation of the view.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::DoActivateL( 
        const TVwsViewId& /*aPrevViewId*/,
        TUid aCustomMessageId,
        const TDesC8& /*aCustomMessage*/ )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::DoActivateL()" );
    
    SetupStatusPaneL();
    iLastViewId = aCustomMessageId;

    if ( iATConfigUISettingItemList == NULL )
        {
        iSettings = CATConfigurationAppGuiSettingItemListSettings::NewL();
        iATConfigUISettingItemList = new ( ELeave ) CATConfigurationAppGuiSettingItemList( *iSettings, this );
        iATConfigUISettingItemList->SetMopParent( this );
        iATConfigUISettingItemList->ConstructFromResourceL( R_ATCONFIGURATION_APP_GUI_SETTING_ITEM_LIST );
        iATConfigUISettingItemList->ActivateL();
        iATConfigUISettingItemList->LoadSettingValuesL();
        iATConfigUISettingItemList->LoadSettingsL();
        AppUi()->AddToStackL( *this, iATConfigUISettingItemList );
        } 
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::DoDeactivate()
// Handles user actions during deactivation of the view.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::DoDeactivate()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::DoDeactivate()" );
    
    CleanupStatusPane();

    if ( iATConfigUISettingItemList != NULL )
        {
        AppUi()->RemoveFromStack( iATConfigUISettingItemList );
        delete iATConfigUISettingItemList;
        iATConfigUISettingItemList = NULL;
        delete iSettings;
        iSettings = NULL;
        }
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::HandleStatusPaneSizeChange()
// Handle status pane size change for this view.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::HandleStatusPaneSizeChange()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::HandleStatusPaneSizeChange()" );
    
    CAknView::HandleStatusPaneSizeChange();

    // This may fail, but we're not able to propagate exceptions here
    TInt result;
    TRAP( result, SetupStatusPaneL() ); 
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::SetupStatusPaneL()
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::SetupStatusPaneL()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::SetupStatusPaneL()" );
    
    // Reset the context pane
    TUid contextPaneUid = TUid::Uid( EEikStatusPaneUidContext );
    CEikStatusPaneBase::TPaneCapabilities subPaneContext = 
        StatusPane()->PaneCapabilities( contextPaneUid );
    if ( subPaneContext.IsPresent() && subPaneContext.IsAppOwned() )
        {
        CAknContextPane* context = static_cast< CAknContextPane* > ( 
            StatusPane()->ControlL( contextPaneUid ) );
        context->SetPictureToDefaultL();
        }

    // Setup the title pane
    TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
    CEikStatusPaneBase::TPaneCapabilities subPaneTitle = 
        StatusPane()->PaneCapabilities( titlePaneUid );
    if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
        {
        CAknTitlePane* title = static_cast< CAknTitlePane* >( 
            StatusPane()->ControlL( titlePaneUid ) );
        TResourceReader reader;
        iEikonEnv->CreateResourceReaderLC( reader, R_ATCONFIGURATION_APP_GUI_SETTINGS_TITLE_RESOURCE );
        title->SetFromResourceL( reader );
        CleanupStack::PopAndDestroy(); // Reader internal state
        }
                
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::CleanupStatusPane()
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemListView::CleanupStatusPane()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::CleanupStatusPane()" );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemListView::HandleChangeSelectedSettingItemL()
// Handle the selected event.
// -----------------------------------------------------------------------------
//
TBool CATConfigurationAppGuiSettingItemListView::HandleChangeSelectedSettingItemL( 
	TInt /*aCommand*/ )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemListView::HandleChangeSelectedSettingItemL()" );
    
    iATConfigUISettingItemList->ChangeSelectedItemL();
    return ETrue;
    }

// End of File