landmarksui/uicontrols/src/LmkEditorFieldFactory.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:31:27 +0100
branchRCL_3
changeset 18 870918037e16
parent 0 522cd55cc3d7
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* 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 <e32std.h>
#include <lmkerrors.h>


/// 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