--- 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