diff -r 000000000000 -r 8466d47a6819 emailcontacts/contactactionservice/src/CFscPresentationContactFieldTextData.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailcontacts/contactactionservice/src/CFscPresentationContactFieldTextData.cpp Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,240 @@ +/* +* 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 presentation text data of the contact field. + * +*/ + + +// INCLUDES +#include "emailtrace.h" +#include "CFscPresentationContactFieldTextData.h" + +// Phonebook2 +#include +#include "CFscPresentationContactField.h" + +// Virtual Phonebook +#include +#include +#include +#include +#include + +/// Unnamed namespace for local definitions +namespace + { + +#ifdef _DEBUG + + enum TPanicCode + { + EPanicFieldDataTypeMismatch = 1, + EPanicIncorrectCtrlType + }; + + void Panic(TPanicCode aReason) + { + _LIT( KPanicText, "CFscPresentationContactFieldTextData" ); + User::Panic(KPanicText, aReason); + } + +#endif // _DEBUG + } /// namespace + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData:: +// CFscPresentationContactFieldTextData +// -------------------------------------------------------------------------- +// +CFscPresentationContactFieldTextData::CFscPresentationContactFieldTextData( + MVPbkContactFieldTextData& aTextData, + const MPbk2FieldProperty& aFieldProperty, const TInt aMaxDataLength) : + iTextData(aTextData), iFieldProperty(aFieldProperty), + iMaxDataLength(aMaxDataLength) + { + FUNC_LOG; + // Do nothing + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::NewL +// -------------------------------------------------------------------------- +// +CFscPresentationContactFieldTextData* CFscPresentationContactFieldTextData::NewL( + MVPbkContactFieldTextData& aTextData, + const MPbk2FieldProperty& aFieldProperty, const TInt aMaxDataLength) + { + FUNC_LOG; + CFscPresentationContactFieldTextData* self = new(ELeave)CFscPresentationContactFieldTextData( + aTextData, aFieldProperty, aMaxDataLength ); + return self; + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData:: +// ~CFscPresentationContactFieldTextData +// -------------------------------------------------------------------------- +// +CFscPresentationContactFieldTextData::~CFscPresentationContactFieldTextData() + { + FUNC_LOG; + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::Cast +// -------------------------------------------------------------------------- +// +CFscPresentationContactFieldTextData& CFscPresentationContactFieldTextData::Cast( + MVPbkContactFieldData& aFieldData) + { + FUNC_LOG; + __ASSERT_DEBUG( aFieldData.DataType() == EVPbkFieldStorageTypeText, + Panic(EPanicFieldDataTypeMismatch) ); + return static_cast(aFieldData); + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::Cast +// -------------------------------------------------------------------------- +// +const CFscPresentationContactFieldTextData& CFscPresentationContactFieldTextData::Cast( + const MVPbkContactFieldData& aFieldData) + { + FUNC_LOG; + __ASSERT_DEBUG( aFieldData.DataType() == EVPbkFieldStorageTypeText, + Panic(EPanicFieldDataTypeMismatch) ); + return static_cast(aFieldData ); + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::Text +// -------------------------------------------------------------------------- +// +TPtrC CFscPresentationContactFieldTextData::Text() const + { + FUNC_LOG; + TPtrC ptr = iTextData.Text(); + switch (iFieldProperty.CtrlType() ) + { + case EPbk2FieldCtrlTypeNumberEditor: // FALLTHROUGH + case EPbk2FieldCtrlTypePhoneNumberEditor: // FALLTHROUGH + case EPbk2FieldCtrlTypeDTMFEditor: + { + return ptr.Right(iMaxDataLength); + } + case EPbk2FieldCtrlTypeTextEditor: // FALLTHROUGH + case EPbk2FieldCtrlURLEditor: // FALLTHROUGH + case EPbk2FieldCtrlEmailEditor: // FALLTHROUGH + case EPbk2FieldCtrlPostalCodeEditor: // FALLTHROUGH + case EPbk2FieldCtrlTypeReadingEditor: + case EPbk2FieldCtrlTypeChoiceItems: // FALLTHROUGH + { + return ptr.Left(iMaxDataLength); + } + case EPbk2FieldCtrlTypeNone: + { + return ptr; + } + case EPbk2FieldCtrlTypeDateEditor: // FALLTHROUGH + default: + { + __ASSERT_DEBUG( EFalse, Panic( EPanicIncorrectCtrlType ) ); + } + }; + return ptr; + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::SetTextL +// -------------------------------------------------------------------------- +// +void CFscPresentationContactFieldTextData::SetTextL(const TDesC& aText) + { + FUNC_LOG; + TPtrC ptr = iTextData.Text(); + switch (iFieldProperty.CtrlType() ) + { + case EPbk2FieldCtrlTypeNumberEditor: // FALLTHROUGH + case EPbk2FieldCtrlTypePhoneNumberEditor: // FALLTHROUGH + case EPbk2FieldCtrlTypeDTMFEditor: + { + iTextData.SetTextL(aText.Right(iMaxDataLength) ); + break; + } + case EPbk2FieldCtrlTypeTextEditor: // FALLTHROUGH + case EPbk2FieldCtrlURLEditor: // FALLTHROUGH + case EPbk2FieldCtrlEmailEditor: // FALLTHROUGH + case EPbk2FieldCtrlPostalCodeEditor: // FALLTHROUGH + case EPbk2FieldCtrlTypeReadingEditor: + case EPbk2FieldCtrlTypeChoiceItems: // FALLTHROUGH + { + iTextData.SetTextL(aText.Left(iMaxDataLength) ); + break; + } + case EPbk2FieldCtrlTypeNone: + { + iTextData.SetTextL(aText); + break; + } + case EPbk2FieldCtrlTypeDateEditor: // FALLTHROUGH + default: + { + __ASSERT_DEBUG( EFalse, Panic( EPanicIncorrectCtrlType ) ); + } + }; + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::MaxLength +// -------------------------------------------------------------------------- +// +TInt CFscPresentationContactFieldTextData::MaxLength() const + { + FUNC_LOG; + return iTextData.MaxLength(); + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::DataType +// -------------------------------------------------------------------------- +// +TVPbkFieldStorageType CFscPresentationContactFieldTextData::DataType() const + { + FUNC_LOG; + return iTextData.DataType(); + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::IsEmpty +// -------------------------------------------------------------------------- +// +TBool CFscPresentationContactFieldTextData::IsEmpty() const + { + FUNC_LOG; + return iTextData.IsEmpty(); + } + +// -------------------------------------------------------------------------- +// CFscPresentationContactFieldTextData::CopyL +// -------------------------------------------------------------------------- +// +void CFscPresentationContactFieldTextData::CopyL( + const MVPbkContactFieldData& aFieldData) + { + FUNC_LOG; + iTextData.CopyL(aFieldData); + } + +// End of file +