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

📄 addeditdialog.cpp

📁 mtk simulator v2 new source code
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				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 + -