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

📄 addeditdialog.cpp

📁 mtk simulator v2 new source code
💻 CPP
📖 第 1 页 / 共 5 页
字号:
}


int CAddEditDialog::ConvertToNumber(LPWSTR newstring, unsigned long *sum)
{
	  LPWSTR copyofnewstring = newstring;
	 int counter=0;
	  *sum = 0;
	  while(*copyofnewstring!='\0')
	  {
		  if((*copyofnewstring>='0' && *copyofnewstring<='9')&& counter <10)
		  {
			  int numericval;
			  numericval = (*copyofnewstring -48);
			  (*sum) = ((*sum)*10) + numericval;
			  copyofnewstring++;
			  counter++;
		  }
		  else
			  break;
	  }

	  if(*copyofnewstring == '\0')
		  return(-1);
	  else if(counter ==10)
	  {
          OutPutMessage(TooLongAValue,newstring);
		  return(TooLongAValue);
	  }
	  else 
	  {
		  OutPutMessage(ImproperInput,newstring);
          return(ImproperInput);
	  }



}

void CAddEditDialog::OutPutMessage(Error_Type type_of_error,LPWSTR newstring)
{
	CString MessageToBeDisplayed ;
   switch(type_of_error)
   {
   case TooLongAValue:
	   AfxFormatString1(MessageToBeDisplayed,IDS_STRING_LONG_VAL_INDICATION,(const U16*)newstring);
	   AfxMessageBox(MessageToBeDisplayed);
	   break;
   case ImproperInput:
       AfxFormatString1(MessageToBeDisplayed,IDS_STRING_IMPROPER_VAL_INDICATION,(const U16*)newstring);
	   AfxMessageBox(MessageToBeDisplayed);
	   //AfxMessageBox(s);
	   break;
   }
}

void CAddEditDialog::OnCbnSelendokAppcomboPan()
{
	CString window_text;
	AppIdCombo.GetLBText(AppIdCombo.GetCurSel(),window_text);
	SendButton.EnableWindow(0);
	GetMessagesForApp(window_text);
	MsgIdCombo.SetCurSel(0);
	NewDataSetButton.EnableWindow(0); 
	MsgIdCombo.GetWindowText(window_text);
	GetDataSetsForMsg(window_text);
	combo_refresh_flag = 0;


	// TODO: Add your control notification handler code here
}


void CAddEditDialog::GetMessagesForApp(CString AppName)
{
	CMessageManager obj_for_temp_use;
	MsgIdCombo.ResetContent();
	DSIdCombo.ResetContent();
	datawindow.DeleteAllItems();
	CString message_name;
	CList<CString,CString&>* message_list = obj_for_temp_use.GetMessageListForApp(AppName);
	if(message_list->GetCount())
		{
		for(POSITION pos =  message_list->GetHeadPosition();pos!= NULL;)
			{
   			message_name = (CString) (message_list->GetNext (pos));
			MsgIdCombo.AddString(message_name);
	}
}
}

void CAddEditDialog::GetDataSetsForMsg(CString window_text)
{
	/*The control resetting part for filling them afresh.....*/
	CString stringID_string;
	DSIdCombo.ResetContent();
	datawindow.DeleteAllItems();
	DefaultDataSetCombo.ResetContent();
	InputModeCombo.SetCurSel(-1);
	stringID_string.LoadString(IDS_STRING_NO_DEFAULT_DS);
	DefaultDataSetCombo.AddString(stringID_string); 
	DefaultDataSetCombo.SetCurSel(0);
	edit_sel_ds_descr.SetWindowText(_T(""));

	//to enable the controls...which were disabled in case of no datasets....
	DataSetFreqCombo.EnableWindow(1);
	DataSetTimerCombo.EnableWindow(1);
	datawindow.EnableWindow(1);
	

	CPtrList * ptr_to_outgoing_lst = cmessagemanager.m_plstOutGoingMsg;
	CString msgformat = "";
	COutgoingMessage * ptr_to_outgoing_msg;
	CPtrList * ptr_fmt_lst;
	UINT32 messageid = _ttoi(window_text);
	DataSetFreqCombo.EnableWindow(1);   //enabling the combos so that if the message has dataset they should be enabled
	DataSetTimerCombo.EnableWindow(1);  //they are disabled only if the msg is using plugin....
	DSIdCombo.EnableWindow(1);			//should be enbled in case previous msg selected was which did not have datasets

	DefaultDataSetCombo.EnableWindow(1);
	InputModeCombo.EnableWindow(1);
	if(messageid == 0)
		return;
	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();
				break;
			}
		}
	}
		if(!msgformat.CompareNoCase(_T("NULL")))
		{
			SendButton.EnableWindow(1);  //enabled bcos there is plugin so we can send
			NewDataSetButton.EnableWindow(0);//since it is plugin case we can't add a dataset...
			DataSetFreqCombo.EnableWindow(0);//disable these combos for the msg uses plugin
			DataSetTimerCombo.EnableWindow(0);
			DataSetTimerCombo.SetCurSel(-1);
			DataSetFreqCombo.SetCurSel(-1);
			DefaultDataSetCombo.EnableWindow(0);
			InputModeCombo.EnableWindow(0);
			DefaultDataSetCombo.ResetContent();
			LoadString(library_identifier,IDS_STRING_MESSAGE_WITH_PLUGIN, stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
			DSIdCombo.AddString(stringID_to_string);
			DefaultDataSetCombo.AddString(stringID_to_string);
			DefaultDataSetCombo.SetCurSel(0);
			DSIdCombo.EnableWindow(0);
			DSIdCombo.SetCurSel(0);
			return;
		}
	ptr_fmt_lst = cmessagemanager.m_pFormatList;
	
	CFormat* FmtPtr;
	CDataList datalist;
		if(ptr_fmt_lst)
		{
	if(ptr_fmt_lst->GetCount())
	{
		for(POSITION pos =  ptr_fmt_lst->GetHeadPosition();pos!= NULL;)
		{
    		FmtPtr = (CFormat *) (ptr_fmt_lst->GetNext (pos));
			CString name = FmtPtr->GetName();
			if(!msgformat.CompareNoCase((LPCTSTR)name))
			{
				datalist = FmtPtr->GetDataList();
				break;
			}
		}
	}
	if(!datalist.GetName().CompareNoCase(_T(""))) //if we don't have a datalist.....
	{
		DataSetFreqCombo.SetCurSel(-1);
		DataSetFreqCombo.EnableWindow(0);
		DataSetTimerCombo.SetCurSel(-1);
		DataSetTimerCombo.EnableWindow(0);
		datawindow.EnableWindow(0);
		DSIdCombo.EnableWindow(0);		//since no datasets
		NewDataSetButton.EnableWindow(0);
		return;
	}
	SetWindowtextInCombo(InputModeCombo,FmtPtr->GetInputMode());
	CData dataobj;
	CString datalistname = datalist.GetName(); 
	CList<CVar,CVar&>& varlist = FmtPtr->GetVarList();
	CVar variable;
	if(varlist.GetCount() > 0)
	{
		datawindow.DeleteAllItems();
		for(POSITION pos =  varlist.GetHeadPosition();pos!= NULL;)
		{
			variable =(CVar) varlist.GetNext(pos);
			CDataType dt = variable.GetDataType();
			datawindow.InsertItem(0,dt.GetName());
			CString var = variable.GetName();
			datawindow.SetItemText(0,1,var);	
		datawindow.SetItemText(0,2,variable.GetDescription());
		}
	}
			CList<CData,CData&>& dataset_lst = datalist.GetData();
			/*This is the case when we have datasets in the datalist....*/
			if(dataset_lst.GetCount() > 0 && varlist.GetCount() > 0)
			{
				SendButton.EnableWindow(1);				//enabling send button bcos ...since there are datasets to send
				DSIdCombo.ResetContent();
				for(POSITION pos =  dataset_lst.GetHeadPosition();pos!= NULL;)
				{
					dataobj = dataset_lst.GetNext(pos);
					DSIdCombo.AddString(dataobj.GetName());
					DefaultDataSetCombo.AddString(dataobj.GetName());
			}
			CString DefaultDataSetName = datalist.GetDefault();
				if(DefaultDataSetName.CompareNoCase(_T("")) && DefaultDataSetName.CompareNoCase(_T("NULL")))
				{
			SetWindowtextInCombo(DSIdCombo,DefaultDataSetName);
					SetWindowtextInCombo(DefaultDataSetCombo,DefaultDataSetName);
				}
				else		//the case when we have either the default data set name as "" or "NULL"
	{
					DefaultDataSetName = dataobj.GetName();
					SetWindowtextInCombo(DSIdCombo,DefaultDataSetName);
				}

				for( pos =  dataset_lst.GetHeadPosition();pos!= NULL;)
				{
					dataobj = dataset_lst.GetNext(pos);
		if(!dataobj.GetName().CompareNoCase((LPCTSTR)DefaultDataSetName))
		{
			  CList<CValue,CValue&>& value_list = dataobj.GetValueList();
			CValue val; 
			if(value_list.GetCount() && varlist.GetCount())
			{
				UINT32 no_of_items_in_datawindow = datawindow.GetItemCount() - 1;
				for(POSITION pos =  value_list.GetHeadPosition();pos!= NULL;)
				{
					val =(CValue)value_list.GetNext(pos);
								datawindow.SetItemText(no_of_items_in_datawindow--,3,val.GetSourceValue());			
				}
			}
						edit_sel_ds_descr.SetWindowText(dataobj.GetDescription());
						FuncForProperDisplayInFreqTimerCombos(dataobj);
						break;
					}
				}
			}
			else   /*the case when we don't have datasets in the datalist....*/
			{
				DataSetFreqCombo.SetCurSel(-1);
				DataSetFreqCombo.EnableWindow(0);
				DataSetTimerCombo.SetCurSel(-1);
				DataSetTimerCombo.EnableWindow(0);
				datawindow.EnableWindow(0);//the case is of no datasets so DSIdCombo disabled
				DSIdCombo.EnableWindow(0);
				AfxMessageBox(IDS_STRING_NO_DATASETS);
					
			}
			//new dataset button is enbled bcos...now it is feasible to do so.....
	NewDataSetButton.EnableWindow(1); 
		}
	}
}

void CAddEditDialog::OnCbnSelendokMsgcomboPan()
{
	DSIdCombo.ResetContent();
	datawindow.DeleteAllItems();
	CString window_text;
	MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),window_text);
	SendButton.EnableWindow(0);     //diasabling send button ...will be enabled only if the message has some datasets
	GetDataSetsForMsg(window_text);              //or has a plugin...
	msg_combo_refresh_flag = 0;
}
	

void CAddEditDialog::OnCbnSelendokDscomboPan()
{
	CString sMsgId, msgformat;
	MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
	CPtrList * ptr_to_fmt_lst;
    CPtrList * ptr_to_outgoing_lst = cmessagemanager.m_plstOutGoingMsg;
	COutgoingMessage * ptr_to_outgoing_msg;
	UINT32 messageid = _ttoi(sMsgId);
	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;
			}
		}
	}

	
	CData dataobj;
	CString datalistname = datalist.GetName(); 
    CList<CData,CData&>& dataset = datalist.GetData();
	CString window_text ;
	DSIdCombo.GetLBText(DSIdCombo.GetCurSel(),window_text);
	
	
	if(dataset.GetCount() > 0)
	{
		for(POSITION pos =  dataset.GetHeadPosition();pos!= NULL;)
		{
			dataobj = dataset.GetNext(pos);
			if(!window_text.CompareNoCase(dataobj.GetName()))
			{
			 	edit_sel_ds_descr.SetWindowText(dataobj.GetDescription());
			   	FuncForProperDisplayInFreqTimerCombos(dataobj);
	CList<CValue,CValue&>& value_list = dataobj.GetValueList();
	CValue val; 
	if(value_list.GetCount())
	{
		UINT32 item_no = datawindow.GetItemCount() -1;
		for(POSITION pos =  value_list.GetHeadPosition();pos!= NULL;)
		{
			val =(CValue)value_list.GetNext(pos);
			datawindow.SetItemText(item_no--,3,val.GetSourceValue());
		}
	}
						break;
					}
				}
			}
		}
	}
}

void CAddEditDialog::OnBnClickedNewDataSetButton()
	{
		if(!NewDataSetNameEdit.IsWindowVisible())
		{
		if(has_been_edited)
			 {
			if(IDYES == AfxMessageBox(IDS_STRING_EDITED_DATA_LOSS,MB_YESNO))
				{
				Prepare3rdColumnForNewDataSet();
				SetTheHasBeenEditedFlag(0);
				if(set_msg_attrib_flag)
				{
					SaveSendButton.EnableWindow(1);
					SendButton.EnableWindow(1);
				}
			}
		}
		else
		{
			Prepare3rdColumnForNewDataSet();
			SetTheHasBeenEditedFlag(0);
			if(set_msg_attrib_flag)
			{
				SaveSendButton.EnableWindow(1);
				SaveButton.EnableWindow(1);
			}
		}
	}
	else
			{
		if(!(CheckAndNotifyForNewDataSetAddition()))
				{
			Prepare3rdColumnForNewDataSet();
			SetTheHasBeenEditedFlag(0);
			if(set_msg_attrib_flag)
			{
				SaveSendButton.EnableWindow(1);
				SendButton.EnableWindow(1);
			}
				}
                    
			}

		// TODO: Add your control notification handler code here
}

⌨️ 快捷键说明

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