diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstui/inc/cvimpstuiextensionservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstui/inc/cvimpstuiextensionservice.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,352 @@ +/* +* Copyright (c) 2008 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 for extension service +* +*/ + + +#ifndef C_CVIMPSTUIEXTENSIONSERVICE_H +#define C_CVIMPSTUIEXTENSIONSERVICE_H + +// INCLUDES +#include +#include +#include "tvimpstenums.h" + +// FORWARD DECLARATINS +class CVIMPSTUiTabbedView; +class CVIMPSTUiSearchView; +class CVIMPSTUIExtensionViewInfo; +class MxSPViewMapper; +class CPbk2UIExtensionView; +class MxSPContactManager; +class MVIMPSTEngine; +class CVIMPSTUiBrandData; +class MVIMPSTCmdHandler; +class CVIMPSTUiSearchFieldArray; +class CVIMPSTUiBlockView; +class CVIMPSTUIMenuExtension; + +// CLASS DECLARATION + +/** + * Extension Service + * This class represents one service + * + * @lib vimpstui.lib + * @since S60 5.0 + */ +NONSHARABLE_CLASS( CVIMPSTUIExtensionService ) : public CBase + { + public: // Constructor and destructor + + /** + * Two-phased constructor. + * + * @param aServiceId, service id + * @param aTabbedViewId, tabbed view id for this service + * @param aSearchViewId, Search view id for this service + * @param aServiceName, + * @param aEngine, engine for logic handling + */ + static CVIMPSTUIExtensionService* NewL( + TUint aServiceId, + TInt aTabbedViewId, + TInt aSearchViewId, + TInt aBlockedViewId, + const TDesC& aServiceName, + CVIMPSTUIMenuExtension& aMenuExtension, + MVIMPSTEngine& aEngine ); + + /** + * Two-phased constructor. + * + * @param aService, service id + * @param aTabbedViewId, tabbed view id for this service + * @param aSearchViewId, Search view id for this service + * @param aServiceName, + * @param aEngine, engine for logic handling + */ + static CVIMPSTUIExtensionService* NewLC( + TUint aServiceId, + TInt aTabbedViewId, + TInt aSearchViewId, + TInt aBlockedViewId, + const TDesC& aServiceName, + CVIMPSTUIMenuExtension& aMenuExtension, + MVIMPSTEngine& aEngine ); + + /** + * Standard C++ destructor + */ + ~CVIMPSTUIExtensionService(); + + + + public: + + /** + * Returns pointer to tabbed view of this service. + * Ownership is passed + * + * @param aMapper, view mapper + * @param aContactManager, contact manager + * @param aView, view + * @param aTabbedViewId, tabbed view id + * @param aId, id + * @return CVIMPSTUiTabbedView*, pointer + * to tabbed view. Ownership is passed. + */ + CVIMPSTUiTabbedView* TabbedViewL( + MxSPViewMapper& aMapper, + MxSPContactManager& aContactManager, + CPbk2UIExtensionView& aView, + TInt aTabbedViewId, + TUid aId, + MVIMPSTEngine& aEngine ); + + /** + * Returns pointer to Search view of this service. + * Ownership is passed + * + * @param aMapper, view mapper + * @param aContactManager, contact manager + * @param aView, view + * @param aSearchViewId, search view id + * @param aId, old view id for search view + * @return CVIMPSTUiSearchView*, pointer + * to tabbed view. Ownership is passed. + */ + CVIMPSTUiSearchView* SearchViewL( + MxSPViewMapper& aMapper, + MxSPContactManager& aContactManager, + CPbk2UIExtensionView& aView, + TInt aSearchViewId, + TUid aId, + MVIMPSTEngine& aEngine ); + + /** + * Returns pointer to Block view of this service. + * Ownership is passed + * + * @param aMapper, view mapper + * @param aContactManager, contact manager + * @param aView, view + * @param aSearchViewId, search view id + * @return CVIMPSTUiSearchView*, pointer + * to tabbed view. Ownership is passed. + */ + CVIMPSTUiBlockView* BlockViewL( + MxSPViewMapper& aMapper, + MxSPContactManager& aContactManager, + CPbk2UIExtensionView& aView, + TInt aSearchViewId, + MVIMPSTEngine& aEngine ); + + /** + * Returns tabbed view id assigned to this service + * + * @return TInt, tabbed view id of this service + */ + TInt TabbedViewId(); + + /** + * Returns Search view id assigned to this service + * + * @return TInt, details view id of this service + */ + TInt SearchViewId(); + + /** + * Returns Block view id assigned to this service + * + * @return TInt, details view id of this service + */ + TInt BlockViewId(); + + /** + * Returns service id + * + * @return TInt, service id + */ + TUint32 ServiceId(); + + + /** + * Returns pointer of tabbed view info. Ownership is passed. + * + * @return CVIMPSTUIExtensionViewInfo, view info data + */ + CVIMPSTUIExtensionViewInfo* TabbedViewInfoL(); + + /** + * Returns pointer of Search view info. Ownership is passed. + * + * @return CVIMPSTUIExtensionViewInfo, view info data + */ + CVIMPSTUIExtensionViewInfo* SearchViewInfo(); + + /** + * Returns pointer of Blocked view info. Ownership is passed. + * + * @return CVIMPSTUIExtensionViewInfo, view info data + */ + CVIMPSTUIExtensionViewInfo* BlockedViewInfo(); + + + + /** + * Returns service name + * + * @return TDesC&, service name + */ + const TDesC& ServiceName(); + + + /** + * Returns search string + * + * @return TDesC&, search string + */ + const TDesC& SearchString(); + + /** + * Sets search string + * + * @param aSearchString, search string used in search view for navi pane text + */ + void SetSearchStringL( const TDesC& aSearchString ); + + /** + * Checks if this service has aViewId in use. + * + * @since S60 5.0 + * @param aViewId, view id to check + * @return ETrue if aViewId belongs to this service + */ + TBool HasViewId( TInt aViewId ); + + /** + * Returns service Engine + * + * @return Ref to the Engine + */ + MVIMPSTEngine& ServiceEngine (); + + /** + * set all search field found from server + * @param aEnumKeysArray, array of enums key field + * @param aLebelKeysArray, array of label key field + */ + void SetSearchFieldsDataL( RArray& aEnumKeysArray, RPointerArray& aLebelKeysArray ) ; + + /** + * @returns search field array refernce + */ + CVIMPSTUiSearchFieldArray& GetSearchFieldArray() ; + + private : + /** + * get label of given search key + * + * @returns HBufC* lable of the given search key. + */ + HBufC* GetSearchKeyLabelL(TVIMPSTEnums::TVIMPSTSearchKey aSearchKey ,TBool& aBasicField ) ; + + /** + * sort the basic field in order of + * first name , last name and user + */ + void SortBasicFields() ; + + private: // Implementation + + /** + * Standard C++ constructor + * @param aServiceId, service id + * @param aTabbedViewId, tabbedview id + * @param aSearchViewId, search view id + * @param aEngine, reference to engine. + */ + CVIMPSTUIExtensionService( + TUint aServiceId, + TInt aTabbedViewId, + TInt aSearchViewId, + TInt aBlockedViewId, + CVIMPSTUIMenuExtension& aMenuExtension, + MVIMPSTEngine& aEngine ); + + /** + * Performs the 2nd phase of construction. + * @param aServiceName, name of the installed service. + */ + void ConstructL(const TDesC& aServiceName); + + private: // Data + + // Service id of this service + TUint32 iServiceId; + + // tabbed view id for this service + TInt iTabbedViewId; + + // search view id for this service + TInt iSearchViewId; + + // blocked view id for this service + TInt iBlockedViewId; + + //does not own, reference to menu extension + CVIMPSTUIMenuExtension& iMenuExtension; + + // Own Service name + HBufC* iServiceName; + + // Not own, tabbed view class for this service + CVIMPSTUiTabbedView* iTabbedView; + + //Not own,search view class for this subservice if supported + CVIMPSTUiSearchView* iSearchView; + + CVIMPSTUiBlockView* iBlockedView; + + // Not own, tabbed view info of this service + CVIMPSTUIExtensionViewInfo* iTabbedViewInfo; + + // Not own, search view info of this service + CVIMPSTUIExtensionViewInfo* iSearchViewInfo; + + // Not own, search view info of this service + CVIMPSTUIExtensionViewInfo* iBlockViewInfo; + + //not owned + MVIMPSTEngine& iEngine; + + //Owns command Handler for this view + MVIMPSTCmdHandler* iCommandHandler; + + /** Owns Search string + * used to show the string in search view's navi pane + * remove if there any other way to do the same + */ + HBufC* iSearchString; + + // owns , collection of all supported fields + CVIMPSTUiSearchFieldArray* iUiFieldsArray; + + }; + +#endif // C_CVIMPSTUIEXTENSIONSERVICE_H + +// End of file