diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/UIControls/src/CPbk2UIFieldArray.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/UIControls/src/CPbk2UIFieldArray.cpp Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,149 @@ +/* +* Copyright (c) 2005-2007 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: Phonebook 2 contact editor dialog UI field array. +* +*/ + +#include "CPbk2UIFieldArray.h" +#include "CPbk2UIField.h" +#include + +// Phonebook 2 +#include +#include +#include +#include +#include "MPbk2UIField.h" + +// System includes +#include +#include +#include + + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::CPbk2UIFieldArray +// --------------------------------------------------------------------------- +// +inline CPbk2UIFieldArray::CPbk2UIFieldArray(MPbk2UIFieldFactory& aFactory) + :iFactory(aFactory) + { + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::ConstructL +// --------------------------------------------------------------------------- +// +inline void CPbk2UIFieldArray::ConstructL( const TDesC& aResFile, RFs& aRFs ) + { + RPbk2LocalizedResourceFile resFile( &aRFs ); + resFile.OpenLC(KPbk2RomFileDrive, + KDC_RESOURCE_FILES_DIR, + aResFile); + + TResourceReader reader; + reader.SetBuffer( resFile.AllocReadLC( + R_PBK2_UI_FIELD_PROPERTIES_CONTACT_EDITOR ) ); + + const TInt count = reader.ReadInt16(); + for (TInt i = 0; i < count; ++i) + { + CPbk2UIField* field = CPbk2UIField::NewL( reader ); + CleanupStack::PushL( field ); + iFieldsArr.AppendL( field ); + CleanupStack::Pop( field ); + } + + // R_PBK2_UI_FIELD_PROPERTIES_CONTACT_EDITOR, resFile + CleanupStack::PopAndDestroy(2); + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::NewL +// --------------------------------------------------------------------------- +// +EXPORT_C CPbk2UIFieldArray* CPbk2UIFieldArray::NewL + ( const TDesC& aResFile, + RFs& aRFs, + MPbk2UIFieldFactory& aFactory ) + { + CPbk2UIFieldArray* self = new(ELeave) CPbk2UIFieldArray( aFactory ); + CleanupStack::PushL(self); + self->ConstructL( aResFile, aRFs); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::~CPbk2UIFieldArray +// --------------------------------------------------------------------------- +// +CPbk2UIFieldArray::~CPbk2UIFieldArray() + { + iFieldsArr.ResetAndDestroy(); + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::Count +// --------------------------------------------------------------------------- +// +TInt CPbk2UIFieldArray::Count() const + { + return iFieldsArr.Count(); + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::At +// --------------------------------------------------------------------------- +// +MPbk2UIField& CPbk2UIFieldArray::At + (TInt aIndex) const + { + return *iFieldsArr[aIndex]; + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::GetUIFieldFactory +// --------------------------------------------------------------------------- +// +const MPbk2UIFieldFactory& CPbk2UIFieldArray::GetUIFieldFactory() const + { + return iFactory; + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::AppendL +// --------------------------------------------------------------------------- +// +void CPbk2UIFieldArray::AppendL(MPbk2UIFieldArray& aUIFieldArray) + { + TInt count = aUIFieldArray.Count(); + for(TInt idx = 0; idx < count; idx++) + { + const MPbk2UIField& field = aUIFieldArray.At(idx); + iFieldsArr.AppendL(&field); + } + } + +// --------------------------------------------------------------------------- +// CPbk2UIFieldArray::RemoveAt +// --------------------------------------------------------------------------- +// +void CPbk2UIFieldArray::RemoveAt( TInt aIndex ) + { + iFieldsArr.Remove(aIndex); + } + + +// End of File