diff -r 000000000000 -r 094583676ce7 wvuing/IMPSConnectionUI/OperationStepSrc/CCnUiLoginUiCntrlStep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSConnectionUI/OperationStepSrc/CCnUiLoginUiCntrlStep.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,285 @@ +/* +* Copyright (c) 2004 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: Login UI control. +* +*/ + +#ifndef __CCNUILOGINUICNTRLSTEP_H +#define __CCNUILOGINUICNTRLSTEP_H + +// INCLUDES +#include +#include +#include +#include "MCnUiCntrlStep.h" +#include "MCnUiWaitNoteObserver.h" +#include "MCnUiOpProgressStateObserver.h" + + +//FORWARD DECLARATION +class MCnUiUiControlContext; +class MCnUiConnWaitNote; +class CCnUiConnOpener; +class CPEngNWSessionSlotID2; +class RResourceFile; +class MIMPSSharedData; + +// CLASS DECLARATION +/** + * Login SAP select UI control. + * Performs real connection open + * using the CCnUiConnOpener. + * + * This class behaviour can be extented by deriving. + * + * @since 2.1 + */ +NONSHARABLE_CLASS( CCnUiLoginUiCntrlStep ) : public CBase, + public MCnUiCntrlStep, + public MCnUiWaitNoteObserver, + public MCnUiOpProgressStateObserver + { +protected: //own enumerations + /** + * Return status for succesful login init. + */ + enum TCnUiLoginInitStatus + { + ECnUiLoginInitContinue = 1 //must be positive to distinguish from KErrXXX error codes + }; + + +public: // Two-phased constructors and destructor + + /** + * Two-phased constructor. + * @param aCCntxt UI control context. + */ + static CCnUiLoginUiCntrlStep* NewLC( MCnUiUiControlContext& aCCntxt, + CIMPSSAPSettings& aLoginSap, + TIMPSLoginType aLoginType, + CPEngNWSessionSlotID2& aNWSessionSlotID, + TIMPSConnectionClient aClient ); + + + /** + * Destructor. + */ + virtual ~CCnUiLoginUiCntrlStep(); + + +protected: //protected to allow derivation + + /** + * C++ constructor. + * + * By default the UI level login type is + * EIMPSManualLogin ==> Login is reported + * as manual login, not AA one. + */ + CCnUiLoginUiCntrlStep( MCnUiUiControlContext& aCCntxt, + CIMPSSAPSettings& aLoginSap, + CPEngNWSessionSlotID2& aNWSessionSlotID, + TIMPSConnectionClient aClient, + TIMPSLoginType aLoginType = EIMPSManualLogin ); + + + /** + * Symbian OS constructor. + */ + void ConstructL(); + + + +public: // New functions from MCnUiCntrlStep + + + /** + * Runs connection open / login step. + * + * @since 2.1 + * @return Error code from login. + */ + TInt RunStepL(); + + + /** + * Handles complete. + * + * @since 2.1 + * @return Always ECnUiStepContinueTeardown. + */ + TCnUiHandleCompleteStatus HandleCompleteL(); + + + /** + * Handles undo. + * + * @since 2.1 + */ + void UndoStepL(); + + + +public: // New functions from MCnUiWaitNoteObserver + + /** + * Notify method for wait note cancel events. + * @since 2.1 + */ + void HandleWaitNoteCancel(); + + + +public: // New functions from MCnUiOpProgressStateObserver + + /** + * Handles progress state enter. + * Setups proper wait note using the DoShowLoginStateSpecificWaitnoteL() + * + * @since 2.1 + * @param aStateId The state id from CCnUiConnOpener. + * @param aClient The accessed client. + */ + void HandleProgressStateEnter( TInt aStateId, + TIMPSConnectionClient aClient ); + + + + +protected: // New template functions for derived class use + + + /** + * Framework method. + * Virtual method to initializes the login operation. + * + * @since 2.1 + * + * @param aClient Init has to initialize the aClient + * with the client id to log in. + * + * @return Error status from init. If init returns something + * else than ECnUiLoginInitContinue login operaion RunStepL() + * is breaked with return value. + */ + virtual TInt DoInitLoginStepL( TIMPSConnectionClient& aClient ); + + + /** + * Framework method. + * + * Virtual method to show proper wait note for + * login state. + * + * @since 2.1 + * @param aStateId State id from CCnUiConnOpener. + * @param aClient The accessed client. + */ + virtual void DoShowLoginStateSpecificWaitnoteL( TInt aStateId, + TIMPSConnectionClient aClient ); + + +private: // New functions + + + /** + * Handles the login data failure error. + * + * @since 2.1 + * @param aTrieError The original trie error + * @return KErrNone if login is allowed to try again. + * Else error to return from login try. + */ + TInt HandleLoginDataFailureL( TInt aTrieError ); + + + /** + * Handles the conflicting SAP connection error. + * + * @since 2.1 + * @param aTrieError The original trie error + * @param aTriedLoginClient Client which were tried to login. + * @return KErrNone if login is allowed to try again. + * Else error to return from login try. + */ + TInt HandleConflictingSapConnectionL( TInt aTrieError, + TIMPSConnectionClient aTriedLoginClient ); + + + + /** + * Tries disconnect other currently active + * connections. + * + * @since 2.1 + * @return ETrue if succesfully disconnected + * other connections. Else EFalse. + */ + TBool TryDisconnectOtherConnectionsL(); + + /** + * Opens correct resource file. + * !!! Two items left to cleanup stack. !!! + * @param aResourceFile Contains opened file on return + * @since 3.1 + */ + void OpenResourceFileLC( RResourceFile& aResourceFile ); + + /** + * Resource reader for non-Cone situations + * @param aResourceId The integer-valued resource id to read + * @return The value of the integer + * @since 3.1 + */ + TInt ReadResourceIntValueL( TInt aResourceId ); + +protected: // protected data + + ///