--- 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 <e32def.h>
-#include <avkon.hrh>
-#include <aknViewAppUi.h>
-#include <AknsUtils.h>
-#include <StringLoader.h>
-#include <aknnotewrappers.h>
-#include <eikmenup.h>
-#include <EPos_CPosLandmarkDatabase.h>
-#include <lmuirefapp.rsg>
-#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<CLmUiRefAppUi*>( 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<CAknViewAppUi*>( iAvkonAppUi );
- }
-
-// --------------------------------------------------------------------------
-// CLmUiRefAppView::SelectedItem()
-// --------------------------------------------------------------------------
-//
-TPosLmItemId CLmUiRefAppView::SelectedItem() const
- {
- return iSelectedItem;
- }
-
-// --------------------------------------------------------------------------
-// CLmUiRefAppView::IsLmDbEmptyL()
-// --------------------------------------------------------------------------
-//
-TBool CLmUiRefAppView::IsLmDbEmptyL()
- {
- CPosLmItemIterator* itemIterator = NULL;CLmUiRefAppUi* lmUiAppUi = static_cast<CLmUiRefAppUi*>( 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<TLmkItemIdDbCombiInfo> 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<TLmkItemIdDbCombiInfo> 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