mulwidgets/alfscrollbarwidget/src/alfscrollbarmodel.cpp
changeset 17 3eca7e70b1b8
parent 3 4526337fb576
--- a/mulwidgets/alfscrollbarwidget/src/alfscrollbarmodel.cpp	Tue Feb 02 00:28:09 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,554 +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:  Model implementation with utilities for scrollbar widget.
-*
-*/
-//User Includes
-#include "alfscrollbarmodel.h"
-#include "alfscrollbarwidget.h"
-
-//Widget includes
-#include <alf/ialfscrollbardefaultbaseelement.h>
-#include "ialfscrollbarbaseelementinternal.h"
-#include "alfscrollbardefaultbaseelement.h"
-
-#include <alf/ialfscrollbarwidget.h>
-#include <alf/alfmodel.h>
-#include <alf/alfexception.h>
-
-namespace Alf
-    {
-    	
-/*
- * To store data required in the model class
- */
-struct ScrollbarModelDataImpl
-    {
-    int mTotalLength;
-    int mViewLength;
-    int mViewStartPosition;
-    };
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-//  C++ default constructor.
-// ---------------------------------------------------------------------------
-//
-AlfScrollBarModel::AlfScrollBarModel(IAlfVariantType* aDataSource):
-    mModel ( NULL )
-    {
-    construct ( aDataSource );
-    
-     // Create an instance of model specific data
-    mModelData = new (EMM) ScrollbarModelDataImpl();
-    
-    // Initialise model data with default values
-    mModelData->mTotalLength       = 0;
-    mModelData->mViewLength        = 0;
-    mModelData->mViewStartPosition = 0;
-    
-    mScrollWidget = NULL;
-    }//End of AlfScrollBarModel function.
-
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-AlfScrollBarModel::~AlfScrollBarModel()
-    {
-    if(mModelData)
-        delete mModelData;
-        
-    delete mModel;
-    }//End of ~AlfScrollBarModel function.
-
-
-// ---------------------------------------------------------------------------
-//  Second Phase Constructor.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::construct ( IAlfVariantType* /*aDataSource */)
-    {
-
-    }//End of construct function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Add a new observer to be notified of any changes in the model.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::addModelChangeObserver(
-    IAlfModelChangeObserver& /*aObserver*/)
-    {
-    
-    }//End of addModelChangeObserver function.
-
-    
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Add a new observer to be notified of any changes in the model.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::removeModelChangeObserver(
-    IAlfModelChangeObserver& /*aObserver*/ )
-    {
-    
-    }//End of function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Api to change the model completely at one short.
-// ---------------------------------------------------------------------------
-//    
-void AlfScrollBarModel::setData ( IAlfVariantType* /*aData*/ )
-    {
-        
-    }//End of removeModelChangeObserver function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Change a given  of data fields in the model.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::updateData(
-    TInt /*aNumContainerIndices*/,
-    TInt* /*aContainerIndices*/,
-    IAlfVariantType* /*aData*/)
-    {
-    ALF_THROW(AlfException,EInvalidArgument,"updateData")        
-    }//End of updateData function.
-
-    
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Add a number of data fields in the model data.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::addData(
-    TInt /*aNumContainerIndices*/,
-    TInt* /*aContainerIndices*/,
-    IAlfVariantType* /*aData*/)
-    {
-    ALF_THROW(AlfException,EInvalidArgument,"addData")        
-    }//End of addData function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Remove a  number of data fields in the model data.
-// ---------------------------------------------------------------------------
-//  
-void AlfScrollBarModel::removeData(
-    TInt /*aNumContainerIndices*/,
-    TInt* /*aContainerIndices*/ )
-    {
-    ALF_THROW(AlfException,EInvalidArgument,"removeData")        
-    }//End of removeData function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Api for executing batch operations.
-// ---------------------------------------------------------------------------
-//  
-void AlfScrollBarModel::executeOperations(
-    AlfPtrVector<AlfModelOperation>& /*aOperationsArray*/)
-    {
-    ALF_THROW(AlfException,EInvalidArgument,"executeOperations")    
-    }//End of executeOperations function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Api for executing one operation at a Time.
-// ---------------------------------------------------------------------------
-//  
-void AlfScrollBarModel::executeOperation(AlfModelOperation* /*aOperation*/)
-    {
-    ALF_THROW(AlfException,EInvalidArgument,"executeOperation")    
-    }//End of executeOperation function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Clears the Model.
-// ---------------------------------------------------------------------------
-//  
-void AlfScrollBarModel::clearModel()
-    {
-    
-    }//End of clearModel function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfModel.
-// Get the root data object of this model.
-// ---------------------------------------------------------------------------
-//  
-IAlfVariantType* AlfScrollBarModel::data() const
-    {
-    return NULL;
-    }//End of data function.
-
-
-// ---------------------------------------------------------------------------
-// From class IAlfInterfaceBase.
-// Getter for interfaces provided by the scrollbar model.
-// ---------------------------------------------------------------------------
-IAlfInterfaceBase* AlfScrollBarModel::makeInterface(const IfId& aType)
-    {
-    IAlfInterfaceBase* ret ( 0 );
-    UString param ( aType.mImplementationId );
-
-    if ( param == IAlfScrollBarModel::type().mImplementationId )
-        {
-        ret = static_cast<IAlfScrollBarModel*>(this);
-        }
-    else if ( param == IAlfModel::type().mImplementationId )
-        {
-        ret = static_cast<IAlfModel*>(this);
-        }
-    else
-        {
-        //do nothing
-        }
-
-    return ret;
-    }//End of makeInterface function.
-
-// ---------------------------------------------------------------------------
-// From class IAlfScrollBarModel.
-// Create the default data structure for a ScrollBar widget.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::initializeData(
-    int aTotalLength,
-    int aViewLengthInSteps,
-    int aViewStartPosition)
-    {
-
-    validateAllData(aTotalLength, 
-        aViewLengthInSteps,
-        aViewStartPosition);
-    
-    // Initialise model with the data provided
-    mModelData->mTotalLength       = aTotalLength;
-    mModelData->mViewLength        = aViewLengthInSteps;
-    mModelData->mViewStartPosition = aViewStartPosition;
-   
-    changeData(
-        mModelData->mTotalLength,
-        mModelData->mViewLength,
-        mModelData->mViewStartPosition);
-
-    }//End of function.
-
-// ---------------------------------------------------------------------------
-// Set Total Length .
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::setTotalLength(int aTotalLength)
-    {
-    int viewLength = getViewLength();
-    int viewStartPos = getViewStartPosition();
-       
-    if (validateAllData(aTotalLength, 
-            viewLength, 
-            viewStartPos))
-        {
-        updateScrollBarModel(aTotalLength, -1, -1 );
-        }
-    else
-        {
-        updateScrollBarModel(aTotalLength, viewLength, viewStartPos);
-        }
-    }//End of setTotalLength function.
-
-// ---------------------------------------------------------------------------
-// Set ViewLength.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::setViewLength(int aViewLengthInSteps)
-    {
-    validateViewLength(aViewLengthInSteps);
-    updateScrollBarModel ( -1, aViewLengthInSteps, -1);
-    
-    }//End of setViewLength function.
-
-
-// ---------------------------------------------------------------------------
-// Set Thumb Position.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::setViewStartPosition ( int aViewStartPosition )
-    {
-    validateViewStartPos(aViewStartPosition);
-    updateScrollBarModel (-1, -1, aViewStartPosition);
-    }//End of setViewStartPosition function.
-
-// ---------------------------------------------------------------------------
-// Changes all the data of model with new values.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::changeData(
-    int aTotalLength,
-    int aViewLength,
-    int aViewStartPosition )
-    {
-    
-    validateAllData(aTotalLength,
-        aViewLength,
-        aViewStartPosition);
-          
-     if(getViewStartPosition() == aViewStartPosition && 
-        getTotalLength() == aTotalLength && 
-        getViewLength() == aViewLength)
-        { 
-        // nothing is changed
-        return ;
-        }
-    else
-	    {
-	    updateScrollBarModel(
-	            aTotalLength,
-	            aViewLength,
-	            aViewStartPosition);
-	    }
-            
-  
-    }//End of changeData function.
-
-// ---------------------------------------------------------------------------
-// getTotalLength.
-// ---------------------------------------------------------------------------
-//
-int AlfScrollBarModel::getTotalLength() const
-    {
-    return mModelData->mTotalLength;
-    }//End of getTotalLength function.
-
-
-// ---------------------------------------------------------------------------
-// Returns ViewLength.
-// ---------------------------------------------------------------------------
-//
-int AlfScrollBarModel::getViewLength() const
-    {
-    
-    return mModelData->mViewLength;
-    }//End of getViewLength function.
-
-    
-// ---------------------------------------------------------------------------
-// Returns ViewStartPosition.
-// ---------------------------------------------------------------------------
-//
-int AlfScrollBarModel::getViewStartPosition() const
-    {
-    return mModelData->mViewStartPosition;
-    }//End of getViewStartPosition function.
-
-// ---------------------------------------------------------------------------
-// Updates the ScrollBar visualization
-// according to the model data.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::updateScrollBarVisualization()
-    {
-     //updateVisualization with new model
-     IAlfElement* element = (mScrollWidget)->control()->findElement("BaseElement");
-     IAlfScrollBarDefaultBaseElement* defaultLCTBaseElement = static_cast<IAlfScrollBarDefaultBaseElement*> (
-    		 element->makeInterface (IAlfScrollBarDefaultBaseElement::type() ) );
-     AlfScrollBarDefaultBaseElement* baseElement = (AlfScrollBarDefaultBaseElement*)defaultLCTBaseElement;
-     
-     baseElement->updateVisualization();
-    }
-
-// ---------------------------------------------------------------------------
-// Updates the ScrollBar model according to the parameters.
-// ---------------------------------------------------------------------------
-//
-void AlfScrollBarModel::updateScrollBarModel(
-    int aTotalLength,
-    int aViewLength,
-    int aViewStartPosition)
-    {
-    //change only if the parameters are non negative . 
-    
-    if(aTotalLength!=-1)
-        {
-        mModelData->mTotalLength = aTotalLength;
-        }
-    else
-        {
-        // Do Nothing
-        }
-    
-    if(aViewLength!=-1)
-        {
-        mModelData->mViewLength =  aViewLength; 
-        }
-    else
-        {
-        // Do Nothing 
-        }
-        
-    
-    if(aViewStartPosition!=-1)
-        {
-        mModelData->mViewStartPosition = aViewStartPosition;  
-        }
-    else
-        {
-        // Do Nothing  
-        }
- 
-    //updateVisualization with new model    
-    updateScrollBarVisualization();
-    }//End of updateScrollBarModel function.
-
-// ---------------------------------------------------------------------------
-// validateViewLength
-// ---------------------------------------------------------------------------
-//
-bool AlfScrollBarModel::validateViewLength(int & aViewLength)
-    {
-    bool ret = true;
-    
-    if (aViewLength <= 0)
-        {
-        // Minimum view length
-        aViewLength = 1;
-        ret = false;
-        }
-    else
-        {
-        int totalLength = getTotalLength();
-        if (aViewLength > totalLength)
-            {
-            aViewLength = totalLength;
-            ret = false;
-            }
-        else
-            {
-            // do nothing
-            }
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// validateViewStartPos
-// ---------------------------------------------------------------------------
-//
-bool AlfScrollBarModel::validateViewStartPos(int & aViewStartPos)
-    {
-    bool ret = true;
-    
-    if (aViewStartPos < 0)
-        {
-        aViewStartPos = 0;
-        ret = false;
-        }
-    else
-        {
-        int totalLength = getTotalLength();
-        int viewLength = getViewLength();     
-        if (aViewStartPos > (totalLength-viewLength))
-            {
-            // Maximum value
-            aViewStartPos = totalLength-viewLength;            
-            ret = false;
-            }
-        else
-            {
-            // do nothing
-            }        
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// validateAllData
-// ---------------------------------------------------------------------------
-//    
-bool AlfScrollBarModel::validateAllData(int & aTotalLength, 
-        int & aViewLength, 
-        int & aViewStartPos)
-    {
-     bool ret = true;
-     if (aTotalLength <= 0)
-        {
-        aTotalLength = 1;
-        ret = false;
-        }
-     else
-        {
-        // do nothing
-        }
-     
-     // validate view length   
-     if (aViewLength <= 0)
-        {
-        aViewLength = 1;
-        ret = false;
-        }
-     else if (aViewLength > aTotalLength)
-        {
-        // Setting maximum possible value of View Length
-        aViewLength = aTotalLength;
-        ret = false;
-        }
-     else
-        {
-        // do nothing
-        }
-     
-     // validate view start pos
-     if (aViewStartPos < 0)
-        {
-        aViewStartPos = 0;
-        ret = false;
-        }
-     else if (aViewStartPos > (aTotalLength-aViewLength) )
-        {
-        // Setting maximum possible value of View Length
-        aViewStartPos = aTotalLength-aViewLength;        
-        ret = false;
-        }
-     else
-        {
-        // do nothing
-        }
-        
-     // No need to validate aFocusPos for now
-    return ret;
-    }
-    
-// ---------------------------------------------------------------------------
-// StoreWidget
-// ---------------------------------------------------------------------------
-//    
-void AlfScrollBarModel::storeWidget(AlfScrollBarWidget* aWidget)
-    {
-    mScrollWidget = aWidget;
-    }
-}//Namespace Alf
-