--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/Engine/src/PbkViewContactFieldDataAdapter.cpp Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,153 @@
+/*
+* Copyright (c) 2002 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:
+* Used in contact name formatting.
+*
+*/
+
+// INCLUDES
+#include "PbkViewContactFieldDataAdapter.h"
+#include "PbkEng.hrh"
+#include <cntviewbase.h>
+
+/// Unnamed namespace for local definitions
+namespace {
+
+// LOCAL CONSTANTS
+enum TPanicCode
+ {
+ EPanicInvalidFieldType =1,
+ EPanicInvalidFieldId,
+ EPanicPreCond_Constructor
+ };
+
+void Panic(TPanicCode aReason)
+ {
+ _LIT(KPanicText, "PbkViewContactFieldDataAdapter");
+ User::Panic(KPanicText,aReason);
+ }
+
+} // namespace
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// TPbkViewContactFieldDataArray::TFieldData
+
+inline TPbkViewContactFieldDataArray::TFieldData::TFieldData() :
+ iFieldId(EPbkFieldIdNone)
+ {
+ }
+
+inline void TPbkViewContactFieldDataArray::TFieldData::Set
+ (TPbkFieldId aFieldId, const TDesC& aText)
+ {
+ iFieldId = aFieldId;
+ iText.Set(aText);
+ }
+
+TStorageType TPbkViewContactFieldDataArray::TFieldData::PbkFieldType() const
+ {
+ return KStorageTypeText;
+ }
+
+TPbkFieldId TPbkViewContactFieldDataArray::TFieldData::PbkFieldId() const
+ {
+ return iFieldId;
+ }
+
+TPtrC TPbkViewContactFieldDataArray::TFieldData::PbkFieldText() const
+ {
+ return iText;
+ }
+
+TTime TPbkViewContactFieldDataArray::TFieldData::PbkFieldTime() const
+ {
+ Panic(EPanicInvalidFieldType);
+ return Time::NullTTime();
+ }
+
+
+// TPbkViewContactFieldDataArray
+EXPORT_C TPbkViewContactFieldDataArray::TPbkViewContactFieldDataArray
+ (const CViewContact& aViewContact,
+ const RContactViewSortOrder& aSortOrder) :
+ iViewContact(aViewContact), iSortOrder(aSortOrder)
+ {
+ __ASSERT_ALWAYS(aViewContact.FieldCount() == aSortOrder.Count(),
+ Panic(EPanicPreCond_Constructor));
+ }
+
+EXPORT_C TPbkViewContactFieldDataArray::~TPbkViewContactFieldDataArray()
+ {
+ }
+
+TInt TPbkViewContactFieldDataArray::PbkFieldCount() const
+ {
+ return (iViewContact.FieldCount());
+ }
+
+MPbkFieldData& TPbkViewContactFieldDataArray::PbkFieldAt(TInt aIndex)
+ {
+ iField.Set(FieldId(aIndex), iViewContact.Field(aIndex));
+ return iField;
+ }
+
+const MPbkFieldData& TPbkViewContactFieldDataArray::PbkFieldAt(TInt aIndex) const
+ {
+ iField.Set(FieldId(aIndex), iViewContact.Field(aIndex));
+ return iField;
+ }
+
+TPbkFieldId TPbkViewContactFieldDataArray::FieldId(TInt aIndex) const
+ {
+ switch (iSortOrder[aIndex].iUid)
+ {
+ case KUidContactFieldTopContactValue:
+ {
+ // Top Contact is a new attribute of Phonebook added by ECE, as it's not a
+ // field, just return EPbkFieldIdNone here.
+ return EPbkFieldIdNone;
+ }
+ case KUidContactFieldFamilyNameValue:
+ {
+ return EPbkFieldIdLastName;
+ }
+ case KUidContactFieldGivenNameValue:
+ {
+ return EPbkFieldIdFirstName;
+ }
+ case KUidContactFieldCompanyNameValue:
+ {
+ return EPbkFieldIdCompanyName;
+ }
+ case KUidContactFieldFamilyNamePronunciationValue:
+ {
+ return EPbkFieldIdLastNameReading;
+ }
+ case KUidContactFieldGivenNamePronunciationValue:
+ {
+ return EPbkFieldIdFirstNameReading;
+ }
+ default:
+ {
+ __ASSERT_DEBUG(EFalse, Panic(EPanicInvalidFieldId));
+ return EPbkFieldIdNone;
+ }
+ }
+ }
+
+
+// End of File