landmarksui/uicontrols/src/LmkEditorFieldFactory.cpp
branchRCL_3
changeset 18 870918037e16
parent 0 522cd55cc3d7
--- /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 <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