uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsviewlistboxmodel.cpp
changeset 15 81eeb8c83ce5
parent 0 5e5d6b214f4f
--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsviewlistboxmodel.cpp	Tue Feb 02 10:12:18 2010 +0200
+++ /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