uiservicetab/vimpstui/inc/cvimpstuisearchfieldaray.h
changeset 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstui/inc/cvimpstuisearchfieldaray.h	Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,228 @@
+/*
+* 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:  search fields array declaration.
+*
+*/
+
+
+#ifndef CVIMPSTUISEARCHFIELDARAY_H
+#define CVIMPSTUISEARCHFIELDARAY_H
+
+// INCLUDES
+#include <e32base.h>
+
+#include "mvimpstuisearchfield.h"
+
+// FORWARD DECLARATIONS
+class MVIMPSTSearchUiBuilder;
+class CEikCaptionedControl;
+
+// CLASS DECLARATION
+/**
+ *  An array of search editor fields.
+ *  @lib vimpstui.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS(CVIMPSTUiSearchFieldArray) :  public CBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+         * Creates a new instance of this class.
+         * @return  A new instance of this class.
+         */
+        static CVIMPSTUiSearchFieldArray* NewL();
+        
+        /**
+         * Destructor.
+         */
+        ~CVIMPSTUiSearchFieldArray();
+
+    public: // Interface
+
+        /**
+         * Creates editor fields 
+         * append the field into array from last
+         * @param aLebal, label of field
+         * @param aFieldDataType, field data type
+         * @param aFieldType, field type basic or advanced
+         * @param aSearchKey, search key
+         */
+        TInt CreateFieldsL(const TDesC& aLebal, TVIMPSTSearchDataFieldType aFieldDataType ,
+        				 TIMPSTSearchFieldTypes aFieldType = EIMAdvancedSearch,
+        				 TVIMPSTEnums::TVIMPSTSearchKey aSearchKey = TVIMPSTEnums::EVIMPSTSearchKeyUknown  );
+        
+        /**
+         * Creates editor fields 
+         * insert into array at given index
+         * @param aIndex, index where field to inserted
+         * @param aLebal, label of field
+         * @param aFieldDataType, field data type
+         * @param aFieldType, field type basic or advanced
+         * @param aSearchKey, search key
+         */
+        TInt InsertFieldsL(TInt aIndex, const TDesC& aLebal, 
+							TVIMPSTSearchDataFieldType aFieldDataType ,
+							TIMPSTSearchFieldTypes aFieldType = EIMAdvancedSearch,
+							TVIMPSTEnums::TVIMPSTSearchKey aSearchKey = TVIMPSTEnums::EVIMPSTSearchKeyUknown ) ;
+											
+        /**
+         * Creates editor fields from the array
+         * @param aUiBuilder, reference to builder class
+         */
+        void CreateUiFieldsFromArrayL(MVIMPSTSearchUiBuilder& aUiBuilder  );
+        
+      
+    public:  // new implementations
+    
+    	
+		/**
+		 * count no of fields in array
+		 * @return no of fields in array
+		 */  
+		inline TInt Count() const;
+
+
+		/**
+		 * find and return the field store at given index
+		 * @param aIndex ,index of field
+		 * @return Base class reference of field
+		 */  
+		inline MVIMPSTUiSearchField& At( TInt aIndex );
+
+
+		/**
+		 * AreAllUiFieldsEmpty check the all field are empty 
+		 * @return ETrue if empty else EFalse
+		 */    
+		TBool AreAllUiFieldsEmpty() const;
+
+		/**
+		 * AreAllControlsEmptyL check the all control text are empty 
+		 * @return ETrue if empty else EFalse
+		 */ 
+		TBool AreAllUiControlsEmptyL() const;
+
+		/**
+		 * set the focus  to selected field 
+		 * @param aFieldIndex, index of field
+		 */         
+		void SetFocusL(TInt aFieldIndex );
+
+		/**
+		 * get the first field data which is entered by user 
+		 * @return text of field
+		 */ 
+		TPtrC GetFirstEnteredFieldDataL();
+
+		/**
+		 * GetSearchKeyDataL fill the data into array for lower layer to use
+		 */ 
+		void GetSearchKeyDataL(RArray<TVIMPSTSearchKeyData>& aKeyDataArray );
+
+		/**
+		 * reset field data text
+		 */ 
+		void ResetFieldData();
+
+		/**
+		 * RemoveField remove field from array  
+		 * @param aIndex, index to use
+		 */ 
+		void RemoveField(TInt aIndex );
+
+		/**
+		 * insert a field at given location into array
+		 * @param aField, field to insert
+		 * @param aIndex, index to use
+		 */   
+		void InsertField(MVIMPSTUiSearchField*  aField , TInt aIndex );
+		
+		
+		 /**
+		 * @return selected search type
+		 */ 
+		TIMPSTSearchFieldTypes GetSearchType();
+
+		/**
+		 * insert a field at given location into array
+		 * @param aType, selected search type
+			 */   
+		void SetSearchType(TIMPSTSearchFieldTypes aType);
+
+                       
+    private: // new Implementation
+    
+    	/**
+		 * CVIMPSTUiSearchFieldArray default constructor
+		 */   
+        CVIMPSTUiSearchFieldArray();
+        
+        /**
+		 * ConstructL
+		 */   
+        void ConstructL();
+        
+        /**
+		 * create the field control of a field
+		 * set the control id to given field
+		 * @param aField, field to insert
+		 */   
+        void CreateUiFieldsL( MVIMPSTUiSearchField& aField );
+                    
+    private: // Data
+        
+		// Own: An array of dialog fields
+		RPointerArray<MVIMPSTUiSearchField> iFieldArray;
+		
+		// not owns, reference to ui builder class ,dialog
+        MVIMPSTSearchUiBuilder* iUiBuilder;
+		
+		// Ref: Editor control
+        CEikEdwin* iControl;
+        
+        // Ref: Fields captioned control
+        CEikCaptionedControl* iCaptionedCtrl; 
+        
+        // owns : selelected search type
+        TIMPSTSearchFieldTypes iSelectedSearchType;
+        
+        
+    };
+
+// INLINE FUNCTIONS
+
+// --------------------------------------------------------------------------
+// CVIMPSTUiSearchFieldArray::Count
+// --------------------------------------------------------------------------
+//
+inline TInt CVIMPSTUiSearchFieldArray::Count() const
+    {
+    return iFieldArray.Count();
+    }
+
+// --------------------------------------------------------------------------
+// CVIMPSTUiSearchFieldArray::At
+// --------------------------------------------------------------------------
+//    
+inline MVIMPSTUiSearchField& CVIMPSTUiSearchFieldArray::At
+        ( TInt aIndex )
+    {
+    return *iFieldArray[aIndex];
+    }
+
+#endif // CVIMPSTUISEARCHFIELDARAY_H
+            
+// End of File
+