--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsviewlistboxmodel.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,348 +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: Implementation of detailsview plugin control data model
- *
-*/
-
-
-#include "cvimpstdetailsviewlistboxmodel.h"
-
-#include "cvimpstfieldproperty.h"
-#include "cvimpstfieldpropertyarray.h"
-#include "vimpstdetailsview.hrh"
-#include "tvimpstenums.h"
-#include <vimpstdetailsviewpluginrsc.rsg>
-// virtual phonebook
-#include <MVPbkFieldType.h>
-#include <MVPbkStoreContact.h>
-#include <MVPbkContactStore.h>
-#include <MVPbkContactStoreProperties.h>
-// system includes
-#include <aknlists.h>
-#include <avkon.rsg>
-#include <VPbkEng.rsg>
-#include <AknIconArray.h>
-#include <barsc.h>
-#include <barsread.h>
-#include <StringLoader.h>
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::NewL
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewListBoxModel* CVIMPSTDetailsViewListBoxModel::NewL(
- CEikListBox& aListBox,
- MVIMPSTDetailsPresenceHandler& aPresenceHandler,
- HBufC8* aFieldBuffer)
- {
- CVIMPSTDetailsViewListBoxModel* self =
- new(ELeave) CVIMPSTDetailsViewListBoxModel(aListBox, aPresenceHandler,
- aFieldBuffer );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::~CVIMPSTDetailsViewListBoxModel
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewListBoxModel::~CVIMPSTDetailsViewListBoxModel()
- {
- delete iFieldArray;
- delete iTextCache;
- delete iFieldBuffer;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::CVIMPSTDetailsViewListBoxModel
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewListBoxModel::CVIMPSTDetailsViewListBoxModel(
- CEikListBox& aListBox,
- MVIMPSTDetailsPresenceHandler& aPresenceHandler,
- HBufC8* aFieldBuffer )
- : iListBox(aListBox),
- iPresenceHandler( aPresenceHandler )
- {
- // owns
- iFieldBuffer = aFieldBuffer ;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewListBoxModel::ConstructL()
- {
- iTextCache = new(ELeave) CDesCArrayFlat(KCacheGranularity);
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsViewListBoxModel::FocusedFieldIndex()
- {
- return iListBox.CurrentItemIndex();
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewListBoxModel::SetFocusedListIndex(TInt aIndex)
- {
- if( !iFieldArray )
- {
- return;
- }
- TInt count = iFieldArray->Count();
- if ( aIndex < 0 || aIndex >= count )
- {
- aIndex = 0;
- }
- if( count )
- {
- iListBox.SetCurrentItemIndexAndDraw(aIndex);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::
-// ---------------------------------------------------------------------------
-//
- CVIMPSTFieldProperty& CVIMPSTDetailsViewListBoxModel::FocusField()
- {
- return ( iFieldArray->At( FocusedFieldIndex() ) );
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::FieldsArray
-// ---------------------------------------------------------------------------
-//
- CVIMPSTFieldPropertyArray& CVIMPSTDetailsViewListBoxModel::FieldsArray()
- {
- return *iFieldArray;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::FieldsCount
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsViewListBoxModel::FieldsCount()
- {
- if( !iFieldArray )
- {
- return 0;
- }
- return iFieldArray->Count();
- }
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::CreateListPresentationL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewListBoxModel::CreateListPresentationL( MVPbkStoreContact& aContact,
- TInt aFocusFieldIndex,TDesC& aServiceName, TStoreType aStoreType )
- {
- const MVPbkContactStoreProperties& storeProperties = aContact.ParentStore().StoreProperties();
- const MVPbkFieldTypeList& supportedFieldTypes = storeProperties.SupportedFields();
-
- if( iFieldBuffer )
- {
- TResourceReader reader;
- HBufC8* buf = iFieldBuffer->AllocL();
- CleanupStack::PushL( buf );
- reader.SetBuffer( buf );
- iFieldArray = CVIMPSTFieldPropertyArray::NewL( supportedFieldTypes,
- aContact,
- reader ,
- iPresenceHandler.IsSupported(),
- aServiceName,
- aStoreType);
- CleanupStack::PopAndDestroy( buf );
- }
-
- AddFieldsDataL();
- if( iTextCache->Count() )
- {
- CVIMPSTFieldProperty* field = iFieldArray->GetFieldById( EVIMPSTFieldIdImpp );
- if( field )
- {
- iPresenceHandler.SubscribePresenceL( field->FieldDataL() );
- }
- SetFocusedListIndex( aFocusFieldIndex );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::SetEmptyTextsToListboxL()
-// See header for details.
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewListBoxModel::SetEmptyTextsToListboxL()
- {
- // update the empty string now to avoid flickering
- HBufC* string = StringLoader::LoadLC( R_SERVDETAIL_BACKGROUNDTEXT_HEADER );
- if( string )
- {
- iListBox.View()->SetListEmptyTextL( *string );
- CleanupStack::PopAndDestroy( string );
- iListBox.DrawNow();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::MdcaCount
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsViewListBoxModel::MdcaCount() const
- {
- return iTextCache->Count();
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::MdcaPoint
-// ---------------------------------------------------------------------------
-//
-TPtrC CVIMPSTDetailsViewListBoxModel::MdcaPoint(TInt aIndex) const
- {
- return iTextCache->MdcaPoint(aIndex);
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::AddFieldsDataL
-// --------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewListBoxModel::AddFieldsDataL( )
- {
- iTextCache->Reset();
-
- TInt fieldCount = iFieldArray->Count();
-
- for (TInt i = 0; i < fieldCount; i++)
- {
- TBuf<KBufferSize> buffer;
- buffer.Zero();
-
- CVIMPSTFieldProperty& field = iFieldArray->At(i);
- TInt iconId = field.IconId();
- if( field.FieldId() == EVIMPSTFieldIdStatusMsg )
- {
- TVIMPSTEnums::TOnlineStatus status = iPresenceHandler.GetPresenceStatus();
- switch( status )
- {
- case TVIMPSTEnums::EOnline:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconOn);
- break;
- }
- case TVIMPSTEnums::EInvisible:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconInvi);
- break;
- }
- case TVIMPSTEnums::EAway:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconAway);
- break;
- }
- case TVIMPSTEnums::EBusy:
- case TVIMPSTEnums::EDoNotDisturb:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconBusy);
- break;
- }
- case TVIMPSTEnums::EOnPhone:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconOnMobile);
- break;
- }
- case TVIMPSTEnums::EOffline:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconOff);
- break;
- }
- case TVIMPSTEnums::ECallForward:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconCallForward);
- break;
- }
- case TVIMPSTEnums::EPending:
- case TVIMPSTEnums::EBlocked:
- case TVIMPSTEnums::EUnknown:
- case TVIMPSTEnums::EServiceOut:
- default:
- {
- iconId = static_cast<TInt>(EVIMPSTServiceIconEmpty);
- break;
- }
- }
- field.SetFieldTextL( iPresenceHandler.GetStatusMessageL() ) ;
- }
-
- if( iconId == static_cast<TInt>(EVIMPSTServiceIconEmpty ) )
- {
- buffer.Append(KTabLit); //0
- }
- else
- {
- buffer.AppendNum(iconId); //0
- buffer.Append(KTabLit);
- }
-
- TPtrC labelPtr = field.DefaultLabelL();
- buffer.Append( labelPtr );
- buffer.Append(KTabLit);
- TPtrC fieldText = field.FieldDataL();
- buffer.Append( fieldText );
- iTextCache->AppendL(buffer);
- buffer.Zero();
- }
- iListBox.HandleItemAdditionL();
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewListBoxModel::DisplayId
-// -----------------------------------------------------------------------------
-//
-TPtrC CVIMPSTDetailsViewListBoxModel::DisplayId( const TDesC& aId, TBool aListHiding )
- {
- TPtrC ret( aId );
- // locate ":" for userid, groupid.
- // locate "/" for list id.
- TInt pos = aId.FindC( aListHiding ? KSlash : KColon );
-
- if ( ( pos != KErrNotFound) && ( pos != aId.Length()-1) )
- {
- // contains the special character, and it is not the last char
- // remove everything before the special char (including the char)
- ret.Set( aId.Mid( pos + 1 ) );
- }
- // remove also the domain part
- TInt domainPos = ret.FindC( KAt );
- if ( ( domainPos != KErrNotFound ) && ( domainPos != 0 ) )
- {
- ret.Set( ret.Mid( 0, domainPos ) );
- }
- return ret;
- }
-
-// End of File