mulwidgets/muldatamodel/inc/mulmodelimpl.h
branchRCL_3
changeset 19 4ea6f81c838a
parent 17 514d98f21c43
child 20 0e9bb658ef58
--- 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
-