diff -r 1fc85118c3ae -r 870918037e16 landmarksui/uicontrols/src/LmkEditorFieldFactory.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/landmarksui/uicontrols/src/LmkEditorFieldFactory.cpp Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,152 @@ +/* +* 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: Methods for Landmark field factory class. +* +*/ + + + + + + + +// INCLUDE FILES +#include "LmkEditorFieldFactory.h" // this class +#include "CLmkEditorTextField.h" +#include "CLmkEditorNumberField.h" +#include "CLmkEditorListField.h" +#include "CLmkEditorCoordinateField.h" +#include "MLmkFieldData.h" +#include "landmarks.hrh" +#include +#include + + +/// Unnamed namespace for local definitons +namespace { + +// LOCAL CONSTANTS AND MACROS + +// ==================== LOCAL FUNCTIONS ==================== + +#ifdef _DEBUG +void Panic(TPanicCode aReason) + { + _LIT(KPanicText, "LmkEditorFieldFactory"); + User::Panic(KPanicText, aReason); + } +#endif // _DEBUG + +} // namespace + + +// ================= MEMBER FUNCTIONS ======================= + +// ---------------------------------------------------- +// LmkEditorFieldFactory::CreateFieldL +// ---------------------------------------------------- +// +MLmkEditorField* LmkEditorFieldFactory::CreateFieldL + ( MLmkFieldData& aField, + MLmkEditorUiBuilder& aUiBuilder ) + { + MLmkEditorField* editorField = NULL; + switch( aField.EditorType() ) + { + //case ETextFieldEditor: + // Added for rel3.1 + case ETextGenericFieldEditor: + case ETextPhoneNumberFieldEditor: + case ETextUriFieldEditor : + { + editorField = CLmkEditorTextField::NewL( aField, aUiBuilder ); + break; + } + case ENumberFieldEditor: + { + editorField = CLmkEditorNumberField::NewL( aField, aUiBuilder ); + break; + } + case EListFieldEditor: + { + editorField = CLmkEditorListField::NewL( aField, aUiBuilder ); + break; + } + case ECoordinateFieldEditor: + { + editorField = CLmkEditorCoordinateField::NewL( aField, + aUiBuilder ); + break; + } + default: + { + __ASSERT_DEBUG( EFalse, Panic( + KLmkPanicUnknownControlType ) ); + break; + } + } + + return editorField; + } + + +MLmkEditorField* LmkEditorFieldFactory::CreateFieldL + ( MLmkFieldData& aField, + MLmkEditorUiBuilder& aUiBuilder,const TDesC& aCategoryName ) + { + + MLmkEditorField* editorField = NULL; + switch( aField.EditorType() ) + { + //case ETextFieldEditor: + //case ETextFieldEditor: + // Added for rel3.1 + case ETextGenericFieldEditor: + case ETextPhoneNumberFieldEditor: + case ETextUriFieldEditor : + { + editorField = CLmkEditorTextField::NewL( aField, aUiBuilder ); + break; + } + case ENumberFieldEditor: + { + editorField = CLmkEditorNumberField::NewL( aField, aUiBuilder ); + break; + } + case EListFieldEditor: + { + editorField = CLmkEditorListField::NewL( aField, aUiBuilder,aCategoryName ); + break; + } + case ECoordinateFieldEditor: + { + editorField = CLmkEditorCoordinateField::NewL( aField, + aUiBuilder ); + break; + } + default: + { + __ASSERT_DEBUG( EFalse, Panic( + KLmkPanicUnknownControlType ) ); + break; + } + } + + return editorField; + } + + + + +// End of File