diff -r 000000000000 -r 3ce708148e4d omadm/omadmappui/inc/NSmlDMDlgProfileView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmappui/inc/NSmlDMDlgProfileView.h Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,508 @@ +/* +* Copyright (c) 2005-2006 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: Header file for Server Profile settings dialog +* +*/ + + +#ifndef NSMLDMDLGPROFILEVIEW_H +#define NSMLDMDLGPROFILEVIEW_H + +// INCLUDES + +#include //CAknDialog +#include //MEikListBoxObserver +#include +#include "NSmlDMdef.h" + +// FORWARD DECLARATIONS +class CNSmlDMSyncDocument; +class CEikListBox; +class CEikTextListBox; +class CAknSettingStyleListBox; +class CAknNavigationDecorator; +class CAknTabGroup; +class CNSmlDMSyncAppUi; +class CNSmlDMSyncProfile; +class CNSmlDMSyncAppEngine; +class CNSmlDMProfileData; +class CAknNavigationControlContainer; + +typedef CArrayPtr CNSmlDMSettingItemList; + +// CLASS DECLARATION +/** +* CNSmlDMDlgProfileView +* +* PRofile view +*/ +NONSHARABLE_CLASS (CNSmlDMDlgProfileView) : public CAknDialog, + public MEikListBoxObserver + { + public: + enum TNSmlProfile + { + ENSmlProfileName = 0, + ENSmlServerId, + ENSmlProfileDMServerPassword, + ENSmlConnType, + ENSmlAccessPoint, + ENSmlProfileURL, + ENSmlProfilePort, + ENSmlUsername, + ENSmlPassword, + ENSmlServerAlertAllowed, + ENSmlServerAccept, + ENSmlHttpsUsed, + ENSmlHttpsUsername, + ENSmlHttpsPassword + }; + + public:// Constructors and destructor + /** + * Two-phased constructor. + * @param aDoc - pointer to document instance + * @param aMode - edit, new or copy profile mode + * @param aProfileId - profile id + */ + static CNSmlDMDlgProfileView* NewL( CNSmlDMSyncDocument* aDoc, + TNSmlEditMode aMode, + TInt aProfileId ); + + /** + * Destructor + */ + virtual ~CNSmlDMDlgProfileView(); + + private: + + /** + * C++ default constructor. + * @param aDoc - pointer to document instance + * @param aMode - edit, new or copy profile mode + * @param aProfileId - profile id + * @return None. + */ + CNSmlDMDlgProfileView( CNSmlDMSyncDocument* aDoc, + TNSmlEditMode aMode, + TInt aProfileId ); + + public: + /** + * From the base class + * @param aKeyEvent + * @param aType + * @return - + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * From base class + * @param CDesCArray* aArray - array of the contacts + * items on the smlcontact + * @return - + */ + virtual void ProcessCommandL( TInt aCommandId ); + + /** + * Called before menu is shown + * @param TInt aResourceId Menu resource id + * @param CEikMenuPane* aMenuPane Pointer to the menu + * @return - + */ + void DynInitMenuPaneL( TInt aResourceID, CEikMenuPane* aMenuPane ); + + /** + * Handle selection key presses + * @param - + * @return - + */ + void HandleOKL(); + + /** + * Add setting items to listbox + * @param aListBox - pointer to listbox + * @param aItemList - pointer to setting item array + * @return - + */ + void AddProfileListItemL( CEikTextListBox* aListBox, + CNSmlDMSettingItemList* aItemList ); + + /** + * Loads setting dialog title from resource + * @param - + * @return - + */ + void SetSettingTitleL(); + + /** + * Checks the type of the setting item + * @param CNSmlDMProfileData& aItem - reference to setting item + * @return ETrue if changed, EFalse otherwise + */ + TBool PrepareToEditSettingItemL( CNSmlDMProfileData& aItem ); + + /** + * Exit application when selected from Options menu + * @param - + * @return - + */ + void DoExitFromMenuL(); + + /** + * Return pointer to CNSmlDMSyncDocument + * @param - + * @return CNSmlDMSyncDocument* + */ + CNSmlDMSyncDocument* Document() const { return iDoc; } + + /** + * Method to get context sensitive help topic + * @param TCoeHelpContext& aContext - Help topic to open + * @return - + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + private: + + /** + * From CEikDialog OkToExitL( TInt aButtonId ); + * Called by framework before exiting the dialog + * @param TInt aButtonId - id of the pressed button + * @return TBool (ETrue to exit\ EFalse to not to exit yet + */ + TBool OkToExitL( TInt aButtonId ); + + /** + * From CEikDialog PreLayoutDynInitL() + * Called by framework before the dialog is shown + * @param - + * @return - + */ + void PreLayoutDynInitL(); + + /** + * HandleListBoxEventL MEikListBoxObserver + * @param aListBox Pointer to used listbox + * @param aEventType Event type + * @return - + */ + void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aEventType ); + + /** + * Build list items + * @param - + * @return - + */ + void CreateProfileSettingsListL(); + + /** + * Launch access point dialog + * @param aItem Profile item + * @return Boolean + */ + TBool EditSettingItemAccessPointL( CNSmlDMProfileData& aItem ); + + /** + * Check access point + * @param TUint aId - id of the access point + * @return - + */ + void SetAccessPointInfoL( TUint aId ); + + /** + * Get access point info + * @param TUint aId - id of the access point + * @return - + */ + void GetAccessPointInfoL( TInt aId ); + + /** + * Handle text type setting items + * @param aItem - reference to setting item + * @return ETrue if changed, EFalse otherwise + */ + TBool EditSettingItemTextL( CNSmlDMProfileData& aItem ); + + /** + * Handle password type setting items + * @param aItem - reference to setting item + * @return ETrue if changed, EFalse otherwise + */ + TBool EditSettingItemSecretL(CNSmlDMProfileData& aItem); + + /** + * Handle number type setting items + * @param aItem - reference to setting item + * @return ETrue if changed, EFalse otherwise + */ + TBool EditSettingItemNumberL(CNSmlDMProfileData& aItem); + + /** + * Handle list type setting items + * @param aItem - reference to setting item + * @return ETrue if changed, EFalse otherwise + */ + TBool EditSettingItemListL(CNSmlDMProfileData& aItem); + + /** + * Handle boolean type setting items + * @param aItem - reference to setting item + * @return ETrue to refresh list + */ + TBool EditSettingItemListYesNoL(CNSmlDMProfileData& aItem); + + /** + * Handle boolean type setting items + * @param aItem - reference to setting item + * @return ETrue to refresh list + */ + TBool EditHttpSettingItemListYesNoL(CNSmlDMProfileData& aItem); + + /** + * Saves profile + * @param - + * @return - + */ + void SaveProfileL(); + + /** + * Sets default values for new profile + * @param - + * @return - + */ + void FillProfileWithDefaultsL(); + + /** + * Check that mandatory fields are filled correctly + * @param - + * @return Index of the invalid setting item, -1 if ok. + */ + TInt CheckMandatoryFieldsL(); + + /** + * Check that mandatory fields are filled correctly + * @param - + * @return Index of the invalid setting item, -1 if ok. + */ + TInt CheckUniqueFieldsL(); + + /** + * Launch Confirmation note + * @param aResource - resource id + * @return ETrue if accepted, otherwise EFalse + */ + TBool ShowConfirmationNoteL(TInt aResource); + + /** + * Is edited profile just edited + * @param - + * @return ETrue if Edit mode + */ + inline TBool EditMode() { return iEditMode == ESmlEditProfile; } + + /** + * Is edited profile copied + * @param - + * @return ETrue if Copy profile + */ + inline TBool CopyMode() { return iEditMode == ESmlCopyProfile; } + + /** + * Show confirmation note to user before editing setting item + * @param - + * @return - return prompt id if warning needed, 0 otherwise + */ + TInt WarnUserOfChangeL(); + + /** + * Get item for current index + * @param aIndex index of item + * @return ProfileData from item list + */ + CNSmlDMProfileData* Item( TInt aItemId ); + + /** + * Get item for current index + * @param aIndex index of item + * @return ProfileData from item list + */ + CNSmlDMProfileData* IndexItem( TInt aItemId ); + + /** + * Get item for current index + * @param aIndex index of item + * @return ProfileData from item list + */ + CNSmlDMProfileData* GetItemForIndex( TInt aIndex ); + + /** + * Utility function + * @param aHeaders + * @return None + */ + void BuildHeaders( CDesCArray* aHeaders ); + + /** + * Utility function + * @param None + * @return None + */ + void BuildItemIds(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileNameItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileServerIdItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileServerPasswordItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileConnectionTypeItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileAccessPointItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileUrlItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfilePortItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileUserNameandPassWordItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileActiveAcceptedItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileHttpsUsedItemL(); + + /** + * Utility function + * @param None + * @return None + */ + void BuildProfileHttpsUserNameAndPasswordItemL(); + + /** + * Handle connection setting item selection + * @param aItem - reference to setting item + * @return boolean to refresh list + */ + TBool EditConnectionSettingItemL(CNSmlDMProfileData& aItem ); + + private: + // Non owned data members + CNSmlDMSyncAppEngine* iSyncAppEngine; + CNSmlDMSyncDocument* iDoc; + CNSmlDMSettingItemList* iProfileList; + CNSmlDMSyncProfile* iProfile; + CAknSettingStyleListBox* iProfileListBox; + CAknNavigationDecorator* iNaviDecorator; + CAknTabGroup* iTabGroup; + TNSmlEditMode iEditMode; + TInt iProfileId; + TInt iOldProfileId; + TBool iServerIdChanged; + TBuf iBuf; + CAknNavigationControlContainer* iNaviPane; + TInt iResourceOffset; + TInt iConnUtilResourceOffset; + }; + +// CLASS DECLARATION +/** +* CNSmlDMTextEditor +* +* For Handling Enter keys in Editors +*/ + +NONSHARABLE_CLASS (CNSmlDMTextEditor) : public CAknTextSettingPage + { + public: + + /** + * Constructor + * @param resource id + * @param text + * @param flag + */ + CNSmlDMTextEditor(TInt aResourceID,TDes& aText,TInt aTextSettingPageFlags); + + /** + * Destructor + */ + ~CNSmlDMTextEditor(); + + /** + * From the base class + * @param aKeyEvent + * @param aType + * @return -Key response + */ + + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + }; + + + + +#endif //NSMLDMDLGPROFILEVIEW_H + +// End of File