messagingappbase/smartmessaging/wmlbc/inc/WmlBMSubItem30.h
author hgs
Thu, 04 Nov 2010 02:02:03 +0530
changeset 81 2043ea884c04
parent 79 2981cb3aa489
permissions -rw-r--r--
201044_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 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
*
hgs
parents:
diff changeset
    14
* Description:  
hgs
parents:
diff changeset
    15
*     Class includes information about one bookmark. 
hgs
parents:
diff changeset
    16
*     It has handle to Bookmark engine for adding bookmark.
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
*/
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifndef CWMLBMSUBITEM_H
hgs
parents:
diff changeset
    23
#define CWMLBMSUBITEM_H
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// INCLUDES
hgs
parents:
diff changeset
    26
#include "WmlSubItemBase.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include <favouritesdb.h>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
class CFavouritesItem;
hgs
parents:
diff changeset
    33
class CFavouritesItemList;
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
// CLASS DECLARATION
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
/**
hgs
parents:
diff changeset
    38
* CWmlBMSubItem holds information of a one bookmark item.
hgs
parents:
diff changeset
    39
*/
hgs
parents:
diff changeset
    40
NONSHARABLE_CLASS( CWmlBMSubItem ) : public CWmlSubItemBase
hgs
parents:
diff changeset
    41
    {
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
    public: // construction / destruction
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
        /**
hgs
parents:
diff changeset
    46
        * First stage constructor.
hgs
parents:
diff changeset
    47
        */
hgs
parents:
diff changeset
    48
        static CWmlBMSubItem* NewL();
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
        /**
hgs
parents:
diff changeset
    51
        * Destructor.
hgs
parents:
diff changeset
    52
        */  
hgs
parents:
diff changeset
    53
        ~CWmlBMSubItem();
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    public:  //from CWmlSubItemBase
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
        /**
hgs
parents:
diff changeset
    58
        * Adds value for bookmark field. 
hgs
parents:
diff changeset
    59
        * @param aFieldValue Value of the field to be added.
hgs
parents:
diff changeset
    60
        * @param aFieldEnum OTA parser specific enum of the field to add.
hgs
parents:
diff changeset
    61
        * @exception Leaves if invalid value or field is being added.
hgs
parents:
diff changeset
    62
        */ 
hgs
parents:
diff changeset
    63
        void AddFieldL( const TDesC& aFieldValue, const TInt aFieldEnum );
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
        /**
hgs
parents:
diff changeset
    66
        * Returns the count of fields in this item.
hgs
parents:
diff changeset
    67
        * @return Number of fields. 
hgs
parents:
diff changeset
    68
        */
hgs
parents:
diff changeset
    69
        TInt FieldCount() const;
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
        /**
hgs
parents:
diff changeset
    72
        * Interface for getting the label and value of a field at 
hgs
parents:
diff changeset
    73
        * certain index.
hgs
parents:
diff changeset
    74
        * @param aIndex Pointer to field which data is to be retrieved.
hgs
parents:
diff changeset
    75
        *               0 <= aIndex < GetFieldCount()
hgs
parents:
diff changeset
    76
        * @return reference to a class holding both label and value of a field.
hgs
parents:
diff changeset
    77
        * @exception Leaves if index is out of range. 
hgs
parents:
diff changeset
    78
        */
hgs
parents:
diff changeset
    79
        CMsgNameValue* GetFieldDataAtLC( const TInt aIndex );
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
        /**
hgs
parents:
diff changeset
    82
        * Check the item validity.
hgs
parents:
diff changeset
    83
        * @return ETrue if the item is valid, EFalse if it's not.
hgs
parents:
diff changeset
    84
        */
hgs
parents:
diff changeset
    85
        TBool IsValidL();
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
    private: // from CWmlSubItemBase
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
        /**
hgs
parents:
diff changeset
    90
        * Initialize all the member variable to their initial state.
hgs
parents:
diff changeset
    91
        * So if leave occurs nothing about the aborted operation is
hgs
parents:
diff changeset
    92
        * not saved.
hgs
parents:
diff changeset
    93
        */
hgs
parents:
diff changeset
    94
        void DoInitialize();
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
        /**
hgs
parents:
diff changeset
    97
        * @see WmlSubItemBase::NameMaxLength
hgs
parents:
diff changeset
    98
        */
hgs
parents:
diff changeset
    99
		TInt NameMaxLength();
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
        /**
hgs
parents:
diff changeset
   102
        * @see WmlSubItemBase::NameLC
hgs
parents:
diff changeset
   103
        */
hgs
parents:
diff changeset
   104
        HBufC* NameLC();
hgs
parents:
diff changeset
   105
        
hgs
parents:
diff changeset
   106
        /**
hgs
parents:
diff changeset
   107
        * @see WmlSubItemBase::SetNameL
hgs
parents:
diff changeset
   108
        */
hgs
parents:
diff changeset
   109
        void SetNameL( const TDesC& aName );
hgs
parents:
diff changeset
   110
        
hgs
parents:
diff changeset
   111
        /**
hgs
parents:
diff changeset
   112
        * @See WmlSubItemBase::DefaultNameLC
hgs
parents:
diff changeset
   113
        */
hgs
parents:
diff changeset
   114
        HBufC* DefaultNameLC();
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
		/**
hgs
parents:
diff changeset
   117
        * @See WmlSubItemBase::DoQueryNewNameLC
hgs
parents:
diff changeset
   118
        */
hgs
parents:
diff changeset
   119
		HBufC* DoQueryNewNameLC( const TDesC& aName );
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
        /**
hgs
parents:
diff changeset
   122
        * @See WmlSubItemBase::DoRenameQueryL
hgs
parents:
diff changeset
   123
        */
hgs
parents:
diff changeset
   124
		TBool DoRenameQueryL( const TDesC& aName );
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
        /**
hgs
parents:
diff changeset
   127
        * @See WmlSubItemBase::IsNameValidL
hgs
parents:
diff changeset
   128
        */
hgs
parents:
diff changeset
   129
        TBool IsNameValidL( const TDesC& aName, TBool aUpdateList );
hgs
parents:
diff changeset
   130
        
hgs
parents:
diff changeset
   131
        /**
hgs
parents:
diff changeset
   132
        * @See WmlSubItemBase::PreStoreL
hgs
parents:
diff changeset
   133
        */        
hgs
parents:
diff changeset
   134
        void PreStoreL( const TBool aShowPreferredQuery );
hgs
parents:
diff changeset
   135
        
hgs
parents:
diff changeset
   136
        /**
hgs
parents:
diff changeset
   137
        * @See WmlSubItemBase::StoreL
hgs
parents:
diff changeset
   138
        */
hgs
parents:
diff changeset
   139
        void StoreL();
hgs
parents:
diff changeset
   140
        
hgs
parents:
diff changeset
   141
        /**
hgs
parents:
diff changeset
   142
        * @See WmlSubItemBase::PostStoreL
hgs
parents:
diff changeset
   143
        */
hgs
parents:
diff changeset
   144
        void PostStoreL( const TBool aShowNote, 
hgs
parents:
diff changeset
   145
            const TInt aPreferredInformation, 
hgs
parents:
diff changeset
   146
            const TBool aCreateBookmarkIfNotSetAsDefault );
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
    private: // new
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
        /**
hgs
parents:
diff changeset
   151
        * Does the construction.
hgs
parents:
diff changeset
   152
        */        
hgs
parents:
diff changeset
   153
        void ConstructL();
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
        /**
hgs
parents:
diff changeset
   156
        * Get the reference to the bookmark database.
hgs
parents:
diff changeset
   157
        * If the database is not already created this 
hgs
parents:
diff changeset
   158
        * creates one.
hgs
parents:
diff changeset
   159
        * @return a reference to the bookmark database.
hgs
parents:
diff changeset
   160
        */
hgs
parents:
diff changeset
   161
        RFavouritesDb& BookmarkDb2L();
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
    private: // data
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
        /**
hgs
parents:
diff changeset
   166
        * Item used for internal storage and for adding bookmark to 
hgs
parents:
diff changeset
   167
        * Favourites Database.
hgs
parents:
diff changeset
   168
        */ 
hgs
parents:
diff changeset
   169
        CFavouritesItem* iBMItem;
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
        /**
hgs
parents:
diff changeset
   172
        * Bookmark database. Don't use this directly,
hgs
parents:
diff changeset
   173
        * use BookmarkDbL method instead.
hgs
parents:
diff changeset
   174
        */
hgs
parents:
diff changeset
   175
        RFavouritesDb iBookmarkDb;
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
		/**
hgs
parents:
diff changeset
   178
        * Bookmark database session.
hgs
parents:
diff changeset
   179
        */
hgs
parents:
diff changeset
   180
        RFavouritesSession iSession;
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
        /**
hgs
parents:
diff changeset
   183
        * Indicates if this bookmark is valid.
hgs
parents:
diff changeset
   184
        * Bookmark is valid when it has at least url defined.
hgs
parents:
diff changeset
   185
        */
hgs
parents:
diff changeset
   186
        TBool iIsValid;
hgs
parents:
diff changeset
   187
		
hgs
parents:
diff changeset
   188
		/**
hgs
parents:
diff changeset
   189
		*
hgs
parents:
diff changeset
   190
		*/
hgs
parents:
diff changeset
   191
		CFavouritesItemList* iItemList;
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
    private: // friend declarations
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
		/// Let the asyncronousitemsaver to access saving methods.
hgs
parents:
diff changeset
   196
		friend class CWmlAsyncronousItemSaver;
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
		/// For directly saving bookmark.
hgs
parents:
diff changeset
   199
		friend class CWmlAPSubItem;
hgs
parents:
diff changeset
   200
    };
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
#endif // CWMLBMSUBITEM_H
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
// End of file