--- a/stifui/avkon/stifui/src/StartCasesView.cpp Thu Jul 15 18:39:46 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,457 +0,0 @@
-/*
-* 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: This file contains CStartCasesView class definition.
-*
-*/
-
-// INCLUDE FILES
-#include <eikmenub.h>
-#include <aknViewAppUi.h>
-#include <aknlistquerydialog.h>
-#include <barsread.h> //TResourceReader
-#include <Stifui.rsg>
-#include "StartCasesView.h"
-#include "StartCasesContainer.h"
-#include "AppUIAppUi.h"
-#include "Stifui.hrh"
-
-
-// ================= MEMBER FUNCTIONS =======================
-// ----------------------------------------------------------------------------
-// CStartCasesView::ConstructL
-//
-// Symbian OS two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::ConstructL()
- {
- CView::ConstructL();
- BaseConstructL( R_APPUI_STARTCASESVIEW );
- iCurrentTestCase = 0;
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::~CStartCasesView
-//
-// Destructor
-// ----------------------------------------------------------------------------
-//
-CStartCasesView::~CStartCasesView()
- {
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- }
- delete iNaviDecorator;
- iNaviDecorator = NULL;
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::Id
-//
-// Returns view´s id.
-// ----------------------------------------------------------------------------
-//
-TUid CStartCasesView::Id() const
- {
- return TUid::Uid(EStartCaseMenuViewId);
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::HandleCommandL
-//
-// Handles a command.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::HandleCommandL(TInt aCommand)
- {
- if ( aCommand >= ECmdFilterByModule && aCommand < ECmdFilterByTestCaseFile ) // 0x1000 - 0x1FFF
- {
- TInt moduleNumber = aCommand - ECmdFilterByModule;
- RRefArray<TDesC> allModules;
- TInt ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->Modules( allModules );
- if( KErrNone != ret )
- {
- allModules.Reset();
- allModules.Close();
- User::Leave( ret );
- }
- TName moduleName = allModules[ moduleNumber ];
-
- iContainer->FilterCasesByModuleL( moduleName );
-
- allModules.Reset();
- allModules.Close();
- }
- else if ( aCommand >= ECmdFilterByTestCaseFile && aCommand < ECmdNOFiltering )
- {
- TInt testCaseFileNumber = aCommand - ECmdFilterByTestCaseFile;
- RRefArray<TDesC> allTestCases;
- TInt ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->TestCaseFiles( allTestCases );
- if( KErrNone != ret )
- {
- allTestCases.Reset();
- allTestCases.Close();
- User::Leave( ret );
- }
- TFileName testCaseFileName = allTestCases[ testCaseFileNumber ];
-
- iContainer->FilterCasesByTCFileNameL( testCaseFileName );
-
- allTestCases.Reset();
- allTestCases.Close();
- }
- else if ( aCommand == ECmdNOFiltering )
- {
- iContainer->NoFilteringL();
- }
- else if ( aCommand == EAknCmdMark || aCommand == EAknCmdUnmark
- || aCommand == EAknMarkAll || aCommand == EAknUnmarkAll )
- {
- iContainer->HandleMarkCommandL( aCommand );
- }
- else
- {
- switch ( aCommand )
- {
- case ECmdStartCases:
- {
- CheckListBoxSelectionsL( iContainer->ListBox() );
- break;
- }
- case EAknSoftkeyBack:
- {
- iCurrentTestCase = 0;
- AppUi()->HandleCommandL(EAppUIGoBack);
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- break;
- }
- }
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::HandleClientRectChange
-//
-// Handles client rect changes.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::HandleClientRectChange()
- {
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::DoActivateL
-//
-// Initializes view when activated.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::DoActivateL(
- const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/)
- {
- if (!iContainer)
- {
- ((CAppUIAppUi*)AppUi())->iLogger->Log(_L("StartCasesView: DoActivateL"));
- iContainer = new (ELeave) CStartCasesContainer;
- iContainer->SetMopParent(this);
- iContainer->ConstructL( ClientRect(), this );
- ((CAppUIAppUi*)AppUi())->iLogger->Log(_L("StartCasesView: container constructed"));
- AppUi()->AddToStackL( *this, iContainer );
- }
-
- iContainer->SetCurrentItemIndex(iCurrentTestCase);
-
- CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
- CAknNavigationControlContainer* np= (CAknNavigationControlContainer *)sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi));
-
- TResourceReader reader;
- iCoeEnv->CreateResourceReaderLC(reader,R_NAVITITLE_STARTCASES);
- iNaviDecorator = np->CreateNavigationLabelL( reader );
- CleanupStack::PopAndDestroy(); // resource reader
- np->PushL(*iNaviDecorator);
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::DoDeactivate
-//
-// Deactivates view.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::DoDeactivate()
- {
- if ( iContainer )
- {
- iContainer->SaveActiveLine();
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- iContainer = NULL;
- }
- delete iNaviDecorator;
- iNaviDecorator = NULL;
- }
-
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::DynInitMenuPaneL
-//
-// Initializes menu pane.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::DynInitMenuPaneL(
- TInt aResourceId, CEikMenuPane* aMenuPane)
- {
-
- // Test modules are added to filter by test module submenu if the submenu is opened
- if (R_APPUI_FILTERBYMODULES_MENU == aResourceId)
- {
- RRefArray<TDesC> modules;
- TInt ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->Modules( modules );
- if( KErrNone != ret )
- {
- modules.Reset();
- modules.Close();
- User::Leave( ret );
- }
-
- TInt moduleCount = modules.Count();
-
- TInt i;
- CEikMenuPaneItem::SData item;
-
- item.iCommandId = ECmdFilterByModule;
- item.iFlags = 0;
- item.iCascadeId = 0;
-
- for (i = 0; i < moduleCount; i++)
- {
- //item.iText = modules[i].iModuleName;
- item.iText.Copy( modules[i].Left( item.iText.MaxLength() ) ) ;
- aMenuPane->AddMenuItemL(item);
- item.iCommandId++; // command IDs 0x1000 - 0x1FFF are reserved for modules in hrh file
- }
-
- modules.Reset();
- modules.Close();
-
- }
-
- // Test case files are added to filter by test case file submenu if the submenu is opened
- if (R_APPUI_FILTER_BY_TESTCASEFILE_MENU == aResourceId)
- {
- RRefArray<TDesC> testCaseFiles;
- TInt ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->TestCaseFiles( testCaseFiles );
- if( KErrNone != ret )
- {
- testCaseFiles.Reset();
- testCaseFiles.Close();
- User::Leave( ret );
- }
-
- TInt testCaseFileCount = testCaseFiles.Count();
-
- TInt i;
- CEikMenuPaneItem::SData item;
-
- item.iCommandId = ECmdFilterByTestCaseFile;
- item.iFlags = 0;
- item.iCascadeId = 0;
-
- for (i = 0; i < testCaseFileCount; i++)
- {
- item.iText.Copy( testCaseFiles[i].Left( item.iText.MaxLength() ) );
- // If there´s no test case file, don´t add item to menu.
- if ( testCaseFiles[i].Length() > 0 )
- {
- aMenuPane->AddMenuItemL(item);
- }
- item.iCommandId++; // command IDs 0x2000 - 0x2FFF are reserved for test case files in hrh file
- }
-
- testCaseFiles.Reset();
- testCaseFiles.Close();
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::HandleListBoxEventL
-//
-// Handles listbox events.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::HandleListBoxEventL( CEikListBox* aListBox,
- TListBoxEvent aEventType )
- {
- if ( ( aEventType == EEventEnterKeyPressed ) || ( aEventType == EEventItemDoubleClicked ) )
- {
- CheckListBoxSelectionsL( aListBox );
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::CheckListBoxSelectionsL
-//
-// Checks listbox selections and launches query dialog to start test cases.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::CheckListBoxSelectionsL( CEikListBox* aListBox )
- {
- TInt i(0);
- TInt count = aListBox->SelectionIndexes()->Count();
-
- RArray<TInt> selectedIndices;
- CleanupClosePushL( selectedIndices );
-
- if ( count > 0 )
- {
- for( i = 0; i < count; i++ )
- {
- selectedIndices.InsertInOrder(
- (*aListBox->SelectionIndexes())[i] );
- }
- }
-
- // Check count of selected items.
- if ( count == 1 )
- {
- iCurrentTestCase = selectedIndices[0];
- StartTestCaseL();
- }
- else if (count > 1)
- {
- StartTestCasesL( selectedIndices );
- }
- else
- {
- iCurrentTestCase = iContainer->CurrentItemIndex();
- StartTestCaseL();
- }
-
- CleanupStack::PopAndDestroy();
-
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::StartTestCaseL
-//
-// Starts test case which is selected in containers list box.
-// First shows a list query if user wants just start test case or
-// if he wants to start test case and view test case output.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::StartTestCaseL()
- {
- TInt selectedItem(0);
- CAknListQueryDialog* startDialog = new (ELeave) CAknListQueryDialog(&selectedItem);
- if ( startDialog->ExecuteLD(R_START_TESTCASE_LIST_QUERY) )
- {
- CTestInfo* testCaseInfo = iContainer->SelectedTestCaseInfo();
-
- User::LeaveIfNull( testCaseInfo );
-
- TInt testCaseIndex( 0 );
-
- TInt ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->StartTestCase( *testCaseInfo, testCaseIndex );
-
- if( KErrNone != ret )
- {
- User::Leave( ret );
- }
-
- // Increment the counter value
- ((CAppUIAppUi*)AppUi())->iUIStoreHandler->iExecutedTestCaseCount++;
-
- if ( selectedItem == 1 ) // if view output was selected
- {
- CStartedTestCase* startedCase =
- &((CAppUIAppUi*)AppUi())->UIStoreHandler()->StartedTestCaseL(
- testCaseIndex );
- ((CAppUIAppUi*)AppUi())->SetStartedTestCase( startedCase );
-
- AppUi()->HandleCommandL( ECmdViewOutput );
-
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CStartCasesView::StartTestCasesL
-//
-// Starts multiple test cases which are selected in containers list box.
-// Shows a list query if user wants to start cases parallel or sequential.
-// ----------------------------------------------------------------------------
-//
-void CStartCasesView::StartTestCasesL( RArray<TInt> aSelectedIndexes )
- {
- _LIT( KTempSet, "TempSet");
- TInt selectedItem(0);
- TInt i(0);
- TInt ret(0);
-
- CAknListQueryDialog* startDialog = new (ELeave) CAknListQueryDialog(&selectedItem);
- if ( startDialog->ExecuteLD(R_START_MULTIPLE_TESTCASES_LIST_QUERY) )
- {
- ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->CreateTestSet( KTempSet );
-
- User::LeaveIfError( ret );
-
- for( i = 0; i < aSelectedIndexes.Count(); i++ )
- {
- CTestInfo* testCaseInfo = iContainer->TestCaseInfo( aSelectedIndexes[i] );
- User::LeaveIfNull( testCaseInfo );
-
- ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->AddToTestSet( KTempSet, *testCaseInfo );
- if( KErrNone != ret )
- {
- User::Leave( ret );
- }
- // Increment the counter value
- ((CAppUIAppUi*)AppUi())->iUIStoreHandler->iExecutedTestCaseCount++;
- }
-
- //start cases
- if ( selectedItem == 0 )
- {
- ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->StartTestSet(
- ((CAppUIAppUi*)AppUi())->UIStoreHandler()->TestSetL( KTempSet ),
- i, CStartedTestSet::ESetParallel);
- }
- else if (selectedItem == 1)
- {
- ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->StartTestSet(
- ((CAppUIAppUi*)AppUi())->UIStoreHandler()->TestSetL( KTempSet ),
- i, CStartedTestSet::ESetSequential);
- }
-
- ret = ((CAppUIAppUi*)AppUi())->UIStoreHandler()->RemoveTestSet( KTempSet );
- }
- }
-
-// End of File