📄 addeditdialog.cpp
字号:
}
}
}
}
return datalist;
}
}
void CAddEditDialog::SaveEditedDataSet(CData& dataset)
{
CString sMsgId, msgformat;
MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
UINT32 messageid = _ttoi(sMsgId);
cmessagemanager.SaveDataSetValues(messageid,dataset);
}
void CAddEditDialog::SaveNewDataSet(CData& dataset)
{
CString sMsgId, msgformat;
MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
CPtrList * ptr_to_outgoing_lst = cmessagemanager.m_plstOutGoingMsg;
COutgoingMessage * ptr_to_outgoing_msg;
UINT32 messageid = _ttoi(sMsgId);
//MsgIdCombo.ResetContent();
if(ptr_to_outgoing_lst)
{
if(ptr_to_outgoing_lst->GetCount())
{
for(POSITION pos = ptr_to_outgoing_lst->GetHeadPosition();pos!= NULL;)
{
ptr_to_outgoing_msg = (COutgoingMessage *) (ptr_to_outgoing_lst->GetNext (pos));
if(ptr_to_outgoing_msg->GetMessageId() == messageid)
{
msgformat = ptr_to_outgoing_msg->GetFormat();
}
}
}
//ptr_to_fmt_lst = cmessagemanager.m_pFormatList;
CFormat* FmtPtr;
if(cmessagemanager.m_pFormatList)
{
if(cmessagemanager.m_pFormatList->GetCount())
{
for(POSITION pos = cmessagemanager.m_pFormatList->GetHeadPosition();pos!= NULL;)
{
FmtPtr = (CFormat *) (cmessagemanager.m_pFormatList->GetAt (pos));
CString name = FmtPtr->GetName();
if(!msgformat.CompareNoCase((LPCTSTR)name))
{
CNWGCMLHandler gcmlHandler;
CDataList datalist = FmtPtr->GetDataList();
datalist.AddValue(dataset);
FmtPtr->SetDataList(datalist);//..AddValue(dataset);
cmessagemanager.m_pFormatList->SetAt(pos,FmtPtr);
gcmlHandler.SetDataSetInDom(dataset,datalist);
CGCMLGenerator generate_xml;
generate_xml.MakeGCML();
break;
}
cmessagemanager.m_pFormatList->GetNext(pos);
}
}
}
}
}
int CAddEditDialog::SaveTheDataSet()
{
int return_value = DataSetValidationRoutine();
if(return_value == 1) /*DataSet ready for save*/
{
CData DataSetToBeSaved;
if(MakeTheDataSet(DataSetToBeSaved))
{
CDataList datalist = GetDataListForMessageID();
if(NewDataSetNameEdit.IsWindowVisible())
{
SaveNewDataSet(DataSetToBeSaved);
}
else
SaveEditedDataSet(DataSetToBeSaved);
SetTheHasBeenEditedFlag(0); /*reset the edit flag*/
if(NewDataSetNameEdit.IsWindowVisible())
{
CString WindowText; /*need to refresh the DSIdCombo list*/
NewDataSetNameEdit.GetWindowText(WindowText);
DSIdCombo.EnableWindow(1); /*this is for the case in which we previously had no datasets and now
we have added one...*/
DSIdCombo.AddString(WindowText);
DefaultDataSetCombo.AddString(WindowText);
edit_sel_ds_descr.SetWindowText(DataSetToBeSaved.GetDescription());
NewDataSetNameEdit.ShowWindow(SW_HIDE);
NewDataSetDescrEdit.ShowWindow(SW_HIDE);
NewDataSetNameEdit.SetWindowText(_T(""));
NewDataSetDescrEdit.SetWindowText(_T(""));
static_new_ds_descr.ShowWindow(SW_HIDE);
static_new_ds_name.ShowWindow(SW_HIDE);
static_new_ds_desrc.ShowWindow(SW_HIDE);
SetWindowtextInCombo(DSIdCombo,WindowText);
}
return 1;
}
else
return 0;
}
else if(return_value == 2)
return 2;
else
return 0;
}
BOOL CAddEditDialog::MakeTheDataSet(CData& DataSetToBeSaved)
{
//CData DataSetToBeSaved;
CData dataobj;
CString WindowText;
CString WindowText1;
if(NewDataSetNameEdit.IsWindowVisible()) /*if new dataset*/
{
NewDataSetNameEdit.GetWindowText(WindowText);
if(DSIdCombo.GetCount())
{
for(int index = 0; index < DSIdCombo.GetCount(); index ++)
{
DSIdCombo.GetLBText(index,WindowText1);
if(!WindowText1.CompareNoCase(WindowText))
{
AfxMessageBox(IDS_STRING_DS_ALREADY_EXISTS);
return 0;
}
}
}
DataSetToBeSaved.SetName(WindowText);
NewDataSetDescrEdit.GetWindowText(WindowText1);
DataSetToBeSaved.SetDescription(WindowText1);
}
else
{ /*for old dataset*/
DSIdCombo.GetWindowText(WindowText);
DataSetToBeSaved.SetName(WindowText);
}
DataSetFreqCombo.GetWindowText(WindowText1);
DataSetToBeSaved.SetFrequency(_ttoi(WindowText1));
DataSetTimerCombo.GetWindowText(WindowText1);
DataSetToBeSaved.SetTimer(_ttoi(WindowText1));
/*CDataList datalist = GetDataListForMessageID();
CList<CData,CData&>& dataset_list_from_datalist = datalist.GetData();
for(POSITION pos = dataset_list_from_datalist.GetHeadPosition();pos!=NULL;)
{
dataobj = dataset_list_from_datalist.GetNext(pos);
if(dataobj.GetName().CompareNoCase(datalist.GetDefault()))
break;
}
CList<CValue,CValue&>& vallist = dataobj.GetValueList();*/
int item_no = datawindow.GetItemCount()-1;
for(;item_no>=0;item_no--)
//for(POSITION pos = vallist.GetHeadPosition(); item_no>=0;item_no--) /*common to new & old dataset*/
{
CValue val;//,val1;
//val1 = vallist.GetNext(pos);
val.SetName(datawindow.GetItemText(item_no,1));
val.SetSourceValue(datawindow.GetItemText(item_no,3));
/*val.SetSourceType(val1.GetSourceType());
val.SetValueSize(val1.GetValueSize());
val.SetCount(val1.GetCount());*/
DataSetToBeSaved.AddValue(val);
}
return 1;
}
void CAddEditDialog::OnCbnSelchangeFreqcomboPan()
{
CString stringID_to_string;
//chk for whether the datawindow has ne items
DataSetFreqCombo.GetWindowText(stringID_to_string);
if(!(CString(stringID_to_string)).CompareNoCase(_T("1")))
{
DataSetTimerCombo.EnableWindow(0);
DataSetTimerCombo.SetCurSel(0);
}
else
{
DataSetTimerCombo.EnableWindow(1);
DataSetTimerCombo.GetWindowText(stringID_to_string);
if(!(CString(stringID_to_string)).CompareNoCase(_T("0")))
{
DataSetTimerCombo.EnableWindow(1);
DataSetTimerCombo.SetCurSel(1);
}
}
if(datawindow.GetItemCount())
SetTheHasBeenEditedFlag(1);
// TODO: Add your control notification handler code here
}
void CAddEditDialog::OnCbnSelchangeTimecombo()
{
CString stringID_to_string;
DataSetTimerCombo.GetWindowText(stringID_to_string);
if(!(CString(stringID_to_string)).CompareNoCase(_T("0")))
{
//DataSetFreqCombo.GetWindowText(stringID_to_string);
//if(stringID_to_string.CompareNoCase(_T("1")))
AfxMessageBox(IDS_STRING_CANT_MAKE_FREQ_0);
DSIdCombo.GetWindowText(stringID_to_string);
if(!(CString(stringID_to_string)).CompareNoCase(_T("")))
DataSetTimerCombo.SetCurSel(1);
else
{
CString msg_combo_text;
MsgIdCombo.GetWindowText(msg_combo_text);
UINT32 val_of_timer_in_dataset = cmessagemanager.GetTimer(_ttoi(msg_combo_text),stringID_to_string);
if(val_of_timer_in_dataset > 0)
DataSetTimerCombo.SetCurSel(val_of_timer_in_dataset);
else
DataSetTimerCombo.SetCurSel(1);
}
}
//chk for whether the datawindow has ne items
if(datawindow.GetItemCount())
SetTheHasBeenEditedFlag(1);
// TODO: Add your control notification handler code here
}
/*********The handler for filling the dialog with the information it received from Search Dialog**********/
LRESULT CAddEditDialog::SetValuesInDialog(WPARAM MsgId,LPARAM Unused)
{
CPtrList * ptr_to_outgoing_msg_list = cmessagemanager.m_plstOutGoingMsg;
COutgoingMessage * ptr_to_outgoing_msg;
if(ptr_to_outgoing_msg_list)
{
if(ptr_to_outgoing_msg_list->GetCount())
{
for(POSITION pos = ptr_to_outgoing_msg_list->GetHeadPosition();pos!= NULL;)
{
ptr_to_outgoing_msg = (COutgoingMessage *) (ptr_to_outgoing_msg_list->GetNext (pos));
UINT32 outgoing_msgid = ptr_to_outgoing_msg->GetMessageId();
if(outgoing_msgid == MsgId)
{
//CNWGCMLHandler tempobj;
CPtrList *applst_ptr;
CApplication * App_ptr;
//applst_ptr = tempobj.GetApplicationList();
applst_ptr = cmessagemanager.m_pAppList;
if(applst_ptr)
{
if(applst_ptr->GetCount())
{
for(POSITION pos = applst_ptr->GetHeadPosition();pos!= NULL;)
{
App_ptr = (CApplication *) (applst_ptr->GetNext (pos));
if(App_ptr->GetAppId()==ptr_to_outgoing_msg->GetAppId())
{
//AppIdCombo.SetWindowText(CString(itoa(App_ptr->GetAppId(),buffer_for_str,10))+":"+ App_ptr->GetApplicationName());
SetWindowtextInCombo(AppIdCombo,CString(itoa(App_ptr->GetAppId(),buffer_for_str,10))+":"+ App_ptr->GetApplicationName());
CString window_text;
AppIdCombo.GetWindowText(window_text);
GetMessagesForApp(window_text);
for(int MsgIdComboIndex = 0;MsgIdComboIndex < MsgIdCombo.GetCount();MsgIdComboIndex++)
{
MsgIdCombo.GetLBText(MsgIdComboIndex,window_text);
if(ptr_to_outgoing_msg->GetMessageId()== _ttoi(window_text))
{
MsgIdCombo.SetCurSel(MsgIdComboIndex);
break;
}
}
SendButton.EnableWindow(0);
MsgIdCombo.GetWindowText(window_text);
GetDataSetsForMsg(window_text);
}
}
}
}
}
}
}
}
MsgIdCombo.SetFocus();
return 1;
}
void CAddEditDialog::SetWindowtextInCombo(CComboBox& combo_box,CString string_to_be_shown)
{
CString item_text;
int x = combo_box.GetCount();
for(int ComboIndex = 0;ComboIndex < combo_box.GetCount();ComboIndex++)
{
combo_box.GetLBText(ComboIndex,item_text);
if(!string_to_be_shown.CompareNoCase(item_text))
{
combo_box.SetCurSel(ComboIndex);
break;
}
}
}
void CAddEditDialog::SendEventMessageWithDataSet(CMessage * message_to_be_sent, CData dataset_to_be_sent)
{
UINT32 iSize = 0;
MYQUEUE stMsgQueue;// = (MYQUEUE *)malloc(sizeof(MYQUEUE));
//MYQUEUE stMsgQueue;
void *pData = NULL;
if(dataset_to_be_sent.GetFrequency() == 1)
{
CFormat * format_for_msg_to_be_sent =cmessagemanager.GetFormatForMessage(message_to_be_sent);
CList<CVar,CVar&>& varlist_for_msg_to_be_sent = format_for_msg_to_be_sent->GetVarList();
pData = cmessagemanager.GetBufferForSocket(message_to_be_sent,dataset_to_be_sent,varlist_for_msg_to_be_sent,&iSize);
if(pData!=NULL)
{
stMsgQueue.oslSrcId = MOD_L4C;
stMsgQueue.oslDestId = PRT_EVENT;
stMsgQueue.oslMsgId = message_to_be_sent->GetMessageId();
stMsgQueue.oslDataPtr = pData;
stMsgQueue.oslPeerBuffPtr = NULL;
myNSRThread->WriteToSocket(&stMsgQueue);
}
else
AMLOGINFO(_T("Memory NULL Buffer error for Outgoing Message"));
}
else
{
//UINT32 timer= cmessagemanager.GetTimer (message_to_be_sent->GetMessageId(),dataset_to_be_sent.GetName());
SendMessageDetails *messagedetailpacket;
messagedetailpacket = (SendMessageDetails*) malloc(sizeof(SendMessageDetails));
messagedetailpacket->clMessage = message_to_be_sent;
messagedetailpacket->Freq = dataset_to_be_sent.GetFrequency()-1;
messagedetailpacket->Timer = dataset_to_be_sent.GetTimer();
messagedetailpacket->TimerId = NULL;
messagedetailpacket->strDataList = "-1";
messagedetailpacket->dataset = new CData();
*(messagedetailpacket->dataset) = dataset_to_be_sent;
if(Is_Coming_From == MAIN)
GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,0,(LPARAM)messagedetailpacket);
else
GetParent()->GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,0,(LPARAM)messagedetailpacket);
}
}
void CAddEditDialog::SendMessageFreq(CMessage *clMessage,CData* dataset)
{
UINT32 iSize = 0;
MYQUEUE stMsgQueue;
void *pData = NULL;
CFormat * format_for_msg_to_be_sent =cmessagemanager.GetFormatForMessage(clMessage);
CList<CVar,CVar&>& varlist_for_msg_to_be_sent = format_for_msg_to_be_sent->GetVarList();
pData = cmessagemanager.GetBufferForSocket(clMessage,*dataset,varlist_for_msg_to_be_sent,&iSize);
if(pData!=NULL)
{
stMsgQueue.oslSrcId = MOD_L4C;
stMsgQueue.oslDestId = PRT_EVENT;
stMsgQueue.oslMsgId = clMessage->GetMessageId();
stMsgQueue.oslDataPtr = pData;
stMsgQueue.oslPeerBuffPtr = NULL;
myNSRThread->WriteToSocket(&stMsgQueue);
}
else
AMLOGINFO(_T("Memory NULL Buffer error for Outgoing Message"));
}
void CAddEditDialog::OnCbnSelendokDefcomboPan()
{
set_msg_attrib_flag = 1;
SaveButton.EnableWindow(1);
SaveSendButton.EnableWindow(1);
// TODO: Add your control notification handler code here
}
void CAddEditDialog::OnCbnSelendokComboInputMode()
{
set_msg_attrib_flag = 1;
SaveButton.EnableWindow(1);
SaveSendButton.EnableWindow(1);
// TODO: Add your control notification handler code here
}
void CAddEditDialog::OnCbnSelendcancelAppcomboPan()
{
if(combo_refresh_flag)
{
O
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -