wvuing/IMPSConnectionUI/OperationStepSrc/CCnUiUiControlContext.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/OperationStepSrc/CCnUiUiControlContext.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,333 @@
+/*
+* 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:  UI control context implementation.
+*
+*/
+
+#ifndef __CCNUIUICONTROLCONTEXT_H
+#define __CCNUIUICONTROLCONTEXT_H
+
+//  INCLUDES
+#include "CCnUiBaseControlContext.h"
+#include "MCnUiUiControlContext.h"
+
+
+// FORWARD DECLARATIONS
+class CIMPSSAPSettingsStore;
+class CIMPSSAPSettings;
+class CCnUiOpContext;
+class CCnUiSapStoreProxy;
+class CCnUiConnModeRewaker;
+class CCnUiCntrlStepDriver;
+class MCnUiClientPluginAdv;
+class MCnUiSignaller;
+class MCnUiConnModeHandler;
+class MCnUiConnectionHandler;
+class MCnUiUiFacade;
+class MCnUiUiFacade;
+class MIMPSConnProcessUi;
+class MIMPSConnProcessObserver;
+class TProcessObserverProxy;
+class CPEngNWSessionSlotID2;
+
+// CLASS DECLARATION
+/**
+ * UI control context implementation.
+ *
+ * Extends CCnUiBaseControlContext by offering
+ * UI level features.
+ *
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( CCnUiUiControlContext ) : public CCnUiBaseControlContext,
+        public MCnUiUiControlContext
+    {
+public:  // Two-phased constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     *
+     * @param aClient The connection client.
+     * @param aSapStoreProxy SAP store proxy to use.
+     * @param aAAModeReWaker The AA mode rewaker to use.
+     * @param aConnHandler Connection handler to use.
+     * @param aObserver Process observer to notify. Can be NULL.
+     */
+    static CCnUiUiControlContext* NewLC( TIMPSConnectionClient aClient,
+    CCnUiSapStoreProxy& aSapStoreProxy,
+    MCnUiConnModeRewaker& aConnModeRewaker,
+    MCnUiConnectionHandler& aConnHandler,
+    MIMPSConnProcessObserver* aObserver );
+
+    /**
+     * Destructor.
+     */
+    ~CCnUiUiControlContext();
+
+private:
+
+    /**
+     * C++ constructor.
+     */
+    CCnUiUiControlContext( TIMPSConnectionClient aClient,
+                           CCnUiSapStoreProxy& aSapStoreProxy,
+                           MCnUiConnModeRewaker& aConnModeRewaker,
+                           MCnUiConnectionHandler& aConnHandler );
+
+    /**
+     * Symbian OS constructor.
+     */
+    void ConstructL( MIMPSConnProcessObserver* aObserver );
+
+
+
+
+public: // New methods
+
+    /**
+     * Performs login for in construction
+     * given client.
+     *
+     * @since 2.1
+     * @param aLoginType The login type.
+     * @return Login status code.
+     */
+    TInt DoLoginL( TIMPSLoginType aLoginType, CPEngNWSessionSlotID2& aNWSessionSlotID,
+                   CIMPSSAPSettings* aSap = NULL
+                                            , TBool aLastLoginSap = EFalse );
+
+
+    /**
+     * Performs logout for in construction
+     * given client.
+     *
+     * @since 2.1
+     * @return Logout status code.
+     */
+    TInt DoLogoutL( const CPEngNWSessionSlotID2& aNWSessionSlotID );
+
+
+    /**
+     * Handles application exit according the
+     * given exit type parameter.
+     *
+     * @since 2.1
+     * @return Disconnect status code.
+     */
+    TInt DoHandleApplicationExitL( TIMPSExitType aExitType,
+                                   const CPEngNWSessionSlotID2& aNWSessionSlotID );
+
+
+
+public: // New methods from MCnUiUiControlContext
+
+
+    /**
+     * From MCnUiUiControlContext
+     * @see MCnUiUiControlContext
+     * @since 2.1
+     */
+    MCnUiUiFacade& Ui();
+
+    /**
+     * From MCnUiUiControlContext
+     * @see MCnUiUiControlContext
+     * @since 2.1
+     */
+    MCnUiConnProcessObserverProxy& ProcessObserverProxy();
+
+
+    /**
+     * From MCnUiUiControlContext
+     * @see MCnUiUiControlContext
+     * @since 2.1
+     */
+    MCnUiConnModeRewaker& ConnModeRewaker();
+
+
+    /**
+     * From MCnUiUiControlContext
+     * @see MCnUiUiControlContext
+     * @since 2.1
+     */
+    TInt SubOpDisconnectAllL( CIMPSSAPSettings& aDisconnectedSap,
+                              RArray< TIMPSConnectionClient >& aDisconnectedClients,
+                              const CPEngNWSessionSlotID2& aNWSessionSlotID );
+
+
+    /**
+     * From MCnUiUiControlContext
+     * @see MCnUiUiControlContext
+     * @since 2.1
+     */
+    TInt SubOpReconnectAllL( CIMPSSAPSettings& aReconnectedSap,
+                             CPEngNWSessionSlotID2& aNWSessionSlotID );
+
+public: //Methods from MCnUiBaseControlContext
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    MCnUiConnectionHandler& ConnHandler();
+
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    MCnUiSignaller& Signaller();
+
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    MCnUiConnModeHandler& ConnModeHandler();
+
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    TIMPSConnectionClient ControlledClient();
+
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    CIMPSSAPSettingsStore& SapStoreL();
+
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    MCnUiClientPlugin& ClientPluginL( TIMPSConnectionClient aClient,
+                                      CPEngNWSessionSlotID2& aNWSessionSlotID,
+                                      TBool aRefreshPlugin = EFalse );
+
+
+    /**
+     * From MCnUiBaseControlContext
+     *
+     * Forwards request to CCnUiBaseControlContext
+     * base class.
+     *
+     * @see MCnUiBaseControlContext
+     * @since 2.1
+     */
+    MCnUiGlobalNotificationUiFacade& GlobalNotificationUiL();
+
+    /**
+     * Gets the active network session slot id
+     * @param aClient the client type
+     * @since 3.0
+     */
+    CPEngNWSessionSlotID2* GetActiveNWSessionSlotIDL(
+        TIMPSConnectionClient /*aClient*/ ) {
+        return NULL;
+        };
+
+public:  // Other new functions
+
+    /**
+     * Displays a list query for selecting a domain ("@domain.com" etc.)
+     * @param aSelectedDomain Here is copied the domain user selected.
+     * @param aSap Current SAP settings, previously selected domain is
+     *             stored per SAP.
+     * @return If user cancelled the query return 0,
+     *         otherwise the dialog dismiss key code
+     * @since 3.1u
+     */
+    static TInt DisplayDomainSelectionQueryL( TDes& aSelectedDomain,
+                                              CIMPSSAPSettings* aSap );
+
+private: //Local helpers
+
+
+    /**
+     * Private helper method to execute driver
+     *
+     * @since 2.1
+     * @param aDriver
+     * @param aPopAndDestroyCount How many objects to
+     * PopAndDestroy() after driver execution.
+     @ return Return value from driver execution.
+     */
+    TInt ExecuteDriverInUiLX( CCnUiCntrlStepDriver& aDriver, TInt aPopAndDestroyCount );
+
+
+    /**
+     * Reads integer resource value from resources
+     * @param aResourceId resource id which is read
+     * @return value of wanted integer resource flag
+     */
+    TInt IntResourceValueL( TInt aResourceId );
+
+
+private: //Data
+
+    //NOTE!! control context may not share operation data objects
+    //as member variables between individual operations,
+    //because this would mess up things in operation nesting...
+
+    ///<Ui facade, owned
+    MCnUiUiFacade*                  iUi;
+
+
+    ///<Process observer proxy, owned
+    TProcessObserverProxy*          iProcessObserverProxy;
+
+
+    ///<The conn mode rewaker to use, not owned
+    MCnUiConnModeRewaker&           iConnModeRewaker;
+
+    };
+
+#endif      //__CCNUIUICONTROLCONTEXT_H
+//  End of File
+
+