--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/omadm/omadmappui/inc/NSmlDMDlgProfileView.h Wed Sep 01 12:31:32 2010 +0100
@@ -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 <AknDialog.h> //CAknDialog
+#include <eiklbo.h> //MEikListBoxObserver
+#include <akntextsettingpage.h>
+#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<CNSmlDMProfileData> 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<KBufSize256> 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