photosgallery/viewframework/dataprovider/src/glxmulbindingsetfactory.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:45:44 +0200
changeset 0 4e91876724a2
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2008-2009 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:    Binding Set Factory ;Base for all Binding Set
*
*/




#include <glxlog.h>                      // Logging
#include <glxtracer.h>
#include "glxmulbindingsetfactory.h"     // CreateBindingSetL creates instance of Binding set
#include "glxbindingset.h"               // This basically holds the bindings required to populate the visual item
#include "glxpreviewthumbnailbinding.h"  // Implementation of preview thumbnail binding for the list view
#include "glxcontainerlistbinding.h"     // This class holds the list of tags/albums associated with a media item

/**
 * Constructor
  */
EXPORT_C TGlxMulBindingSetFactory::TGlxMulBindingSetFactory()
        : iBindingSet( NULL )
    {
    }

/**
 * Destructor
  */
EXPORT_C TGlxMulBindingSetFactory::~TGlxMulBindingSetFactory()
    {
    }

/**
 * CreateBindingSetL
  */
CGlxBindingSet* TGlxMulBindingSetFactory::CreateBindingSetL( 
        MGlxBindingObserver& aObserver ) const
    {
    TRACER("TGlxMulBindingSetFactory::CreateBindingSetL");
    CGlxBindingSet* set = CGlxBindingSet::NewLC( aObserver );
    iBindingSet = set; // does not take ownershop
    // allow deriving class to add the bindings to the set
    AddBindingsL();
    iBindingSet = NULL; // not necessary, but clear for maintenance safety
    CleanupStack::Pop( set );
    return set;
    }

/**
 * AddStringBindingL
  */
EXPORT_C void TGlxMulBindingSetFactory::AddStringBindingL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/, 
        TInt aStringId ) const
    {
    TRACER("TGlxMulBindingSetFactory::AddStringBindingL");
    iBindingSet->AddBindingL( CGlxStringBinding::NewL( aMulTag, aStringId ) );
    }

/**
 * AddMpxAttributeBindingL
  */
EXPORT_C void TGlxMulBindingSetFactory::AddMpxAttributeBindingL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/, 
        const TMPXAttribute& aAttribute, TInt aFormatStringId ) const
    {
    TRACER("TGlxMulBindingSetFactory::AddMpxAttributeBindingL");
    iBindingSet->AddBindingL( CGlxMpxAttributeBinding::NewL( aMulTag, aAttribute, aFormatStringId ) );
    }

/**
 * AddThumbnailBindingL
  */    
EXPORT_C void TGlxMulBindingSetFactory::AddThumbnailBindingL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/, 
	const TSize& aSize  ) const
    {
    TRACER("TGlxMulBindingSetFactory::AddThumbnailBindingL");
    iBindingSet->AddBindingL( CGlxThumbnailBinding::NewL( aMulTag, aSize ) );
    }
/**
 * AddFullScreenThumbnailBindingL
  */     
EXPORT_C void TGlxMulBindingSetFactory::AddFullScreenThumbnailBindingL(const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/)const
    {
    TRACER("TGlxMulBindingSetFactory::AddFullScreenThumbnailBindingL"); 
     iBindingSet->AddBindingL( CGlxFullScreenThumbnailBinding::NewL( aMulTag ) );
    }
/**
 * AddIconBindingL
 */    
EXPORT_C void TGlxMulBindingSetFactory::AddIconBindingL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/, 
    const CGlxMulIconProvider* aMulIcon, const TSize& aSize ) const
    {
    TRACER("TGlxMulBindingSetFactory::AddIconBindingL");
    iBindingSet->AddBindingL( CGlxIconBinding::NewL( aMulTag, aMulIcon, aSize ) );
    }
/**
 * AddContainerListBindingL
  */    
EXPORT_C void TGlxMulBindingSetFactory::AddContainerListBindingL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/, 
        const CMPXCollectionPath& aPath ) const
    {
     TRACER("TGlxMulBindingSetFactory::AddContainerListBindingL");
    iBindingSet->AddBindingL( CGlxContainerListBinding::NewL( aMulTag, aPath ) );
    }

/**
 * AddCommandBindingL
 */    
EXPORT_C void TGlxMulBindingSetFactory::AddCommandBindingL( MGlxBoundCommand* aCommand ) const
    {
    TRACER("TGlxMulBindingSetFactory::AddCommandBindingL");
	iBindingSet->AddBindingL( CGlxCommandBinding::NewL( aCommand ) );
    }

/**
 * AddTemplateBindingL
 */    
EXPORT_C void TGlxMulBindingSetFactory::AddTemplateBindingL(
    Alf::mulwidget::TLogicalTemplate aTemplate, 
	Alf::mulwidget::TLogicalTemplate aTemplateWhenFocused) const
    {
    TRACER("TGlxMulBindingSetFactory::AddTemplateBindingL");
    iBindingSet->AddBindingL( CGlxTemplateBinding::NewL( aTemplate, aTemplateWhenFocused ) );
    }

 /**
 * AddPreviewThumbnailBindingL
 */   
EXPORT_C void TGlxMulBindingSetFactory::AddPreviewThumbnailBindingL() const
    {
    TRACER("TGlxMulBindingSetFactory::AddPreviewThumbnailBindingL");
    iBindingSet->AddBindingL( CGlxPreviewThumbnailBinding::NewL() );//@todo
    }