calendarui/editors/inc/calendbfield.h
author hgs
Wed, 03 Nov 2010 17:12:22 +0530
changeset 89 b57382753122
child 67 1539a383d7b6
permissions -rw-r--r--
201045
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
89
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
  *  Description : Editor DataBase fields functionality for Meeting entry types
hgs
parents:
diff changeset
    14
  *
hgs
parents:
diff changeset
    15
  */
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
#ifndef CALENDBFIELD_H
hgs
parents:
diff changeset
    18
#define CALENDBFIELD_H
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
// system includes
hgs
parents:
diff changeset
    21
#include <e32base.h>
hgs
parents:
diff changeset
    22
#include <badesca.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// forward declaration
hgs
parents:
diff changeset
    25
class CCalEntry;
hgs
parents:
diff changeset
    26
class CCalenUnifiedEditor;
hgs
parents:
diff changeset
    27
class CAknQueryValueTextArray;
hgs
parents:
diff changeset
    28
class CAknQueryValueText;
hgs
parents:
diff changeset
    29
class MCalenServices;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
 * Implements Calendar field for Calendar Editors.
hgs
parents:
diff changeset
    33
 */ 
hgs
parents:
diff changeset
    34
NONSHARABLE_CLASS( CCalenDbField ) : public CBase
hgs
parents:
diff changeset
    35
    {
hgs
parents:
diff changeset
    36
    public: // Constructors and destructor
hgs
parents:
diff changeset
    37
    	
hgs
parents:
diff changeset
    38
        /**
hgs
parents:
diff changeset
    39
         * @brief Two-phased constructor.
hgs
parents:
diff changeset
    40
         * @param aUnifiedEditor     
hgs
parents:
diff changeset
    41
         */
hgs
parents:
diff changeset
    42
        static CCalenDbField* NewL( CCalenUnifiedEditor& aUnifiedEditor, MCalenServices& aServices );
hgs
parents:
diff changeset
    43
        
hgs
parents:
diff changeset
    44
        /**
hgs
parents:
diff changeset
    45
         * @brief Destructor.
hgs
parents:
diff changeset
    46
         */
hgs
parents:
diff changeset
    47
        virtual ~CCalenDbField();
hgs
parents:
diff changeset
    48
    
hgs
parents:
diff changeset
    49
    public:
hgs
parents:
diff changeset
    50
    
hgs
parents:
diff changeset
    51
    	/**	 
hgs
parents:
diff changeset
    52
         * @brief Updates fields just before the form is shown
hgs
parents:
diff changeset
    53
         */
hgs
parents:
diff changeset
    54
        void InitDbFieldLayoutL();
hgs
parents:
diff changeset
    55
        
hgs
parents:
diff changeset
    56
        /**
hgs
parents:
diff changeset
    57
         * @brief Update data in editor
hgs
parents:
diff changeset
    58
         */    
hgs
parents:
diff changeset
    59
        void SetDataToEditorL();
hgs
parents:
diff changeset
    60
        
hgs
parents:
diff changeset
    61
        /**
hgs
parents:
diff changeset
    62
         * @brief Read data from form
hgs
parents:
diff changeset
    63
         */    
hgs
parents:
diff changeset
    64
        void ReadDataFromFormL( TBool aContinueOnError );
hgs
parents:
diff changeset
    65
        
hgs
parents:
diff changeset
    66
        /**
hgs
parents:
diff changeset
    67
         * @brief Prepares for focus transition
hgs
parents:
diff changeset
    68
         * @param aFocusedId
hgs
parents:
diff changeset
    69
         */    
hgs
parents:
diff changeset
    70
        void PrepareForFocusTransitionL( TInt aFocusedId );
hgs
parents:
diff changeset
    71
        
hgs
parents:
diff changeset
    72
        /**
hgs
parents:
diff changeset
    73
         * @brief To habdle the control state change
hgs
parents:
diff changeset
    74
         * @param aFocusedId
hgs
parents:
diff changeset
    75
         */
hgs
parents:
diff changeset
    76
        void HandleControlStateChangeL( TInt aControlId );
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
        /*
hgs
parents:
diff changeset
    79
         * @brief Get calendar name for where entry belongs to
hgs
parents:
diff changeset
    80
         * @return TDesC reference to name of the calendar
hgs
parents:
diff changeset
    81
         */
hgs
parents:
diff changeset
    82
        const TDesC& GetCalendarNameForEntryL();
hgs
parents:
diff changeset
    83
        
hgs
parents:
diff changeset
    84
		/*
hgs
parents:
diff changeset
    85
         * @brief Get calendar index for where entry belongs to
hgs
parents:
diff changeset
    86
         * @return TInt index of the calendar
hgs
parents:
diff changeset
    87
         */
hgs
parents:
diff changeset
    88
        TInt GetCalendarNameForEntryL(const TDesC& aCalendarFileName);
hgs
parents:
diff changeset
    89
        /*
hgs
parents:
diff changeset
    90
         * @brief check if calendar is changed or not
hgs
parents:
diff changeset
    91
         * @return TBool true if calendar is chnaged
hgs
parents:
diff changeset
    92
         */
hgs
parents:
diff changeset
    93
        TBool IsCalendarEdited();
hgs
parents:
diff changeset
    94
        
hgs
parents:
diff changeset
    95
        /*
hgs
parents:
diff changeset
    96
         * @brief Get calendar index from popuplist for entry
hgs
parents:
diff changeset
    97
         * @return TInt index from popuplist
hgs
parents:
diff changeset
    98
         */
hgs
parents:
diff changeset
    99
		TInt GetCalendarIndexForEntryL();
hgs
parents:
diff changeset
   100
        
hgs
parents:
diff changeset
   101
    private:
hgs
parents:
diff changeset
   102
    
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
         * @brief C++ constructor
hgs
parents:
diff changeset
   105
         * @param aUnifiedEditor 
hgs
parents:
diff changeset
   106
         */
hgs
parents:
diff changeset
   107
        CCalenDbField( CCalenUnifiedEditor& aUnifiedEditor, MCalenServices& aServices );
hgs
parents:
diff changeset
   108
        
hgs
parents:
diff changeset
   109
    	/**
hgs
parents:
diff changeset
   110
         * @brief second phase constructor
hgs
parents:
diff changeset
   111
         */
hgs
parents:
diff changeset
   112
        void ConstructL();
hgs
parents:
diff changeset
   113
       
hgs
parents:
diff changeset
   114
         
hgs
parents:
diff changeset
   115
         /*
hgs
parents:
diff changeset
   116
          * @brief calendar name finder from array
hgs
parents:
diff changeset
   117
          * 
hgs
parents:
diff changeset
   118
          * @param aName name of item in array
hgs
parents:
diff changeset
   119
          * @param aInfoItem item to be found
hgs
parents:
diff changeset
   120
          * @return TBool item found or not
hgs
parents:
diff changeset
   121
          */
hgs
parents:
diff changeset
   122
         static TBool CalendarInfoNameIdentifierL( const HBufC* aName,
hgs
parents:
diff changeset
   123
                                    const CCalCalendarInfo& aInfoItem );
hgs
parents:
diff changeset
   124
         
hgs
parents:
diff changeset
   125
         /**
hgs
parents:
diff changeset
   126
          * @brief show infonote when database changes and entry having
hgs
parents:
diff changeset
   127
          * childs.
hgs
parents:
diff changeset
   128
          */
hgs
parents:
diff changeset
   129
         void ShowChangeDBQueryL();
hgs
parents:
diff changeset
   130
         /*
hgs
parents:
diff changeset
   131
          * Callback for CAsyncCallBack class
hgs
parents:
diff changeset
   132
          * @param aThisPtr* this pointer.
hgs
parents:
diff changeset
   133
          * @return TInt status.
hgs
parents:
diff changeset
   134
          */         
hgs
parents:
diff changeset
   135
         static TInt DoAsyncShowChangeDBQueryL(TAny* aThisPtr);
hgs
parents:
diff changeset
   136
         
hgs
parents:
diff changeset
   137
         /**
hgs
parents:
diff changeset
   138
          * @brief Update data in editor
hgs
parents:
diff changeset
   139
          * @param aColId collection Id of selected database
hgs
parents:
diff changeset
   140
          */    
hgs
parents:
diff changeset
   141
         void SetDataToEditorL(const TCalCollectionId& aColId);
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
    public:
hgs
parents:
diff changeset
   144
         //previous calendar collection id  
hgs
parents:
diff changeset
   145
         TCalCollectionId iPreviousColId;
hgs
parents:
diff changeset
   146
        
hgs
parents:
diff changeset
   147
         //current collection id
hgs
parents:
diff changeset
   148
         TCalCollectionId iCurrentColId;
hgs
parents:
diff changeset
   149
    private:
hgs
parents:
diff changeset
   150
    
hgs
parents:
diff changeset
   151
        /**
hgs
parents:
diff changeset
   152
         * @var iUnifiedEditor
hgs
parents:
diff changeset
   153
         * @brief Reference to CCalenUnifiedEditor
hgs
parents:
diff changeset
   154
         */ 
hgs
parents:
diff changeset
   155
        CCalenUnifiedEditor& iUnifiedEditor;   
hgs
parents:
diff changeset
   156
        
hgs
parents:
diff changeset
   157
        /**
hgs
parents:
diff changeset
   158
         * @var iDbNamesArrayText
hgs
parents:
diff changeset
   159
         */
hgs
parents:
diff changeset
   160
        CDesCArrayFlat* iDbNamesArrayText;
hgs
parents:
diff changeset
   161
        
hgs
parents:
diff changeset
   162
        /**
hgs
parents:
diff changeset
   163
         * @var iDbNamesArray
hgs
parents:
diff changeset
   164
         */
hgs
parents:
diff changeset
   165
        CAknQueryValueTextArray* iDbNamesArray;
hgs
parents:
diff changeset
   166
        
hgs
parents:
diff changeset
   167
        /**
hgs
parents:
diff changeset
   168
         * @var iDbNamesTextValues
hgs
parents:
diff changeset
   169
         */
hgs
parents:
diff changeset
   170
        CAknQueryValueText* iDbNamesTextValues;
hgs
parents:
diff changeset
   171
        
hgs
parents:
diff changeset
   172
        TInt iPreviousIndex;
hgs
parents:
diff changeset
   173
        
hgs
parents:
diff changeset
   174
        TInt iCurrentIndex;
hgs
parents:
diff changeset
   175
        
hgs
parents:
diff changeset
   176
        //services referance not owned
hgs
parents:
diff changeset
   177
        MCalenServices* iServices;
hgs
parents:
diff changeset
   178
        HBufC* iCalendarFileName;
hgs
parents:
diff changeset
   179
        CAsyncCallBack* iAsyncDBquery;        
hgs
parents:
diff changeset
   180
        
hgs
parents:
diff changeset
   181
    };
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
#endif // CALENDBFIELD_H
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
// End of File