locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplservereditor.h
author hgs
Wed, 03 Nov 2010 23:28:39 +0530
changeset 56 4e949f03ecc5
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 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:  supl server editor
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef __LOCSUPLSERVER_EDITOR_H__
hgs
parents:
diff changeset
    20
#define __LOCSUPLSERVER_EDITOR_H__
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include <AknForm.h>
hgs
parents:
diff changeset
    24
#include <ConeResLoader.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
const TInt KMaxUsageTextSize = 5;
hgs
parents:
diff changeset
    27
_LIT(KNoUsageInHomeNetork, "No");
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
class CAknTitlePane;
hgs
parents:
diff changeset
    30
class CLocSUPLSettingsUiEngine;
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
class MSuplServerEditorObserver
hgs
parents:
diff changeset
    33
	{
hgs
parents:
diff changeset
    34
public:
hgs
parents:
diff changeset
    35
	
hgs
parents:
diff changeset
    36
	virtual void UpdateIapL( const TDesC& aIapName ) = 0;
hgs
parents:
diff changeset
    37
	};
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
/**
hgs
parents:
diff changeset
    42
*  A dialog that makes it possible to edit certain fields of a supl server.
hgs
parents:
diff changeset
    43
*/
hgs
parents:
diff changeset
    44
class CLocSUPLServerEditor : 
hgs
parents:
diff changeset
    45
    public CAknForm, public MSuplServerEditorObserver
hgs
parents:
diff changeset
    46
    {
hgs
parents:
diff changeset
    47
    public: // Constructors and destructor
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
        /**
hgs
parents:
diff changeset
    50
 		* Static Two phase contructor that instantiates the CLocSUPLServerEditor
hgs
parents:
diff changeset
    51
		* 
hgs
parents:
diff changeset
    52
        */
hgs
parents:
diff changeset
    53
        static CLocSUPLServerEditor* NewL( 
hgs
parents:
diff changeset
    54
        					TBool aIsEditable,
hgs
parents:
diff changeset
    55
                            CLocSUPLSettingsUiEngine&       aEngine,
hgs
parents:
diff changeset
    56
        					TInt64 aSlpId
hgs
parents:
diff changeset
    57
		);
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
        /**
hgs
parents:
diff changeset
    60
 		* Static Two phase contructor that instantiates the CLocSUPLServerEditor
hgs
parents:
diff changeset
    61
		* 
hgs
parents:
diff changeset
    62
        */
hgs
parents:
diff changeset
    63
        static CLocSUPLServerEditor* NewLC( 
hgs
parents:
diff changeset
    64
        					TBool aIsEditable,
hgs
parents:
diff changeset
    65
                            CLocSUPLSettingsUiEngine&       aEngine,
hgs
parents:
diff changeset
    66
        					TInt64 aSlpId
hgs
parents:
diff changeset
    67
		);
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
        /**
hgs
parents:
diff changeset
    70
        * Destructor.
hgs
parents:
diff changeset
    71
        */
hgs
parents:
diff changeset
    72
        ~CLocSUPLServerEditor();
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    public: // From CAknDialog
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
        /**
hgs
parents:
diff changeset
    77
        * DynInitMenuPaneL initializes the menu pane before it is displayed.
hgs
parents:
diff changeset
    78
        *
hgs
parents:
diff changeset
    79
        * @param aResourceId a resource ID indetifying the menu bar containing
hgs
parents:
diff changeset
    80
        * the menu pane to be initialized.
hgs
parents:
diff changeset
    81
        * @param aMenuPane the menu pane to initialize.
hgs
parents:
diff changeset
    82
        */
hgs
parents:
diff changeset
    83
        void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
        /**
hgs
parents:
diff changeset
    86
        * Processes user commands.
hgs
parents:
diff changeset
    87
        *
hgs
parents:
diff changeset
    88
        * @param aCommandId id of the command to respond to
hgs
parents:
diff changeset
    89
        */
hgs
parents:
diff changeset
    90
        void ProcessCommandL(TInt aCommandId);
hgs
parents:
diff changeset
    91
        
hgs
parents:
diff changeset
    92
        /**
hgs
parents:
diff changeset
    93
         * 
hgs
parents:
diff changeset
    94
         * 
hgs
parents:
diff changeset
    95
         */
hgs
parents:
diff changeset
    96
        void HandleDialogPageEventL( TInt aEventID );
hgs
parents:
diff changeset
    97
        /*
hgs
parents:
diff changeset
    98
         * Executes the Dialog
hgs
parents:
diff changeset
    99
         */
hgs
parents:
diff changeset
   100
        TInt ExecuteLD();
hgs
parents:
diff changeset
   101
        
hgs
parents:
diff changeset
   102
        /**
hgs
parents:
diff changeset
   103
         * Sets the value of iIsAccessPointDefined based on whether the
hgs
parents:
diff changeset
   104
         * access point is preconfigured for a server
hgs
parents:
diff changeset
   105
         * @param[in] aEnabled - Value to be set for the variable iIsAccessPointDefined
hgs
parents:
diff changeset
   106
         */
hgs
parents:
diff changeset
   107
        void SetAccessPointEnabled(TBool aEnabled);
hgs
parents:
diff changeset
   108
	public: // from MSuplServerEditorObserver
hgs
parents:
diff changeset
   109
	
hgs
parents:
diff changeset
   110
	    /*
hgs
parents:
diff changeset
   111
         * Changes IAP value in AP field
hgs
parents:
diff changeset
   112
         */
hgs
parents:
diff changeset
   113
		void UpdateIapL( const TDesC& aIapName );
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
	
hgs
parents:
diff changeset
   116
    protected: // From CAknForm
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
     /**
hgs
parents:
diff changeset
   119
       * Inherited from CCoeControl
hgs
parents:
diff changeset
   120
       */				    
hgs
parents:
diff changeset
   121
        
hgs
parents:
diff changeset
   122
		TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
hgs
parents:
diff changeset
   123
		                                             TEventCode aType );
hgs
parents:
diff changeset
   124
		                                             
hgs
parents:
diff changeset
   125
        /**
hgs
parents:
diff changeset
   126
        * Handles a dialog button press for the specified dialog button.
hgs
parents:
diff changeset
   127
        *
hgs
parents:
diff changeset
   128
        * @param aButtonId
hgs
parents:
diff changeset
   129
        * @return ETrue if OK to exit, EFalse to keep the dialog active
hgs
parents:
diff changeset
   130
        */
hgs
parents:
diff changeset
   131
        TBool OkToExitL(TInt aButtonId);
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
        /**
hgs
parents:
diff changeset
   134
        * SaveFormDataL deals with the occasion of a change from
hgs
parents:
diff changeset
   135
        * edit->view mode and the user wishes to save the changes.
hgs
parents:
diff changeset
   136
        *
hgs
parents:
diff changeset
   137
        * @return ETrue if the editable state can be left, EFalse otherwise
hgs
parents:
diff changeset
   138
        */
hgs
parents:
diff changeset
   139
        TBool SaveFormDataL();
hgs
parents:
diff changeset
   140
        
hgs
parents:
diff changeset
   141
    private: // From CEikDialog
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
        /**
hgs
parents:
diff changeset
   144
        * PreLayoutDynInitL initialises the dialog's controls before the dialog
hgs
parents:
diff changeset
   145
        * is sized and layed out.
hgs
parents:
diff changeset
   146
        */
hgs
parents:
diff changeset
   147
        void PreLayoutDynInitL();
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
        /**
hgs
parents:
diff changeset
   150
        * PostLayoutDynInitL initialises the dialog's controls after the dialog
hgs
parents:
diff changeset
   151
        * has been sized but before it has been activated.
hgs
parents:
diff changeset
   152
        */
hgs
parents:
diff changeset
   153
        void PostLayoutDynInitL();
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
        /**
hgs
parents:
diff changeset
   156
        * Selects desired line on startup
hgs
parents:
diff changeset
   157
        */
hgs
parents:
diff changeset
   158
        void SetInitialCurrentLine();
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
       
hgs
parents:
diff changeset
   161
        /** Handles layout switch */
hgs
parents:
diff changeset
   162
        void HandleResourceChange( TInt aType );
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
		void HandleControlStateChangeL( TInt aControlId );
hgs
parents:
diff changeset
   165
 
hgs
parents:
diff changeset
   166
		void LineChangedL(TInt aControlId );
hgs
parents:
diff changeset
   167
		
hgs
parents:
diff changeset
   168
 	private:
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
        enum TErrorInForm
hgs
parents:
diff changeset
   171
            {
hgs
parents:
diff changeset
   172
            ENoErrors
hgs
parents:
diff changeset
   173
            };
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
        /** Constructor
hgs
parents:
diff changeset
   176
         *
hgs
parents:
diff changeset
   177
         */
hgs
parents:
diff changeset
   178
        CLocSUPLServerEditor( 
hgs
parents:
diff changeset
   179
        					TBool aIsEditable,
hgs
parents:
diff changeset
   180
                            CLocSUPLSettingsUiEngine&       aEngine,
hgs
parents:
diff changeset
   181
        					TInt64 aSlpId
hgs
parents:
diff changeset
   182
		);
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        void ConstructL();
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
	private: // new functions
hgs
parents:
diff changeset
   187
        /**
hgs
parents:
diff changeset
   188
         * Change title pane text
hgs
parents:
diff changeset
   189
         */
hgs
parents:
diff changeset
   190
		void ChangeTitlePaneTextL( TDesC& aText );
hgs
parents:
diff changeset
   191
		
hgs
parents:
diff changeset
   192
        /**
hgs
parents:
diff changeset
   193
         * Load intial data values
hgs
parents:
diff changeset
   194
         */
hgs
parents:
diff changeset
   195
        void LoadFormValuesFromDataL();
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
		/*
hgs
parents:
diff changeset
   198
		 * It checks if server details are empty in editor.
hgs
parents:
diff changeset
   199
		 * 
hgs
parents:
diff changeset
   200
		 * @ret true if event is empty else false.
hgs
parents:
diff changeset
   201
		 */
hgs
parents:
diff changeset
   202
		TBool IsEmptyServerL();
hgs
parents:
diff changeset
   203
		/*
hgs
parents:
diff changeset
   204
		 * toggles the txt
hgs
parents:
diff changeset
   205
		 */
hgs
parents:
diff changeset
   206
		void SetUsageinHomeNetworkL( TBool aOnOff );
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
		/*
hgs
parents:
diff changeset
   209
		 * it changes the MSK caption 
hgs
parents:
diff changeset
   210
		 */        
hgs
parents:
diff changeset
   211
		void HandleMSKCaptionL();
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
		/*
hgs
parents:
diff changeset
   214
		 * Confirmation query note for delete operation
hgs
parents:
diff changeset
   215
		 */        
hgs
parents:
diff changeset
   216
		TInt DeleteConfirmationQueryL();
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
		/*
hgs
parents:
diff changeset
   219
		 * Shows Validation Info note for server address entry 
hgs
parents:
diff changeset
   220
		 */        
hgs
parents:
diff changeset
   221
		void ShowServerValidationInfoNoteL( TInt aResourceId );
hgs
parents:
diff changeset
   222
		
hgs
parents:
diff changeset
   223
		/*
hgs
parents:
diff changeset
   224
		 * Sets the cursor position to end at server address field in editor
hgs
parents:
diff changeset
   225
		 */        
hgs
parents:
diff changeset
   226
		void SetCursorToEndL();
hgs
parents:
diff changeset
   227
		
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
    private: // Data
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
        //! The title pane that is dynamically updated
hgs
parents:
diff changeset
   232
        CAknTitlePane* 				iTitlePane;
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
        //! The original title that the title pane displayed before modified
hgs
parents:
diff changeset
   235
        HBufC* 						iOriginalTitle;
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
       	/*
hgs
parents:
diff changeset
   238
         * Mode in which editor is opened. It can be either view or edit mode.
hgs
parents:
diff changeset
   239
         */   
hgs
parents:
diff changeset
   240
       	TBool                    	iIsEditMode;
hgs
parents:
diff changeset
   241
      
hgs
parents:
diff changeset
   242
       	/*
hgs
parents:
diff changeset
   243
         * Mode in which editor is opened. It can be either view or edit mode.
hgs
parents:
diff changeset
   244
         */      
hgs
parents:
diff changeset
   245
      	TBool 						iIsNewServer;
hgs
parents:
diff changeset
   246
      	
hgs
parents:
diff changeset
   247
	   	/*
hgs
parents:
diff changeset
   248
	     *  help context object
hgs
parents:
diff changeset
   249
   	     */
hgs
parents:
diff changeset
   250
       	TCoeHelpContext         	iHelpContext;  
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
		/*
hgs
parents:
diff changeset
   253
		 * Reference to the SUPL Settings engine
hgs
parents:
diff changeset
   254
		 */
hgs
parents:
diff changeset
   255
	    CLocSUPLSettingsUiEngine&	iEngine;	
hgs
parents:
diff changeset
   256
	    
hgs
parents:
diff changeset
   257
	    /**
hgs
parents:
diff changeset
   258
         * SUPL Servers SLP ID to get and set the server attributes.
hgs
parents:
diff changeset
   259
         * Owns.
hgs
parents:
diff changeset
   260
         */
hgs
parents:
diff changeset
   261
        TInt64						iSlpId;
hgs
parents:
diff changeset
   262
        
hgs
parents:
diff changeset
   263
	    /**
hgs
parents:
diff changeset
   264
         * SUPL Server Address 
hgs
parents:
diff changeset
   265
         * Owns.
hgs
parents:
diff changeset
   266
         */
hgs
parents:
diff changeset
   267
	    HBufC* 						iServerAddress;
hgs
parents:
diff changeset
   268
	    
hgs
parents:
diff changeset
   269
	    /**
hgs
parents:
diff changeset
   270
         * SUPL Server Access point
hgs
parents:
diff changeset
   271
         * Owns.
hgs
parents:
diff changeset
   272
         */
hgs
parents:
diff changeset
   273
	    HBufC* 						iIap;
hgs
parents:
diff changeset
   274
	    
hgs
parents:
diff changeset
   275
	    /**
hgs
parents:
diff changeset
   276
         * SUPL Server usage in home network
hgs
parents:
diff changeset
   277
         * Owns.
hgs
parents:
diff changeset
   278
         */
hgs
parents:
diff changeset
   279
	    TBool 						iUsageInHomeNw;
hgs
parents:
diff changeset
   280
	    
hgs
parents:
diff changeset
   281
	    /**
hgs
parents:
diff changeset
   282
	    	* It determines if form is modified by user
hgs
parents:
diff changeset
   283
	    	*/	    
hgs
parents:
diff changeset
   284
	    TBool							iIsModified;
hgs
parents:
diff changeset
   285
	    
hgs
parents:
diff changeset
   286
	    /**
hgs
parents:
diff changeset
   287
	     * Determines whether the access point is preconfigured for the server
hgs
parents:
diff changeset
   288
	     */
hgs
parents:
diff changeset
   289
	    TBool  iIsAccessPointDefined;
hgs
parents:
diff changeset
   290
    };
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
#endif // __LOCSUPLSERVER_EDITOR_H__
hgs
parents:
diff changeset
   293