multimediacommsengine/tsrc/MCETestUI/src/CMCETestUIMainViewModel.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/MCETestUI/src/CMCETestUIMainViewModel.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,756 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+
+// INCLUDE FILES
+
+#include "CMCETestUIMainViewModel.h"
+#include "CMCETestUIEngine.h"
+#include "CMCETestUIEngineProfile.h"
+#include "CMCETestUIEngineOutSession.h"
+#include "CMceTestUIEngineOutEvent.h"
+#include "CMceTestUIEngineInEvent.h"
+#include "CMceTestUIEngineOutRefer.h"
+#include "CMceTestUIEngineInRefer.h"
+#include "CMceTestUIEngineInSession.h"
+#include <mcesession.h>
+
+// CONSTANTS
+
+// ================= MEMBER FUNCTIONS ==========================================
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::NewL
+// -----------------------------------------------------------------------------
+//
+CMCETestUIMainViewModel* CMCETestUIMainViewModel::NewL(
+        CMCETestUIEngine& aEngine )
+    {
+	CMCETestUIMainViewModel* self = 
+	    new(ELeave) CMCETestUIMainViewModel( aEngine );
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;    
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::CMCETestUIMainViewModel
+// -----------------------------------------------------------------------------
+//
+CMCETestUIMainViewModel::CMCETestUIMainViewModel( CMCETestUIEngine& aEngine )
+    :iEngine( aEngine ),
+    managerSuppressed( EFalse ),
+    profilesSuppressed( EFalse )
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::ConstructL()
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::ConstructL()
+    {
+    iArray = new (ELeave) CDesCArrayFlat( 1 );
+
+    PopulateMainViewManagerL();
+	PopulateMainViewProfilesL();
+    PopulateMainViewOutSessionsL();
+    PopulateMainViewInSessionsL();
+    PopulateMainViewOutEventsL();
+    PopulateMainViewInEventsL();
+    PopulateMainViewOutRefersL();
+    PopulateMainViewInRefersL();
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::~CMCETestUIMainViewModel()
+// Destructor
+// Frees reserved resources
+// -----------------------------------------------------------------------------
+//
+CMCETestUIMainViewModel::~CMCETestUIMainViewModel()
+    {
+    delete iArray;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::MdcaCount() const
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CMCETestUIMainViewModel::MdcaCount() const
+    {
+    return iArray->MdcaCount();
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::MdcaPoint() const
+// 
+// -----------------------------------------------------------------------------
+//
+TPtrC CMCETestUIMainViewModel::MdcaPoint( TInt aIndex ) const
+    {
+    return iArray->MdcaPoint( aIndex );
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::IsManagerSelected() const
+// 
+// -----------------------------------------------------------------------------
+//
+TBool CMCETestUIMainViewModel::IsManagerSelected( TInt aIndex ) const
+    {
+    if ( aIndex == 0 && !managerSuppressed )
+        {
+        return ETrue;
+        }
+    
+    return EFalse;    
+    }
+    
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::SelectedProfileIndex() const
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CMCETestUIMainViewModel::SelectedProfileIndex( TInt aIndex ) const
+    {
+
+    if ( managerSuppressed )
+        {
+        ++aIndex;
+        }
+
+    if ( aIndex == 0 )
+        {
+        return KErrNotFound;
+        }
+
+    aIndex -= 1; // Selected is not the manager
+
+    const RPointerArray<CMCETestUIEngineProfile>& profiles = 
+                iEngine.UsedProfiles();
+
+    if ( profilesSuppressed )
+        {
+        aIndex += profiles.Count();
+        }
+
+    if ( aIndex < profiles.Count() )
+        {
+        return aIndex;
+        }
+    
+    return KErrNotFound;    
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::SelectedSessionIndex() const
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CMCETestUIMainViewModel::SelectedSessionIndex( TInt aIndex ) const
+    {
+
+    const RPointerArray<CMCETestUIEngineProfile>& profiles = 
+                iEngine.UsedProfiles();
+
+    const RPointerArray<CMCETestUIEngineOutSession>& outSessions = 
+                iEngine.OutSessions();               
+                
+    const RPointerArray<CMCETestUIEngineInSession>& inSessions = 
+                iEngine.InSessions(); 
+
+
+    // Next does not work correctly
+                    
+    if ( managerSuppressed )
+        {
+        ++aIndex;
+        }
+
+    if ( aIndex == 0)
+        {
+        return KErrNotFound;
+        }
+
+    aIndex -= 1; // Selected is not the manager
+    
+    if ( profilesSuppressed )
+        {
+        aIndex += profiles.Count();
+        }
+
+    if ( aIndex < profiles.Count() )
+        {
+        return KErrNotFound;
+        }
+    
+    aIndex -= profiles.Count(); // Selected is not a profile
+    
+    if ( aIndex < outSessions.Count() + inSessions.Count() )
+        {
+        return aIndex;
+        }
+        
+    return KErrNotFound;   // default      
+    }
+    
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::SelectedEventIndex() const
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CMCETestUIMainViewModel::SelectedEventIndex( TInt aIndex ) const
+    {
+
+    const RPointerArray<CMCETestUIEngineProfile>& profiles = 
+                iEngine.UsedProfiles();
+
+    const RPointerArray<CMCETestUIEngineOutSession>& outSessions = 
+                iEngine.OutSessions();               
+                
+    const RPointerArray<CMCETestUIEngineInSession>& inSessions = 
+                iEngine.InSessions(); 
+                
+    const RPointerArray<CMCETestUIEngineOutEvent>& outEvents = 
+                iEngine.OutEvents();               
+                
+    const RPointerArray<CMCETestUIEngineInEvent>& inEvents = 
+                iEngine.InEvents(); 
+            
+
+
+    // Next does not work correctly
+                    
+    if ( managerSuppressed )
+        {
+        ++aIndex;
+        }
+
+    if ( aIndex == 0)
+        {
+        return KErrNotFound;
+        }
+
+    aIndex -= 1; // Selected is not the manager
+    
+    if ( profilesSuppressed )
+        {
+        aIndex += profiles.Count();
+        }
+
+    if ( aIndex < profiles.Count() )
+        {
+        return KErrNotFound;
+        }
+    
+    aIndex -= profiles.Count(); // Selected is not a profile
+    
+    if ( aIndex < outSessions.Count() + inSessions.Count() )
+        {
+        return aIndex;
+        }
+        
+    aIndex -= (outSessions.Count() + inSessions.Count() ); // Selected is not session
+    
+    if ( aIndex < outEvents.Count() + inEvents.Count() )
+        {
+        return aIndex;
+        }    
+        
+    return KErrNotFound;   // default      
+    }
+    
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::SelectedReferIndex() const
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CMCETestUIMainViewModel::SelectedReferIndex( TInt aIndex ) const
+    {
+
+    const RPointerArray<CMCETestUIEngineProfile>& profiles = 
+                iEngine.UsedProfiles();
+
+    const RPointerArray<CMCETestUIEngineOutSession>& outSessions = 
+                iEngine.OutSessions();               
+                
+    const RPointerArray<CMCETestUIEngineInSession>& inSessions = 
+                iEngine.InSessions(); 
+                
+    const RPointerArray<CMCETestUIEngineOutEvent>& outEvents = 
+                iEngine.OutEvents();               
+                
+    const RPointerArray<CMCETestUIEngineInEvent>& inEvents = 
+                iEngine.InEvents(); 
+            
+	const RPointerArray<CMCETestUIEngineOutRefer>& outRefers = 
+                iEngine.OutRefers();               
+                
+    const RPointerArray<CMCETestUIEngineInRefer>& inRefers = 
+                iEngine.InRefers();
+
+    // Next does not work correctly
+                    
+    if ( managerSuppressed )
+        {
+        ++aIndex;
+        }
+
+    if ( aIndex == 0)
+        {
+        return KErrNotFound;
+        }
+
+    aIndex -= 1; // Selected is not the manager
+    
+    if ( profilesSuppressed )
+        {
+        aIndex += profiles.Count();
+        }
+
+    if ( aIndex < profiles.Count() )
+        {
+        return KErrNotFound;
+        }
+    
+    aIndex -= profiles.Count(); // Selected is not a profile
+    
+    if ( aIndex < outSessions.Count() + inSessions.Count() )
+        {
+        return aIndex;
+        }
+        
+    aIndex -= (outSessions.Count() + inSessions.Count() ); // Selected is not session
+    
+    if ( aIndex < outEvents.Count() + inEvents.Count() )
+        {
+        return aIndex;
+        }    
+   	
+   	aIndex -= (outEvents.Count() + inEvents.Count() ); // Selected is not event
+    
+    if ( aIndex < outRefers.Count() + inRefers.Count() )
+        {
+        return aIndex;
+        }    
+    
+    return KErrNotFound;   // default      
+    }
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::CmdProvider()
+// 
+// -----------------------------------------------------------------------------
+//
+MMCETestUIEngineCmdProvider& CMCETestUIMainViewModel::CmdProvider( TInt aIndex )
+    {
+    
+    const RPointerArray<CMCETestUIEngineProfile>& profiles = 
+                iEngine.UsedProfiles();
+
+    const RPointerArray<CMCETestUIEngineOutSession>& outSessions = 
+                iEngine.OutSessions();               
+                
+    const RPointerArray<CMCETestUIEngineInSession>& inSessions = 
+                iEngine.InSessions(); 
+
+	const RPointerArray<CMCETestUIEngineOutEvent>& outEvents = 
+                iEngine.OutEvents();               
+                
+    const RPointerArray<CMCETestUIEngineInEvent>& inEvents = 
+                iEngine.InEvents();
+
+	const RPointerArray<CMCETestUIEngineOutRefer>& outRefers = 
+                iEngine.OutRefers();               
+                
+    const RPointerArray<CMCETestUIEngineInRefer>& inRefers = 
+                iEngine.InRefers();
+
+    // Next does not work correctly
+                    
+    if ( managerSuppressed )
+        {
+        ++aIndex;
+        }
+
+    if ( aIndex == 0)
+        {
+        return iEngine;
+        }
+
+    aIndex -= 1; // Selected is not the manager
+    
+    if ( profilesSuppressed )
+        {
+        aIndex += profiles.Count();
+        }
+
+    if ( aIndex < profiles.Count() )
+        {
+        return *(profiles[aIndex]);
+        }
+    
+    aIndex -= profiles.Count(); // Selected is not a profile
+    
+    if ( aIndex < outSessions.Count() )
+        {
+        return *(outSessions[aIndex]);
+        }
+    
+    aIndex -= outSessions.Count(); // Selected is not an outsession
+    
+    if ( aIndex < inSessions.Count() )
+        {
+        return *(inSessions[aIndex]);
+        }
+    
+    aIndex -= inSessions.Count(); // Selected is not a session
+    
+    if ( aIndex < outEvents.Count() )
+        {
+        return *(outEvents[aIndex]);
+        }
+    
+    aIndex -= outEvents.Count(); // Selected is not an outEvent
+    
+    if ( aIndex < inEvents.Count() )
+        {
+        return *(inEvents[aIndex]);
+        }
+    
+   aIndex -= inEvents.Count(); // Selected is not an event
+    
+    if ( aIndex < outRefers.Count() )
+        {
+        return *(outRefers[aIndex]);
+        }
+    
+    aIndex -= outRefers.Count(); // Selected is not an outrefer
+    
+    if ( aIndex < inRefers.Count() )
+        {
+        return *(inRefers[aIndex]);
+        }
+        
+    return iEngine;   // default      
+    
+        
+    }
+
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewManagerL
+// Populate main view manager
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewManagerL()
+    {
+    if ( !managerSuppressed )
+        {
+        TInt sessionCount = iEngine.OutSessions().Count() +
+                            iEngine.InSessions().Count();
+                            
+        TInt eventCount =  iEngine.OutEvents().Count() +
+                            iEngine.InEvents().Count(); 
+                            
+        TInt referCount =  iEngine.OutRefers().Count() +
+                            iEngine.InRefers().Count();                    
+                            
+        TInt itemLength = KMCEManager().Length() + KSessionCount().Length() + 
+        				  KEventCount().Length() + KReferCount().Length() + KTab().Length() * 4 + KSpace().Length() + 10;
+                          
+        HBufC* item =  HBufC::NewLC( itemLength );
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );
+        itemPtr.Append( KMCEManager );
+        itemPtr.Append( KTab );
+        itemPtr.Append( KSessionCount );
+        itemPtr.AppendNum( sessionCount );
+     //   itemPtr.Append( KSpace );
+        itemPtr.Append( KEventCount );
+        itemPtr.AppendNum( eventCount );
+     //   itemPtr.Append( KSpace );
+        itemPtr.Append( KReferCount );
+        itemPtr.AppendNum( referCount );
+               
+        iArray->AppendL( *item );
+        
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewProfilesL
+// Populate main view profiles
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewProfilesL()
+    {   
+    if ( !profilesSuppressed )
+        {
+        const RPointerArray<CMCETestUIEngineProfile>& profiles = 
+            iEngine.UsedProfiles();
+            
+        for ( TInt i = 0; i < profiles.Count(); ++i )
+            {
+            const TDesC8& providerName = profiles[i]->ProviderName();
+            HBufC* providerName16 = HBufC16::NewLC( providerName.Length() );
+            TPtr providerNamePtr = providerName16->Des();
+            providerNamePtr.Copy( providerName );
+            
+            const TDesC8& aor = profiles[i]->Aor();
+            HBufC* aor16 = HBufC16::NewLC( aor.Length() );
+            TPtr aorPtr = aor16->Des();
+            aorPtr.Copy( aor );
+            
+            TPtrC registerStatus;
+            if ( profiles[i]->IsRegistered() )
+                {
+                registerStatus.Set( KRegistered );
+                }
+            else
+                {
+                registerStatus.Set( KNotRegistered );
+                }
+            TInt itemLength = providerName.Length() + registerStatus.Length() + 
+                              KProfile().Length() + aor.Length() +
+                              KSpace().Length() +KTab().Length()*4;
+                            
+            HBufC* item =  HBufC::NewLC( itemLength );
+            TPtr itemPtr = item->Des();
+            itemPtr.Append( KTab );
+            itemPtr.Append( KProfile );
+            itemPtr.Append( *providerName16 );
+            itemPtr.Append( KSpace );
+            itemPtr.Append( registerStatus );
+            itemPtr.Append( KTab );
+            //itemPtr.Append(KSpace);
+            itemPtr.Append( *aor16 );
+            itemPtr.Append( KTab );
+            iArray->AppendL( *item );
+
+            CleanupStack::PopAndDestroy( item );
+            item = NULL;
+            CleanupStack::PopAndDestroy( aor16 );
+            aor16 = NULL;
+            CleanupStack::PopAndDestroy( providerName16 );
+            providerName16 = NULL;
+          
+            
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewOutSessionsL
+// Populate main view outgoing sessions
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewOutSessionsL()
+    {
+    const RPointerArray<CMCETestUIEngineOutSession>& outSessions = 
+            iEngine.OutSessions();
+
+	if( outSessions.Count() == 0) return;
+	
+    for ( TInt i = 0; i < outSessions.Count(); ++i )
+        {
+        TInt itemLength = KOutSession().Length() + 
+                          KLeftParenthesis().Length() + 
+                          KProfileId().Length() + 2 +KSpace().Length()+
+                          outSessions[i]->TextualDirection().Length() +
+                          KRightParenthesis().Length() +
+                          outSessions[i]->State().Length() +
+                          KTab().Length() * 4 + 5 ;  
+        HBufC* item =  HBufC::NewLC( itemLength ); 
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );        
+        itemPtr.Append( KOutSession );
+        itemPtr.AppendNum( outSessions[i]->Id() );
+        itemPtr.Append( KLeftParenthesis );
+        itemPtr.Append( KProfileId);
+        itemPtr.AppendNum( outSessions[i]->ProfileId());
+        itemPtr.Append( KSpace);
+        itemPtr.Append( outSessions[i]->TextualDirection() );
+        itemPtr.Append( KRightParenthesis );
+        itemPtr.Append( KTab );
+        itemPtr.Append( outSessions[i]->State() );
+    	iArray->AppendL( *item );
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;     
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewInSessionsL
+// Populate main view incoming sessions
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewInSessionsL()
+    {
+    const RPointerArray<CMCETestUIEngineInSession>& inSessions = 
+            iEngine.InSessions();
+	if( inSessions.Count() == 0) return;
+
+    for ( TInt i = 0; i < inSessions.Count(); ++i )
+        {
+        TInt itemLength = KInSession().Length() + 
+                          KLeftParenthesis().Length() + 
+                          KProfileId().Length() + 2 +KSpace().Length()+
+                          inSessions[i]->TextualDirection().Length() +
+                          KRightParenthesis().Length() + 
+                          inSessions[i]->State().Length() +
+                          KTab().Length() * 4 + 5 ;  
+        HBufC* item =  HBufC::NewLC( itemLength ); 
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );        
+        itemPtr.Append( KInSession );
+        itemPtr.AppendNum( inSessions[i]->Id() );
+        itemPtr.Append( KLeftParenthesis );
+        itemPtr.Append( KProfileId);
+        itemPtr.AppendNum( inSessions[i]->ProfileId());
+        itemPtr.Append( KSpace);
+        itemPtr.Append( inSessions[i]->TextualDirection() );
+        itemPtr.Append( KRightParenthesis );
+        itemPtr.Append( KTab );
+        itemPtr.Append( inSessions[i]->State() );
+        iArray->AppendL( *item );
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;     
+        }
+    }
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewOutSessionsL
+// Populate main view outgoing sessions
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewOutEventsL()
+    {
+    const RPointerArray<CMCETestUIEngineOutEvent>& outEvents = 
+            iEngine.OutEvents();
+    if( outEvents.Count() == 0) return;
+
+    for ( TInt i = 0; i < outEvents.Count(); ++i )
+        {
+        TInt itemLength = KOutEvent().Length() + 
+                          outEvents[i]->State().Length() +
+                          KTab().Length() * 3 + 5 ;  
+        HBufC* item =  HBufC::NewLC( itemLength ); 
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );        
+        itemPtr.Append( KOutEvent);
+        itemPtr.AppendNum( outEvents[i]->Id() );
+        itemPtr.Append( KTab );
+        itemPtr.Append( outEvents[i]->State() );
+   	    iArray->AppendL( *item );
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;     
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewInEventsL
+// Populate main view incoming sessions
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewInEventsL()
+    {
+    const RPointerArray<CMCETestUIEngineInEvent>& inEvents = 
+            iEngine.InEvents();
+	if( inEvents.Count() == 0) return;
+
+    for ( TInt i = 0; i < inEvents.Count(); ++i )
+        {
+        TInt itemLength = KInEvent().Length() + 
+                          inEvents[i]->State().Length() +
+                          KTab().Length() * 3 + 5 ;  
+        HBufC* item =  HBufC::NewLC( itemLength ); 
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );        
+        itemPtr.Append( KInEvent );
+        itemPtr.AppendNum( inEvents[i]->Id() );
+        itemPtr.Append( KTab);
+        itemPtr.Append( inEvents[i]->State() );
+        iArray->AppendL( *item );
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;     
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewOutRefersL
+// Populate main view outgoing sessions
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewOutRefersL()
+    {
+    const RPointerArray<CMCETestUIEngineOutRefer>& outRefers = 
+            iEngine.OutRefers();
+    if( outRefers.Count() == 0) return;
+
+    for ( TInt i = 0; i < outRefers.Count(); ++i )
+        {
+        TInt itemLength = KOutRefer().Length() + 
+                          outRefers[i]->State().Length() +
+                          KTab().Length() * 3 + 5 ;  
+        HBufC* item =  HBufC::NewLC( itemLength ); 
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );        
+        itemPtr.Append( KOutRefer);
+        itemPtr.AppendNum( outRefers[i]->Id() );
+        itemPtr.Append( KTab );
+        itemPtr.Append( outRefers[i]->State() );
+   	    iArray->AppendL( *item );
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;     
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCETestUIMainViewModel::PopulateMainViewInRefersL
+// Populate main view incoming sessions
+// -----------------------------------------------------------------------------
+//
+void CMCETestUIMainViewModel::PopulateMainViewInRefersL()
+    {
+    const RPointerArray<CMCETestUIEngineInRefer>& inRefers = 
+            iEngine.InRefers();
+	if( inRefers.Count() == 0) return;
+
+    for ( TInt i = 0; i < inRefers.Count(); ++i )
+        {
+        TInt itemLength = KInRefer().Length() + 
+                          inRefers[i]->State().Length() +
+                          KTab().Length() * 3 + 5 ;  
+        HBufC* item =  HBufC::NewLC( itemLength ); 
+        TPtr itemPtr = item->Des();
+        itemPtr.Append( KTab );        
+        itemPtr.Append( KInRefer );
+        itemPtr.AppendNum( inRefers[i]->Id() );
+        itemPtr.Append( KTab);
+        itemPtr.Append( inRefers[i]->State() );
+        iArray->AppendL( *item );
+        CleanupStack::PopAndDestroy( item );
+        item = NULL;     
+        }
+    }
+
+// End of File