photosgallery/viewframework/dataprovider/src/glxmulbindingsetfactory.cpp
changeset 0 4e91876724a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/dataprovider/src/glxmulbindingsetfactory.cpp	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,143 @@
+/*
+* 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
+    }
+