stifui/avkon/stifui/src/AppUIAppUi.cpp
branchRCL_3
changeset 14 404ad6c9bc20
equal deleted inserted replaced
13:87e9ebfbe96a 14:404ad6c9bc20
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 * 
       
    14 * Description: This file contains TMessageBoxUtil class definition.
       
    15 *
       
    16 */
       
    17 
       
    18 // INCLUDE FILES
       
    19 #include "AppUIAppUi.h"
       
    20 
       
    21 #include "MainMenuView.h"
       
    22 #include "TestCaseMenuView.h"
       
    23 #include "StartCasesView.h"
       
    24 #include "TestModulesMenuView.h"
       
    25 #include "StartedCasesMenuView.h"
       
    26 #include "ShowStartedCasesView.h"
       
    27 #include "TestCaseOutputView.h"
       
    28 #include "StatisticsView.h"
       
    29 #include "TestSetBaseMenuView.h"
       
    30 #include "TestSetMenuView.h"
       
    31 #include "TestSetInsertMenuView.h"
       
    32 #include "TestSetStartedCasesView.h"
       
    33 #include <aknmessagequerydialog.h> 
       
    34 #include "version.h"
       
    35 
       
    36 #include "CreatedTestSetMenuView.h"
       
    37 
       
    38 #include <Stifui.rsg>
       
    39 #include "Stifui.hrh"
       
    40 
       
    41 
       
    42 #include <StifTestInterface.h>
       
    43 
       
    44 #include <aknnotewrappers.h>
       
    45 #include <StringLoader.h>
       
    46 
       
    47 _LIT( KTestSet, "DefaultSet" );
       
    48 
       
    49 static const TInt KCopyrightChar = 169;
       
    50 
       
    51 // ----------------------------------------------------------
       
    52 // CMessageBoxUtil::ShowNotImplementedYetL
       
    53 // Displays message that executed funtion is not implemented yet.
       
    54 // ----------------------------------------------------------
       
    55 //
       
    56 void TMessageBoxUtil::ShowNotImplementedYetL()
       
    57     {
       
    58     _LIT(message, "Not implemented yet");
       
    59     CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
       
    60     informationNote->ExecuteLD(message);
       
    61     }
       
    62 
       
    63 // ----------------------------------------------------------
       
    64 // Display error note.
       
    65 // @param aMessage Error message to display.
       
    66 // ----------------------------------------------------------
       
    67 //
       
    68 void TMessageBoxUtil::ShowErrorNoteL( const TDesC& aMessage )
       
    69 	{
       
    70 	CAknErrorNote* errorNote = new (ELeave) CAknErrorNote(ETrue);
       
    71 	// set timeout to 5 sec	
       
    72 	errorNote->SetTimeout( (CAknNoteDialog::TTimeout)5000000 );
       
    73 	errorNote->ExecuteLD( aMessage );
       
    74 	}
       
    75 
       
    76 // ================= MEMBER FUNCTIONS =======================
       
    77 //
       
    78 // ----------------------------------------------------------
       
    79 // CAppUIAppUi::ConstructL()
       
    80 // ?implementation_description
       
    81 // ----------------------------------------------------------
       
    82 //
       
    83 void CAppUIAppUi::ConstructL()
       
    84     {
       
    85     TInt error(0);
       
    86 
       
    87     BaseConstructL( EAknEnableSkin );
       
    88 
       
    89     // connection to setting server needs to be open as long as STIF Series 60 UI APP is alive
       
    90     TInt ret = iSettingServer.Connect();
       
    91     if ( ret != KErrNone )
       
    92         {
       
    93         User::Leave( ret );
       
    94         }
       
    95     
       
    96     iLogger = CStifLogger::NewL( _L("E\x3a\\"), _L("stif_tfw_ui"),
       
    97                                 CStifLogger::ETxt, CStifLogger::EFile,
       
    98                                 ETrue, EFalse, ETrue, EFalse, EFalse );
       
    99 
       
   100     iLogger->Log( _L("--- UI log starts ---") );
       
   101     iLogger->Log( _L(" ") );
       
   102     iLogger->Log( _L("appui: ConstructL") );
       
   103 
       
   104 	// Create CData object which handles all test cases data and running of them
       
   105     iUIStoreHandler = CUIStoreHandler::NewL( this );
       
   106     
       
   107     // CUIStore open 
       
   108     error = UIStoreHandler()->Open( KDefaultPathAndIni );
       
   109     if ( KErrNone != error )
       
   110     	{
       
   111     	User::Leave( error );
       
   112     	}
       
   113 
       
   114     CMainMenuView* mainMenuView = new (ELeave) CMainMenuView;
       
   115     CleanupStack::PushL( mainMenuView );
       
   116     mainMenuView->ConstructL();
       
   117     AddViewL( mainMenuView );      // transfer ownership to CAknViewAppUi
       
   118     CleanupStack::Pop();    // MainMenuView
       
   119 
       
   120     iLogger->Log(_L("appui:mainview "));
       
   121 
       
   122     CCreatedTestSetMenuView* testCreatedTestSetMenuView = new (ELeave) CCreatedTestSetMenuView;
       
   123         CleanupStack::PushL( testCreatedTestSetMenuView );
       
   124        testCreatedTestSetMenuView->ConstructL();
       
   125         AddViewL( testCreatedTestSetMenuView );      // transfer ownership to CAknViewAppUi
       
   126         CleanupStack::Pop();    // testCaseMenuView
       
   127     CTestCaseMenuView* testCaseMenuView = new (ELeave) CTestCaseMenuView;
       
   128     CleanupStack::PushL( testCaseMenuView );
       
   129     testCaseMenuView->ConstructL();
       
   130     AddViewL( testCaseMenuView );      // transfer ownership to CAknViewAppUi
       
   131     CleanupStack::Pop();    // testCaseMenuView
       
   132 
       
   133     iLogger->Log(_L("appui:caseview "));
       
   134 
       
   135     CStartCasesView* startCasesView = new (ELeave) CStartCasesView;
       
   136     CleanupStack::PushL( startCasesView );
       
   137     startCasesView->ConstructL();
       
   138     AddViewL( startCasesView );      // transfer ownership to CAknViewAppUi
       
   139     CleanupStack::Pop();    // startCasesView
       
   140 
       
   141     iLogger->Log(_L("appui:startcaseview "));
       
   142 
       
   143     CStartedCasesMenuView* startedCasesMenuView = new (ELeave) CStartedCasesMenuView;
       
   144     CleanupStack::PushL( startedCasesMenuView );
       
   145     startedCasesMenuView->ConstructL();
       
   146     AddViewL( startedCasesMenuView );      // transfer ownership to CAknViewAppUi
       
   147     CleanupStack::Pop();    // startedCasesMenuView
       
   148 
       
   149     iLogger->Log(_L("appui:started cases view created"));
       
   150 
       
   151     CShowStartedCasesView* showStartedCasesView = new (ELeave) CShowStartedCasesView;
       
   152     CleanupStack::PushL( showStartedCasesView );
       
   153     showStartedCasesView->ConstructL();
       
   154     AddViewL( showStartedCasesView );      // transfer ownership to CAknViewAppUi
       
   155     CleanupStack::Pop();    // showStartedCasesView
       
   156 
       
   157     iLogger->Log(_L("appui: show started cases view created"));
       
   158 
       
   159     CTestCaseOutputView* testCaseOutputView = new (ELeave) CTestCaseOutputView;
       
   160     CleanupStack::PushL( testCaseOutputView );
       
   161     testCaseOutputView->ConstructL();
       
   162     AddViewL( testCaseOutputView );      // transfer ownership to CAknViewAppUi
       
   163     CleanupStack::Pop();    // testCaseOutputView
       
   164 
       
   165     iLogger->Log(_L("appui: test case output view created"));
       
   166 
       
   167     CTestModulesMenuView* testModulesMenuView = new (ELeave) CTestModulesMenuView;
       
   168     CleanupStack::PushL( testModulesMenuView );
       
   169     testModulesMenuView->ConstructL();
       
   170     AddViewL( testModulesMenuView );      // transfer ownership to CAknViewAppUi
       
   171     CleanupStack::Pop();    // testModulesMenuView
       
   172 
       
   173     iLogger->Log(_L("appui:modulesview "));
       
   174 
       
   175     CStatisticsView* statisticsMenuView = new (ELeave) CStatisticsView;
       
   176     CleanupStack::PushL( statisticsMenuView );
       
   177     statisticsMenuView->ConstructL();
       
   178     AddViewL( statisticsMenuView );      // transfer ownership to CAknViewAppUi
       
   179     CleanupStack::Pop();    // statisticsMenuView
       
   180 
       
   181     iLogger->Log(_L("appui:modulesview "));
       
   182 
       
   183 	//
       
   184 	CTestSetBaseMenuView* testSetBaseMenuView = new (ELeave) CTestSetBaseMenuView;
       
   185     CleanupStack::PushL( testSetBaseMenuView );
       
   186     testSetBaseMenuView->ConstructL();
       
   187     AddViewL( testSetBaseMenuView );      // transfer ownership to CAknViewAppUi
       
   188     CleanupStack::Pop();    // testSetBaseMenuView
       
   189 
       
   190     iLogger->Log(_L("appui:testsetsbaseview "));
       
   191     
       
   192     CTestSetMenuView* testSetMenuView = new (ELeave) CTestSetMenuView;
       
   193     CleanupStack::PushL( testSetMenuView );
       
   194     testSetMenuView->ConstructL();
       
   195     AddViewL( testSetMenuView );      // transfer ownership to CAknViewAppUi
       
   196     CleanupStack::Pop();    // testSetMenuView
       
   197 
       
   198     iLogger->Log(_L("appui:testsetsview "));
       
   199 	
       
   200 	CTestSetInsertMenuView* testSetInsertMenuView = new (ELeave) CTestSetInsertMenuView;
       
   201     CleanupStack::PushL( testSetInsertMenuView );
       
   202     testSetInsertMenuView->ConstructL();
       
   203     AddViewL( testSetInsertMenuView );      // transfer ownership to CAknViewAppUi
       
   204     CleanupStack::Pop();    // testSetInsertMenuView
       
   205    	
       
   206    	iLogger->Log(_L("appui:testsetinsertview "));
       
   207    	
       
   208    	CTestSetStartedCasesView* testSetStartedCasesView = new (ELeave) CTestSetStartedCasesView;
       
   209     CleanupStack::PushL( testSetStartedCasesView );
       
   210     testSetStartedCasesView->ConstructL();
       
   211     AddViewL( testSetStartedCasesView );      // transfer ownership to CAknViewAppUi
       
   212     CleanupStack::Pop();    // testSetStartedCasesView
       
   213 
       
   214     iLogger->Log(_L("appui:testsetStartedCasesView "));
       
   215     
       
   216 
       
   217     SetDefaultViewL( *mainMenuView );
       
   218 
       
   219     iLogger->Log(_L("appui:setdefview "));
       
   220     
       
   221     iStartedTestCase = NULL;
       
   222     iStartedTestSet = -1;
       
   223     
       
   224     iPreviousPositionListValid = ETrue;
       
   225     }
       
   226 
       
   227 // ----------------------------------------------------
       
   228 // CAppUIAppUi::~CAppUIAppUi()
       
   229 // Destructor
       
   230 // Frees reserved resources
       
   231 // ----------------------------------------------------
       
   232 //
       
   233 CAppUIAppUi::~CAppUIAppUi()
       
   234     {
       
   235     
       
   236     if ( iLogger )
       
   237     {
       
   238     iLogger->Log( _L(" ") );
       
   239     iLogger->Log( _L("--- UI log ends ---") );    	
       
   240     }
       
   241 
       
   242     delete iLogger;
       
   243     iSettingServer.Close();
       
   244     UIStoreHandler()->Close();
       
   245     delete iUIStoreHandler;
       
   246     
       
   247     // Closing of array of positions of focus in various menus
       
   248     iPreviousFocusPosition.Close();
       
   249     // iPreviousFocusPosition is no longer valid and cannot be used any more
       
   250     iPreviousPositionListValid = EFalse;
       
   251     //RemoveView(EMainMenuViewId);
       
   252     }
       
   253 
       
   254 // ------------------------------------------------------------------------------
       
   255 // CAppUIAppUi::Data( )
       
   256 // Just returns pointer to CUIStore object, which is created by CAppUIAppUi
       
   257 // ------------------------------------------------------------------------------
       
   258 //
       
   259 CUIStore* CAppUIAppUi::UIStoreHandler()
       
   260     {
       
   261     return &iUIStoreHandler->UIStore();
       
   262 
       
   263     }
       
   264 
       
   265 // ------------------------------------------------------------------------------
       
   266 // CAppUIAppUi::::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
       
   267 //  This function is called by the EIKON framework just before it displays
       
   268 //  a menu pane. Its default implementation is empty, and by overriding it,
       
   269 //  the application can set the state of menu items dynamically according
       
   270 //  to the state of application data.
       
   271 // ------------------------------------------------------------------------------
       
   272 //
       
   273 void CAppUIAppUi::DynInitMenuPaneL(
       
   274     TInt /*aResourceId*/,CEikMenuPane* /*aMenuPane*/)
       
   275     {
       
   276 
       
   277     }
       
   278 
       
   279 // ----------------------------------------------------
       
   280 // CAppUIAppUi::HandleKeyEventL(
       
   281 //     const TKeyEvent& aKeyEvent,TEventCode /*aType*/)
       
   282 // ?implementation_description
       
   283 // ----------------------------------------------------
       
   284 //
       
   285 TKeyResponse CAppUIAppUi::HandleKeyEventL(
       
   286     const TKeyEvent& aKeyEvent,TEventCode /*aType*/)
       
   287     {
       
   288 	TInt currentView;
       
   289 
       
   290 	if ( iView )
       
   291 	{
       
   292     currentView = (iView->Id()).iUid;
       
   293  			
       
   294     
       
   295     switch ( aKeyEvent.iCode )
       
   296         {
       
   297         case EKeyLeftArrow:
       
   298 			{
       
   299 			switch ( currentView )
       
   300 				{
       
   301 				case ETestModulesMenuViewId:
       
   302 					{
       
   303                     HandleCommandL( EAppUIGoToTestCaseMenu );
       
   304 					break;
       
   305 					}
       
   306 				case ETestSetBaseMenuViewId:
       
   307 					{
       
   308                     HandleCommandL( EAppUIGoToModulesMenu );
       
   309 					ActivateLocalViewL(TUid::Uid(ETestModulesMenuViewId));
       
   310 					break;
       
   311 					}
       
   312                 }
       
   313             break;
       
   314 			}
       
   315         case EKeyRightArrow:
       
   316 			{
       
   317 			switch ( currentView )
       
   318 				{
       
   319 				case ETestCaseMenuViewId:
       
   320 					{
       
   321                     HandleCommandL( EAppUIGoToModulesMenu ); // TestCaseMenu --> TestModuleMenu
       
   322 					ActivateLocalViewL(TUid::Uid(ETestModulesMenuViewId));
       
   323 					break;
       
   324 					}
       
   325 				case ETestModulesMenuViewId:
       
   326 					{
       
   327 					HandleCommandL( EAppUIGoToTestSetsMenu );
       
   328 					ActivateLocalViewL(TUid::Uid(ETestSetBaseMenuViewId));
       
   329 					break;
       
   330 					}
       
   331 				case ETestSetsMenuViewId:
       
   332 					{
       
   333 					break;
       
   334 					}
       
   335 
       
   336 				}
       
   337             break;
       
   338 			}
       
   339 
       
   340         default:
       
   341 			{
       
   342             return EKeyWasNotConsumed;
       
   343             //break; 
       
   344 			}
       
   345         }
       
   346 	}
       
   347 
       
   348     return EKeyWasConsumed;
       
   349 
       
   350     }
       
   351 
       
   352 // ----------------------------------------------------
       
   353 // CAppUIAppUi::HandleCommandL(TInt aCommand)
       
   354 // ?implementation_description
       
   355 // ----------------------------------------------------
       
   356 //
       
   357 void CAppUIAppUi::HandleCommandL(TInt aCommand)
       
   358     {
       
   359 	TInt currentView, newView;
       
   360     TInt error(0);
       
   361     
       
   362     currentView = (iView->Id()).iUid;
       
   363 
       
   364     switch ( aCommand )
       
   365         {
       
   366         case EEikCmdExit:
       
   367         case EAknSoftkeyExit:
       
   368             {
       
   369             PrepareToExit();
       
   370             Exit();
       
   371 			newView = currentView;
       
   372             break;
       
   373             }
       
   374         case EAppUIGoBack:
       
   375             {
       
   376 			switch ( currentView )
       
   377 				{
       
   378 				case ETestCaseMenuViewId:
       
   379 					{
       
   380 					newView = EMainMenuViewId;  // Test Cases Menu --> Main Menu
       
   381 					break;
       
   382 					}
       
   383 				case EStartCaseMenuViewId:
       
   384 					{
       
   385 					newView = ETestCaseMenuViewId; // Start Cases Menu --> Test Cases Menu
       
   386                     //iTabGroup->SetActiveTabByIndex(0);
       
   387 					break;
       
   388 					}
       
   389 				case ETestModulesMenuViewId:
       
   390 					{
       
   391 					newView = EMainMenuViewId; // Test Modules Menu --> Main Menu
       
   392 					break;
       
   393 					}
       
   394 				case EStartedCasesMenuViewId:
       
   395 					{
       
   396 					newView = ETestCaseMenuViewId; // Started Cases Menu --> Test Case Menu
       
   397 					break;
       
   398 					}
       
   399 				case EShowStartedCasesViewId:
       
   400 					{
       
   401 					newView = EStartedCasesMenuViewId; // Show started cases --> Started Cases Menu
       
   402 					break;
       
   403 					}
       
   404 				case ETestCaseOutputViewId:
       
   405 					{
       
   406                     newView = iPreviousView; // Test case output view --> previous view
       
   407 					break;
       
   408 					}
       
   409 				case EStatisticsViewId:
       
   410 					{
       
   411                     newView = EStartedCasesMenuViewId; // Statistic view --> Started Cases Menu
       
   412 					break;
       
   413 					}
       
   414 				case ETestSetBaseMenuViewId:
       
   415 					{
       
   416 					newView = EMainMenuViewId;  // Test Sets Base Menu --> Main Menu
       
   417 					break;
       
   418 					}
       
   419 				case ETestSetMenuViewId:
       
   420 					{
       
   421 					newView = ETestSetBaseMenuViewId;  // Test Sets Menu --> Test Sets Base Menu
       
   422 					break;
       
   423 					}
       
   424 				case ETestSetInsertMenuViewId:
       
   425 					{
       
   426 					newView = ETestSetMenuViewId;  // Test Set Insert Menu --> Test Sets Menu
       
   427 					break;
       
   428 					}
       
   429 				case ETestSetStartedCasesViewId:
       
   430 					{
       
   431 					newView = ETestSetMenuViewId;  // Test Set Started Cases Menu --> Test Sets Menu
       
   432 					break;
       
   433 					}
       
   434 				default:
       
   435 					{
       
   436 					newView = currentView; // Back does not work. This should not happen ever
       
   437 					break;
       
   438 					}
       
   439 				}
       
   440             break;
       
   441 			}
       
   442 		case EAppUIGoToMainMenu:
       
   443 			{
       
   444 			newView = EMainMenuViewId;
       
   445 			break;
       
   446 			}
       
   447 		case EAppUIGoToTestCaseMenu:
       
   448 			{
       
   449 			newView = ETestCaseMenuViewId;
       
   450 			break;
       
   451 			}
       
   452 		case ECmdGoToStartCasesView:
       
   453 			{
       
   454 			newView = EStartCaseMenuViewId;
       
   455 			break;
       
   456 			}
       
   457 		case ECmdGoToStartedCasesView:
       
   458 			{
       
   459 			newView = EStartedCasesMenuViewId;
       
   460 			break;
       
   461 			}
       
   462 		case EAppUIGoToModulesMenu:
       
   463 			{
       
   464 			newView = ETestModulesMenuViewId;
       
   465             //iTabGroup->SetActiveTabByIndex(1);
       
   466 			break;
       
   467 			}
       
   468 		case EAppUIGoToTestSetsMenu:
       
   469 			{
       
   470             newView = ETestSetBaseMenuViewId;
       
   471             
       
   472             //ShowNotImplementedYet();
       
   473             //newView = currentView;
       
   474 			break;
       
   475 			}
       
   476         case ECmdCreateTestSet:
       
   477 	        {
       
   478 	        CTestSetMenuView* testSetMenu = (CTestSetMenuView*)View( TUid::Uid(ETestSetMenuViewId) );
       
   479 	        error = testSetMenu->CreateTestSetL( KTestSet );
       
   480 	        if ( KErrNone == error ||  KErrAlreadyExists == error)
       
   481 	            {
       
   482 	            newView = ETestSetInsertMenuViewId;
       
   483 	            currentView = ETestSetMenuViewId; // Store previous view for Back function
       
   484 	            }
       
   485 	        else
       
   486 	            {
       
   487 	            newView = ETestSetMenuViewId;
       
   488 	            }
       
   489             break;
       
   490     	    }
       
   491     	case ECmdLoadTestSet:
       
   492 	        {
       
   493 	        newView = ECreatedTestSetMenuViewId; /*ETestSetBaseMenuViewId;*/
       
   494 	        break;
       
   495 			}
       
   496     	case ECmdGoToTestSetView:
       
   497     		{
       
   498 
       
   499     		newView = ETestSetMenuViewId; 
       
   500     		break;
       
   501     		}
       
   502         case ECmdInsertTestCases:
       
   503 	        {
       
   504     		newView = ETestSetInsertMenuViewId;
       
   505     		break;
       
   506         	}
       
   507         case ECmdShowStartedTestSet:
       
   508 	        {
       
   509     		newView = ETestSetStartedCasesViewId;
       
   510     		iShowStartedCasesMode = EShowAllStartedCases;
       
   511     		break;
       
   512         	}
       
   513         case ECmdShowAllStartedCases:
       
   514             newView = EShowStartedCasesViewId;
       
   515             iShowStartedCasesMode = EShowAllStartedCases;
       
   516 			break;
       
   517         case ECmdShowOngoingCases:
       
   518             newView = EShowStartedCasesViewId;
       
   519             iShowStartedCasesMode = EShowOngoingCases;
       
   520         	break;
       
   521         case ECmdShowPassedCases:
       
   522             newView = EShowStartedCasesViewId;
       
   523             iShowStartedCasesMode = EShowPassedCases;
       
   524 			break;
       
   525         case ECmdShowPausedCases:
       
   526             newView = EShowStartedCasesViewId;
       
   527             iShowStartedCasesMode = EShowPausedCases;
       
   528 			break;
       
   529         case ECmdShowFailedCases:
       
   530             newView = EShowStartedCasesViewId;
       
   531             iShowStartedCasesMode = EShowFailedCases;
       
   532 			break;
       
   533         case ECmdShowCrashedAbortedCases:
       
   534             newView = EShowStartedCasesViewId;
       
   535             iShowStartedCasesMode = EShowCrashedAbortedCases;
       
   536 			break;
       
   537         case ECmdShowStatistics:
       
   538             newView = EStatisticsViewId;
       
   539 			break;
       
   540         case ECmdViewOutput:
       
   541             newView = ETestCaseOutputViewId;
       
   542             break;
       
   543         case ECmdShowAbout:
       
   544         	{
       
   545         	CAknMessageQueryDialog* dlg = new (ELeave) CAknMessageQueryDialog;
       
   546         	TBuf<200> version;
       
   547         	version.Format(_L("STIF UI - Version %d.%d.%d - "), STIFUI_MAJOR_VERSION, STIFUI_MINOR_VERSION, STIFUI_BUILD_VERSION);
       
   548         	version.Append(TO_UNICODE(STIFUI_REL_DATE));
       
   549         	version.Append(_L("\n"));
       
   550         	
       
   551         	TInt stifMajorV;
       
   552         	TInt stifMinorV;
       
   553         	TInt stifBuildV;
       
   554         	TBuf<30> relDate;
       
   555         	TStifUtil::STIFVersion(stifMajorV, stifMinorV, stifBuildV, relDate);
       
   556         	
       
   557         	TBuf<40> stifVersion;
       
   558         	stifVersion.Format(_L("STIF - Version %d.%d.%d - "), stifMajorV, stifMinorV, stifBuildV);
       
   559         	stifVersion.Append(relDate);
       
   560         	stifVersion.Append(_L("\n"));
       
   561         	
       
   562         	version.Append(stifVersion);
       
   563         	
       
   564         	version.Append(_L("Copyright "));
       
   565 			version.Append( KCopyrightChar );
       
   566 			version.Append(_L(" 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved."));
       
   567         	
       
   568         	dlg->SetMessageText(version);
       
   569         	dlg->ExecuteLD(R_STIFUI_ABOUT_DIALOG);
       
   570         	newView = currentView;
       
   571         	break;
       
   572         	}
       
   573         default:
       
   574 			{
       
   575             TMessageBoxUtil::ShowNotImplementedYetL();
       
   576 			newView = currentView;
       
   577             break;
       
   578 			}
       
   579         }
       
   580 
       
   581 	if( newView != currentView )
       
   582 		{
       
   583         iPreviousView = currentView; // Store previous view for Back function
       
   584 		ActivateLocalViewL( TUid::Uid(newView) );
       
   585 
       
   586 		/*switch ( newView )
       
   587 			{
       
   588 			case EMainMenuViewId:
       
   589             case EStartedCasesMenuViewId:
       
   590             case EStartCaseMenuViewId:
       
   591             case ETestCaseOutputViewId:
       
   592 				{
       
   593 		        //StatusPane()->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL);
       
   594                 //iTabGroup->DimTab (ETestCaseMenuTab, ETrue);
       
   595                 //iTabGroup->DimTab (ETestModulesMenuTab, ETrue);
       
   596                 //iTabGroup->DimTab (ETestSetsMenuTab, ETrue);
       
   597 
       
   598                 //StatusPane()->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_EMPTY);
       
   599 				//StatusPane()->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_IDLE);
       
   600 				break;
       
   601 				}
       
   602 			case ETestCaseMenuViewId:
       
   603 			case ETestModulesMenuViewId:
       
   604 			case ETestSetsMenuViewId:
       
   605 				{
       
   606 				//StatusPane()->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL);
       
   607                 //iTabGroup->DimTab (ETestCaseMenuTab, EFalse);
       
   608                 //iTabGroup->DimTab (ETestModulesMenuTab, EFalse);
       
   609                 //iTabGroup->DimTab (ETestSetsMenuTab, EFalse);
       
   610                 break;
       
   611 				}
       
   612 			default:
       
   613 				{
       
   614                 break;
       
   615 				}
       
   616 			}*/
       
   617 		}
       
   618 
       
   619     }
       
   620 
       
   621 /**
       
   622 * Receives output update notification from UI Storehandler
       
   623 * @param
       
   624 * @return
       
   625 */
       
   626 void CAppUIAppUi::OutputUpdateL( CStartedTestCase* aTestCase, TInt /* aStatus */ )
       
   627     {
       
   628     if( iView->Id().iUid == ETestCaseOutputViewId )
       
   629         {
       
   630         ( ( CTestCaseOutputView* )iView )->OutputUpdateL( aTestCase );
       
   631         }
       
   632     else if( iView->Id().iUid == EShowStartedCasesViewId )
       
   633         {
       
   634         ( ( CShowStartedCasesView* )iView )->TestCaseStateChangedL();
       
   635         }
       
   636     else if( iView->Id().iUid == ETestCaseOutputViewId )
       
   637         {
       
   638         ( ( CTestCaseOutputView* )iView )->TestCaseStateChangedL();
       
   639         }
       
   640     }
       
   641   
       
   642 /**
       
   643 * Sets index of selected test case for viewing test case output
       
   644 * @param
       
   645 * @return
       
   646 */    
       
   647 void CAppUIAppUi::SetStartedTestCase( CStartedTestCase* aStartedTestCase )
       
   648     {
       
   649     iStartedTestCase = aStartedTestCase;
       
   650     }    
       
   651   
       
   652 /**
       
   653 * Returns index of selected test case for viewing test case output
       
   654 * @param
       
   655 * @return
       
   656 */    
       
   657 CStartedTestCase* CAppUIAppUi::GetStartedTestCase( )
       
   658     {
       
   659     return iStartedTestCase;
       
   660     }        
       
   661 
       
   662 /**
       
   663  * Stores focus position of focus from a specyfic view to iPreviousFocusPosition object.
       
   664  * Value is than used to retrieve previous position of focus in the menu
       
   665  * @param aViewId - identification of view
       
   666  * @param aPosition - value to store for a specyfic view
       
   667  */
       
   668 void CAppUIAppUi::SaveFocusPosition(TAppUIViewNumber aViewId, TInt aPosition)
       
   669 	{
       
   670 	if(!iPreviousPositionListValid)
       
   671 		{
       
   672 		return;
       
   673 		}
       
   674 	for(TInt counter = iPreviousFocusPosition.Count(); counter <= aViewId; counter++)
       
   675 		{
       
   676 		iPreviousFocusPosition.Append(0);
       
   677 		}
       
   678 	iPreviousFocusPosition[aViewId] = aPosition;
       
   679 	}
       
   680 
       
   681 /**
       
   682  * Restores focus position of focus for a specyfic view from iPreviousFocusPosition object.
       
   683  * @param aViewId - identification of view
       
   684  * @return - previous position of focus in the requested view
       
   685  */
       
   686 TInt CAppUIAppUi::GetFocusPosition(TAppUIViewNumber aViewId)
       
   687 	{
       
   688 	if(iPreviousFocusPosition.Count() > aViewId)
       
   689 		{
       
   690 		return iPreviousFocusPosition[aViewId];
       
   691 		}
       
   692 	else
       
   693 		{
       
   694 		return KErrNotFound;
       
   695 		}
       
   696 	}
       
   697 
       
   698 // End of File