--- a/stifui/avkon/stifui/src/TestSetMenuView.cpp Thu Jul 15 18:39:46 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,553 +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 CTestSetMenuView class ddefinition.
-*
-*/
-
-// INCLUDE FILES
-#include <eikmenub.h>
-#include <aknViewAppUi.h>
-#include <aknlistquerydialog.h>
-#include <aknnotewrappers.h>
-#include <barsread.h> //TResourceReader
-#include <Stifui.rsg>
-#include "TestSetMenuView.h"
-#include "TestSetMenuContainer.h"
-#include "AppUIAppUi.h"
-#include "Stifui.hrh"
-
-
-
-// ================= MEMBER FUNCTIONS =========================================
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::ConstructL
-//
-// Symbian OS two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::ConstructL()
- {
- CView::ConstructL();
- BaseConstructL( R_APPUI_TESTSETMENUVIEW );
- iCurrentTestCase = 0;
- iSaveNeeded = ETrue;
- iUIStore = ( (CAppUIAppUi*)iCoeEnv->AppUi() )->UIStoreHandler();
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::~CTestSetMenuView
-//
-// Destructor.
-// ----------------------------------------------------------------------------
-//
-CTestSetMenuView::~CTestSetMenuView()
- {
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- }
- delete iNaviDecorator;
- iNaviDecorator = NULL;
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::Id
-//
-// Returns view´s id.
-// ----------------------------------------------------------------------------
-//
-TUid CTestSetMenuView::Id() const
- {
- return TUid::Uid(ETestSetMenuViewId);
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::HandleCommandL
-//
-// Handles a command.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::HandleCommandL(TInt aCommand)
- {
- if ( aCommand == EAknCmdMark || aCommand == EAknCmdUnmark
- || aCommand == EAknMarkAll || aCommand == EAknUnmarkAll )
- {
- iContainer->HandleMarkCommandL( aCommand );
- }
- else
- {
- switch ( aCommand )
- {
- case ECmdStartTestSet:
- {
- const CTestSetInfo& testSetInfo =
- iUIStore->TestSetL( iCurrentTestSet );
- const RRefArray<const CTestInfo>* allCases =
- &testSetInfo.TestCases();
-
- TInt testCaseCount = allCases->Count();
- if (testCaseCount > 0 )
- {
- StartTestSetL();
- }
- break;
- }
- case ECmdShowStartedTestSet:
- {
- AppUi()->HandleCommandL(ECmdShowStartedTestSet);
- break;
- }
- case ECmdSaveTestSet:
- {
- SaveCurrentTestSetL();
- break;
- }
- case ECmdInsertTestCases:
- {
- // iSaveNeeded is set from
- // CTestSetInsertMenuView::ShowInsertCasesDialog()
- //iSaveNeeded = ETrue;
- AppUi()->HandleCommandL(ECmdInsertTestCases);
- break;
- }
- case ECmdRemoveTestCases:
- {
- RemoveSelectedTestCasesL();
- break;
- }
- case EAknSoftkeyBack:
- {
- //iCurrentTestCase = 0;
- // AppUi()->HandleCommandL(ECmdLoadTestSet/*EAppUIGoToTestSetsMenu*/);
- //( (CEikAppUi*)iCoeEnv->AppUi() )->HandleCommandL(EAppUIGoToTestSetsMenu);
- SaveCurrentTestSetL();
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- break;
- }
- }
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::HandleClientRectChange
-//
-// Handles client rect changes.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::HandleClientRectChange()
- {
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::DoActivateL
-//
-// Initializes view when activated.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::DoActivateL(
- const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/)
- {
- if (!iContainer)
- {
- ((CAppUIAppUi*)AppUi())->iLogger->Log(
- _L("TestSetMenuView: DoActivateL") );
- iContainer = new (ELeave) CTestSetMenuContainer;
- iContainer->SetMopParent(this);
- iContainer->ConstructL( ClientRect(), this );
- ((CAppUIAppUi*)AppUi())->iLogger->Log(
- _L("TestSetMenuView: container constructed") );
- AppUi()->AddToStackL( *this, iContainer );
- }
-
- //testing
- iContainer->SetCurrentItemIndex(iCurrentTestCase);
-
- CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
- CAknNavigationControlContainer* np =
- (CAknNavigationControlContainer *)sp->ControlL(
- TUid::Uid(EEikStatusPaneUidNavi));
-
- TResourceReader reader;
- iCoeEnv->CreateResourceReaderLC(reader,R_NAVITITLE_TESTSET );
- iNaviDecorator = np->CreateNavigationLabelL( reader );
- CleanupStack::PopAndDestroy(); // resource reader
- np->PushL(*iNaviDecorator);
-
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::DoDeactivate
-//
-// Deactivates view.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::DoDeactivate()
- {
- if ( iContainer )
- {
- iContainer->SaveActiveLine();
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- iContainer = NULL;
- }
- delete iNaviDecorator;
- iNaviDecorator = NULL;
- }
-
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::DynInitMenuPaneL
-//
-// Initializes menu pane.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::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 = iUIStore->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];
- 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 = iUIStore->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 = testCaseFiles[i];
- aMenuPane->AddMenuItemL(item);
- item.iCommandId++; // Command IDs 0x2000 - 0x2FFF are reserved for
- // test case files in hrh file.
- }
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::HandleListBoxEventL
-//
-// Handles listbox events.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::HandleListBoxEventL(CEikListBox* /*aListBox*/,
- TListBoxEvent aEventType)
- {
-
- if ( ( aEventType == EEventEnterKeyPressed ) || ( aEventType == EEventItemDoubleClicked ) )
- {
- const CTestSetInfo& testSetInfo =
- iUIStore->TestSetL( iCurrentTestSet );
- const RRefArray<const CTestInfo>* allCases = &testSetInfo.TestCases();
-
- TInt testCaseCount = allCases->Count();
- if (testCaseCount > 0 )
- {
- StartTestSetL();
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::CreateTestSet
-//
-// Creates new test set.
-// ----------------------------------------------------------------------------
-//
-TInt CTestSetMenuView::CreateTestSetL( const TDesC& aTestSetName )
- {
- TInt error = 0;
- TBuf<100> message;
-
- _LIT(KPath, "c:\\TestFramework\\");
- RFs fs;
- User::LeaveIfError(fs.Connect());
- CleanupClosePushL(fs);
- TEntry entry;
- // we check if the c:\testframework directory exists
- // It is mandatory for this dir to exist if we want to save a test set.
- // This dir must be localised on the C drive of the device
- if(fs.Entry(KPath, entry) != KErrNone)
- { // if the dir does not exist
- TInt err = fs.MkDirAll(KPath); // we create it
- if(err != KErrNone)
- { // if of any reason it was impossible to create the dir - inform user about it
- CAknInformationNote* note = new (ELeave) CAknInformationNote(ETrue);
- note->ExecuteLD( _L("Could not create c:\\TestFramework dir!") );
- }
- }
- CleanupStack::PopAndDestroy(&fs); // close and remove RFs object
-
- error = iUIStore->LoadTestSet( aTestSetName );
-
- // If testset is either active or already created and saved.
- /* if ( KErrNone == error)// || KErrAlreadyExists == error )
- {
- CEikonEnv::Static()->ReadResource( message,
- R_OVERWRITE_TESTSET_QUESTION );
- CAknQueryDialog * dlg =
- CAknQueryDialog::NewL(CAknQueryDialog::ENoTone);
- // Confirm overwrite
- if ( dlg->ExecuteLD( R_GENERAL_CONFIRMATION_DIALOG, message ) )
- {
- error = iUIStore->RemoveTestSet( aTestSetName );
- error = iUIStore->CreateTestSet( aTestSetName );
- if ( error == KErrNone )
- {
- iCurrentTestSet = aTestSetName;
- iSaveNeeded = ETrue;
- }
- }
- // Else load saved default test set
- else
- {
- iSaveNeeded = EFalse;
- iCurrentTestSet = aTestSetName;
- error = KErrAlreadyExists;
- }
- }
- else if ( KErrNotFound == error )
- {
- error = iUIStore->CreateTestSet( aTestSetName );
- if ( KErrNone == error )
- {
- iCurrentTestSet = aTestSetName;
- iSaveNeeded = ETrue;
- }
- }
- else if ( KErrPathNotFound == error )
- {
- error = iUIStore->CreateTestSet( aTestSetName );
- iCurrentTestSet = aTestSetName;
- iSaveNeeded = EFalse;
- }
- else
- {
- ((CAppUIAppUi*)AppUi())->iLogger->Log(_L("Test set creation fails with error: %d"), error );
- CAknInformationNote* informationNote = new (ELeave) CAknInformationNote(ETrue);
- informationNote->ExecuteLD( _L("UNDEFINED ERROR!") );
- }*/
-
- error = iUIStore->CreateTestSet( aTestSetName );
- iCurrentTestSet = aTestSetName;
- iSaveNeeded = ETrue;
- return error;
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::LoadTestSetL
-//
-// Loads saved test set.
-// ----------------------------------------------------------------------------
-//
-TInt CTestSetMenuView::LoadTestSetL( const TDesC& aTestSetName )
- {
- TInt error = 0;
- TBuf<100> message;
- error = iUIStore->LoadTestSet( aTestSetName );
- if ( KErrNone == error || KErrAlreadyExists == error )
- {
- iCurrentTestSet = aTestSetName;
- iSaveNeeded = EFalse;
- }
- else
- {
- CEikonEnv::Static()->ReadResource( message,
- R_LOAD_TESTSET_FAILED );
-
- CAknInformationNote* informationNote = new (ELeave) CAknInformationNote(ETrue);
- informationNote->ExecuteLD(message);
- }
-
- return error;
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::SaveCurrentTestSet
-//
-// Saves current test set.
-// ----------------------------------------------------------------------------
-//
-TInt CTestSetMenuView::SaveCurrentTestSetL()
- {
- TInt error = 0;
- TBuf<100> message;
-
- CEikonEnv::Static()->ReadResource( message,
- R_SAVE_TESTSET_QUESTION );
-
- CAknQueryDialog * dlg =
- CAknQueryDialog::NewL(CAknQueryDialog::ENoTone);
-
- if ( dlg->ExecuteLD( R_GENERAL_CONFIRMATION_DIALOG, message ) )
- {
- error = iUIStore->SaveTestSet2( iCurrentTestSet );
- iSaveNeeded = EFalse;
-
- }
- AppUi()->HandleCommandL(EAppUIGoBack);
-
- return error;
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::RemoveActiveTestSet
-//
-// Removes current test set.
-// ----------------------------------------------------------------------------
-//
-TInt CTestSetMenuView::RemoveActiveTestSet()
- {
- TInt error = 0;
-
- error = iUIStore->RemoveTestSet( iCurrentTestSet );
-
- return error;
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::StartTestSetL
-//
-// Shows confirmation dialog and verify if user really want to start test set.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::StartTestSetL()
- {
- _LIT( KErrorStartingTestSet,
- "TestSetMenuView: StartTestSetL() fails (%d)" );
-
- TInt ret(KErrNone);
- TInt index(0);
- TInt selectedItem(0);
-
- // Default mode is parallel.
- CStartedTestSet::TSetType mode = CStartedTestSet::ESetParallel;
-
- CAknListQueryDialog* startDialog =
- new (ELeave) CAknListQueryDialog(&selectedItem);
-
- // Show confirmation dialog.
- if ( startDialog->ExecuteLD(R_START_MULTIPLE_TESTCASES_LIST_QUERY) )
- {
- index = ((CAppUIAppUi*)AppUi())->iStartedTestSet;
- // Check mode
- if ( 1 == selectedItem )
- {
- mode = CStartedTestSet::ESetSequential;
- }
-
- // Start test set cases.
- ret = iUIStore->StartTestSet(
- iUIStore->TestSetL( iCurrentTestSet ), index, mode );
-
- if ( ret != KErrNone )
- {
- ((CAppUIAppUi*)AppUi())->iStartedTestSet = -1;
- ((CAppUIAppUi*)AppUi())->iLogger->Log(
- KErrorStartingTestSet, ret );
- }
- else
- {
- ((CAppUIAppUi*)AppUi())->iStartedTestSet = index;
- }
- }
-
- }
-
-// ----------------------------------------------------------------------------
-// CTestSetMenuView::RemoveSelectedTestCasesL
-//
-// Removes marked test cases from test set.
-// ----------------------------------------------------------------------------
-//
-void CTestSetMenuView::RemoveSelectedTestCasesL()
- {
- TInt positionToRemove(0);
-
- const CTestSetInfo& testSetInfo = iUIStore->TestSetL( iCurrentTestSet );
- const RRefArray<const CTestInfo>* allCases = &testSetInfo.TestCases();
- CEikListBox* listBox = iContainer->ListBox();
-
- iSaveNeeded = ETrue;
- positionToRemove = listBox->CurrentItemIndex();
- // Remove selected test case from test set.
- TInt ret = iUIStore->RemoveFromTestSet(iCurrentTestSet, allCases->operator[](positionToRemove));
- iContainer->RemoveListBoxItemL(positionToRemove);
-
- if( ret != KErrNone )
- {
- RDebug::Print( _L("RemoveFromTestSet failed with value: %d"), ret );
- }
- }
-
-// End of File