wvuing/wvuiprocess/Src/CCAOpenChatsPC.cpp
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiprocess/Src/CCAOpenChatsPC.cpp	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,237 @@
+/*
+* Copyright (c) 2006 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:  Implementation for PC Group Interface
+*
+*/
+
+
+
+// INCLUDE FILES
+
+#include "CCAOpenChatsPC.h"
+#include "CCAArrayItemPC.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC : Ctor
+//
+// -----------------------------------------------------------------------------
+//
+CCAOpenChatsPC::CCAOpenChatsPC( const RPointerArray<MCAArrayItemPC>&
+                                aOpenChatsArray )
+        : iOpenChatsArray( aOpenChatsArray ),
+        iActiveItem( -1 )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC : NewL
+//
+// -----------------------------------------------------------------------------
+//
+CCAOpenChatsPC* CCAOpenChatsPC::NewL( const RPointerArray<MCAArrayItemPC>&
+                                      aOpenChatsArray )
+    {
+    CCAOpenChatsPC* self = new ( ELeave ) CCAOpenChatsPC( aOpenChatsArray );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC : Destructor
+//
+// -----------------------------------------------------------------------------
+//
+CCAOpenChatsPC::~CCAOpenChatsPC()
+    {
+    delete iActiveItemId;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: GetIdentification
+// -----------------------------------------------------------------------------
+//
+const TPtrC CCAOpenChatsPC::GetIdentification( TInt aIndex )
+    {
+    if ( aIndex >= ( iOpenChatsArray.Count() ) || aIndex < 0 )
+        {
+        return TPtrC ( KNullDesC );
+        }
+    else
+        {
+
+        MCAArrayItemPC *arrayItem = ( MCAArrayItemPC * )iOpenChatsArray[aIndex];
+        switch ( arrayItem->Type() )
+            {
+
+            case TEnumsPC::EConversationItem:
+            case TEnumsPC::EGroupItem:
+                {
+                return arrayItem->GetItemNameText();
+                }
+
+            case TEnumsPC::EInviteItem:
+                {
+                return *iInvitationIdentification;
+                }
+            default:
+                break;
+
+            }
+        }
+
+    return TPtrC ( KNullDesC );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: GetId
+// -----------------------------------------------------------------------------
+//
+const TPtrC CCAOpenChatsPC::GetId( TInt aIndex )
+    {
+    if ( aIndex >= ( iOpenChatsArray.Count() ) || aIndex < 0 )
+        {
+        return TPtrC ( KNullDesC );
+        }
+    else
+        {
+
+        MCAArrayItemPC *arrayItem = ( MCAArrayItemPC * )iOpenChatsArray[aIndex];
+        switch ( arrayItem->Type() )
+            {
+
+            case TEnumsPC::EConversationItem:
+                {
+                CCAConversationItemPC* conversationItem =
+                    dynamic_cast< CCAConversationItemPC* > ( iOpenChatsArray[aIndex] );
+
+                if ( conversationItem )
+                    {
+                    return 	conversationItem->UserId();
+                    }
+                break;
+
+                }
+            case TEnumsPC::EGroupItem:
+                {
+                CCAGroupItemPC* groupItem =
+                    dynamic_cast< CCAGroupItemPC* > ( iOpenChatsArray[aIndex] );
+
+                if ( groupItem )
+                    {
+                    return 	groupItem->GroupId();
+                    }
+                break;
+                }
+
+            case TEnumsPC::EInviteItem:
+                {
+                CCAInviteItemPC* inviteItem =
+                    dynamic_cast< CCAInviteItemPC* > ( iOpenChatsArray[aIndex] );
+
+                if ( inviteItem )
+                    {
+                    return 	inviteItem->GetInviteID();
+                    }
+                break;
+                }
+            default:
+                break;
+
+            }
+
+        return TPtrC ( KNullDesC );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: GetType
+// -----------------------------------------------------------------------------
+//
+TEnumsPC::TItem CCAOpenChatsPC::GetType( TInt aIndex )
+    {
+
+    if ( aIndex >= ( iOpenChatsArray.Count() ) || aIndex < 0 )
+        {
+        return TEnumsPC::EInvalid;
+        }
+    else
+        {
+        MCAArrayItemPC *arrayItem = ( MCAArrayItemPC * )iOpenChatsArray[aIndex];
+        return arrayItem->Type();
+        }
+
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: Count
+// -----------------------------------------------------------------------------
+//
+TInt CCAOpenChatsPC::Count() const
+    {
+    return iOpenChatsArray.Count();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: SetActiveItem
+// -----------------------------------------------------------------------------
+//
+void CCAOpenChatsPC::SetActiveItem( const TInt aIndex )
+    {
+    delete iActiveItemId;
+    iActiveItem = aIndex;
+
+    iActiveItemId = GetId( aIndex ).Alloc();
+
+    iActiveItemType = GetType( aIndex );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: GetActiveItem
+// -----------------------------------------------------------------------------
+//
+void CCAOpenChatsPC::GetActiveItem( TDesC*& aId, TEnumsPC::TItem& aType )
+    {
+
+    aId = NULL;
+
+    if ( iActiveItemId )
+        {
+        aId = iActiveItemId;
+        }
+
+
+    aType = iActiveItemType;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CCAOpenChatsPC: SetInvitationIdentification
+// -----------------------------------------------------------------------------
+//
+void CCAOpenChatsPC::SetInvitationIdentification( TDesC* aIdentification )
+    {
+    iInvitationIdentification = aIdentification;
+    }
+
+// End of File
+