⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookdisplayview.cpp

📁 symbian 2rd 备忘录
💻 CPP
字号:
/* Copyright (c) 2007, Nokia. All rights reserved */
#include <gulicon.h>
#include <eikseced.h>
#include <eikccpu.h>
#include <coemain.h>
#include <aknnotewrappers.h>
#include <eikspane.h>
#include <akntitle.h> 
#include <akncontext.h>

#include "BookDisplayView.h"
#include "BookDisplayContainer.h"
#include "AssistantAppUi.h"
#include "Assistant.rsg"
#include "Assistant.hrh"

CBookDisplayView* CBookDisplayView::NewL()
{
    CBookDisplayView* self = NewLC();
    CleanupStack::Pop(self);
    return self;
}

CBookDisplayView* CBookDisplayView::NewLC()
{
    CBookDisplayView* self = new (ELeave) CBookDisplayView();
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
}

void CBookDisplayView::ConstructL()
{
	BaseConstructL(R_ASSISTANT_BOOK_DISPLAY);
}


CBookDisplayView::CBookDisplayView()
{
	m_pAppContainer = NULL;
	m_pBookDataTransmit = NULL;
	m_pMessageDataTransmit = NULL;
	m_pHelpStatus = NULL;
	m_pBookInfoArray = NULL;
	m_Status = EAssistantStatusMain;
}


CBookDisplayView::~CBookDisplayView()
{
}

TUid CBookDisplayView::Id() const
{
	return TUid::Uid(10);
}

void CBookDisplayView::HandleCommandL(TInt aCommand)
{
	m_nIndex = m_pAppContainer->GetIndex();
	switch (aCommand)
	{
	case EAssistantOpen:
		{
			m_Status = EAssistantStatusOpen;
			m_pBookDataTransmit->SetStatus(m_Status);
			if (-1 != m_nIndex)
			{
			m_pBookDataTransmit->SetData((*m_pBookInfoArray)[m_nIndex]);
			AppUi()->ActivateLocalViewL(TUid::Uid(11));
			}
		}
		break;
	case EAssistantWrite:
		{
			CBookInfo* bookInfo = (*m_pBookInfoArray)[m_nIndex];
			
			m_pMessageDataTransmit->SetMobile(bookInfo->GetTelephone()->Des());
			AppUi()->ActivateLocalViewL(TUid::Uid(9));
		}
		break;
	case EAssistantNew:
		{
			m_Status = EAssistantStatusNew;
			m_pBookDataTransmit->SetStatus(m_Status);
			AppUi()->ActivateLocalViewL(TUid::Uid(11));
		}
		
		break;
	case EAssistantModify:
		{
			m_Status = EAssistantStatusModify;
			m_pBookDataTransmit->SetStatus(m_Status);
			if (-1 != m_nIndex)
			{
			m_pBookDataTransmit->SetData((*m_pBookInfoArray)[m_nIndex]);
			AppUi()->ActivateLocalViewL(TUid::Uid(11));
			}
		}
		break;
	case EAssistantDelete:
		{
			TBuf<32> sTmpTitle;
			CAknNoteDialog* note = new (ELeave) CAknNoteDialog;
			note->PrepareLC(R_DELETE_MESSAGE_NOTE);
			CEikonEnv::Static()->ReadResource(sTmpTitle,  R_QTN_ASSISTANT_DELETE_THIS);
			note->SetTextL(sTmpTitle);
			if(note->RunLD())
			{
				m_pAppContainer->DelInfoFromList(m_nIndex);
				m_pBookManage->Delete((*m_pBookInfoArray)[m_nIndex]->GetItemId());	
				m_pBookInfoArray->ResetAndDestroy();
				m_pBookManage->GetBookInfo(*m_pBookInfoArray);
			}				
		}
		break;
	case EAssistantUpdata:
		{
			m_Status = EAssistantStatusUpdata;
			m_pBookManage->Upload();
		}
		break;
	case EAssistantDowndata:
		{
			m_Status = EAssistantStatusDowndata;
			m_pBookManage->DownLoad();
		}
		break;
	case EAssistantHelp:
		{
			m_pHelpStatus->SetStatus(EAssistantStatusBook);
		//	AppUi()->ActivateLocalViewL(TUid::Uid(4));
		}
		break;
	case EAssistantOk:
		{
			m_pMessageDataTransmit->SetMobile((*m_pBookInfoArray)[m_nIndex]->GetTelephone()->Des());
			m_Status = EAssistantStatusMain;
			AppUi()->ActivateLocalViewL(TUid::Uid(9));
		}
		break;
	case EAssistantExit:
		AppUi()->ActivateLocalViewL(TUid::Uid(3));
		break;
	case EAssistantBack:
		AppUi()->ActivateLocalViewL(TUid::Uid(3));
		break;
	case EAssistantCancel:
		{
			m_Status = EAssistantStatusMain;
			AppUi()->ActivateLocalViewL(TUid::Uid(9));
		}
		break;
	default:
		break;
		
	}
}

void CBookDisplayView::HandleClientRectChange()
{
	if(m_pAppContainer)
	{
		m_pAppContainer->SetRect(ClientRect());
	}
}

void CBookDisplayView::DoActivateL(const TVwsViewId&, TUid, const TDesC8&)
{
	m_pAppContainer = new( ELeave ) CBookDisplayContainer();
	m_pAppContainer->SetMopParent(this);
	TRect rc;
	rc.SetRect(ClientRect().iTl, TSize(176, 144));
	m_pAppContainer->ConstructL( rc );	
	AppUi()->AddToStackL( *this, m_pAppContainer );
	
	CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
	
	
	CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
	CFbsBitmap* pIcon = pApp->LoadGraphicsL1(2);
	CFbsBitmap* pMask = pApp->LoadGraphicsL1(30);
	CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
	contextPane->SetPicture(pIcon,pMask);
	
	//Set View Title
	TBuf<32> sTmpTitle;
	CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_BOOK);
	CAknTitlePane* tp=(CAknTitlePane*)sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
	tp->SetTextL(sTmpTitle);
	
	m_pBookInfoArray = new(ELeave) RPointerArray<CBookInfo>(10);
	m_pBookManage->GetBookInfo(*m_pBookInfoArray);

	CBookInfo* bookInfo = m_pBookDataTransmit->GetData();
	if(bookInfo)
	{
		CBookInfo* pBookInfo;
		m_pBookDataTransmit->GetStatus(m_Status);
		if(m_Status == EAssistantStatusDelete)
		{			
			m_pBookManage->Delete((*m_pBookInfoArray)[m_nIndex]->GetItemId());
			delete (*m_pBookInfoArray)[m_nIndex];
			m_pBookInfoArray->Remove(m_nIndex);
		}
		else if(m_Status == EAssistantStatusWrite)
		{
			CBookInfo* bookInfo = (*m_pBookInfoArray)[m_nIndex];
			
			m_pMessageDataTransmit->SetMobile(bookInfo->GetTelephone()->Des());
			AppUi()->ActivateLocalViewL(TUid::Uid(9));				
		}
		else
		{
			if(m_Status == EAssistantStatusNew)
			{
				pBookInfo = CBookInfo::NewL();
				pBookInfo->SetItemId(-1);
				m_pBookInfoArray->Append(pBookInfo);
			}
			else 
			{
				pBookInfo = (*m_pBookInfoArray)[m_nIndex];
			}
			pBookInfo->SetLastName(bookInfo->GetLastName()->Des());
			pBookInfo->SetFirstName(bookInfo->GetFirstName()->Des());
			pBookInfo->SetTelephone(bookInfo->GetTelephone()->Des());
			pBookInfo->SetEmail(bookInfo->GetEmail()->Des());
			pBookInfo->SetCompany(bookInfo->GetCompany()->Des());
			pBookInfo->SetAddress(bookInfo->GetAddress()->Des());
			
		}
		
 		m_pBookManage->Update(*m_pBookInfoArray);
  		m_pBookInfoArray->ResetAndDestroy();
  		m_pBookManage->GetBookInfo(*m_pBookInfoArray);
	}		
	else if(m_Status == EAssistantStatusMessage)
	{
		this->Cba()->SetCommandSetL(R_CBA_OK_CANCEL);
		this->Cba()->DrawNow();
	}
	else
	{
		this->Cba()->SetCommandSetL(R_CBA_OPTION);
		this->Cba()->DrawNow();
	}
	for(TInt i = 0; i < m_pBookInfoArray->Count(); i++)
	{
		m_pAppContainer->AddInfoToList((*m_pBookInfoArray)[i]);
	}	
}

void CBookDisplayView::DoDeactivate()
{
	if(m_pAppContainer)
	{
		AppUi()->RemoveFromStack( m_pAppContainer );
		delete m_pAppContainer;
	}
	m_pBookInfoArray->ResetAndDestroy();
	MEMORY_FREE(m_pBookInfoArray);
}
void CBookDisplayView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
{
	if(aResourceId != R_ASSISTANT_BOOK_DISPLAY_MENU) 
		        return;
	if(m_pBookInfoArray->Count() == 0)
	{
		//aMenuPane->SetItemDimmed(EAssistantOpen,ETrue);
		//aMenuPane->SetItemDimmed(EAssistantWrite,ETrue);
		aMenuPane->SetItemDimmed(EAssistantModify,ETrue);
		aMenuPane->SetItemDimmed(EAssistantDelete,ETrue);
		aMenuPane->SetItemDimmed(EAssistantUpdata,ETrue);
	}
}
void CBookDisplayView::SetBookDataTransmitPtr(MBookDataTransmit* aPtr)
{
	m_pBookDataTransmit = aPtr;
}

void CBookDisplayView::SetHelpStatusPtr(MStatus* aPtr)
{
	m_pHelpStatus = aPtr;
}
void CBookDisplayView::SetMessageDataTransmitPtr(MMessageDataTransmit* aPtr)
{
	m_pMessageDataTransmit = aPtr;
}
void CBookDisplayView::SetHTTPManagePtr(CHTTPManage* aPtr)
{
	m_pBookManage = aPtr;
}
void CBookDisplayView::SetStatus(TInt aStatus)
{
	m_Status = aStatus;
}
void CBookDisplayView::Action(TBool aFlag)
{
	if(m_Status == EAssistantStatusUpdata)
	{
		if(aFlag)
		{
			TBuf<32> sTmpTitle;
			CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_UP_SUCCESS);
			CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
			informationNote->ExecuteLD(sTmpTitle);
		}
		else
		{
			TBuf<32> sTmpTitle;
			CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_LOGIN_FAIL);
			CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
			informationNote->ExecuteLD(sTmpTitle);
		}
	}
	else
	{
		TBuf<32> sTmpTitle;
		CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_DOWN_SUCCESS);
		CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
		informationNote->ExecuteLD(sTmpTitle);
		
		m_pBookInfoArray->ResetAndDestroy();
		m_pBookManage->GetBookInfo(*m_pBookInfoArray);
		
		for(TInt i = 0; i < m_pBookInfoArray->Count(); i++)
		{
			m_pAppContainer->AddInfoToList((*m_pBookInfoArray)[i]);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -