locationtriggering/lbtmgmtui/src/lbtmgmtpluginview.cpp
branchRCL_3
changeset 44 2b4ea9893b66
parent 42 02ba3f1733c6
child 45 6b6920c56e2f
--- a/locationtriggering/lbtmgmtui/src/lbtmgmtpluginview.cpp	Thu Aug 19 10:20:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,482 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Location Triggering Management Plugin view
-*
-*/
-
-
-// System Include
-#include <barsread.h>               // For TResourceReader
-#include <bautils.h>   
-#include <StringLoader.h>
-#include <aknViewAppUi.h>
-#include <lbtmgmtpluginview.rsg>
-#include <avkon.rsg>
-#include <aknnotewrappers.h>        // Error Notes
-#include <textresolver.h>           // Text Resolver
-#include <hlplch.h>                 // Help
-#include <featmgr.h>                // FeatureManager
-
-// User Include
-#include "locsettingsui.h"
-#include "locsettingsuiobserver.h"
-#include "lbtmgmtplugin.hrh"
-#include "lbtmgmtpluginview.h"
-#include "lbtmgmtplugincontainer.h"
-#include "lbtmgmtpluginengine.h"
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-
-// ---------------------------------------------------------------------------
-// CLbtMgmtPluginView::CLbtMgmtPluginView
-// Overloaded Constructor
-//
-// ---------------------------------------------------------------------------
-//  
-CLbtMgmtPluginView::CLbtMgmtPluginView( 
-                            MLocSettingsUiObserver& aSettingsObsrv )
-    :iSettingsObserver( aSettingsObsrv ),
-    iResourceLoader( *CCoeEnv::Static() )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CLbtMgmtPluginView::~CLbtMgmtPluginView
-// Destructor
-//
-// ---------------------------------------------------------------------------
-//
-CLbtMgmtPluginView::~CLbtMgmtPluginView()
-    {    
-    // Close the resource loader
-    iResourceLoader.Close(); 
-    }
-    
-// ---------------------------------------------------------------------------
-// CLbtMgmtPluginView* CLbtMgmtPluginView::NewL
-// Creates new Location Trigger Management view.
-//
-// @param aSettingsObsrv            Pointer to the Command Handler
-// @return CLbtMgmtPluginView*   Reference to the application view
-// ---------------------------------------------------------------------------
-//   
-CLbtMgmtPluginView* CLbtMgmtPluginView::NewL( 
-                            MLocSettingsUiObserver& aSettingsObsrv )
-    {   
-    CLbtMgmtPluginView* self = 
-                        CLbtMgmtPluginView::NewLC( aSettingsObsrv );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CLbtMgmtPluginView* CLbtMgmtPluginView::NewLC
-// Creates new Location Trigger Management view.
-//
-// @param aSettingsObsrv            Pointer to the Command Handler
-// @return CLbtMgmtPluginView*   Reference to the application view
-// ---------------------------------------------------------------------------
-//  
-CLbtMgmtPluginView* CLbtMgmtPluginView::NewLC( 
-                            MLocSettingsUiObserver& aSettingsObsrv )
-    {   
-    CLbtMgmtPluginView* self = 
-                        new(ELeave) CLbtMgmtPluginView( aSettingsObsrv );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-    
-// ---------------------------------------------------------------------------
-// void CLbtMgmtPluginView::ConstructL
-// Second Phase Constructor
-//
-// ---------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::ConstructL()
-    {
-        
-    // Open the Resource File
-    OpenLocalizedResourceFileL( KLbtMgmtViewResFileName, iResourceLoader );
-    
-    // Call AknView's BaseConstrutL
-    BaseConstructL( R_LBTMGMTPLUGIN_VIEW );
- 
-    }
-
-// ---------------------------------------------------------------------------
-// void CLbtMgmtPluginView::CloseSettings
-// Close the Location Triggering Management Settings
-//
-// ---------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::CloseSettings()
-    {
-    // Stop displaying the menu bar, if its currently being displayed
-    StopDisplayingMenuBar();
-    
-    // Close all the active dialogs
-    if( iEngine )
-    		iEngine->Close();
-    }
-        
-// ---------------------------------------------------------------------------
-// void CLbtMgmtPluginView::DoActivateL
-// 
-// ---------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::DoActivateL( const TVwsViewId&  /* PrevViewId*/,
-                                               TUid         /* aCustomMessageId*/,
-                                         const TDesC8&      /* aCustomMessage */)
-    {
-    // Destroy the existing container if it exists
-    if( iContainer )
-        {
-        AppUi()->RemoveFromViewStack( *this, iContainer );
-        delete iContainer;
-        iContainer=NULL;
-        }                       
-    
-    // Create the Location Triggering engine instance
-    iEngine = CLbtMgmtPluginEngine::NewL( *this );
-    
-    // Create new Container 
-    iContainer = CLbtMgmtPluginContainer::NewL(ClientRect(), *iEngine, *this,
-            this);
-    iContainer->SetMopParent(this);
-    AppUi()->AddToViewStackL(*this, iContainer);
-    MenuBar()->SetContextMenuTitleResourceId(R_LBTMGMTPLUGIN_CONTEXTMENUBAR);
-
-    SetCba(R_LBTMGMTPLUGIN_CBA_CHANGE);
-    }
-
-// ---------------------------------------------------------------------------
-// void CLocationSystemUiView::DoDeactivate
-//
-// ---------------------------------------------------------------------------
-//      
-void CLbtMgmtPluginView::DoDeactivate()
-    {
-    // Destroy Container
-    AppUi()->RemoveFromViewStack( *this, iContainer );
-    delete iContainer;
-    iContainer = NULL;
-    
-    // Delete the engine
-		delete iEngine;
-		iEngine = NULL;
-    
-    }
-
-// ---------------------------------------------------------------------------
-// TUid CLbtMgmtPluginView::Id
-// Returns the View Id. Should be chosen to reflect the Implementation UID 
-// of the Plugin
-//
-// @return TUid The View Id
-// ---------------------------------------------------------------------------
-//  
-TUid CLbtMgmtPluginView::Id() const
-    {
-    return TUid::Uid( KLbtMgmtPluginUID3 );
-    }
-
-// ---------------------------------------------------------------------------
-// void CLbtMgmtPluginView::HandleCommandL
-//
-// ---------------------------------------------------------------------------
-//  
-void CLbtMgmtPluginView::HandleCommandL(TInt aCommand)   
-    {
-    switch( aCommand )
-        {
-        case ELbtMgmtShowCSMenu:
-            if (CLbtMgmtPluginEngine::EActiveTriggers
-                    == iContainer->GetFocussedItem())
-                {
-                iContainer->ShowContextMenuL();
-                }
-            break;
-        case ELbtMgmtChange:
-        case ELbtMgmtMSKChange:
-    		{
-    		SettingsChangeL(aCommand);   		
-          	break;
-      	}
-  	  case ELbtMgmtMSKInfo:
-  	  	break;
-        case ELbtMgmtInfo:
-              	{
-			iEngine->ShowInfoDialogL();
-        	break;
-        	}
-        case ELbtMgmtClearAll:
-    		{
-    		iEngine->ClearAllTriggersL();
-    		iContainer->Update();
-    		HandleCmdL(EListBoxItemFocused);
-    		break;
-          	}
-        case EAknCmdHelp:        
-            {
-            HlpLauncher::LaunchHelpApplicationL( iCoeEnv->WsSession(),
-                                                 AppUi()->AppHelpContextL());
-            break;  
-          	}           
-        // Handle any plug-in specific internal commands here
-        case EAknSoftkeyBack:
-            {
-            // The UI is intended to be closed. Pass the event 
-            // to the observer
-            iSettingsObserver.SettingClosed( KErrNone );
-            break;
-            }
-        default:
-            {
-            // Un-handled commands are to be passed to the 
-            // App UI
-            AppUi()->HandleCommandL(aCommand);
-            break;
-            }
-        }
-    }   
-
-// -----------------------------------------------------------------------------
-// CLbtMgmtPluginView::SetCba
-// -----------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::SetCba( TInt aResourceId ) 
-		{
-		if( Cba() )
-		    {
-		   	TRAP_IGNORE(Cba()->SetCommandSetL(aResourceId));
-		    }
-	  Cba()->DrawDeferred(); 
-		}
-
-// ---------------------------------------------------------------------------
-// void CLbtMgmtPluginView::HandleCommandL
-// Inherited from MLbtMgmtPluginCmdHdlr
-// Handles Selection events from the container
-// 
-// @param  aCommand Command ID
-// ---------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::HandleCmdL( TLbtMgmtPluginCmd aCommand )
-    {
-    switch( aCommand )
-        {
-        // Handle any plug-in specific internal commands here
-        case EListBoxItemSelected:
-	          	{
-	          	// Handle List Box Selected Event   
-	            TRAPD( error, SettingsChangeL( ELbtMgmtMSKChange ));
-	            if( error )
-	                {
-	                // Show Error Note
-	    			CTextResolver* iTextResolver = CTextResolver::NewLC(*iCoeEnv);
-	                TPtrC buffer = iTextResolver->ResolveErrorString( error );
-	                CAknErrorNote* errorNote = new ( ELeave )CAknErrorNote( ETrue );
-	                TRAP_IGNORE( errorNote->ExecuteLD( buffer ));
-	    			CleanupStack::PopAndDestroy( iTextResolver );
-	                }    
-				break;    
-	          	}
-        case EListBoxItemFocused:
-        		{
-	        	if( CLbtMgmtPluginEngine::EActiveTriggers == iContainer->GetFocussedItem()   )
-	        	    {
-	        	    if( iEngine->ActiveTriggers() )
-	        			SetCba( R_LBTMGMTPLUGIN_CBA_INFO );
-	        	    else
-	        	        SetCba( R_LBTMGMTPLUGIN_CBA_NOACTIVETRIGGERS );
-	        	    }
-	        	else
-	        			SetCba( R_LBTMGMTPLUGIN_CBA_CHANGE );
-	        	break;
-	        	}
-        case EScreenSizeChanged:
-	          {
-            if( iContainer )
-                {
-                iContainer->SetRect( ClientRect());     
-                }
-	          break;
-	          }
-        default:
-            {
-            break;  
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Inherited from MLbtMgmtEngObserver
-// ---------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::HandleSettingsChangeEventL()
-    {
-    // Observer callback notifies that one/more of the settings values have
-    // changed. Hence, need to refresh the container to show the latest
-    // values
-    if( iContainer )
-        {
-        iContainer->DrawDeferred();
-        }
-    
-    // Handle any changes to the MSK configuration. 
-    HandleCmdL( EListBoxItemFocused );
-    }
-    
-// -----------------------------------------------------------------------------
-// CLbtMgmtPluginView::HandleHelpFeature
-// -----------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::HandleHelpFeature( CEikMenuPane& aMenuPane ) const
-    {
-    if ( FeatureManager::FeatureSupported( KFeatureIdHelp ))
-        {
-        aMenuPane.SetItemDimmed( EAknCmdHelp, EFalse );
-        }
-    else
-        {
-        aMenuPane.SetItemDimmed( EAknCmdHelp, ETrue );
-        }
-    }
-    
-
-// ---------------------------------------------------------------------------
-// Handle Settings Change Event
-// 
-// @param aCmd Settings change command
-// ---------------------------------------------------------------------------
-//
-void CLbtMgmtPluginView::SettingsChangeL( TInt aCmd )
-    {
-    if( !iContainer )
-        {
-        // No container available. Nothing to do in this case. Hence, returning
-        return;
-        }
-    CLbtMgmtPluginEngine::TSettingsList currentElement;
-    currentElement = static_cast<CLbtMgmtPluginEngine::TSettingsList>
-                        ( iContainer->GetFocussedItem() );
-    
-    // Switch based on the currently focussed element
-    switch( currentElement )
-        {
-        case CLbtMgmtPluginEngine::ETriggeringStatus:
-            {
-            // Different handling needed for Touch handling and Item selection
-            // using the OK key.
-            // Incase the User has selected the item using the OK key then 
-            // normal handling required
-            // Incase the User has selected the item using touch selection
-            // then the Trigger Status needs to be toggled
-            if( ELbtMgmtChange == aCmd )
-                {
-                iEngine->ChangeTiggerStatusL();
-                }
-            else
-                {
-                iEngine->ToggleTiggerStatusL();
-                }
-            iContainer->Update();
-            break;
-            }
-        case CLbtMgmtPluginEngine::EActiveTriggers:
-            {
-			// If condition is added for any pointer event from container
-            break;
-            }
-        default:
-            {
-            // Element not found
-            User::Leave( KErrNotFound );
-            }
-        }
-    }
-                    
-// ---------------------------------------------------------------------------
-// void CLbtMgmtPluginView::OpenLocalizedResourceFileL
-// Opens the nearest localized resourcefile using aResourceLoader. 
-// aResourceLoader should be opened only once before closing it. 
-// Otherwise it will raise a panic. Therefore it is better to have 
-// multiple resource loaders.
-// 
-// @param aResourceFileName Drive and name of resource file in format 
-//                          <path>:<rsc_file_name>
-// @param aResourceLoader Resource loader for the resource. The loader 
-//                        must not be opened allready or it will raise 
-//                        a panic. It is caller's responsibility to 
-//                        close the resource loader after using the 
-//                        resource.
-// ---------------------------------------------------------------------------
-//  
-void CLbtMgmtPluginView::OpenLocalizedResourceFileL( 
-                            const TDesC&               aResourceFileName, 
-                                  RConeResourceLoader& aResourceLoader )
-    {
-    RFs fsSession;
-    User::LeaveIfError( fsSession.Connect());
-    
-    TFileName* tmpName = new(ELeave) TFileName;
-    CleanupStack::PushL( tmpName );
-    
-    // Append the Resource Files Directory
-    tmpName->Append( KDC_RESOURCE_FILES_DIR );
-    
-    // Append the Ressource File Name
-    tmpName->Append( aResourceFileName );
-    
-    // Obtain the drive where the DLL is installed
-    TFileName* dllDrive = new (ELeave) TFileName;
-    CleanupStack::PushL( dllDrive );
-    Dll::FileName( *dllDrive );
-    
-    // Obtain the Complete path for the Resource File
-    TParse parse;
-    User::LeaveIfError( parse.Set( *dllDrive, NULL, NULL ) );
-    User::LeaveIfError( parse.Set( parse.Drive(), tmpName, NULL ) );
-    TFileName* fileName = new(ELeave) TFileName;
-    CleanupStack::PushL( fileName );
-    fileName->Append( parse.FullName() );
-    
-    // Get language of resource file
-    BaflUtils::NearestLanguageFile( fsSession, *fileName );
-    
-    // Open resource file    
-    aResourceLoader.OpenL( *fileName );
-    
-    // Pop all the fields
-    CleanupStack::PopAndDestroy( fileName );
-    CleanupStack::PopAndDestroy( dllDrive );
-    CleanupStack::PopAndDestroy( tmpName );
-    
-    //If leave occurs before this, close is called automatically when the thread exits.
-    fsSession.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// CLbtMgmtPluginView :: GetLbtMgmtPluginEngine
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CLbtMgmtPluginEngine* CLbtMgmtPluginView::GetLbtMgmtPluginEngine()
-    {
-    return iEngine;
-    }