📄 bookdisplayview.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 + -