CContactGroupView Class Reference

class CContactGroupView : public CContactViewBase

Provides a view of a group of contact items.

The view uses an underlying view. For items to appear in the group view, they must exist in the underlying view.

The TGroupType enumeration defines whether the view displays items that belong to the group, items that do not belong to the group, or items that do not belong to any group.

The group view observes its underlying view so that it is kept up to date if the contents of the underlying view change.

The group can be identified by a contact item ID or by a label, e.g. "family", or "colleagues".

CContactGroup

Inherits from

Public Member Functions
~CContactGroupView ()
HBufC * AllFieldsLC ( TInt , const TDesC &)
TContactItemId AtL ( TInt )
TAny * CContactViewBase_Reserved_1 ( TFunction , TAny *)
const CViewContact & ContactAtL ( TInt )
TContactViewPreferences ContactViewPreferences ()
TInt CountL ()
TInt FindL ( TContactItemId )
IMPORT_C CContactGroupView * NewL (const CContactDatabase &, CContactViewBase &, MContactViewObserver &, const TContactItemId , const TGroupType )
IMPORT_C CContactGroupView * NewL (const CContactDatabase &, CContactViewBase &, MContactViewObserver &, const TDesC &, const TGroupType )
IMPORT_C CContactGroupView * NewL ( CContactViewBase &, const CContactDatabase &, MContactViewObserver &, const TContactItemId , const TGroupType )
IMPORT_C CContactGroupView * NewL ( CContactViewBase &, const CContactDatabase &, MContactViewObserver &, const TDesC &, const TGroupType )
const RContactViewSortOrder & SortOrderL ()
Protected Member Functions
IMPORT_C void UpdateGroupViewL ()
Private Member Functions
CContactGroupView (const CContactDatabase &, CContactViewBase &, TGroupType )
TInt CompareIndexesAllowingDuplicates (const TContactIdWithMapping &, const TContactIdWithMapping &)
TInt CompareMappingsL (const TContactIdWithMapping &, const TContactIdWithMapping &)
void ConstructL ( MContactViewObserver &, TContactItemId )
TContactItemId GetGroupIdbyNameL (const TDesC &)
TBool HandleAddEventForUnfiledContactsL (const TContactViewEvent &)
TBool HandleAddEventL ( TContactViewEvent &)
void HandleContactViewEvent (const CContactViewBase &, const TContactViewEvent &)
TBool HandleRemoveEventL ( TContactViewEvent &)
void NotifyRemovedMembersL (const CContactIdArray *)
void UpdateForContactListL (const CContactIdArray *)
void UpdateForContactsInGroupL ()
void UpdateForContactsNotInThisGroupL ()
void UpdateForUnfiledContactsL ()
void UpdateMappingsL ()
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
CContactViewBase::CContactViewBase(const CContactDatabase &)
CContactViewBase::Close(const MContactViewObserver &)
CContactViewBase::CompareContactIds(const CViewContact &,const CViewContact &)
CContactViewBase::CompareContactsAndIdsL(const CViewContact &,const CViewContact &)const
CContactViewBase::CompareFieldsL(const CViewContact &,const CViewContact &)
CContactViewBase::ConstructL()
CContactViewBase::ContactIsSortable(const CViewContact &)
CContactViewBase::ContactsMatchingCriteriaL(const MDesCArray &,RPointerArray< CViewContact > &)
CContactViewBase::ContactsMatchingPrefixL(const MDesCArray &,RPointerArray< CViewContact > &)
CContactViewBase::Error()const
CContactViewBase::FieldsWithSeparatorLC(const RPointerArray< CViewContact > &,TInt,const TDesC &)const
CContactViewBase::FindDefaultViewSortPluginImplL()const
CContactViewBase::FindSortPluginImplL(const TDesC8 &,TBool)const
CContactViewBase::GetContactIdsL(const CArrayFix< TInt > &,CContactIdArray &)
CContactViewBase::GetViewFindConfigPlugin()
CContactViewBase::GetViewSortPluginImplUid()const
CContactViewBase::IdsEqual(const TContactIdWithMapping &,const TContactIdWithMapping &)
CContactViewBase::IdsMatch(const CViewContact &,const CViewContact &)
CContactViewBase::IndexesEqual(const TContactIdWithMapping &,const TContactIdWithMapping &)
CContactViewBase::InsertContactInView(RPointerArray< CViewContact > &,const CViewContact *,TBool,TInt *)const
CContactViewBase::IsContactSortable(const CViewContact &,TContactViewPreferences &)const
CContactViewBase::LoadViewSortPluginL(TUid,TContactViewPreferences &)
CContactViewBase::MatchesCriteriaL(const CViewContact &,const MDesCArray &)
CContactViewBase::MatchesCriteriaL(const CViewContact &,const MDesCArray &,TSearchType)
CContactViewBase::MatchesCriteriaL(const CViewContact &,const MDesCArray &,TSearchType,CContactViewBase::CContactViewBaseExtension *)
CContactViewBase::NotifyObserverAsync(MContactViewObserver &,const TContactViewEvent &)
CContactViewBase::NotifyObservers(const TContactViewEvent &)
CContactViewBase::Open(MContactViewObserver &)
CContactViewBase::OpenL(MContactViewObserver &)
CContactViewBase::SetViewFindConfigPlugin(TUid)
CContactViewBase::SortPluginImpl()const
CContactViewBase::~CContactViewBase()
Public Member Enumerations
enum TGroupType { EShowContactsInGroup , EShowContactsNotInGroup , EShowContactsNotInAnyGroup }
Inherited Enumerations
CContactViewBase:TFunction
CContactViewBase:TSearchType
CContactViewBase:TState
Private Attributes
TUint iClassVersion
RArray < TContactIdWithMapping > iGroupContacts
TContactItemId iGroupId
TGroupType iGroupType
CContactViewBase & iView
Inherited Attributes
CContactViewBase::iDb
CContactViewBase::iExtension
CContactViewBase::iState

Constructor & Destructor Documentation

CContactGroupView(const CContactDatabase &, CContactViewBase &, TGroupType)

CContactGroupView ( const CContactDatabase & aDb,
CContactViewBase & aView,
TGroupType aGroupType
) [private]

Parameters

const CContactDatabase & aDb
CContactViewBase & aView
TGroupType aGroupType

~CContactGroupView()

~CContactGroupView ( )

Destructor

Member Functions Documentation

AllFieldsLC(TInt, const TDesC &)

HBufC * AllFieldsLC ( TInt aIndex,
const TDesC & aSeparator
) const [virtual]

Gets a descriptor containing the contents of all fields in an item in the view.

The fields are separated by aSeparator.

Parameters

TInt aIndex The index into the view of the contact item.
const TDesC & aSeparator The string to use to separate the fields.

AtL(TInt)

TContactItemId AtL ( TInt aIndex ) const [virtual]

Gets the contact item ID at the specified view index.

leave
KErrNotFound aIndex is outside the bounds of the array.

Parameters

TInt aIndex Index into the group view.

CContactViewBase_Reserved_1(TFunction, TAny *)

TAny * CContactViewBase_Reserved_1 ( TFunction aFunction,
TAny * aParams
) [virtual]

Parameters

TFunction aFunction
TAny * aParams

CompareIndexesAllowingDuplicates(const TContactIdWithMapping &, const TContactIdWithMapping &)

TInt CompareIndexesAllowingDuplicates ( const TContactIdWithMapping & aFirst,
const TContactIdWithMapping & aSecond
) [private, static]

Parameters

const TContactIdWithMapping & aFirst
const TContactIdWithMapping & aSecond

CompareMappingsL(const TContactIdWithMapping &, const TContactIdWithMapping &)

TInt CompareMappingsL ( const TContactIdWithMapping & aFirst,
const TContactIdWithMapping & aSecond
) [private, static]

Parameters

const TContactIdWithMapping & aFirst
const TContactIdWithMapping & aSecond

ConstructL(MContactViewObserver &, TContactItemId)

void ConstructL ( MContactViewObserver & aObserver,
TContactItemId aGroupId
) [private]

Parameters

MContactViewObserver & aObserver
TContactItemId aGroupId

ContactAtL(TInt)

const CViewContact & ContactAtL ( TInt aIndex ) const [virtual]

Gets the contact item at the specified view index.

leave
KErrNotFound aIndex is outside the bounds of the array.

Parameters

TInt aIndex Index into the view of the required item.

ContactViewPreferences()

TContactViewPreferences ContactViewPreferences ( ) [virtual]

Gets the underlying view's view preferences.

CountL()

TInt CountL ( ) const [virtual]

Gets the number of contact item IDs in the group view.

FindL(TContactItemId)

TInt FindL ( TContactItemId aId ) const [virtual]

Finds the index into the group view of the specified contact item.

leave
KErrNotReady The view is not ready for use.

Parameters

TContactItemId aId The contact item ID to search for.

GetGroupIdbyNameL(const TDesC &)

TContactItemId GetGroupIdbyNameL ( const TDesC & aGroupName ) [private]

Parameters

const TDesC & aGroupName

HandleAddEventForUnfiledContactsL(const TContactViewEvent &)

TBool HandleAddEventForUnfiledContactsL ( const TContactViewEvent & aEvent ) [private]

Parameters

const TContactViewEvent & aEvent

HandleAddEventL(TContactViewEvent &)

TBool HandleAddEventL ( TContactViewEvent & aEvent ) [private]

Parameters

TContactViewEvent & aEvent

HandleContactViewEvent(const CContactViewBase &, const TContactViewEvent &)

void HandleContactViewEvent ( const CContactViewBase & aView,
const TContactViewEvent & aEvent
) [private]

Parameters

const CContactViewBase & aView
const TContactViewEvent & aEvent

HandleRemoveEventL(TContactViewEvent &)

TBool HandleRemoveEventL ( TContactViewEvent & aEvent ) [private]

Parameters

TContactViewEvent & aEvent

NewL(const CContactDatabase &, CContactViewBase &, MContactViewObserver &, const TContactItemId, const TGroupType)

IMPORT_C CContactGroupView * NewL ( const CContactDatabase & aDb,
CContactViewBase & aView,
MContactViewObserver & aObserver,
const TContactItemId aGroupId,
const TGroupType aGroupType
) [static]

Allocates and constructs a CContactGroupView version 1 object, identifying the group by its ID.

A group with the specified ID must exist in the database, otherwise when an attempt is made to update the view, a leave will occur with KErrNotFound. To create an unfiled view, the group id must be KNullContactId and the group type 'EShowContactsNotInAnyGroup'. In this case the group id isn't used and no leave will occur.

When adding contacts in the view, MContactViewObserver observer will receive TContactViewEvent events with iInt parameter set to KErrNone. When deleting contacts in the view, MContactViewObserver observer will receive TContactViewEvent events with iInt parameter set to index into the observed view of the deleted item

Parameters

const CContactDatabase & aDb The database containing the contact group.
CContactViewBase & aView The underlying view.
MContactViewObserver & aObserver An observer that receives notifications when this view is ready for use and when changes take place in it. The observer receives a TContactViewEvent::EReady event when the view is ready. An attempt to use the view before this notification causes a panic.
const TContactItemId aGroupId The ID of the contact group.
const TGroupType aGroupType Controls whether the view displays items belonging to the group, items that do not belong to the group or items that do not belong to any group.

NewL(const CContactDatabase &, CContactViewBase &, MContactViewObserver &, const TDesC &, const TGroupType)

IMPORT_C CContactGroupView * NewL ( const CContactDatabase & aDb,
CContactViewBase & aView,
MContactViewObserver & aObserver,
const TDesC & aGroupName,
const TGroupType aGroupType
) [static]

Allocates and constructs a CContactGroupView version 1 object, identifying the group by its label.

A group with the specified label must exist in the database, otherwise when an attempt is made to update the view, a leave will occur with KErrNotFound.

When adding contacts in the view, MContactViewObserver observer will receive TContactViewEvent events with iInt parameter set to KErrNone. When deleting contacts in the view, MContactViewObserver observer will receive TContactViewEvent events with iInt parameter set to index into the observed view of the deleted item

Parameters

const CContactDatabase & aDb The database containing the contact group.
CContactViewBase & aView The underlying view.
MContactViewObserver & aObserver An observer that receives notifications when this view is ready for use and when changes take place in it. The observer receives a TContactViewEvent::EReady event when the view is ready. An attempt to use the view before this notification causes a panic.
const TDesC & aGroupName The group label.
const TGroupType aGroupType Controls whether the view displays items belonging to the group, items that do not belong to the group or items that do not belong to any group.

NewL(CContactViewBase &, const CContactDatabase &, MContactViewObserver &, const TContactItemId, const TGroupType)

IMPORT_C CContactGroupView * NewL ( CContactViewBase & aView,
const CContactDatabase & aDb,
MContactViewObserver & aObserver,
const TContactItemId aGroupId,
const TGroupType aGroupType
) [static]

Allocates and constructs a CContactGroupView version 2 object, identifying the group by its ID.

A group with the specified ID must exist in the database, otherwise when an attempt is made to update the view, a leave will occur with KErrNotFound. To create an unfiled view, the group id must be KNullContactId and the group type 'EShowContactsNotInAnyGroup'. In this case the group id isn't used and no leave will occur.

When adding/deleting contacts in the view, MContactViewObserver observer will receive TContactViewEvent events with iInt parameter set to index into the observed view of the added/deleted item

Parameters

CContactViewBase & aView The underlying view.
const CContactDatabase & aDb The database containing the contact group.
MContactViewObserver & aObserver An observer that receives notifications when this view is ready for use and when changes take place in it. The observer receives a TContactViewEvent::EReady event when the view is ready. An attempt to use the view before this notification causes a panic.
const TContactItemId aGroupId The ID of the contact group.
const TGroupType aGroupType Controls whether the view displays items belonging to the group, items that do not belong to the group or items that do not belong to any group.

NewL(CContactViewBase &, const CContactDatabase &, MContactViewObserver &, const TDesC &, const TGroupType)

IMPORT_C CContactGroupView * NewL ( CContactViewBase & aView,
const CContactDatabase & aDb,
MContactViewObserver & aObserver,
const TDesC & aGroupName,
const TGroupType aGroupType
) [static]

Allocates and constructs a CContactGroupView version 2 object, identifying the group by its label.

A group with the specified label must exist in the database, otherwise when an attempt is made to update the view, a leave will occur with KErrNotFound.

When adding/deleting contacts in the view, MContactViewObserver observer will receive TContactViewEvent events with iInt parameter set to index into the observed view of the added/deleted item

Parameters

CContactViewBase & aView The underlying view.
const CContactDatabase & aDb The database containing the contact group.
MContactViewObserver & aObserver An observer that receives notifications when this view is ready for use and when changes take place in it. The observer receives a TContactViewEvent::EReady event when the view is ready. An attempt to use the view before this notification causes a panic.
const TDesC & aGroupName The group label.
const TGroupType aGroupType Controls whether the view displays items belonging to the group, items that do not belong to the group or items that do not belong to any group.

NotifyRemovedMembersL(const CContactIdArray *)

void NotifyRemovedMembersL ( const CContactIdArray * aArray ) [private]

Parameters

const CContactIdArray * aArray

SortOrderL()

const RContactViewSortOrder & SortOrderL ( ) const [virtual]

Gets the underlying view's sort order.

UpdateForContactListL(const CContactIdArray *)

void UpdateForContactListL ( const CContactIdArray * aArray ) [private]

Parameters

const CContactIdArray * aArray

UpdateForContactsInGroupL()

void UpdateForContactsInGroupL ( ) [private]

UpdateForContactsNotInThisGroupL()

void UpdateForContactsNotInThisGroupL ( ) [private]

UpdateForUnfiledContactsL()

void UpdateForUnfiledContactsL ( ) [private]

UpdateGroupViewL()

IMPORT_C void UpdateGroupViewL ( ) [protected, virtual]

Populates the group view.

Removes any existing items from the group view then searches the underlying view. The group view is repopulated with those items, maintaining the order in which they occur in the underlying view.

leave
KErrNotFound The group, identified by the label or ID specified during construction, does not exist in the database.

UpdateMappingsL()

void UpdateMappingsL ( ) [private]

Member Enumerations Documentation

Enum TGroupType

Defines the types of contact group view.

Enumerators

EShowContactsInGroup

The view contains contact items in the group.

EShowContactsNotInGroup

The view contains contact items not in the group.

EShowContactsNotInAnyGroup

The view contains contact items not in any group.

Member Data Documentation

TUint iClassVersion

TUint iClassVersion [private]

RArray< TContactIdWithMapping > iGroupContacts

RArray < TContactIdWithMapping > iGroupContacts [private]

TContactItemId iGroupId

TContactItemId iGroupId [private]

TGroupType iGroupType

TGroupType iGroupType [private]

CContactViewBase & iView

CContactViewBase & iView [private]