uiservicetab/vimpstui/src/cvimpstuiextensionservice.cpp
branchRCL_3
changeset 22 3104fc151679
parent 21 2b7283837edb
child 23 9a48e301e94b
--- a/uiservicetab/vimpstui/src/cvimpstuiextensionservice.cpp	Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,631 +0,0 @@
-/*
-* Copyright (c) 2008 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: Extension service for CVIMPSTUI
-*
-*/
-
-
-// INCLUDE FILES
-#include "cvimpstuiextensionservice.h"
-
-#include <MPbk2AppUi.h>
-
-// Edit view
-#include <MPbk2ApplicationServices.h>
-#include <MPbk2CommandHandler.h>
-#include <Pbk2Commands.hrh>
-
-#include "cvimpstuisearchfieldaray.h"
-#include "mvimpstuisearchfield.h"
-#include "cvimpstuisearchquerydialog.h"
-
-#include "cvimpstuitabbedview.h"
-#include "cvimpstuisearchview.h"
-#include "cvimpstuiextensionviewinfo.h"
-#include "cvimpstcmdhandler.h"
-
-#include "mvimpstengine.h"
-#include "vimpstutils.h"
-
-#include "cvimpstuibranddata.h"
-#include "tvimpstconsts.h"
-#include "cvimpstuiblockview.h"
-#include <vimpstui.mbg>
-#include <vimpst_servicetab_default.mbg>
-#include <vimpstuires.rsg>
-#include <eikenv.h>
-#include "cvimpstuimenuextension.h"
-#include "uiservicetabtracer.h"
-
-const TInt KDefaultIconId = EMbmVimpstuiExample_msn_tab;
-const TInt KDefaultMaskId = EMbmVimpstuiExample_msn_tab_mask;
-
-const TInt KBrandTabIconId = EMbmVimpst_servicetab_defaultQgn_prop_im_imsg ;
-const TInt KBrandTabMaskId = EMbmVimpst_servicetab_defaultQgn_prop_im_imsg_mask;
-
-_LIT(KDefaultFileLocation,"\\resource\\");
-_LIT(KBrandFileLocation,"C:\\resource\\");
-_LIT(KBrandFileNameDefault_C,"C:\\resource\\vimpst_servicetab_default.mif");
-_LIT(KBrandFileNameDefault_Z,"Z:\\resource\\apps\\vimpst_servicetab_default.mif");
-_LIT(KBrandFileNameHalf, "vimpst_servicetab_");
-_LIT(KBrandFileNameExt, ".mif");
-_LIT(KDefaultFileName, "vimpst_servicetab_default.mif");
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::CVIMPSTUIExtensionService
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUIExtensionService::CVIMPSTUIExtensionService(
-    TUint aServiceId,
-    TInt aTabbedViewId,   
-    TInt aSearchViewId, 
-    TInt aBlockedViewId,  
-    CVIMPSTUIMenuExtension& aMenuExtension,
-    MVIMPSTEngine& aEngine ):
-    iServiceId( aServiceId ),
-    iTabbedViewId( aTabbedViewId ),        
-    iSearchViewId( aSearchViewId ), 
-    iBlockedViewId( aBlockedViewId ),
-    iMenuExtension(aMenuExtension),
-    iEngine( aEngine )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::ConstructL
-// ---------------------------------------------------------------------------
-// 
-void CVIMPSTUIExtensionService::ConstructL(const TDesC& aServiceName)
-    {      
-	TRACER_AUTO;
-    TFileName path;    
-    Dll::FileName(path); //get the location of the dll
-    
-    TDriveName drive( TParsePtrC( path ).Drive( ) ); // solve drive
-    TBuf<KMaxResourcePathLength> serviceName(iEngine.ServiceName());
-    HBufC* brandFileName = HBufC::NewLC( KMaxResourcePathLength );
-    TPtr brandFileNamePtr( brandFileName->Des() );
-    brandFileNamePtr.Append( KBrandFileNameHalf() );
-    brandFileNamePtr.Append( serviceName );
-    brandFileNamePtr.Append( KBrandFileNameExt() );
-
-    RFs& session = CEikonEnv::Static()->FsSession();
-    session.AddFileSystem( brandFileNamePtr );    
-    TFindFile file_finder(session);
-    CDir* file_list;
-    path.Zero();
-    TInt err = file_finder.FindWildByDir( brandFileNamePtr,KBrandFileLocation(),file_list);
-    if( err == KErrNone )
-        {
-        brandFileNamePtr.Insert( 0, KBrandFileLocation());
-        }
-    else 
-        {
-        err = file_finder.FindWildByDir( KDefaultFileName(), KDefaultFileLocation(), file_list );
-        brandFileNamePtr.Zero();
-        if( err == KErrNone )
-            {
-            brandFileNamePtr.Insert( 0, KBrandFileNameDefault_C());
-            }
-        else
-            {
-            brandFileNamePtr.Insert( 0, KBrandFileNameDefault_Z());
-            }
-        }
-    path.Append( brandFileNamePtr );
-    iServiceName = aServiceName.AllocL();
-    // View info's must be created in initial contruct phase
-    iTabbedViewInfo = CVIMPSTUIExtensionViewInfo::NewL( 
-        iTabbedViewId, ETrue, path, KBrandTabIconId, KBrandTabMaskId, *iServiceName );
-    HBufC* resourceFilePath = HBufC::NewLC( KMaxResourcePathLength );
-    TPtr ptr( resourceFilePath->Des() );
-    ptr.Append( KDefaultIconFile() ); // without drive
-    ptr.Insert( 0, drive ); // insert drive
-
-    // NearestLanguageFile takes only TFileName
-    path.Zero();
-    path.Append( *resourceFilePath );
-
-
-    
-      
-	iSearchViewInfo = CVIMPSTUIExtensionViewInfo::NewL(
-        iSearchViewId, EFalse, path, KDefaultIconId, 
-        KDefaultMaskId, *iServiceName  );    
-        
-    iBlockViewInfo = CVIMPSTUIExtensionViewInfo::NewL(
-        iBlockedViewId, EFalse, path, KDefaultIconId, 
-        KDefaultMaskId, *iServiceName  );    
-
-	iCommandHandler = CVIMPSTCmdHandler::NewL(iEngine); 
-
-	iUiFieldsArray = CVIMPSTUiSearchFieldArray::NewL();
-    CleanupStack::PopAndDestroy(2,brandFileName); //resourceFilePath,brandTabIconFilePath
-	delete file_list;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::NewL
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUIExtensionService* CVIMPSTUIExtensionService::NewL(
-    TUint aServiceId,
-    TInt aTabbedViewId,
-    TInt aSearchViewId,
-    TInt aBlockedViewId, 
-    const TDesC& aServiceName,    
-    CVIMPSTUIMenuExtension& aMenuExtension,
-    MVIMPSTEngine& aEngine )
-    {
-    CVIMPSTUIExtensionService* self = NewLC( 
-        aServiceId, aTabbedViewId, aSearchViewId, aBlockedViewId, aServiceName, aMenuExtension, aEngine );
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::NewLC
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUIExtensionService* CVIMPSTUIExtensionService::NewLC(
-    TUint aServiceId,
-    TInt aTabbedViewId,    
-    TInt aSearchViewId, 
-    TInt aBlockedViewId,  
-    const TDesC& aServiceName,    
-    CVIMPSTUIMenuExtension& aMenuExtension,
-    MVIMPSTEngine& aEngine )
-    {
-    CVIMPSTUIExtensionService* self =
-        new (ELeave) CVIMPSTUIExtensionService( 
-            aServiceId, aTabbedViewId, aSearchViewId, aBlockedViewId, aMenuExtension, aEngine );
-    CleanupStack::PushL(self);
-    self->ConstructL(aServiceName);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::~CVIMPSTUIExtensionService
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUIExtensionService::~CVIMPSTUIExtensionService()
-    {
-    delete iUiFieldsArray;
-
-    delete iCommandHandler;
-    iCommandHandler = NULL;
-    
-    delete iServiceName;
-    iServiceName = NULL;
-    
-    delete iSearchString;
-	iSearchString = NULL;
-
-    //delete iBrandHandler;
-    
-    delete iTabbedViewInfo;
-    iTabbedViewInfo = NULL;      
-    delete iSearchViewInfo;
-    iSearchViewInfo = NULL;       
-    
-    delete iBlockViewInfo;
-    iBlockViewInfo = NULL;  
-    }
-
-  
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::TabbedViewL
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUiTabbedView* 
-    CVIMPSTUIExtensionService::TabbedViewL( 
-        MxSPViewMapper& aMapper, 
-        MxSPContactManager& aContactManager, 
-        CPbk2UIExtensionView& aView,
-        TInt aTabbedViewId,
-        TUid aId,
-        MVIMPSTEngine& aEngine ) 
-    {
-	TRACER_AUTO;
-    if ( !iTabbedView )
-        {
-        iTabbedView = CVIMPSTUiTabbedView::NewL( 
-            aMapper,
-            aContactManager,
-            aTabbedViewId,
-            iServiceId,
-            aView,
-            aId,
-            *this,
-            aEngine,
-            *iCommandHandler,
-            iMenuExtension);        
-        }
-    return iTabbedView;
-    }    
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::BlockViewL
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUiBlockView* 
-    CVIMPSTUIExtensionService::BlockViewL( 
-        MxSPViewMapper& aMapper, 
-        MxSPContactManager& aContactManager, 
-        CPbk2UIExtensionView& aView,
-        TInt aBlockedViewId,
-        MVIMPSTEngine& aEngine ) 
-    {
-	TRACER_AUTO;
-    if ( !iBlockedView )
-        {
-        iBlockedView = CVIMPSTUiBlockView::NewL( 
-            aMapper,
-            aContactManager,
-            aBlockedViewId,
-            aView,
-            *this ,
-            aEngine,
-            *iCommandHandler ); 
-        }
-    return iBlockedView;
-    }    
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SearchViewL
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUiSearchView* 
-    CVIMPSTUIExtensionService::SearchViewL( 
-        MxSPViewMapper& aMapper, 
-        MxSPContactManager& aContactManager, 
-        CPbk2UIExtensionView& aView,
-        TInt aSearchViewId,
-        TUid aId,
-        MVIMPSTEngine& aEngine )
-    {
-	TRACER_AUTO;
-    if ( !iSearchView )
-        {
-        iSearchView = CVIMPSTUiSearchView::NewL( 
-            aMapper,
-            aContactManager,
-            aSearchViewId,
-            iServiceId,
-            aView,        
-            aId,
-            *this,
-            aEngine,
-            *iCommandHandler ); 
-        }
-    return iSearchView;
-    }      
-  
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::TabbedViewId
-// ---------------------------------------------------------------------------
-// 
-TInt CVIMPSTUIExtensionService::TabbedViewId()
-    {
-    return iTabbedViewId;
-    }
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SearchViewId
-// ---------------------------------------------------------------------------
-// 
-TInt CVIMPSTUIExtensionService::SearchViewId()
-    {
-    return iSearchViewId;
-    }    
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::BlockViewId
-// ---------------------------------------------------------------------------
-// 
-TInt CVIMPSTUIExtensionService::BlockViewId()
-    {
-    return iBlockedViewId;
-    }      
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::ServiceId
-// ---------------------------------------------------------------------------
-// 
-TUint32 CVIMPSTUIExtensionService::ServiceId()
-    {
-    return iServiceId;
-    }
-    
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::ServiceName
-// ---------------------------------------------------------------------------
-// 
-const TDesC& CVIMPSTUIExtensionService::ServiceName()
-    {
-    return *iServiceName;
-    }             
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SearchString
-// ---------------------------------------------------------------------------
-// 
-const TDesC& CVIMPSTUIExtensionService::SearchString()
-    {
-    return *iSearchString;
-    } 
-    
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SetSearchStringL
-// ---------------------------------------------------------------------------
-// 
-void CVIMPSTUIExtensionService::SetSearchStringL( const TDesC& aSearchString )
-    {
-    if( iSearchString )
-	    {
-	    delete iSearchString;
-	    iSearchString = NULL;
-	    }
-    iSearchString = aSearchString.AllocL();
-    }                       
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::TabbedViewInfoL
-// ---------------------------------------------------------------------------
-//    
-CVIMPSTUIExtensionViewInfo* 
-    CVIMPSTUIExtensionService::TabbedViewInfoL()
-    {
-    return iTabbedViewInfo;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SearchViewInfo
-// ---------------------------------------------------------------------------
-//    
-CVIMPSTUIExtensionViewInfo* 
-    CVIMPSTUIExtensionService::SearchViewInfo()
-    {
-    return iSearchViewInfo;
-    } 
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::BlockedViewInfo
-// ---------------------------------------------------------------------------
-//    
-CVIMPSTUIExtensionViewInfo* 
-    CVIMPSTUIExtensionService::BlockedViewInfo()
-    {
-    return iBlockViewInfo;
-    }     
-        
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::HasViewId()
-// ---------------------------------------------------------------------------
-// 
-TBool CVIMPSTUIExtensionService::HasViewId( TInt aViewId )
-    {
-    return ( iTabbedViewId == aViewId || iSearchViewId == aViewId ||iBlockedViewId == aViewId  );
-    }     
-
-
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::ServiceEngine()
-// ---------------------------------------------------------------------------
-// 
-
-MVIMPSTEngine& CVIMPSTUIExtensionService::ServiceEngine ()
-	{
-	return iEngine;
-	}
-   
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SetSearchFieldsDataL
-// ---------------------------------------------------------------------------
-// 
-void CVIMPSTUIExtensionService::SetSearchFieldsDataL( RArray<TInt>& aEnumKeysArray, RPointerArray<HBufC>& aLebelKeysArray )
-    {
-	TRACER_AUTO;
-    // reset all old fields and create new fields
-    if( iUiFieldsArray )
-	    {
-	    delete iUiFieldsArray;
-	   	iUiFieldsArray = NULL;	
-	    }
-	iUiFieldsArray = CVIMPSTUiSearchFieldArray::NewL();
-	 	    
-    TInt enumCount = aEnumKeysArray.Count();
-    TInt labelCount = aLebelKeysArray.Count();
-    
-    TBool isBasicField = EFalse ;
-    TInt basicFieldIndex = 0;   
-      
-    if( !enumCount && !labelCount )
-	    {
-	    return;	
-	    }
-    for( TInt i =0; i< enumCount; i++ ) 
-	    {
-	    TVIMPSTEnums::TVIMPSTSearchKey enumKey = static_cast<TVIMPSTEnums::TVIMPSTSearchKey>( aEnumKeysArray[i] );
-	    // get the data associaed with key ,
-	    // also check if basic field
-	    HBufC* akeyValue = GetSearchKeyLabelL( enumKey, isBasicField );
-	    if( akeyValue )
-			{
-			if( isBasicField )
-				{
-				if( enumKey == TVIMPSTEnums::EVIMPSTFirstName )
-					{
-					basicFieldIndex = 0 ; // always on top 1st element	
-					}
-			
-				iUiFieldsArray->InsertFieldsL(basicFieldIndex , *akeyValue, EVIMPSTEdwinText,EIMBasicSearch ,enumKey);
-			
-				basicFieldIndex++ ; 
-				
-				}
-			else
-				{
-				iUiFieldsArray->CreateFieldsL( *akeyValue, EVIMPSTEdwinText ,EIMAdvancedSearch, enumKey);	
-				}
-			delete akeyValue;
-			akeyValue = NULL;
-			}
-	    	
-	    }
-    
-     for( TInt i =0; i< labelCount; i++ ) 
-	    {
-	    // not owns akeyValue 
-	    HBufC* akeyValue = aLebelKeysArray[i];
-	    if( akeyValue )
-			{
-			iUiFieldsArray->CreateFieldsL( *akeyValue, EVIMPSTEdwinText );
-			}
-	    	
-	    }
-	// this will sort only basic fields
-	SortBasicFields();
-    }                       
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SetSearchFieldsDataL
-// ---------------------------------------------------------------------------
-// 
-CVIMPSTUiSearchFieldArray& CVIMPSTUIExtensionService::GetSearchFieldArray()  
-    {
-   	return *iUiFieldsArray;
-    } 
-        
-// ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::GetSearchKeyLabelL
-// ---------------------------------------------------------------------------
-// 
-HBufC* CVIMPSTUIExtensionService::GetSearchKeyLabelL(TVIMPSTEnums::TVIMPSTSearchKey aSearchKey ,TBool& aBasicField )  
-    {
-	TRACER_AUTO;
-    HBufC* keyText = NULL;
-    aBasicField = EFalse;
-    
-    switch( aSearchKey )
-	    {
-	    case TVIMPSTEnums::EVIMPSTMiddleName :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_MIDDLENAME ); 		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTLastName :
-			{
-			keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_LASTNAME ); 
-			aBasicField = ETrue;	 	        		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTFullName :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_FULLNAME );    		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTCountry :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_COUNTRY );     		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTCity :
-			{
-			keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_CITY ); 	        		
-			break;		
-			}
-	
-		case TVIMPSTEnums::EVIMPSTNickName :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_NICKNAME ); 		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTState :
-			{
-			keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_STATE ); 	 	        		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTOrganisationUnit :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_ORGUNIT );    		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTBirthday :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_BIRTHDAY );     		
-			break;		
-			}
-			
-		case TVIMPSTEnums::EVIMPSTEmailAddress :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_EMAIL );     		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTUser :
-			{
-			aBasicField = ETrue;	
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_USER ); 		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTOrganisation :
-			{
-		    keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_ORG );    		
-			break;		
-			}
-		case TVIMPSTEnums::EVIMPSTFirstName:
-		default:
-			{
-			aBasicField = ETrue;
-		   	keyText =  VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_FIRSTNAME );
-	     	break; 
-			}	
-	    }
-	
-	return 	keyText;
-	
-    } 
- 
- // ---------------------------------------------------------------------------
-// CVIMPSTUIExtensionService::SortBasicFields
-// ---------------------------------------------------------------------------
-// 
-void CVIMPSTUIExtensionService::SortBasicFields()  
-	{
-	TRACER_AUTO;
-	TInt count = iUiFieldsArray->Count();
-	TInt index = 0;
-	if( count >2 ) // atleast there has to be 3 item for sort , first name is already on top
-		{
-		MVIMPSTUiSearchField& field = iUiFieldsArray->At(1);
-		if( field.GetSearchKey() != TVIMPSTEnums::EVIMPSTLastName )
-			{
-			for(index =2; index < count; index++ )
-				{
-				field = iUiFieldsArray->At(index);
-				if( field.GetSearchKey() == TVIMPSTEnums::EVIMPSTLastName )	
-					{
-					iUiFieldsArray->RemoveField(index);
-					iUiFieldsArray->InsertField(&field, 1); // insert at 1st number;	
-					return;
-					}
-				}
-				
-			}
-		}
-	
-	}
-	
-// End of file