📄 addeditdialog.cpp
字号:
static_new_ds_name.ShowWindow(SW_HIDE);
static_new_ds_desrc.ShowWindow(SW_HIDE);
int datawindow_item_cnt = datawindow.GetItemCount();
for(int i=0;i<datawindow_item_cnt;i++)
{
datawindow.SetItemText(i,3,_T(""));
}
SetTheHasBeenEditedFlag(0);
if(set_msg_attrib_flag)
{
SaveButton.EnableWindow(1);
SaveSendButton.EnableWindow(1);
}
CString window_text,stringID_to_string;
MsgIdCombo.GetWindowText(stringID_to_string);
CMessage * current_msg = cmessagemanager.LocateMessageInList(cmessagemanager.m_plstOutGoingMsg,_ttoi(stringID_to_string));
CFormat * current_fmt = cmessagemanager.GetFormatForMessage(current_msg);
CDataList current_datalist = current_fmt->GetDataList();
CString def_ds_name = current_datalist.GetDefault();
if(DSIdCombo.GetCount())
{
if(def_ds_name.CompareNoCase(_T("")) && def_ds_name.CompareNoCase(_T("NULL")))
{
//added by PANKAJ for the case user doesnot select anything in the dropdown...we have something to display...
for(int DSIdComboIndex = 0;DSIdComboIndex < DSIdCombo.GetCount();DSIdComboIndex++)
{
DSIdCombo.GetLBText(DSIdComboIndex,window_text);
if(!window_text.CompareNoCase(def_ds_name))
{
DSIdCombo.SetCurSel(DSIdComboIndex);
break;
}
}
OnCbnSelendokDscomboPan();
}
else
{
DSIdCombo.SetCurSel(1);
}
return 0;
}
/*else
{ //the case when we don't have ne dataset for the msg...disable evrythin....
DataSetFreqCombo.SetCurSel(-1);
DataSetFreqCombo.EnableWindow(0);
DataSetTimerCombo.SetCurSel(-1);
DataSetTimerCombo.EnableWindow(0);
datawindow.EnableWindow(0);
}*/
}
}
}
void CAddEditDialog::OnCbnDropdownMsgcomboPan()
{
DropDownForMsgOrAppCombo();
// TODO: Add your control notification handler code here
}
void CAddEditDialog::OnBnClickedButtonSavePan()
{
if(set_msg_attrib_flag)
{
CString default_ds_name,messageid,stringID_to_string;
DefaultDataSetCombo.GetWindowText(default_ds_name);
InputModeCombo.GetWindowText(stringID_to_string);
MsgIdCombo.GetWindowText(messageid);
cmessagemanager.SaveMessageAttributes(_ttoi(messageid),default_ds_name,stringID_to_string);
AfxMessageBox(IDS_STRING_MSG_SAVED);
set_msg_attrib_flag = 0;
}
if(datawindow.IsWindowEnabled())
{
int return_val = SaveTheDataSet();
if(return_val == 1)
AfxMessageBox(IDS_STRING_SAVED_DATASET_INDICATION);
else if(return_val == 2)
{
SaveButton.EnableWindow(0);
close_button.SetFocus();
SaveSendButton.EnableWindow(0);
}
}
else
{
SaveButton.EnableWindow(0);
SaveSendButton.EnableWindow(0);
}
}
int CAddEditDialog::DataSetValidationRoutine()
{
if(NewDataSetNameEdit.IsWindowVisible())
{
if(NewDataSetNameEdit.GetWindowTextLength()&& NewDataSetDescrEdit.GetWindowTextLength())
{
CString new_ds_name;
CString new_ds_descr;
NewDataSetNameEdit.GetWindowText(new_ds_name);
if(new_ds_name.Find(' ',0)!= -1)
{
AfxMessageBox(IDS_STRING_NAME_CANT_HAVE_SPACE);
return 0;
}
NewDataSetDescrEdit.GetWindowText(new_ds_descr);
if(!(DataSetFreqCombo.GetWindowTextLength() && DataSetTimerCombo.GetWindowTextLength()))
{
return (AskForDefaultValueUse());
}
for(int item_no =0; item_no< datawindow.GetItemCount();item_no++)
{
if(!(datawindow.GetItemText(item_no,3).GetLength()))
return (AskForDefaultValueUse());
}
return 1;
}
else
{
AfxMessageBox(IDS_STRING_NO_NAME_AND_DESCR);
return 0;
}
}
else if(has_been_edited)
{
if(!(DataSetFreqCombo.GetWindowTextLength() && DataSetTimerCombo.GetWindowTextLength()))
{
return (AskForDefaultValueUse());
}
for(int item_no =0; item_no< datawindow.GetItemCount();item_no++)
{
if(!(datawindow.GetItemText(item_no,3).GetLength()))
return (AskForDefaultValueUse());
}
return 1;
}
else
{
return 2;
}
//return 0;
}
int CAddEditDialog::AskForDefaultValueUse()
{
if(IDYES == AfxMessageBox(IDS_STRING_ASK_FOR_DEFAULT_VAL_USE,MB_YESNO))
{
CDataList datalist_for_msg = GetDataListForMessageID();
CList<CData,CData&>& dataset_list = datalist_for_msg.GetData();
CData dataset;
if(dataset_list.GetCount())
{
for(POSITION pos = dataset_list.GetHeadPosition();pos!=NULL;)
{
dataset = dataset_list.GetNext(pos);
if(!dataset.GetName().CompareNoCase(datalist_for_msg.GetDefault()))
{
CList<CValue,CValue&>& dataset_value_list = dataset.GetValueList();
int index = datawindow.GetItemCount() -1 ;
for(POSITION pos = dataset_value_list.GetHeadPosition(); index >= 0; index--)
{
CValue value = dataset_value_list.GetNext(pos);
if(!datawindow.GetItemText(index,3).CompareNoCase(_T("")))
datawindow.SetItemText(index,3,value.GetSourceValue());
}
/*if(!DataSetFreqCombo.GetWindowTextLength())
SetWindowtextInCombo(DataSetFreqCombo,CString(itoa(dataset.GetFrequency(),buffer_for_str,10)));
//DataSetFreqCombo.SetWindowText(CString(itoa(dataset.GetFrequency(),buffer_for_str,10)));
if(!DataSetTimerCombo.GetWindowTextLength())
SetWindowtextInCombo(DataSetTimerCombo,CString(itoa(dataset.GetTimer(),buffer_for_str,10)));
//DataSetTimerCombo.SetWindowText(CString(itoa(dataset.GetTimer(),buffer_for_str,10)));*/
SetTheHasBeenEditedFlag(1);
return 1;
}
}
AfxMessageBox(IDS_STRING_NO_DEFAULT);
return 0;
}
else
{
AfxMessageBox(IDS_STRING_NO_DEFAULT);
return 0;
}
}
else
{
//AfxMessageBox(IDS_STRING_IMCMPLT_DATASET_INFO);
return 0;
}
}
void CAddEditDialog::OnCbnDropdownAppcomboPan()
{
DropDownForMsgOrAppCombo();
// TODO: Add your control notification handler code here
}
void CAddEditDialog::OnBnClickedButtonSavesendDataset()
{
CString stringID_to_string;
if(set_msg_attrib_flag)
{
CString default_ds_name,messageid;
DefaultDataSetCombo.GetWindowText(default_ds_name);
InputModeCombo.GetWindowText(stringID_to_string);
MsgIdCombo.GetWindowText(messageid);
cmessagemanager.SaveMessageAttributes(_ttoi(messageid),default_ds_name,stringID_to_string);
AfxMessageBox(IDS_STRING_MSG_SAVED);
set_msg_attrib_flag = 0;
}
CMessageManager InorderToSendMessage;
if(datawindow.IsWindowEnabled())
{
int return_val = SaveTheDataSet();
if(return_val)
{
CString sMsgId, msgformat;
MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
CPtrList * ptr_outgoing_list = cmessagemanager.m_plstOutGoingMsg;
COutgoingMessage * ptr_to_outgoing_msg;
UINT32 messageid = _ttoi(sMsgId);
CString datasetname;
if(ptr_outgoing_list)
{
if(ptr_outgoing_list->GetCount())
{
for(POSITION pos = ptr_outgoing_list->GetHeadPosition();pos!= NULL;)
{
ptr_to_outgoing_msg = (COutgoingMessage *) (ptr_outgoing_list->GetNext (pos));
if(ptr_to_outgoing_msg->GetMessageId() == messageid)
{
break;
}
}
}
DSIdCombo.GetWindowText(datasetname);
if(Is_Coming_From == MAIN)
GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,(LPARAM)ptr_to_outgoing_msg,(WPARAM)&datasetname);
else
GetParent()->GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,(LPARAM)ptr_to_outgoing_msg,(WPARAM)&datasetname);
AfxMessageBox(IDS_STRING_SAVED_AND_SENT_MESSAGE_INDICATION);
}
}
if(return_val ==2)
{ //routine...
SaveButton.EnableWindow(0);
SaveSendButton.EnableWindow(0);
}
}
else //this is the case when we don't have disabling of buttons happening in the save
{ //routine...
SaveButton.EnableWindow(0);
SaveSendButton.EnableWindow(0);
}
/*else
AfxMessageBox(IDS_STRING_IMCMPLT_DATASET_INFO);*/
// TODO: Add your control notification handler code here
}
int CAddEditDialog::AreThereValuesInTheDataSet()
{
for(int item_no =0; item_no< datawindow.GetItemCount();item_no++)
{
if((datawindow.GetItemText(item_no,3).GetLength()))
return 1;
}
return 0;
}
void CAddEditDialog::OnBnClickedButtonSendDataset()
{
CString sMsgId, msgformat;
CData dataset_to_be_sent_in_edit_case;
MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
CPtrList * ptr_to_outgoing_msg_list = cmessagemanager.m_plstOutGoingMsg;
COutgoingMessage * ptr_to_outgoing_msg;
UINT32 messageid = _ttoi(sMsgId);
CString datasetname;
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));
if(ptr_to_outgoing_msg->GetMessageId() == messageid)
{
if(ptr_to_outgoing_msg->GetPluginName().CompareNoCase(_T("")))
{
if(Is_Coming_From == MAIN)
GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,(WPARAM)ptr_to_outgoing_msg,0);
else
GetParent()->GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,(WPARAM)ptr_to_outgoing_msg,0);
return;
}
DSIdCombo.GetWindowText(datasetname);
CMessageManager InorderToSendMessage;
int return_value = DataSetValidationRoutine();
if(return_value == 2)
{
if(Is_Coming_From == MAIN)
GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,(LPARAM)ptr_to_outgoing_msg,(WPARAM)&datasetname);
else
GetParent()->GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,(LPARAM)ptr_to_outgoing_msg,(WPARAM)&datasetname);
//InorderToSendMessage.SendEventMessageToMMI(ptr_to_outgoing_msg,datasetname.GetString());
AfxMessageBox(IDS_STRING_SENT_MESSAGE_INDICATION);
return;
}
else if(return_value ==1 )
{
if(MakeTheDataSet(dataset_to_be_sent_in_edit_case))
{
SendEventMessageWithDataSet(ptr_to_outgoing_msg,dataset_to_be_sent_in_edit_case);
AfxMessageBox(IDS_STRING_SENT_MESSAGE_INDICATION);
return;
}
}
else
return;
}
}
}
return;
}
return;
/*else
AfxMessageBox(IDS_STRING_IMCMPLT_DATASET_INFO);*/ //commented by Pankaj for the msg has already been printed in the askdefault function
// TODO: Add your control notification handler code here
}
void CAddEditDialog::SetTheHasBeenEditedFlag(BOOL val)
{
has_been_edited = val;
if(val)
{
SaveButton.EnableWindow(1);
SaveSendButton.EnableWindow(1);
SendButton.EnableWindow(1);
}
else
{
SaveButton.EnableWindow(0);
SaveSendButton.EnableWindow(0);
}
}
CDataList CAddEditDialog:: GetDataListForMessageID()
{
CString sMsgId, msgformat;
MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
CPtrList * ptr_to_outgoing_lst = cmessagemanager.m_plstOutGoingMsg;
CPtrList * ptr_to_fmt_lst;
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;
CDataList datalist;
if(ptr_to_fmt_lst)
{
if(ptr_to_fmt_lst->GetCount())
{
for(POSITION pos = ptr_to_fmt_lst->GetHeadPosition();pos!= NULL;)
{
FmtPtr = (CFormat *) (ptr_to_fmt_lst->GetNext (pos));
CString name = FmtPtr->GetName();
if(!msgformat.CompareNoCase((LPCTSTR)name))
{
datalist = FmtPtr->GetDataList();
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -