emailuis/uicomponents/src/fstreeitem.cpp
changeset 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/src/fstreeitem.cpp	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2007 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:  Freestyle tree item implementation
+*
+*/
+
+#include "emailtrace.h"
+#include <e32const.h>
+
+#include "fstreeitem.h"
+#include "fstreeitemdata.h"
+#include "fstreeitemvisualizer.h"
+#include "fstreenode.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CFsTreeItem* CFsTreeItem::NewL( CFsTreeNode& aParent,
+    MFsTreeItemData& aData, MFsTreeItemVisualizer& aVisualizer )
+    {
+    FUNC_LOG;
+    CFsTreeItem* self = CFsTreeItem::NewLC( aParent, aData, aVisualizer );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CFsTreeItem* CFsTreeItem::NewLC( CFsTreeNode& aParent,
+    MFsTreeItemData& aData, MFsTreeItemVisualizer& aVisualizer )
+    {
+    FUNC_LOG;
+    CFsTreeItem* self = new( ELeave ) CFsTreeItem( &aParent, aData,
+                                                   aVisualizer );
+    CleanupStack::PushL( self );
+    self->ConstructL( );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// C++ destructor.
+// ---------------------------------------------------------------------------
+//
+CFsTreeItem::~CFsTreeItem()
+    {
+    FUNC_LOG;
+    delete iData;
+    delete iVisualizer;
+    }
+
+// ---------------------------------------------------------------------------
+// Gets reference to item visualizer.
+// ---------------------------------------------------------------------------
+//
+MFsTreeItemVisualizer* CFsTreeItem::ItemVisualizer() const
+	{
+    FUNC_LOG;
+	return iVisualizer;
+	}
+
+// ---------------------------------------------------------------------------
+// Gets reference to item data.
+// ---------------------------------------------------------------------------
+//
+MFsTreeItemData& CFsTreeItem::ItemData() const
+	{
+    FUNC_LOG;
+	return *iData;
+	}
+
+// ---------------------------------------------------------------------------
+// Sets item visualizer object.
+// ---------------------------------------------------------------------------
+//
+void CFsTreeItem::SetItemVisualizer( MFsTreeItemVisualizer& aVisualizer )
+	{
+    FUNC_LOG;
+	iVisualizer = &aVisualizer;
+	}
+
+// ---------------------------------------------------------------------------
+// Sets item data object.
+// ---------------------------------------------------------------------------
+//
+void CFsTreeItem::SetItemData( MFsTreeItemData& aData )
+	{
+    FUNC_LOG;
+	iData = &aData;
+	}
+
+
+// ---------------------------------------------------------------------------
+// Returns EFalse since item is not a node.
+// ---------------------------------------------------------------------------
+//
+TBool CFsTreeItem::IsNode() const
+	{
+    FUNC_LOG;
+	return EFalse;
+	}
+
+// ---------------------------------------------------------------------------
+// Returns NULL since the item is not a node.
+// ---------------------------------------------------------------------------
+//
+CFsTreeNode* CFsTreeItem::Node()
+    {
+    FUNC_LOG;
+    return NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// Gets the pointer to parent node of the item.
+// ---------------------------------------------------------------------------
+//
+CFsTreeNode* CFsTreeItem::Parent() const
+    {
+    FUNC_LOG;
+    return iParent;
+    }
+
+// ---------------------------------------------------------------------------
+// Sets parent node for the item.
+// ---------------------------------------------------------------------------
+//
+void CFsTreeItem::SetParent( CFsTreeNode& aParent )
+	{
+    FUNC_LOG;
+	iParent = &aParent;
+	}
+
+// ---------------------------------------------------------------------------
+// Returns the level of the item in tree structure.
+// ---------------------------------------------------------------------------
+//
+TUint CFsTreeItem::Level() const
+    {
+    FUNC_LOG;
+    TUint itemLevel = 0;
+
+    CFsTreeNode* parent = iParent;
+    while ( parent )
+        {
+        itemLevel++;
+        parent = parent->Parent();
+        }
+
+    return itemLevel;
+    }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TUint CFsTreeItem::CountChildrenRecursively() const
+    {
+    // return always 0 here.
+    // NOTE: this is overridden in child class CFsTreeNode!
+    return 0;
+    }
+
+// ---------------------------------------------------------------------------
+//  C++ constructor.
+// ---------------------------------------------------------------------------
+//
+CFsTreeItem::CFsTreeItem( CFsTreeNode* aParent, MFsTreeItemData& aData,
+    MFsTreeItemVisualizer& aVisualizer )
+    : iParent( aParent ),
+      iData( &aData ),
+      iVisualizer( &aVisualizer )
+    {
+    FUNC_LOG;
+    }
+
+
+// ---------------------------------------------------------------------------
+//  Second phase constructor.
+// ---------------------------------------------------------------------------
+//
+void CFsTreeItem::ConstructL( )
+    {
+    FUNC_LOG;
+    }