diff -r 8173571d354e -r 1fc85118c3ae locationlandmarksuirefapp/src/LmUiRefAppView.cpp --- a/locationlandmarksuirefapp/src/LmUiRefAppView.cpp Thu Aug 19 09:48:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,484 +0,0 @@ -/* -* Copyright (c) 2005 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: LandmarksUi Content File - -* -*/ - - - - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "lmuirefapp.hrh" -#include "CLmkLandmarkSelectorDlg.h" -#include "CLmkCategorySelectorDlg.h" -#include "LmUiRefAppDocument.h" -#include "LmUiRefAppContainer.h" -#include "LmUiRefAppUi.h" -#include "LmUiRefAppView.h" -#include "CLmkEditorDlg.h" -#include "TLmkItemIdDbCombiInfo.h" //For multi db support, combiinfo struct - -#define LMK_PARAMS (CLmkEditorDlg::ELmkOnlyName | CLmkEditorDlg::ELmkCategory | CLmkEditorDlg::ELmkStreet | CLmkEditorDlg::ELmkCity | CLmkEditorDlg::ELmkLatitude| CLmkEditorDlg::ELmkLongitude) - -#define LMK_PARAMS_DEFAULT CLmkEditorDlg::ELmkAll - -// ================= MEMBER FUNCTIONS ======================= -//------------------------------------------------------------------------- -// CLmUiRefAppView::NewLC -// Two-phased constructor. -//------------------------------------------------------------------------- -// -CLmUiRefAppView* CLmUiRefAppView::NewLC() - { - CLmUiRefAppView* self = - new( ELeave ) CLmUiRefAppView(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -//--------------------------------------------------------------------------- -// CLmUiRefAppView::CLmUiRefAppView -// C++ default constructor can NOT contain any code, that -// might leave. -//--------------------------------------------------------------------------- -// -CLmUiRefAppView::CLmUiRefAppView() - { - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::ConstructL -// Symbian 2nd phase constructor can leave. -// -------------------------------------------------------------------------- -// -void CLmUiRefAppView::ConstructL() - { - BaseConstructL(R_LMUIREFAPP_VIEW); - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::~CLmUiRefAppView -// ------------------------------------------------------------------------ -// -CLmUiRefAppView::~CLmUiRefAppView() - { - if ( iContainer ) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - } - delete iContainer; - } - -// -------------------------------------------------------------------------- -// TUid CLmUiRefAppView::Id -// -------------------------------------------------------------------------- -// -TUid CLmUiRefAppView::Id() const - { - return TUid::Uid(ELmUiRefAppView); - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::HandleCommandL -// -------------------------------------------------------------------------- -// -void CLmUiRefAppView::HandleCommandL( TInt aCommand ) - { - switch ( aCommand ) - { - // these all are same: exit - case EAknSoftkeyExit: - case EAknSoftkeyBack: - { - AppUi()->HandleCommandL(EEikCmdExit); - break; - } - case ELmUiRefAppCmdDeleteLm: - { - if (IsLmDbEmptyL()) - { - // Display some Error Note here - iContainer->DrawNow(); - return; - } - if (LaunchLandmarksDialogL() == 0) - { - // If Selector is cancelled, return to MAIN view - iContainer->DrawNow(); - return; - } - // Display Note - CEikonEnv* env = CEikonEnv::Static(); - HBufC* noteText = NULL; - noteText - = StringLoader::LoadLC( R_LMUIREFAPP_DELETE_LANDMARK, env ); - CAknQueryDialog* query = - new( ELeave ) CAknQueryDialog( *noteText ); - TInt ret = query->ExecuteLD( R_LMUIREFAPP_QUERY); - if (!(ret)) - { - CleanupStack::PopAndDestroy(noteText); //noteText - iContainer->DrawNow(); - return; - } - TPosLmItemId delLmItem = SelectedItem(); - ilDb->RemoveLandmarkL(delLmItem); - delete ilDb; - CleanupStack::PopAndDestroy(noteText); //noteText - break; - } - case ELmUiRefAppCmdNewLm : - { - //if to be used later on or commented because of an Error. - NewLmCmdL(); - break; - } - case ELmUiRefAppCmdViewLm: - { - /* Launch LM Selector only when Landmarks - * Database has any entries - */ - if (IsLmDbEmptyL()) - { - // Display some Error Note here - iContainer->DrawNow(); - return; - } - if (LaunchLandmarksDialogL() == 0) - { - // If Selector is cancelled, return to MAIN view - iContainer->DrawNow(); - return; - } - - CLmkEditorDlg::TLmkEditorParams editParams; - editParams.iAttributes = CLmkEditorDlg::ELmkAll; - editParams.iEditorMode = CLmkEditorDlg::ELmkViewer; - TPosLmItemId lmItem = SelectedItem(); - CLmkEditorDlg *dlg = CLmkEditorDlg::NewL(*ilDb, - lmItem, - editParams); - dlg->ExecuteLD(); - iContainer->DrawNow(); - delete ilDb; - break; - } - - case ELmUiRefAppCmdEditLm: - { - if (IsLmDbEmptyL()) - { - // Display some Error Note here - iContainer->DrawNow(); - return; - } - if (LaunchLandmarksDialogL() == 0) - { - // If Selector is cancelled, return to MAIN view - iContainer->DrawNow(); - return; - } - CPosLandmark* landmarkedi = NULL; - ExecuteLmEditorL(landmarkedi, *ilDb); - // Refresh - iContainer->DrawNow(); - delete ilDb; - break; - } - case ELmUiRefAppCmdMultiLmSelector: - { - if ( IsLmDbEmptyL() ) - { - // Display some Error Note here - iContainer->DrawNow(); - return; - } - - if ( LaunchMultiLandmarkSelectorDialogL() == 0 ) - { - // If Selector is cancelled, return to MAIN view - iContainer->DrawNow(); - return; - } - break; - } - case ELmUiRefAppCmdMultiCatSelector: - { - if ( IsLmDbEmptyL() ) - { - // Display some Error Note here - iContainer->DrawNow(); - return; - } - - if ( LaunchMultiCategorySelectorDialogL() == 0 ) - { - // If Selector is cancelled, return to MAIN view - iContainer->DrawNow(); - return; - } - break; - } - case ELmUiRefAppCmdSingleCatSelector: - { - if ( IsLmDbEmptyL() ) - { - // Display some Error Note here - iContainer->DrawNow(); - return; - } - - if ( LaunchSingleCategoeyDialogL() == 0 ) - { - // If Selector is cancelled, return to MAIN view - iContainer->DrawNow(); - return; - } - // Refresh view if needed - iContainer->DrawNow(); - delete ilDb; - break; - } - default: - break; - } - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::NewLmCmdL() -// -------------------------------------------------------------------------- -// -void CLmUiRefAppView::NewLmCmdL() - { - CPosLandmark* landmark = CPosLandmark::NewL(); - CleanupStack::PushL( landmark ); - CLmUiRefAppUi* lmUiAppUi = static_cast( ViewAppUi() ); - CPosLandmarkDatabase& iaDb = (lmUiAppUi->Document().LmDb()); - ExecuteLmEditorL( landmark, iaDb ); - CleanupStack::PopAndDestroy( landmark ); - } - -// ----------------------------------------------------------------------------- -// CLmUiRefAppView::ExecuteLmEditorL() -// ----------------------------------------------------------------------------- -void CLmUiRefAppView::ExecuteLmEditorL( - CPosLandmark* aLandmark, CPosLandmarkDatabase& aDb) - { - CLmkEditorDlg::TLmkEditorParams editParams; - editParams.iAttributes = LMK_PARAMS_DEFAULT; - editParams.iEditorMode = CLmkEditorDlg::ELmkEditor; - TPosLmItemId lmItem = SelectedItem(); - if (aLandmark) - { - CLmkEditorDlg *dlg = CLmkEditorDlg::NewL(aDb, *aLandmark, editParams); - dlg->ExecuteLD(); - } - else - { - CLmkEditorDlg *dlg = CLmkEditorDlg::NewL(aDb, lmItem, editParams); - dlg->ExecuteLD(); - } - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::DoActivateL -// -------------------------------------------------------------------------- -// -void CLmUiRefAppView::DoActivateL( - const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - if ( !iContainer ) - { - iContainer = CLmUiRefAppContainer::NewL(this, ClientRect() ); - AppUi()->AddToStackL( *this, iContainer ); - } - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::DoDeactivate -// -------------------------------------------------------------------------- -// -void CLmUiRefAppView::DoDeactivate() - { - if ( iContainer ) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - } - delete iContainer; - iContainer = NULL; - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::LaunchLandmarksDialogL() -// -------------------------------------------------------------------------- -// -TInt CLmUiRefAppView::LaunchLandmarksDialogL() - { - // Launch LMK Selector - iLmkSelectDlg = CLmkLandmarkSelectorDlg::NewL(); - iLmkSelectDlg->SetMopParent(this); - TLmkItemIdDbCombiInfo selItem; - TInt retVal = iLmkSelectDlg->ExecuteLD( selItem ); - if (retVal !=0) - { - iSelectedItem = selItem.GetItemId(); - ilDb = selItem.GetLmDb(); - } - return retVal; - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::ViewAppUi() -// -------------------------------------------------------------------------- -// -CAknViewAppUi* CLmUiRefAppView::ViewAppUi() - { - return static_cast( iAvkonAppUi ); - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::SelectedItem() -// -------------------------------------------------------------------------- -// -TPosLmItemId CLmUiRefAppView::SelectedItem() const - { - return iSelectedItem; - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::IsLmDbEmptyL() -// -------------------------------------------------------------------------- -// -TBool CLmUiRefAppView::IsLmDbEmptyL() - { - CPosLmItemIterator* itemIterator = NULL;CLmUiRefAppUi* lmUiAppUi = static_cast( ViewAppUi() ); - CPosLandmarkDatabase& iaDb = lmUiAppUi->Document().LmDb(); - - itemIterator = iaDb.LandmarkIteratorL(); - - CleanupStack::PushL(itemIterator); - itemIterator->Reset(); - TUint nrOfItems = itemIterator->NumOfItemsL(); - CleanupStack::PopAndDestroy(itemIterator); - if (nrOfItems == 0) - { - return ETrue; - } - return EFalse; - } - -// --------------------------------------------------------- -// CLmkByLmView::DynInitMenuPaneL -// --------------------------------------------------------- -// -void CLmUiRefAppView::DynInitMenuPaneL( - TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - switch ( aResourceId ) - { - case R_LMUIREFAPP_MENU1: - { - if (IsLmDbEmptyL()) - { - // Show NEW LM Menu Item - aMenuPane->SetItemDimmed( ELmUiRefAppCmdEditLm, ETrue ); - aMenuPane->SetItemDimmed( ELmUiRefAppCmdViewLm, ETrue ); - aMenuPane->SetItemDimmed( ELmUiRefAppCmdDeleteLm, ETrue ); - } - break; - } - default: - { - break; - } - } - } -// -------------------------------------------------------------------------- -// CLmUiRefAppView::LaunchMultiLandmarkSelectorDialogL() -// -------------------------------------------------------------------------- -// -TInt CLmUiRefAppView::LaunchMultiLandmarkSelectorDialogL() - { - // Launch LMK Selector - iLmkSelectDlg = CLmkLandmarkSelectorDlg::NewL(); - iLmkSelectDlg->SetMopParent(this); - RArray selItemArray; - TInt retVal = iLmkSelectDlg->ExecuteLD( selItemArray ); - TInt count = selItemArray.Count(); - if ( count > 0 ) - { - CPosLandmarkDatabase* pDb = selItemArray[0].GetLmDb(); - delete( pDb ); - } - selItemArray.Close(); - return retVal; - } - -//-------------------------------------------------------------------------- -// CLmUiRefAppView::LaunchLandmarksDialogL() -// -------------------------------------------------------------------------- -// -TInt CLmUiRefAppView::LaunchMultiCategorySelectorDialogL() - { - // Launch multiple Category Selector - iCategorySelectDlg = CLmkCategorySelectorDlg::NewL(); - iCategorySelectDlg->SetMopParent(this); - RArray selItemArray; - TInt retVal = iCategorySelectDlg->ExecuteLD( selItemArray ); - TInt count = selItemArray.Count(); - if ( count > 0 ) - { - CPosLandmarkDatabase* pDb = selItemArray[0].GetLmDb(); - delete( pDb ); - } - selItemArray.Close(); - return retVal; - } - -// -------------------------------------------------------------------------- -// CLmUiRefAppView::LaunchSingleCategoeyDialogL() -// -------------------------------------------------------------------------- -// -TInt CLmUiRefAppView::LaunchSingleCategoeyDialogL() - { - // Launch single category selector - iCategorySelectDlg = CLmkCategorySelectorDlg::NewL(); - iCategorySelectDlg->SetMopParent(this); - TLmkItemIdDbCombiInfo selItem; - TInt retVal = iCategorySelectDlg->ExecuteLD( selItem ); - if (retVal !=0) - { - iSelectedItem = selItem.GetItemId(); - ilDb = selItem.GetLmDb(); - } - return retVal; - } - - -// End of File