menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h
branchv5backport
changeset 14 1abc632eb502
parent 13 6205fd287e8a
child 20 636d517f67e6
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h	Thu Mar 18 14:45:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,574 +0,0 @@
-/*
-* Copyright (c) 2007-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:
-*
-*/
-
-
-
-#ifndef C_HNMDMODEL_H
-#define C_HNMDMODEL_H
-
-#include <e32base.h>
-#include <xmlengelement.h>
-#include <liwgenericparam.h>
-#include <eikenv.h>
-#include "hnglobals.h"
-
-class CHnMdLocalization;
-class CHnSuiteModelContainer;
-class CHnFilter;
-class THnIdGenerator;
-class CHnMdSuite;
-class CHnMdModel;
-class CHnItemId;
-class MHnSuiteObserver;
-class CHnXmlModelProvider;
-class CHnMdModel;
-class MHnMdModelEventObserver;
-class CHnSuiteModel;
-class CHnRepositoryObserver;
-class MHnEditModeInterface;
-class CHnBitmapIdCache;
-
-/**
- * Type of the property.
- *
- * @ingroup group_hnmetadatamodel
- */
-enum TPropertyType
-    {
-    EUndefined = 0,
-    EGenre,
-    EVisualItemCount
-    };
-
-/**
- * Mode type.
- *
- * @ingroup group_hnmetadatamodel
- */
-enum TMdMode
-    {
-    EMdModeNormal = 0,
-    EMdModeEdit
-    };
-
-/**
- * Common pointers.
- *
- * @since S60 5.0
- * @ingroup group_hnmetadatamodel
- */
-struct THnMdCommonPointers
-    {
-    /**
-     * Not own - Localization.
-     */
-    CHnMdLocalization* iLocalization;
-
-    /**
-     * Not own - Query generator.
-     */
-    THnIdGenerator* iIdGenerator;
-
-    /**
-     * Not own - Suite model container.
-     */
-    CHnSuiteModelContainer* iContainer;
-
-    /**
-     * Not own - Meta data model.
-     */
-    CHnMdModel* iModel;
-
-    /**
-     * Not own - Xml model provider.
-     */
-    CHnXmlModelProvider* iXmlModelProvider;
-
-    /**
-     * Not own - Cache for bitmap and mask ids.
-     */
-    CHnBitmapIdCache* iBitmapIdCache;
-
-    /**
-     * Not own - Model event observer.
-     */
-    MHnMdModelEventObserver* iModelEventObserver;
-
-    /**
-     * Not own - Edit mode interface.
-     */
-    MHnEditModeInterface* iEditModeInterface;
-
-    /**
-     * Not own - Handler to file server session;
-     */
-    RFs& iFs;
-
-    /**
-     * Gets static pointer from TLS.
-     */
-    static THnMdCommonPointers* Static() {return (THnMdCommonPointers*)Dll::Tls(); }
-
-    /**
-     * Sets pointer to TLS.
-     *
-     * @param aCmnPtrs Pointer to set
-     */
-    static void SetStatic( THnMdCommonPointers* aCmnPtrs ) {  Dll::SetTls(aCmnPtrs); }
-
-  private:
-
-    // only model can create it
-    friend class CHnMdModel;
-
-    /**
-     * Standard C++ consturctor.
-     */
-    THnMdCommonPointers() : iFs( CEikonEnv::Static()->FsSession() )
-        {
-        iLocalization = NULL;
-        iIdGenerator = NULL;
-        iContainer = NULL;
-        iModel = NULL;
-        iXmlModelProvider = NULL;
-        iModelEventObserver = NULL;
-        iEditModeInterface = NULL;
-        }
-
-    /**
-     * Copy constructor declared as private to disallow copying.
-     *
-     * @param aCmnPtrs Pointer to set.
-     */
-    THnMdCommonPointers( const THnMdCommonPointers& aCmnPtrs ):iFs( aCmnPtrs.iFs ) { }
-
-    /**
-     * Assignment operator
-     */
-    THnMdCommonPointers& operator=( const THnMdCommonPointers& ){return *this;}
-    };
-
-/**
- *  Id generator.
- *
- *  @lib ?library
- *  @since S60 5.0
- *  @ingroup group_hnmetadatamodel
- */
-struct THnIdGenerator
-    {
-    /**
-     * Standatrd C++ constructor.
-     */
-    THnIdGenerator()
-        {
-        iId = 0;
-        }
-
-    /**
-     * Gets next id.
-     * @return Next id.
-     */
-    TInt GetNextId()
-        {
-        return iId++;
-        }
-    private:
-
-    /**
-     * Copy constructor declared as private to disallow copying.
-     * @param aGenerator Id generator;
-     */
-    THnIdGenerator(const THnIdGenerator& aGenerator);
-
-    /**
-     * Assignment operator.
-     */
-    THnIdGenerator& operator=(const THnIdGenerator&);
-
-    /**
-     * Id
-     */
-    TInt iId;
-    };
-
-/**
- * Model event observer.
- *
- * @since S60 5.0
- * @ingroup group_hnmetadatamodel
- */
-class MHnMdModelEventObserver
-    {
-    public:
-
-     /**
-     * Handles modlde event.
-     *
-     * @since S60 5.0
-     * @param aEventName Event name.
-     * @param aParams Parameters.
-     */
-     virtual TInt HandleModelEventL( const TDesC& aEventName,
-             CLiwGenericParamList& aParams ) = 0;
-    };
-
-/**
- * Meta data model
- *
- * This is the main class of the Meta Data Model component.
- *
- * This class is the entry point for building the meta data model
- * and for evaluation.
- *
- * @since S60 5.0
- * @ingroup group_hnmetadatamodel
- */
-NONSHARABLE_CLASS( CHnMdModel ) : public CBase
-    {
-public:
-    enum TForegroundGainTriggeringEvent
-        {
-        EWhenAnySuiteIsEvaluated,
-        EWhenCurrentTopSuiteIsEvaluated,
-        ENever
-        };
-public:
-
-    /**
-     * Two-phase constructor.
-     *
-     * @since S60 5.0
-     * @param aModelObserver Model observer.
-     * @param aSuiteModelContainer Suite model container.
-     * @return Fully constructed object.
-     */
-    IMPORT_C static CHnMdModel* NewL( MHnMdModelEventObserver* aModelObserver,
-            CHnSuiteModelContainer * aSuiteModelContainer );
-
-    /**
-     * Two-phase constructor.
-     *
-     * @since S60 5.0
-     * @param aModelObserver Model observer.
-     * @param aSuiteModelContainer Suite model container.
-     * @return Fully constructed object.
-     */
-    IMPORT_C static CHnMdModel* NewLC( MHnMdModelEventObserver* aModelObserver,
-            CHnSuiteModelContainer * aSuiteModelContainer );
-
-    /**
-     * Standard C++ virtual destructor.
-     *
-     * @since S60 5.0
-     */
-    virtual ~CHnMdModel();
-
-    /**
-     * Evaluates the model. Takes filter as a parameter.
-     *
-     * @since S60 5.0
-     * @param aFilter Filter.
-     */
-    IMPORT_C void EvaluateL( CHnFilter& aFilter );
-
-    /**
-     * Manages evaluation lock.
-     *
-     * @param aLock Locks evaluation if set to ETrue.
-     * @param aEvaluate Runs evaluation if aEvaluate == ETrue.
-     */
-    IMPORT_C void SetEvaluationLockL( TBool aLock, TBool aEvaluate = ETrue );
-
-    /**
-     * Evaluates the model.
-     *
-     * @since S60 5.0
-     */
-    IMPORT_C void EvaluateL();
-
-    /**
-     * Switches between edit mode and normal mode
-     *
-     * @since S60 5.0
-     * @param aMode Suite model container.
-     */
-    IMPORT_C void SetModeL( TMdMode aMode );
-
-
-    /**
-     * Gets suite's meta data model.
-     *
-     * @since S60 5.0
-     * @return Suite meta data model.
-     */
-    IMPORT_C CHnMdSuite* GetLastSuite();
-
-    /**
-     * Gets suite's meta data model.
-     *
-     * @since S60 5.0
-     * @param aPosition Position of the suite in the stack.
-     * @return Suite meta data model.
-     */
-    CHnMdSuite* GetSuite( TInt aPosition );
-
-    /**
-     * Gets suite's parameters..
-     *
-     * @since S60 5.0
-     * @param aPosition Position of the suite in the stack,
-     *        from which gets parameters.
-     * @return Suite meta data model.
-     */
-    IMPORT_C CLiwGenericParamList& GetSuiteParameters( TInt aPosition );
-
-
-    /**
-     * Handles back event.
-     *
-     * @since S60 v3.2
-     * @param aMulContainer Suite model container.
-     * @param aGenre Name of the suite.
-     * @param aIterations Number of iterations.
-     * @return Error code.
-     */
-    IMPORT_C TInt HandleBackEventL( CHnSuiteModelContainer* aMulContainer,
-            const TDesC& aGenre, TInt aIterations = KModelCountForRoot );
-
-    /**
-     * Handles sis installation event.
-     *
-     * @since S60 v3.2
-     * @param aMulContainer Suite model container.
-     */
-    IMPORT_C void HandleSisInstallationEventL(
-            CHnSuiteModelContainer* aMulContainer );
-
-    /**
-     * Loads a suite from xml data.
-     *
-     * @since S60 v5.0
-     * @param aGenre Name of the suite.
-     * @param aSuiteParams Suite parameters.
-     * @return Error code.
-     */
-    IMPORT_C TInt LoadSuiteL( const TDesC& aGenre, CLiwGenericParamList* aSuiteParams = NULL );
-
-    /**
-     * Check if suite model exists.
-     *
-     * @since S60 5.0
-     * @param aSuiteModel Suite model name.
-     * @return ETrue if suite model exists, otherwise EFalse.
-     */
-    IMPORT_C TBool SuiteModelExistsL( const TDesC8& aSuiteModel );
-
-    /**
-     * Gets suite's meta data model.
-     *
-     * @since S60 5.0
-     * @param aUri Current ui.
-     * @return Suite meta data model.
-     */
-    IMPORT_C void GetCurrentUriL( TDes& aUri );
-
-    /**
-     * Deletes last loaded suite model from data model.
-     *
-     * @since S60 5.0
-     */
-    IMPORT_C void DeleteLastSuite();
-
-
-    /**
-     * Realeses localization files.
-     *
-     * @since S60 5.0
-     */
-    IMPORT_C void ReleaseLocalization();
-
-    /**
-     * Reloads localization.
-     *
-     * @since S60 5.0
-     */
-    IMPORT_C void ReloadLocalizationL();
-
-    /**
-     * Informs metadatamodel to ignore evaluations or
-     * to performing evaluations, according to the
-     * given parameter.
-     *
-     * @since S60 5.0
-     * @param aIgnore Metadatamodel ignores evaluations when set to ETrue.
-     */
-    IMPORT_C void IgnoreEvaluations( TBool aIgnore );
-
-    /**
-     * Request that menu goes to foreground when evaluation completes.
-     *
-     * Default behavior is not to go to foreground when evaluation
-     * completes. A change of this behavior requested with this method is
-     * only effective until the menu is sent to foreground (once). Then the
-     * default behavior is assumed again.
-     * Subsequent calls override previous changes.
-     *
-     * @since S60 5.0
-     * @param aWhen Determines when the foreground should be gained.
-     *              Possible values are defined in the
-     *              TForegroundGainTriggeringEvent enum. The value ENever
-     *              simply means not to bring menu to foreground.
-     */
-    IMPORT_C void QueueForeground( TForegroundGainTriggeringEvent aWhen );
-
-    /**
-     * Is there a queue for foreground gain.
-     *
-     * @since S60 5.0
-     * @return should foreground be gained after evaluation.
-     */
-    IMPORT_C TBool IsForegroundQueued() const;
-
-    /**
-     * Notifies this metadata model that suite evaluation has completed.
-     *
-     * @param aJustEvaluatedSuite pointer to the suite whose evaluation
-     *                            has completed
-     */
-    void SuiteModelReadyToShowL( CHnSuiteModel* aJustEvaluatedSuite );
-
-    /**
-     * Causes all of the loades suites except for the suite at the bottom
-     * of the stack to be reloaded from their corresponding xml file
-     * definitions.
-     *
-     * @since S60 5.0
-     * @param aIgnore aModelContainer Model container object.
-     */
-    void ReloadStackSuitesL( CHnSuiteModelContainer* aModelContainer );
-
-    /**
-     * Counts number of loaded suites.
-     *
-     * @since S60 5.0
-     * @return Number of loaded suites
-     */
-    TInt LoadedSuitesCount();
-
-    /**
-     * Evaluates the suite model on top of the stack.
-     *
-     * @since S60 5.0
-     */
-    void EvaluateTopSuiteL();
-
-private:
-
-    /**
-     * Standard C++ constructor.
-     *
-     * @since S60 5.0
-     */
-    CHnMdModel( );
-
-    /**
-     * Standard symbian 2nd pahse constructor.
-     *
-     * @since S60 5.0
-     * @param aModelObserver Model observer.
-     * @param aSuiteModelContainer Model container.
-     */
-    void ConstructL( MHnMdModelEventObserver* aModelObserver,
-            CHnSuiteModelContainer * aSuiteModelContainer );
-
-private: // data
-
-    /**
-     * Id generator.
-     */
-    THnIdGenerator iIdGenerator;
-
-    /**
-     * Own - Localization.
-     */
-    CHnMdLocalization* iLocalization;
-
-    /**
-     * Own - Xml model provider.
-     */
-    CHnXmlModelProvider* iXmlModelProvider;
-
-    /**
-     * Own - bitmap and mask ids cache.
-     */
-    CHnBitmapIdCache* iBitmapIdCache;
-
-    /**
-     * Not Own - Event observer.
-     */
-    MHnMdModelEventObserver* iModelEventObserver;
-
-    /**
-     * Stores pointers to common objects in the system
-     * This object is shared throut the whole system.
-     */
-    THnMdCommonPointers iCmnPtrs;
-
-    /**
-     * Stores information about mode.
-     */
-    TMdMode iMode;
-
-    /**
-     * Loaded Suites stack.
-     * Object and content owned.
-     */
-    RPointerArray<CHnMdSuite> iLoadedSuites;
-
-    /**
-     * Repository widget type observer.
-     */
-    CHnRepositoryObserver* iRepositoryWidgetTypeObserver;
-
-    /**
-     * Repository folder change observer.
-     */
-    CHnRepositoryObserver* iRepositoryShowFolderObserver;
-
-    /**
-     * When set, forces metadatamodel to skip evaluations.
-     */
-    TBool iIgnoreEvaluations;
-
-    /**
-     * Queues foreground gain action.
-     */
-    TBool iForegroundQueued;
-
-    /**
-     * Not own - pointer to the suite model that must be evaluated
-     * before matrix menu can be brought to foreground.
-     *
-     * When NULL, then any suite evaluation brings menu to foreground.
-     * It is only meaningful when iForegroundQueued is ETrue.
-     */
-    CHnSuiteModel* iForegroundTriggeringSuite;
-
-    };
-
-#endif // C_HNMDMODEL_H