meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h
changeset 0 8466d47a6819
child 12 4ce476e64c59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,153 @@
+/*
+* Copyright (c) 2007-2009 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:  Base class for Contact and RMU match observers
+ *
+*/
+
+
+#ifndef CESMRCLSMATCHOBSERVER_H
+#define CESMRCLSMATCHOBSERVER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <cntdef.h>
+
+#include <MPsResultsObserver.h>
+#include <CPsRequestHandler.h>
+#include <CPcsDefs.h>
+
+// FORWARD DECLARATIONS
+class CRepository;
+class CPSRequestHandler;
+class CESMRClsListsHandler;
+class CVPbkContactManager;
+
+// CLASS DECLARATION
+/**
+ * Base class for Contact and RMU match observers
+ *
+ *
+ */
+
+NONSHARABLE_CLASS( CESMRClsMatchObserver ) : public CBase, public MPsResultsObserver
+    {
+
+public:
+    static CESMRClsMatchObserver* NewL( CRepository& aCr,
+                CESMRClsListsHandler& aListsHandler,
+                CPSRequestHandler& aRequestHandler,
+                CVPbkContactManager* aContactManager );
+
+    static CESMRClsMatchObserver* NewLC( CRepository& aCr,
+                CESMRClsListsHandler& aListsHandler,
+                CPSRequestHandler& aRequestHandler,
+                CVPbkContactManager* aContactManager);
+
+    /**
+     * Destructor.
+     *
+     */
+     virtual ~CESMRClsMatchObserver();
+
+ public: // New methods
+
+   /**
+    * Sets new search text and either starts a search or buffers the search
+    * request.
+    *
+    * @param aText new search text.
+    */
+    virtual void SearchMatchesL( const TDesC& aText );
+
+   /**
+    * Sets given input mode to current matcher.
+    *
+    * @param aInputMode weather the predictive input mode is to be set on/off.
+    *               If EQwerty, multitap mode is set. If EItut predictive mode is set.
+    */
+    virtual void SetInputMode( TKeyboardModes aInputMode );
+
+ public: // From MPsResultsObserver
+
+     virtual void HandlePsResultsUpdate(RPointerArray<CPsClientData>& searchResults,
+                                                RPointerArray<CPsPattern>& searchSeqs);
+     virtual void HandlePsError(TInt aErrorCode);
+     virtual void CachingStatus(TCachingStatus& aStatus, TInt& aError);
+ protected:
+
+    /**
+     * C++ default constructor.
+     *
+     * @param aCR refenrence to aknfep cenrep
+     * @param aListsHandler reference to listshandler object.
+     * @param aContactListingService reference to contact listing service object who provides
+     *                                  matcher object for the MRU list
+     *
+     */
+     CESMRClsMatchObserver( CRepository& aCr,
+                                CESMRClsListsHandler& aListsHandler,
+                                CPSRequestHandler& aRequestHandler,
+                                CVPbkContactManager* aContactManager );
+
+    /**
+     * Returns wheather current input mode is predictive (EItut) or QWERTY.
+     *
+     * @return TKeyboardModes EItut if predictive. EQwerty if anything else.
+     */
+    virtual TKeyboardModes GetInputMode();
+
+
+    void ConstructL();
+
+ protected: // Functions from base classes
+
+ private:
+
+    /**
+     * Chech the status of PCS cache
+     * ETrue, if Cache is OK. Otherwise EFalse
+     */
+     TBool CheckCacheStatusL();
+
+     HBufC* CreateDisplayNameLC( const TDesC& aFirstname, const TDesC& aLastname, const TDesC& aEmailField );
+
+     void HandlePsResultsUpdateL(
+             RPointerArray<CPsClientData>& searchResults,
+             RPointerArray<CPsPattern>& searchSeqs );
+
+ protected: // data
+
+    // Pointer to Predictive contact search engine client
+    CPSRequestHandler* iRequestHandler; // owned
+
+    // Pointer to Predictive contact search query object
+    CPsQuery* iQuery;
+
+    // Refenrence to AknFepCenRep
+    CRepository&    iAknFepCenRep;
+
+    // Reference to lists handler
+    CESMRClsListsHandler& iListHandler;
+
+    // What input mode is currently in use. EItut or QWERTY
+    TKeyboardModes iInputMode;
+
+    CVPbkContactManager* iContactManager;
+
+    };
+
+
+#endif  // CESMRCLSMATCHOBSERVER_H
+
+// End of File