uiservicetab/vimpstui/src/cvimpstuisearchfield.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 10:12:18 +0200
changeset 0 5e5d6b214f4f
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* Copyright (c) 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:  search field implemetation
*
*/


#include "cvimpstuisearchfield.h"

// System includes
#include <eikedwin.h>
#include <eikcapc.h>
#include <eikedwin.h>
#include <AknUtils.h>

// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::CVIMPSTUiSearchField
// -----------------------------------------------------------------------------
//
CVIMPSTUiSearchField::CVIMPSTUiSearchField( TVIMPSTSearchDataFieldType aFieldDataType, 
											TIMPSTSearchFieldTypes aFieldType, 
											TVIMPSTEnums::TVIMPSTSearchKey aSearchKey 
											/* =EVIMPSTSearchKeyUknown*/)
	:iFieldDataType( aFieldDataType ),
	iFieldType(aFieldType ),
	iSearchKey( aSearchKey )
    {
    iCaptionedCtrl  = NULL;
    iControl = NULL;
    }
   
// --------------------------------------------------------------------------
// CVIMPSTUiSearchFieldArray::NewL
// --------------------------------------------------------------------------
//
CVIMPSTUiSearchField* CVIMPSTUiSearchField::NewL( const TDesC& aLebal, 
							TVIMPSTSearchDataFieldType aFieldDataType,
	 						TIMPSTSearchFieldTypes aFieldType ,
	 						TVIMPSTEnums::TVIMPSTSearchKey aSearchKey )
    {
    CVIMPSTUiSearchField* self = 
        new ( ELeave ) CVIMPSTUiSearchField( aFieldDataType , aFieldType, aSearchKey );
    CleanupStack::PushL( self );
    self->ConstructL(aLebal);
    CleanupStack::Pop( self );
    return self;
    } 
// --------------------------------------------------------------------------
// CVIMPSTUiSearchFieldArray::ConstructL
// --------------------------------------------------------------------------
//
void CVIMPSTUiSearchField::ConstructL( const TDesC& aLabel )   
	{
	iFieldLabel = aLabel.AllocL();
	}
// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::~CVIMPSTUiSearchField
// -----------------------------------------------------------------------------
//
CVIMPSTUiSearchField::~CVIMPSTUiSearchField()
    {
    delete iFieldLabel;
    delete iFieldData;
    }

// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::ControlId
// -----------------------------------------------------------------------------
//
TInt CVIMPSTUiSearchField::ControlId() const
    {
    return ( TInt ) this;
    }

// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::FieldDataType
// -----------------------------------------------------------------------------
//
TVIMPSTSearchDataFieldType CVIMPSTUiSearchField::FieldDataType() const
    {
    return iFieldDataType;
    }

// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::FieldLabel
// -----------------------------------------------------------------------------
//
TPtrC CVIMPSTUiSearchField::FieldLabel() 
    {
    if( iFieldLabel )
	    {
	     return iFieldLabel->Des();	
	    }
    return KNullDesC();
    }
  
// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::FieldData
// -----------------------------------------------------------------------------
//
TPtrC CVIMPSTUiSearchField::FieldData() 
    {
    if( iFieldData )
		{
		return iFieldData->Des();	
		}
    return KNullDesC();
    }

// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::ResetFieldData
// -----------------------------------------------------------------------------
//
void CVIMPSTUiSearchField::ResetFieldData() 
    {
    if( iFieldData )
		{
		delete iFieldData;
		iFieldData = NULL;	
		}
    }

// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::GetSearchKey
// -----------------------------------------------------------------------------
//
TVIMPSTEnums::TVIMPSTSearchKey CVIMPSTUiSearchField::GetSearchKey() const
    {
    return iSearchKey;
    }
 // --------------------------------------------------------------------------
// CVIMPSTUiSearchField::IsBasicField
// --------------------------------------------------------------------------
//
TBool CVIMPSTUiSearchField::IsBasicField() const
    {
    return ( iFieldType == EIMBasicSearch );
    } 
// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::SetFieldDataL
// -----------------------------------------------------------------------------
//  
void CVIMPSTUiSearchField::SetFieldDataL( const TDesC& aFieldData )
    {
    if( iFieldData )
	    {
	    delete iFieldData;
	    iFieldData = NULL;	
	    }
	iFieldData = aFieldData.AllocL();
    }

// --------------------------------------------------------------------------
// CVIMPSTUiSearchField::SetControl
// --------------------------------------------------------------------------
//
void CVIMPSTUiSearchField::SetControl(CEikEdwin* aControl, CEikCaptionedControl* aCaptionedCtrl ) 
    {
    iControl = NULL;
    iControl = aControl ;
    
    iCaptionedCtrl = NULL;
    iCaptionedCtrl = aCaptionedCtrl;
    }
 // --------------------------------------------------------------------------
// CVIMPSTUiSearchField::Control
// --------------------------------------------------------------------------
//
CEikEdwin* CVIMPSTUiSearchField::Control() const
    {
    return iControl;
    }
// --------------------------------------------------------------------------
// CVIMPSTUiSearchField::ActivateL
// --------------------------------------------------------------------------
//
void CVIMPSTUiSearchField::ActivateL() 
    {
    if( !iCaptionedCtrl )
	    {
	    User::Leave( KErrNotReady );	
	    }
    iCaptionedCtrl->ActivateL();
    }
// -----------------------------------------------------------------------------
// CVIMPSTUiSearchField::ControlTextL
// -----------------------------------------------------------------------------
//  
HBufC* CVIMPSTUiSearchField::ControlTextL() const
    {
    HBufC* textBuf = NULL;

   	switch( iFieldDataType )
			{

			case EVIMPSTEdwinNumber :
				{
				// number field
				break;
				}
			case EVIMPSTEdwinEmail :
				{
				// email field
				break;
				}
				
			case EVIMPSTEdwinMobile:
				{
				// mobile field
				break;
				}
			case EVIMPSTEdwinText :
				{
    			if ( iControl )
	        		{
	        		textBuf = iControl->GetTextInHBufL();
	        		}
				break;
				}
			}
    return textBuf;
    } 


// End of File