diff -r 1fc85118c3ae -r 870918037e16 landmarksui/uicontrols/inc/CLmkAppLmSelectorImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/landmarksui/uicontrols/inc/CLmkAppLmSelectorImpl.h Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,241 @@ +/* +* Copyright (c) 2002-2006 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: LandmarksUi Content File - +* Application's (view-based) landmark selector impl class +* +*/ + + + + + + + +#ifndef CLMKAPPLMSELECTORIMPL_H +#define CLMKAPPLMSELECTORIMPL_H + +// INCLUDES +#include "CLmkAppLmItemSelectorImpl.h" +#include "TLmkDeletionHelper.h" +#include +#include "CLmkAppSelectorImplBase.h" +#include "mlmkdbsearchutilsobserver.h" +#include "clmkcallcmd.h" + +// FORWARD DECLARATIONS +class CPosLmCategoryCriteria; +class MLmkListMemento; +class CLmkDbSearchUtils; +class CLmkGoToURLCmd; + +// CLASS DECLARATION + +/** +* Application's (view-based) landmark selector impl class. +* +*/ +class CLmkAppLmSelectorImpl : public CLmkAppLmItemSelectorImpl, public MLmkDbSearchUtilsObserver + { + public: // Constructors and destructor + /** + * Two-phased constructor. + * @param aDb database reference + * @param aSender landmark sender reference + * @param aFindBox tells whether selector contains find box or not + * @return newly instantiated object + */ + IMPORT_C static CLmkAppLmSelectorImpl* NewL( + CPosLandmarkDatabase& aDb, + CLmkSender& aSender, + TBool aFindBox ); + + /** + * Two-phased constructor. + * Creates lm selector based on memento of category view's + * current selection. + * @param aDb database reference + * @param aCategoryMemento category view state + * @param aSender landmark sender reference + * @param aFindBox tells whether selector contains find box or not + * @return newly instantiated object + */ + IMPORT_C static CLmkAppLmSelectorImpl* NewL( + CPosLandmarkDatabase& aDb, + const MLmkListMemento& aCategoryMemento, + CLmkSender& aSender, + TBool aFindBox ); + + /** + * Destructor. + */ + ~CLmkAppLmSelectorImpl(); + /** + * @return ETrue if opened category is 'Uncategorized' else EFalse. + */ + IMPORT_C TBool IsCriteriaUnCategorizedCat(); + + public: // New functions + /** + * Return category name, used when viewing category contents. + * If selector was not created with valid category memento parameter + * this method leaves with KErrNotSupported. + * @return category name + */ + IMPORT_C TPtrC CategoryNameL(); + + public: // From CLmkSelectorImpl + void SetupListProviderL(); + const CLmkListProviderBase& ListProvider() const; + public: // From MLmkDbSearchUtilsObserver + void HandleCategorySearchNotifyL(RArray aArray); + void HandleLmkSearchNotifyL(); + + public: //from MLmkMapAndNavigationObserver + void HandleLmCreated(TPosLmItemId aNewLmkItemId); + + public: //from MLmkAOOperationObserver + void HandleOperationL( TOperationTypes aType, + TReal32 aProgress, + TInt aStatus ); + + public: // From MEikCommandObserver + void ProcessCommandL( TInt aCommandId ); + + protected: // From CLmkAppLmItemSelectorImpl + void ChangeIconL( TPosLmItemId aId, TInt aIconIndex, TInt aMaskIndex); + void ChangeIconsL( RArray& aIdArray, TInt aIconIndex, TInt aMaskIndex); + void InitialLandmarkL( CPosLandmark* aLandmark ); + TBool HandleEventListReadyL(); + + public: // From CLmkAppLmItemSelectorImpl + /** + * Following 3 methods are Wrapper methods for caller's menu and interest + * resources to AIW menu service handler + */ + void AttachToAIWMenuL( TInt aMenuResourceId, + TInt aInterestResourceId); + + void InitializeMenuPaneL( CEikMenuPane& aMenuPane, + TInt aMenuResourceId); + + void ExecuteAIWCallCmdL( TInt aCommandId ); + void AttachInterestL ( TInt aInterestResourceId ); + //from CLmkAppSelectorImplBase + TInt ServiceCmdByMenuCmd( TInt aMenuCmd ); + + /** + * Checks if atleast one landmark with this field exist in database + */ + + TBool IsLmWithThisFieldExistL( TLmkAppCmdId aFieldId); + + virtual TInt GetSelectedLandmarksL(RPointerArray &aArray); + + virtual TBool IsLandmarkDataEmptyL(CPosLandmark* aLandmark); + + /** + * Removes opened category from the selected landmarks. + */ + IMPORT_C void RemoveLandmarksFromCategoryL(); + + /** + * From CLmkListProviderBase + * Asynchronous starting of Landmarks Search to prepare the list. + */ + IMPORT_C void StartSearchingLandmarksL(const TDesC& aSearchPattern, + TBool aSearchOnlyInPreviousMatches); + + protected: // Constructors and destructor + /** + * C++ default constructor. + * @param aDb database reference + * @param aFindBox + * @return newly object + */ + CLmkAppLmSelectorImpl( CPosLandmarkDatabase& aDb, + CLmkSender& aSender, + TBool aFindBox ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * By default Symbian 2nd phase constructor is private. + * @param aCategoryMemento + */ + void ConstructL( const MLmkListMemento& aCategoryMemento ); + + private: // New functions + /** + * Edit landmark + */ + void EditLandmarkCmdL(TLmkEditorMode aEditMode); + + /** + * Delete landmark(s) + */ + void DeleteLandmarksCmdL(); + + /** + * Add landmark(s) to category(s) + */ + void AddToCatCmdL(); + + /** + * Gets the position field value for a selected Landmark + */ + TInt GetPositionFieldForSelectedLmL( + TPositionFieldId aFieldId, + HBufC& aFieldValue); + /** + * Closes wait note + */ + void CloseWaitNoteL(); + + + protected: // Data + /// helps updating the list after deletion + TLmkDeletionHelper iDeletionHelper; + + ///Own: + CPosLmCategoryCriteria* iCriteria; + + ///Own: + HBufC* iCategoryName; + + ///Own: pointer to db serach utils + CLmkDbSearchUtils* iDbSearchUtils; + + /// Own: Wait dialog displayed while searching landmarks + CAknWaitDialog* iWaitNote; + private: + // own + CLmkCallCmd *iLmkCallCmd; + // own + TInt iMarkedCatCountAdded; + // own + CLmkGoToURLCmd* iLmkGoToURLCmd; + // own + CLmkAOOperation* iOperation; + // own + TInt iCatRemoveFlag; + // to check dlg open or not + TBool iIsDlgOpen; + }; + +#endif // CLMKAPPLMSELECTORIMPL_H + +// End of File