omads/omadsappui/AspSyncUtil/inc/AspProfileWizardDialog.h
branchRCL_3
changeset 52 4f0867e42d62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omads/omadsappui/AspSyncUtil/inc/AspProfileWizardDialog.h	Wed Sep 01 12:30:02 2010 +0100
@@ -0,0 +1,565 @@
+/*
+* Copyright (c) 2005 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: Dialog to create to profile using wizard 
+*
+*/
+
+
+#ifndef ASPPROFILEWIZARDDIALOG_H
+#define ASPPROFILEWIZARDDIALOG_H
+
+// BackGround Context
+#include <AknsBasicBackgroundControlContext.h>
+
+//  INCLUDES
+#include <e32base.h>
+#include <akntextsettingpage.h>         // CAknIntegerSettingPage
+#include <aknpasswordsettingpage.h>     // CAknAlphaPasswordSettingPage
+#include <aknradiobuttonsettingpage.h>  // CAknRadioButtonSettingPage
+#include <AknInfoPopupNoteController.h> // CAknInfoPopupNoteController
+
+#include "AspProfileWizard.h"
+
+
+// CONSTANTS
+
+//const TInt KMsToWaitBeforePopup = 1000;
+const TInt KMsToWaitBeforePopup = 3000;
+const TInt KMsToWaitBeforeRePopup = 6000;
+const TInt KMsTimePopupInView = 60*1000;
+
+/**
+* MAspEditorPageObserver
+*
+* Observer interface function.
+*/
+NONSHARABLE_CLASS (MAspEditorPageObserver)
+	{
+    public:
+	enum TEditorEventType
+		{
+	    EKeyEvent,
+	    EContentCountEvent
+		};
+	
+	public:
+		/**
+        * Editor page call this when editor is about to close.
+        * @param aText Editor text.
+        * @return ETrue if input is ok, EFalse otherwise. 
+        */
+		virtual TBool CheckValidity(const TDesC& aText, TInt aSettingType) = 0;
+
+		/**
+        * Editor page call this to inform observer about editor event.
+        * @param aEvent.
+        * @param aValue.
+        * @return None. 
+        */
+		virtual void HandleEditorEvent(TInt aEvent, TInt aValue) = 0;
+
+		/**
+        * Editor page call this to inform observer about editor event.
+        * @param aEvent.
+        * @param aValue.
+        * @return None. 
+        */
+		virtual void GetNavipaneText(TDes& aText, TInt aContentCount) = 0;
+	};
+
+
+/**
+* TAspSettingPageParam
+*
+* This class is used as general parameter type.
+*/
+NONSHARABLE_CLASS (TAspSettingPageParam)
+	{
+	public:
+	    TInt iCommandId;
+	    TBuf<KBufSize> iPageText;
+	    MAspEditorPageObserver* iObserver;
+	    TInt iSettingType;
+	};
+
+
+/**
+* CAspTextSettingPage
+*
+* Setting page that returns command button id.
+*/
+NONSHARABLE_CLASS (CAspTextSettingPage) : public CAknTextSettingPage                                          
+	{
+    public:
+        CAspTextSettingPage(TInt aResourceID, TDes& aText, TInt aTextSettingPageFlags,
+                            TAspSettingPageParam& aParam);
+        ~CAspTextSettingPage();            
+        
+    protected: // From CCoeControl
+	    void ProcessCommandL(TInt aCommandId);
+	    TBool PostDisplayCheckL();
+	    TBool OkToExitL(TBool aAccept);
+	    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+
+	private:
+	    void UpdateNaviPaneL();
+	    
+	private:
+	    TAspSettingPageParam& iParam;
+	    CAspNaviPaneHandler* iNaviPaneHandler;
+	};
+
+
+/**
+* CAspRadioButtonSettingPage
+*
+* Setting page that returns command button id.
+*/
+NONSHARABLE_CLASS (CAspRadioButtonSettingPage) : public CAknRadioButtonSettingPage ,public MEikListBoxObserver
+	{
+    public:
+        CAspRadioButtonSettingPage(TInt aResourceID, TInt& aCurrentSelectionIndex, 
+		                           const MDesCArray* aItemArray, TAspSettingPageParam& aParam);
+        ~CAspRadioButtonSettingPage();            
+        
+    protected: // From CCoeControl
+	    void ProcessCommandL(TInt aCommandId);
+	    TBool PostDisplayCheckL();
+	    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+	    //from MEikListBoxObserver for Touch event Handling
+	    void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
+	    
+	private:
+	    void UpdateNaviPaneL();
+	    
+	private:
+	    TAspSettingPageParam& iParam;
+	    CAspNaviPaneHandler* iNaviPaneHandler;
+	    const MDesCArray* iItemArray;
+	};
+	
+
+/**
+* CAspCheckBoxSettingPage
+*
+* Setting page that returns command button id.
+*/
+NONSHARABLE_CLASS (CAspCheckBoxSettingPage) : public CAknCheckBoxSettingPage,public MEikListBoxObserver
+	{
+    public:
+        CAspCheckBoxSettingPage(TInt aResourceID, CSelectionItemList* aItemArray, TAspSettingPageParam& aParam);
+
+        ~CAspCheckBoxSettingPage();            
+        
+    protected: // From CCoeControl
+	    void ProcessCommandL(TInt aCommandId);
+   	    TBool PostDisplayCheckL();
+   	    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+   	    //from MEikListBoxObserver for touch event handling
+        void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
+    
+	private:
+	    void UpdateNaviPaneL();
+
+	private:
+	    TAspSettingPageParam& iParam;
+   	    CAspNaviPaneHandler* iNaviPaneHandler;
+   	    TInt iSelectionCount;
+   	    CSelectionItemList* iSelectionItemList;
+	};
+
+
+/**
+* CAspAlphaPasswordSettingPage
+*
+* Setting page that returns command button id.
+*/
+NONSHARABLE_CLASS (CAspAlphaPasswordSettingPage) : public CAknAlphaPasswordSettingPage
+	{
+    public:
+        CAspAlphaPasswordSettingPage(TInt aResourceID, TDes& aNewPassword, const TDesC& aOldPassword, TAspSettingPageParam& aParam);
+
+        ~CAspAlphaPasswordSettingPage();            
+        
+    protected: // From CCoeControl
+	    void ProcessCommandL(TInt aCommandId);
+   	    TBool PostDisplayCheckL();
+   	    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+	    
+	private:
+	    void UpdateNaviPaneL();
+
+	private:
+	    TAspSettingPageParam& iParam;
+	    CAspNaviPaneHandler* iNaviPaneHandler;
+	   
+	};
+
+
+// Forward Declaration 
+class CAknsBasicBackgroundControlContext;
+
+/**
+*  CAspProfileWizardDialog
+*
+* Dialog for editing profile name, data and connection.
+*/
+NONSHARABLE_CLASS (CAspProfileWizardDialog) : public CAknDialog,
+                                              public MAspActiveCallerObserver,
+                                              public MAspEditorPageObserver
+    {
+	enum TAspProfileDialogListIndex
+		{
+	    EIndexProfileName = 0,
+        EIndexProfileContent = 1,
+	    EIndexProfileConnection = 2
+		};
+
+	public:
+	    /**
+        * Launches profile dialog for editing profile name, data and connection.
+		* @param aParam Class that contains dialog parameters.
+        * @return Completion code.
+        */
+		static TBool ShowDialogL(TAspParam& aParam);
+
+    
+	public:// Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CAspProfileWizardDialog* NewL(TAspParam& aParam);
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CAspProfileWizardDialog();
+    
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CAspProfileWizardDialog(TAspParam& aParam);
+	
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL();
+
+
+	private:
+        /**
+        * From the base class.
+		* Called by framework before exiting the dialog.
+        * @param Button id.
+		* @return ETrue to exit\ EFalse to not to exit.
+        */
+		TBool OkToExitL(TInt aButtonId);
+	   
+	   /**
+        * From the base class.
+		* Called by framework before the dialog is shown.
+        * @param None
+		* @return None
+        */
+		void PreLayoutDynInitL();
+		
+		/**
+		* From the base class.
+		* Handles menu events.
+		* @param  aCommandId Command id.
+		* @return None.
+		*/
+		void ProcessCommandL(TInt aCommandId);
+
+        /**
+        * From the base class.
+		* Called by framework for key event handling.
+        * @param aKeyEvent.
+		* @param TEventCode.
+		* @return Return code.
+        */
+		TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+	
+	   /**
+		* From the base class.
+        * Called when dialog is activated.
+        * @return None.
+        */
+		void ActivateL();
+		
+		/**
+		* Method to get context sensitive help topic.
+        * @param aContext Help topic to open.
+		* @return None.
+        */
+		//void GetHelpContext(TCoeHelpContext& aContext) const;
+		
+    	/**
+		* From base class.
+		* Called when UI layout changes. 
+		* @param aType.
+    	* @return None.
+		*/
+        void HandleResourceChange(TInt aType);
+        
+
+	private:   // from MAspActiveCallerObserver
+	
+		/**
+        * From MAspActiveCallerObserver
+		* Called when CAspActiveCaller completes.
+        * @param aCallId.
+        * @return None.
+        */
+		void HandleActiveCallL(TInt aCallId);
+		
+	
+	private:   // from MAspEditorPageObserver
+	
+		/**
+        * From MAspEditorPageObserver
+		* Check setting page input.
+        * @param aText.
+        * @param aSettingType.
+        * @return ETrue is input is valid, EFalse othherwise.
+        */
+		TBool CheckValidity(const TDesC& aText, TInt aSettingType);
+        
+		/**
+        * Check setting page input.
+        * @param aText.
+        * @param aSettingType.
+        * @return ETrue is input is valid, EFalse othherwise.
+        */
+		TBool CheckValidityL(const TDesC& aText, TInt aSettingType);
+		
+		/**
+        * Handle editor event.
+        * @param aEvent.
+        * @param aValue.
+        * @return None.
+        */
+		void HandleEditorEvent(TInt aEvent, TInt aValue);
+		
+		/**
+        * Get navipane text.
+        * @param aText.
+        * @param aContentCount.
+        * @return None.
+        */
+		void GetNavipaneText(TDes& aText, TInt aContentCount);
+
+        
+    private:
+   		/**
+		* Utility function, updates dialog cba.
+		* @param aResourceId.
+		* @return None.
+		*/
+		void UpdateCbaL(TInt aResourceId);
+		
+   		/**
+		* Utility function, sets text editor text.
+		* @param aResourceId.
+		* @return None.
+		*/
+		void SetTextEditorTextL(TInt aResource);
+		
+		/**
+        * For setting the background Screen
+		*/
+    	void SetBackgroundContextL();
+    	
+    	/**
+        * Update color and font
+		*/
+    	void UpdateTextColorL();
+    	
+
+    private:
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemTextL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemBearerTypeL(CAspWizardItem* aItem);
+        
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemProtocolVersionL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemLocalDatabaseL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemSecretL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemProfileNameL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemHostAddressL(CAspWizardItem* aItem);
+
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt EditSettingItemContentSelectionL(CAspWizardItem* aItem);
+        
+   		/**
+		* Edit setting item.
+		* @param aItem Setting item data.
+		* @return Return code.
+		*/
+        TInt ShowTextEditorL(TInt aResourceId, TDes& aText, const TDesC& aTitle,
+                             TBool aMandatory, TBool aLatinInput, TInt aMaxLength, TInt aSettingType);
+
+    private:
+        
+   		/**
+		* Get navi pane text.
+		* @param aText.
+		* @param aCurrent.
+		* @param aFinal.
+		* @return Return code.
+		*/
+        void GetNaviPaneText(TDes& aText, TInt aCurrent, TInt aFinal);
+
+   		/**
+		* Get navi pane text.
+		* @param aText.
+		* @param aItem.
+		* @return Return code.
+		*/
+        void GetNaviPaneText(TDes& aText, CAspWizardItem* aItem);
+        
+		/**
+        * Set default setting values.
+        * @param None.
+        * @return None.
+        */
+		void SetDefaultValuesL();
+        
+        
+   		/**
+		* Show one proifle wizard editor.
+		* @param None.
+		* @return Return code.
+		*/
+        void RunWizardL();
+
+   		/**
+		* Show one proifle wizard editor.
+		* @param None.
+		* @return Return code.
+		*/
+        TInt RunWizard();
+        
+        void ShowPopupNoteL(TInt aResource, TInt aDelay);
+        void HidePopupNote();
+        void ShowErrorNoteL(TInt aError);
+
+       
+    private:
+        // text editor 
+        CEikRichTextEditor* iTextEditor;
+        
+   		// text editor text
+   		HBufC* iTextEditorText;
+		
+  		// handles profile setting data and profile creation
+  		CAspProfileWizard* iWizard;
+  		
+  		// dialog parameter for returning value to caller
+		TAspParam* iDialogParam;
+
+		// id of the calling application
+		TInt iApplicationId;
+
+		// sync session
+		RSyncMLSession* iSyncSession;
+
+		// long buffer for string handling
+		TBuf<KBufSize255> iBuf;
+
+		// for title and icon handling
+		CStatusPaneHandler* iStatusPaneHandler;
+		
+		// for making function call via active scheduler
+		CAspActiveCaller* iActiveCaller;
+		
+		// for bearer type list construction
+		CAspBearerHandler* iBearerHandler;
+		
+		// format string from resource file
+		TBuf<KBufSize> iNaviPaneTextFormat;
+		
+		// popup note
+		CAknInfoPopupNoteController* iPopupNote;
+		
+		// needed for unique server id check
+		CAspProfileList* iProfileList;
+		
+		// Background context
+	    CAknsBasicBackgroundControlContext* iBgContext;
+	    
+	    // Flag for checking whether moving in Backward direction or not 
+	    TBool iMoveBack;
+    };
+
+
+
+
+
+#endif      // ASPPROFILEWIZARDDIALOG_h
+            
+// End of File