memana/analyzetoolclient/configurationappgui/src/atconfigurationappguilistboxview.cpp
changeset 0 f0f2b8682603
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/memana/analyzetoolclient/configurationappgui/src/atconfigurationappguilistboxview.cpp	Thu Feb 11 15:51:35 2010 +0200
@@ -0,0 +1,575 @@
+/*
+* 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 <barsread.h>
+#include <stringloader.h>
+#include <aknlists.h>
+#include <eikenv.h>
+#include <akniconarray.h>
+#include <eikclbd.h>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <eikbtgpc.h>
+#include <atconfigurationappgui.rsg>
+#include <aknmessagequerydialog.h>
+#include <aknnotewrappers.h>
+#include <apgtask.h>
+
+#include "atconfigurationappgui.hrh"
+#include "atconfigurationappguilistboxview.h"
+#include "atconfigurationappguilistbox.hrh"
+#include "atconfigurationappguilistbox.h"
+#include "atconfigurationappguiappui.h"
+#include "atlog.h"
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::CATConfigurationAppGuiListBoxView()
+// First phase of Symbian two-phase construction.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiListBoxView::CATConfigurationAppGuiListBoxView()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::CATConfigurationAppGuiListBoxView()" );
+    
+    iATConfigurationAppGuiListBox = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::~CATConfigurationAppGuiListBoxView()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiListBoxView::~CATConfigurationAppGuiListBoxView()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::~CATConfigurationAppGuiListBoxView()" );
+    
+    delete iATConfigurationAppGuiListBox;
+    iATConfigurationAppGuiListBox = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::NewL()
+// Symbian two-phase constructor.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiListBoxView* CATConfigurationAppGuiListBoxView::NewL()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::NewL()" );
+    
+    CATConfigurationAppGuiListBoxView* self = CATConfigurationAppGuiListBoxView::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::NewLC()
+// Symbian two-phase constructor.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiListBoxView* CATConfigurationAppGuiListBoxView::NewLC()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::NewLC()" );
+    
+    CATConfigurationAppGuiListBoxView* self = new ( ELeave ) CATConfigurationAppGuiListBoxView();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::ConstructL()
+// Second-phase constructor for view.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::ConstructL()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::ConstructL()" );
+    
+    BaseConstructL( R_ATCONFIGURATION_APP_GUI_LIST_BOX_ATCONFIGURATION_APP_GUI_LIST_BOX_VIEW );
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::Id()
+// Returns The UID for this view.
+// -----------------------------------------------------------------------------
+//
+TUid CATConfigurationAppGuiListBoxView::Id() const
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::Id()" );
+    
+    return TUid::Uid( EATConfigurationAppGuiListBoxViewId );
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::HandleCommandL()
+// Handle a command for this view.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::HandleCommandL( TInt aCommand )
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::HandleCommandL()" );
+    
+    TBool commandHandled = EFalse;
+    switch ( aCommand )
+        { // Code to dispatch to the AknView's menu and CBA commands is generated here
+        case EATConfigurationAppGuiListBoxViewVersionMenuItemCommand:
+            commandHandled = HandleVersionMenuItemSelectedL( aCommand );
+            break;
+        case EATConfigurationAppGuiListBoxViewDetailsMenuItemCommand:
+            {
+            // Listbox items are in the same order as in storage server
+            // thus using current index
+            if ( iATConfigurationAppGuiListBox )
+                {
+                TInt current = iATConfigurationAppGuiListBox->GetCurrentItemIndex();
+                RArray<TATProcessInfo> processes;
+                CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )AppUi();
+                appUi->StorageServer().GetProcessesL( processes );
+                if ( current >= KErrNone && current < processes.Count() )
+                    {
+                    TUint processId = processes[ current ].iProcessId;
+                    TInt64 processStartTime = processes[ current ].iStartTime;
+                    appUi->SetCurrentProcessId( processId );
+                    appUi->SetCurrentProcessStartTime( processStartTime );
+                    AppUi()->ActivateLocalViewL( TUid::Uid( EATConfigurationAppGuiProcessViewId ) );
+                    }
+                // Closes the array and frees all memory allocated to the array.
+                processes.Close();
+                }
+            break;
+            }
+        /*case EATConfigurationAppGuiListBoxViewEnd_processMenuItemCommand:
+            {
+            EndProcessL( EATConfigurationAppGuiListBoxViewEndTaskMenuItemCommand );
+            break;
+            }*/
+        case EATConfigurationAppGuiListBoxViewEndTaskMenuItemCommand:
+            {
+            EndProcessL( EATConfigurationAppGuiListBoxViewEndTaskMenuItemCommand );
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewKillProcessMenuItemCommand:
+            {
+            EndProcessL( EATConfigurationAppGuiListBoxViewKillProcessMenuItemCommand );
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewTerminateProcessMenuItemCommand:
+            {
+            EndProcessL( EATConfigurationAppGuiListBoxViewTerminateProcessMenuItemCommand );
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewPanicProcessMenuItemCommand:
+            {
+            EndProcessL( EATConfigurationAppGuiListBoxViewPanicProcessMenuItemCommand );
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewCancel_loggingMenuItemCommand:
+            {
+            // Listbox items are in the same order as in storage server
+            // thus using current index
+            if ( iATConfigurationAppGuiListBox )
+                {
+                TInt current = iATConfigurationAppGuiListBox->GetCurrentItemIndex();
+                RArray<TATProcessInfo> processes;
+                CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )AppUi();
+                appUi->StorageServer().GetProcessesL( processes );
+                if ( current >= KErrNone && current < processes.Count() )
+                    {
+                    TUint processId = processes[ current ].iProcessId;
+                    // Stop subtesting for this process
+                    //if ( appUi->IsSubTestRunning( processId ) )
+                        //appUi->SetProcessSubTestStopL( processId );
+                    
+                    TInt cancelErr = appUi->StorageServer().CancelLogging( processId );
+                    if ( cancelErr != KErrNone )
+                        {
+                        // Logging could not be cancelled
+                        appUi->ShowErrorNoteL( R_ATCONFIGURATION_APP_GUI_LISTBOX_CANCEL_FAILURE_NOTE );
+                        }
+                    else
+                        {
+                        iATConfigurationAppGuiListBox->UpdateViewL();
+                        }
+                    }
+				// Closes the array and frees all memory allocated to the array.
+                processes.Close();
+                }
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewLog_settingMenuItemCommand:
+            {
+            AppUi()->ActivateLocalViewL( TUid::Uid( EATConfigurationAppGuiSettingItemListViewId ),
+                    TUid::Uid( EATConfigurationAppGuiListBoxViewId ), KNullDesC8 );
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewStart_subtestMenuItemCommand:
+            {
+            if ( iATConfigurationAppGuiListBox )
+                {
+                TInt current = iATConfigurationAppGuiListBox->GetCurrentItemIndex();
+                RArray<TATProcessInfo> processes;
+                CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )AppUi();
+                appUi->StorageServer().GetProcessesL( processes );
+                if ( current >= KErrNone && current < processes.Count() )
+                    {
+                    TUint processId = processes[ current ].iProcessId;
+                    appUi->SetProcessSubTestStartL( processId );
+                    iATConfigurationAppGuiListBox->UpdateViewL();
+                    }
+				// Closes the array and frees all memory allocated to the array.
+                processes.Close();
+                }
+            break;
+            }
+        case EATConfigurationAppGuiListBoxViewStop_subtestMenuItemCommand:
+            {
+            if ( iATConfigurationAppGuiListBox )
+                {
+                TInt current = iATConfigurationAppGuiListBox->GetCurrentItemIndex();
+                RArray<TATProcessInfo> processes;
+                CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )AppUi();
+                appUi->StorageServer().GetProcessesL( processes );
+                if ( current >= KErrNone && current < processes.Count() )
+                    {
+                    TUint processId = processes[ current ].iProcessId;
+                    appUi->SetProcessSubTestStopL( processId );
+                    iATConfigurationAppGuiListBox->UpdateViewL();
+                    }
+				// Closes the array and frees all memory allocated to the array.
+                processes.Close();
+                }
+            break;
+            }
+        default:
+            break;
+        }
+     
+    if ( !commandHandled ) 
+        {
+    
+        if ( aCommand == EAknSoftkeyExit || aCommand == EAknSoftkeyExit )
+            {
+            AppUi()->HandleCommandL( EEikCmdExit );
+            }
+    
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::DoActivateL()
+// Handles user actions during activation of the view.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::DoActivateL( 
+        const TVwsViewId& /*aPrevViewId*/,
+        TUid /*aCustomMessageId*/,
+        const TDesC8& /*aCustomMessage*/ )
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::DoActivateL()" );
+    
+    SetupStatusPaneL();
+    
+    if ( iATConfigurationAppGuiListBox == NULL )
+        {
+        iATConfigurationAppGuiListBox = CreateContainerL();
+        iATConfigurationAppGuiListBox->SetMopParent( this );
+        AppUi()->AddToStackL( *this, iATConfigurationAppGuiListBox );
+        // For supporting MSK context menu
+        MenuBar()->SetContextMenuTitleResourceId( R_ATCONFIGURATION_APP_GUI_LIST_BOX_OPTIONS_MENU );
+        // Start update timer
+        ( (CATConfigurationAppGuiAppUi*)AppUi() )->StartTimerL();
+        } 
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::DoDeactivate()
+// Handles user actions during deactivation of the view.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::DoDeactivate()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::DoDeactivate()" );
+    
+    CleanupStatusPane();
+    
+    if ( iATConfigurationAppGuiListBox != NULL )
+        {
+        // Cancel timer events
+        TRAP_IGNORE( ( (CATConfigurationAppGuiAppUi*)AppUi() )->TimerNotifyL( EFalse ) );
+        AppUi()->RemoveFromViewStack( *this, iATConfigurationAppGuiListBox );
+        delete iATConfigurationAppGuiListBox;
+        iATConfigurationAppGuiListBox = NULL;
+        }
+    CleanupStatusPane();
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::DynInitMenuPaneL()
+// Handles dynamical menu item dimming.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::DynInitMenuPaneL( TInt aResourceId, 
+	CEikMenuPane* aMenuPane )
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::DynInitMenuPaneL()" );
+    
+    if ( R_ATCONFIGURATION_APP_GUI_LIST_BOX_MENU_PANE1_MENU_PANE == aResourceId )
+        {
+        if( iATConfigurationAppGuiListBox->GetCurrentItemIndex() < 0 ) 
+            {
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewDetailsMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStart_subtestMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStop_subtestMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewEnd_processMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewLog_settingMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewHelpMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewCancel_loggingMenuItemCommand, ETrue );
+            } 
+        else 
+            {
+            TInt subTest( KErrNotFound );
+            TATLogOption loggingMode = EATUseDefault;//lint !e644
+            if ( iATConfigurationAppGuiListBox )
+                {
+                TInt current = iATConfigurationAppGuiListBox->GetCurrentItemIndex();
+                RArray<TATProcessInfo> processes;
+                CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )AppUi();
+                appUi->StorageServer().GetProcessesL( processes );
+                if ( current >= KErrNone && current < processes.Count() )
+                    {
+                    TUint processId = processes[ current ].iProcessId;
+                    subTest = appUi->IsSubTestRunning( processId );
+                    // Get logging mode
+                    appUi->StorageServer().GetLoggingModeL( processId, loggingMode );
+                    }
+				// Closes the array and frees all memory allocated to the array.
+                processes.Close();
+                }
+            if ( subTest > KErrNotFound )
+                {
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStart_subtestMenuItemCommand, ETrue );
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStop_subtestMenuItemCommand, EFalse );
+                }
+            else
+                {
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStart_subtestMenuItemCommand, EFalse );
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStop_subtestMenuItemCommand, ETrue );
+                }
+            
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewDetailsMenuItemCommand, EFalse );
+            
+            if ( loggingMode == EATLoggingOff )
+                {
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewCancel_loggingMenuItemCommand, ETrue );
+                // Logging cancelled -> hide necessary items
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewDetailsMenuItemCommand, ETrue );
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStart_subtestMenuItemCommand, ETrue );
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewStop_subtestMenuItemCommand, ETrue );
+                }
+            else
+                {
+                aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewCancel_loggingMenuItemCommand, EFalse );
+                }
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewLog_settingMenuItemCommand, ETrue );
+            aMenuPane->SetItemDimmed( EATConfigurationAppGuiListBoxViewHelpMenuItemCommand, ETrue );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::HandleStatusPaneSizeChange()
+// Handle status pane size change for this view.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::HandleStatusPaneSizeChange()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::HandleStatusPaneSizeChange()" );
+    
+    CAknView::HandleStatusPaneSizeChange();
+    
+    // This may fail, but we're not able to propagate exceptions here
+    TInt result;
+    TRAP( result, SetupStatusPaneL() ); 
+    }  
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::SetupStatusPaneL()
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::SetupStatusPaneL()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::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_LIST_BOX_TITLE_RESOURCE );
+        title->SetFromResourceL( reader );
+        CleanupStack::PopAndDestroy(); // reader internal state
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::CleanupStatusPane()
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::CleanupStatusPane()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::CleanupStatusPane()" );
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::CreateContainerL()
+// Creates the top-level container for the view.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiListBox* CATConfigurationAppGuiListBoxView::CreateContainerL()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::CreateContainerL()" );
+    
+    return CATConfigurationAppGuiListBox::NewL( ClientRect(), this, this );
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::HandleVersionMenuItemSelectedL()
+// Shows About dialog of the application.
+// -----------------------------------------------------------------------------
+//
+TBool CATConfigurationAppGuiListBoxView::HandleVersionMenuItemSelectedL( 
+	TInt /*aCommand*/ )
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::HandleVersionMenuItemSelectedL()" );
+    CAknMessageQueryDialog* dlg = new (ELeave) CAknMessageQueryDialog;
+    dlg->ExecuteLD( R_ABOUT_HEADING_PANE );
+    
+    return ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::UpdateViewL()
+// Updates view.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::UpdateViewL()
+    {
+    LOGSTR1( "ATCU CATConfigurationAppGuiListBoxView::UpdateViewL()" );
+    
+    if ( iATConfigurationAppGuiListBox )
+        {
+        iATConfigurationAppGuiListBox->UpdateViewL();
+        } 
+    }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiListBoxView::EndProcessL()
+// Ends process with a specific method.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiListBoxView::EndProcessL( TInt aCommand )
+    {
+    LOGSTR1( "CATConfigurationAppGuiListBoxView::EndProcessL" );  
+                    
+    TInt current = iATConfigurationAppGuiListBox->GetCurrentItemIndex();
+    RArray<TATProcessInfo> processes;
+    CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )AppUi();
+    appUi->StorageServer().GetProcessesL( processes );
+     if ( current >= KErrNone && current < processes.Count() )
+         {
+         RProcess endProcess;
+         TUint processId = processes[ current ].iProcessId;
+         TBuf<KMaxProcessName> processName;
+         processName.Copy( processes[ current ].iProcessName );
+         TInt find = processName.Find( _L( "." ) );
+         if ( find > KErrNotFound )
+             processName.Delete( find, processName.Length() - find );
+         
+         TInt openErr = endProcess.Open( TProcessId( processId ) );
+         if ( openErr ==KErrNone )
+             {
+             if ( aCommand == EATConfigurationAppGuiListBoxViewEndTaskMenuItemCommand )
+                 {
+                 LOGSTR1( "CATConfigurationAppGuiListBoxView::EndProcessL - end task" );
+                 endProcess.Close();
+
+                 TApaTaskList apList = TApaTaskList( iEikonEnv->WsSession() );
+                 TApaTask apTask = apList.FindApp( processName );
+                 if ( apTask.Exists() )
+                     {
+                     LOGSTR1( "CATConfigurationAppGuiListBoxView::EndProcessL - task exists -> end" );
+                     apTask.EndTask();
+                     }
+                 else
+                     {
+                     _LIT( KAppNotExist, "Could not end this process!" );
+                     CAknErrorNote* note = new ( ELeave ) CAknErrorNote();
+                     note->SetTextL( KAppNotExist() );
+                     note->ExecuteLD();
+                     }
+                 }
+             else if ( aCommand == EATConfigurationAppGuiListBoxViewKillProcessMenuItemCommand )
+                 {
+                 LOGSTR1( "CATConfigurationAppGuiListBoxView::EndProcessL - kill process" );
+                 endProcess.Kill( KErrNone );
+                 endProcess.Close();
+                 }
+             else if ( aCommand == EATConfigurationAppGuiListBoxViewTerminateProcessMenuItemCommand )
+                 {
+                 LOGSTR1( "CATConfigurationAppGuiListBoxView::EndProcessL - terminate process" );
+                 endProcess.Terminate( KErrNone );
+                 endProcess.Close();
+                 }
+             else if ( aCommand == EATConfigurationAppGuiListBoxViewPanicProcessMenuItemCommand )
+                 {
+                 LOGSTR1( "CATConfigurationAppGuiListBoxView::EndProcessL - panic process" );
+                 _LIT( KPanicTxt, "Panic");
+                 endProcess.Panic( KPanicTxt, KErrNone );
+                 endProcess.Close();
+                 }
+             }
+         else
+             {
+             CAknErrorNote* errorNote = new ( ELeave ) CAknErrorNote();
+             _LIT( KErrTxt, "Could not open the process!");
+             errorNote->SetTextL( KErrTxt );
+             errorNote->ExecuteLD();
+             }
+         }   
+	// Closes the array and frees all memory allocated to the array.
+    processes.Close();
+    }
+
+// End of File