--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsviewmenuhandler.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,368 +0,0 @@
-/*
-* Copyright (c) 2008 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 of detailsview plugin menu handler
-*
-*/
-
-
-#include "cvimpstdetailsviewmenuhandler.h"
-
-#include "cvimpstdetailsviewlistboxmodel.h"
-#include "cvimpstdetailsviewcontainer.h"
-#include "cvimpstdetailsviewplugin.h"
-#include "cvimpstdetailscontacthandler.h"
-#include "vimpstdetailsview.hrh"
-#include <vimpstdetailsviewpluginrsc.rsg>
-#include <ccappdetailsviewpluginrsc.rsg>
-#include <aknnotewrappers.h>
-#include <AiwContactAssignDataTypes.h>
-#include <CVPbkContactLinkArray.h>
-
-using namespace AiwContactAssign;
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::NewL
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewMenuHandler* CVIMPSTDetailsViewMenuHandler::NewL(
- CVIMPSTDetailsViewPlugin& aPlugin,
- TStoreType aStoreType )
- {
- CVIMPSTDetailsViewMenuHandler* self = new(ELeave) CVIMPSTDetailsViewMenuHandler( aPlugin,aStoreType );
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::~CVIMPSTDetailsViewMenuHandler
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewMenuHandler::~CVIMPSTDetailsViewMenuHandler()
- {
- delete iAiwServiceHandler;
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::CVIMPSTDetailsViewMenuHandler()
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewMenuHandler::CVIMPSTDetailsViewMenuHandler(
- CVIMPSTDetailsViewPlugin& aPlugin,
- TStoreType aStoreType) :
- iPlugin(aPlugin),
- iStoreType( aStoreType )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::ConstructL()
- {
- PrepareAiwMenusL();
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::DynInitMenuPaneL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::DynInitMenuPaneL(TInt aResourceId,
- CEikMenuPane* aMenuPane )
- {
- if (iAiwServiceHandler)
- {
- if ( iAiwServiceHandler->HandleSubmenuL(*aMenuPane))
- {
- return;
- }
- }
- switch (aResourceId)
- {
- case R_VIMPSTDETAILSVIEW_MENUPANE:
- {
- TInt pos = 0;
- if ( iAiwServiceHandler )
- {
- if ( iAiwServiceHandler->IsAiwMenu(aResourceId))
- {
- iAiwServiceHandler->InitializeMenuPaneL( *aMenuPane,
- aResourceId, ECCAppDetailsViewAiwBaseCmd,
- iAiwServiceHandler->InParamListL() );
- }
- }
- if ( aMenuPane->MenuItemExists(ECCAppDetailsViewSetTopContactCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewSetTopContactCmd, ETrue );
- }
- if( aMenuPane->MenuItemExists(ECCAppDetailsViewRemoveTopContactCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewRemoveTopContactCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewNumberCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewNumberCmd,ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewAddressCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewAddressCmd,ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewCopyNumberCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewCopyNumberCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewCopyAddressCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewCopyAddressCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewImageCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewImageCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewSendBusinessCardCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewSendBusinessCardCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewCopyCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewCopyCmd, ETrue );
- }
- // Dims the edit option in service details view.
- if(aMenuPane->MenuItemExists(KAiwCmdAssign, pos))
- {
- aMenuPane->SetItemDimmed(KAiwCmdAssign,ETrue );
- }
-
- if (aMenuPane->MenuItemExists(EVIMPSTDetailsCopyCmd, pos))
- {
- aMenuPane->SetItemDimmed(EVIMPSTDetailsCopyCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(EVIMPSTDetailsDeleteCmd, pos))
- {
- aMenuPane->SetItemDimmed(EVIMPSTDetailsDeleteCmd, ETrue );
- }
-
-
- const CVIMPSTDetailsViewContainer& container =
- static_cast<const CVIMPSTDetailsViewContainer&>( iPlugin.GetContainer() );
-
- TInt count = container.ListBoxModel().MdcaCount();
- if( !count )
- {
- // no items hide options
- if (aMenuPane->MenuItemExists(EVIMPSTDetailsEditCmd, pos))
- {
- aMenuPane->SetItemDimmed(EVIMPSTDetailsEditCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewDeleteCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewDeleteCmd, ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewCopyDetailCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewCopyDetailCmd,ETrue );
- }
- if (aMenuPane->MenuItemExists(ECCAppDetailsViewEditItemCmd, pos) )
- {
- aMenuPane->SetItemDimmed(ECCAppDetailsViewEditItemCmd,ETrue );
- }
- }
- break;
- }
- default:
- break;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::HandleNotifyL
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsViewMenuHandler::HandleNotifyL(
- TInt aCmdId,
- TInt aEventId,
- CAiwGenericParamList& aEventParamList,
- const CAiwGenericParamList& /*aInParamList*/)
- {
- TInt result = KErrNone;
-
- if (aCmdId == KAiwCmdAssign)
- {
- if (aEventId == KAiwEventCompleted)
- {
- TInt index = 0;
- const TAiwGenericParam* param = aEventParamList.FindFirst(index,
- EGenericParamContactLinkArray);
- if (param)
- {
- TPtrC8 contactLinks = param->Value().AsData();
- CVPbkContactLinkArray* links = CVPbkContactLinkArray::NewLC(
- contactLinks, iPlugin.GetContactHandler()->ContactStoresL());
- if(links)
- {
- iPlugin.GetContactHandler()->SetLinks(links, EFalse);
- }
- CleanupStack::Pop(links);
- }
-
- const TAiwGenericParam* indexparam = aEventParamList.FindFirst(index,
- EGenericParamContactItem);
- if (indexparam)
- {
- const CVIMPSTDetailsViewContainer& container =
- static_cast<const CVIMPSTDetailsViewContainer&>(iPlugin.GetContainer());
- TInt index = indexparam->Value().AsTInt32();
- container.ListBoxModel().SetFocusedListIndex(index);
- }
- result = ETrue;
- }
- else if (aEventId == KAiwEventCanceled)
- {
- //if cancelled
- result = ETrue;
- }
- else if (aEventId == KAiwEventQueryExit)
- {
- //issue command to cancel the previous request.
- iAiwServiceHandler->ExecuteServiceCmdL(
- KAiwCmdAssign,
- iAiwServiceHandler->InParamListL(),
- iAiwServiceHandler->OutParamListL(),
- KAiwOptCancel,
- this);
- result = ETrue;
- }
- }
-
- return result;
- }
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::HandleCommandL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::HandleCommandL(TInt aCommand)
- {
- // TODO : dependency on cca , they are not deleting the menu items Then check if command is normal application command
- switch (aCommand)
- {
- case KAiwCmdAssign:// AIW service cmd for Editing
- {
- if(iAiwServiceHandler && (iStoreType == EStoreLocal))
- {
- DoEditCmdL();
- }
- break;
- }
- case EVIMPSTDetailsEditCmd:
- case ECCAppDetailsViewEditItemCmd:
- {
- //TODO: in case of server store nick names has to be supported
- break;
- }
- case EVIMPSTDetailsDeleteCmd:
- case ECCAppDetailsViewDeleteCmd:
- {
- DoDeleteCmdL();
- break;
- }
- case EVIMPSTDetailsCopyCmd:
- case ECCAppDetailsViewCopyDetailCmd:
- {
- DoCopyCmdL();
- break;
- }
- default:
- break;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::DoEditCmdL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::DoEditCmdL()
- {
- const CVIMPSTDetailsViewContainer& container =
- static_cast<const CVIMPSTDetailsViewContainer&>(iPlugin.GetContainer());
-
-
- CAiwGenericParamList& inParamList = iAiwServiceHandler->InParamListL();
-
- inParamList.AppendL(TAiwGenericParam(
- EGenericParamContactAssignData,
- TAiwVariant(TAiwSingleContactAssignDataV1Pckg(
- TAiwSingleContactAssignDataV1().SetFlags(EskipInfoNotes)))));
-
- HBufC8* packedLinks = iPlugin.GetContactHandler()->Links()->PackLC();
-
- inParamList.AppendL(TAiwGenericParam(EGenericParamContactLinkArray,
- TAiwVariant( *packedLinks)));
-
- TInt focusIndex = container.ListBoxModel().FocusedFieldIndex();
-
- // TODO: use int instead of buf.
- TBuf<8> focusIndexBuf;
- focusIndexBuf.Num(focusIndex);
- const TAiwVariant focusIndexVariant(focusIndexBuf);
-
- inParamList.AppendL(TAiwGenericParam(EGenericParamContactItem, focusIndexVariant));
-
- iAiwServiceHandler->ExecuteServiceCmdL(
- KAiwCmdAssign,
- inParamList,
- iAiwServiceHandler->OutParamListL(),
- NULL,
- this);
-
- CleanupStack::PopAndDestroy(packedLinks);
-
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::DoDeleteCmdL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::DoDeleteCmdL()
- {
- CAknInformationNote* informationNote = new(ELeave) CAknInformationNote;
- informationNote->ExecuteLD(_L("Delete not supported yet"));
- }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::DoCopyCmdL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::DoCopyCmdL()
- {
- CAknInformationNote* informationNote = new(ELeave) CAknInformationNote;
- informationNote->ExecuteLD(_L("Copy not supported yet"));
- }
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsViewMenuHandler::PrepareAiwMenusL
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewMenuHandler::PrepareAiwMenusL()
- {
- // Initialisation of AIW Servicehandler cannot be in
- // ConstructL, since the menus of plugin are given
- // later via ProvideApplicationResourcesL(..)
- iAiwServiceHandler = CAiwServiceHandler::NewL();
- iAiwServiceHandler->AttachL(
- R_VIMPSTDETAILSVIEW_AIW_SERVICE_INTERESTS);
-
- }
-// End of File