--- a/mulwidgets/muldatamodel/inc/mulmodelimpl.h Mon Jun 21 16:15:51 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +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: Implementation of model interface
- *
-*/
-
-
-#ifndef MULMODELIMPL_H
-#define MULMODELIMPL_H
-
-//Includes
-#include <mul/imulmodel.h>
-
-#include <osn/ustring.h>
-#include <memory>
-#include <vector>
-
-#include "mul/imulmodelaccessor.h"
-#include "imulmodelobserver.h"
-
-namespace osncore
- {
- class UString;
- }
-
-using namespace osncore;
-
-namespace Alf
- {
-
-//Forward Declaration
-
-class MulDataWindow;
-class MulPushMode;
-class MulPageDataWindow;
-
-/**
- * Implementation class for Data model.
- * @lib
- */
-class MulModelImpl : public IMulModel,
- public IMulModelAccessor
- {
-
-public:
-
- /**
- * C++ constructor.
- */
- OSN_IMPORT MulModelImpl();
-
- /**
- * Destructor.
- */
- OSN_IMPORT virtual ~MulModelImpl();
-
-public: //from IMulModel
-
- void Insert(int aIndex, int aCount,
- const MulDataPath& aPath = MulDataPath());
-
- void Remove( int aIndex, int aCount,
- const MulDataPath& aPath = MulDataPath() );
-
- void Update( int aIndex, int aCount,
- const MulDataPath& aPath = MulDataPath() );
-
- void Refresh( int aCount, const MulDataPath& aPath = MulDataPath() );
-
- void SetData( int aIndex, std::auto_ptr<MulVisualItem> aVisualItem,
- const MulDataPath& aPath = MulDataPath() );
-
- const MulVisualItem* Data( int aIndex,
- const MulDataPath& aPath = MulDataPath() ) const;
-
- int Count( const MulDataPath& aPath = MulDataPath() ) const;
-
- void SetDataProvider( const IMulModelProvider& aDataProvider );
-
- void SetTemplate( mulwidget::TLogicalTemplate aTemplateId );
-
- void SetTemplate( int aItemIndex, mulwidget::TLogicalTemplate aTemplateId,
- const MulDataPath& aPath = MulDataPath() );
-
- void SetDataWindow( int aSize );
-
- int DataWindow( ) const;
-
- void SetHighlight( int aItemIndex, const MulDataPath& aPath = MulDataPath() );
-
- int Highlight() ;
-
- int Highlight( MulDataPath& aPath );
-
- void SetMarkedIndices( MulWidgetDef::TMulWidgetMarkingType aType ,
- const std::vector<int>& aItemsIndex,
- const MulDataPath& aPath = MulDataPath() );
-
- void SetMarkedIndices(
- MulWidgetDef::TMulWidgetMarkingType aType = MulWidgetDef::EMulMarkAll );
-
- const std::vector<int>& MarkedIndices( const MulDataPath& aPath = MulDataPath() );
-
-public: //from IMulModelBase
-
- IMulModelAccessor* Accessor();
-
-public: //from IMulModelAccessor
-
- void SetHighlight( int aItemIndex );
-
- void ScrollWindow( int aItemIndex );
-
- int CurrentItemCount();
-
- void SetVisibleWindow( int aWindowSize, int aPageTopIndex = -1 );
-
- int RelativeIndex( int aAbsoluteIndex ) const;
-
- int TopWindowOffset() const;
-
- int BottomWindowOffset() const;
-
- int TopOffset() const;
-
- int BottomOffset() const;
-
- int RearTopOffset() const;
-
- int RearBottomOffset() const;
-
- bool IsItemMarked( int aIndex );
-
- const MulVisualItem& Item( int aAbsoluteIndex );
-
- int AbsoluteIndex( int aRelativeIndex );
-
- void SetMarkedIndex( MulWidgetDef::TMulWidgetMarkingType aType, int aIndex );
-
- bool IsLoopingOn();
-
- void AddModelObserver( IMulModelObserver* aObserver );
-
- void RemoveModelObserver( IMulModelObserver* aObserver );
-
- mulwidget::TLogicalTemplate Template();
-
-private: //from IAlfModel
-
- void addModelChangeObserver( IAlfModelChangeObserver& aObserver );
-
- void removeModelChangeObserver( IAlfModelChangeObserver& aObserver );
-
- void setData( IAlfVariantType* aData );
-
- void updateData(int aNumContainerIndices,int* aContainerIndices, IAlfVariantType* aData );
-
- void addData(int aNumContainerIndices,int* aContainerIndices, IAlfVariantType* aData );
-
- void removeData(int aNumContainerIndices,int* aContainerIndices );
-
- void executeOperations(AlfPtrVector<AlfModelOperation>& aOperationsArray);
-
- void executeOperation(AlfModelOperation* aOperation);
-
- void clearModel();
-
- IAlfVariantType* data() const;
-
-private: // from base class MAlfInterfaceBase
-
- /**
- * Getter for interfaces provided by the list model.
- *
- * @param aType A descriptor to identify the type of the queried interface.
- * @return The queried interface, or NULL if the interface is not
- * supported or available.
- */
- virtual IAlfInterfaceBase* makeInterface( const IfId& aType );
-
-public: //new method
-
- /**
- * When ever data window update data window, it will use this method to notify
- * Data model to update data window and update alf model
- */
- void DataWindowUpdated();
-
-private: //New method
-
- /**
- * Create Update event for selection change to notify Widget
- * for selection change. Widget need to use IsItemMarked API for checking
- * whether item is marked or unmarked.
- *
- * @param aAbsoluteIndex Absolute index
- */
- void CreateMarkingEvent(int aAbsoluteIndex);
-
- /**
- * Notify observer about state changed
- *
- * @param aState Highlight or making changed
- * @param aData Index of new highlight or Index of marked or unmarked item.
- * ( Item is marked or not should be checked using IMulModelAccessor interface)
- */
- void NotifyStateChange( IMulModelObserver::TMulChangedState aState, std::auto_ptr<IMulVariantType> aData);
-
- /**
- * Notify observer about data change event
- *
- * @param aState Event to notify
- * @param aStartIndex Start index of.
- * @param aCount No of item affected
- */
- void NotifyDataChange( IMulModelObserver::TMulChangedState aState, int aStartIndex, int aCount );
-
- /**
- * Notify observer about data change event
- *
- * @param aState Event to notify
- * @param aIndex Start index of.
- */
- void NotifyDataChange( IMulModelObserver::TMulChangedState aState, int aIndex );
-
- /**
- * Notify observer about template change
- *
- * @param aIndex index of item.
- * @param aTamplateId changed template
- */
- void NotifyTemplateChange( int aIndex, mulwidget::TLogicalTemplate aTamplateId );
-
-private: //data
-
- //std::auto_ptr<MulDataWindow> mDataWindow; //own
- std::auto_ptr<MulPageDataWindow> mDataWindow; //own
- std::auto_ptr<MulPushMode> mModelHelper; //own
- std::vector<IMulModelObserver*> mObserverArray;
- };
-
- } // namespace Alf
-
-#endif //MULMODELIMPL_H
-
-//End of file
-