中间件标准版5.1git,去除基础模块

DialogCfgSys.cpp 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. // DialogSysCfg.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "FirstStep.h"
  5. #include "DialogCfgSys.h"
  6. #include "Config.h"
  7. // CDialogSysCfg 对话框
  8. IMPLEMENT_DYNAMIC(CDialogCfgSys, CCfgDialog)
  9. CDialogCfgSys::CDialogCfgSys(CWnd* pParent /*=NULL*/)
  10. : CCfgDialog(2, CDialogCfgSys::IDD, pParent)
  11. {
  12. }
  13. CDialogCfgSys::~CDialogCfgSys()
  14. {
  15. }
  16. bool CDialogCfgSys::__isIvrFlowExisted( const CString& IvrFlow )
  17. {
  18. CString FlowName;
  19. for(int i = 0; i < m_ListFlow.GetCount(); ++i)
  20. {
  21. m_ListFlow.GetText(i, FlowName);
  22. if(FlowName == IvrFlow)
  23. return true;
  24. }
  25. return false;
  26. }
  27. void CDialogCfgSys::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CCfgDialog::DoDataExchange(pDX);
  30. DDX_Control(pDX, IDC_EDTEX_RCD_PATH, m_EdtexRcdPath);
  31. DDX_Control(pDX, IDC_CMB_DEV_TYPE, m_CmbDevType);
  32. DDX_Control(pDX, IDC_CMB_PP_TYPE, m_CmbPPType);
  33. DDX_Control(pDX, IDC_CMB_QUEUE_TYPE, m_CmbQueueType);
  34. DDX_Control(pDX, IDC_CMB_RCD_TYPE, m_CmbRcdType);
  35. DDX_Control(pDX, IDC_EDT_ACD_PORT, m_EdtAcdPort);
  36. DDX_Control(pDX, IDC_EDT_AGENT_LOCK_PERIOD, m_EdtAgentLockPeriod);
  37. DDX_Control(pDX, IDC_EDT_CTI_PORT, m_EdtCtiPort);
  38. DDX_Control(pDX, IDC_EDT_FLOW_COUNT, m_EdtFlowCount);
  39. DDX_Control(pDX, IDC_EDT_PPT, m_EdtPpt);
  40. DDX_Control(pDX, IDC_EDTEX_FLOW, m_EdtexFlowPath);
  41. DDX_Control(pDX, IDC_EDTEX_LEAVEWORD, m_EdtexLeaveword);
  42. DDX_Control(pDX, IDC_EDTEX_LOG_PATH, m_EdtexLogPath);
  43. DDX_Control(pDX, IDC_IPADDR_CTI, m_AddrCti);
  44. DDX_Control(pDX, IDC_LIST_FLOW, m_ListFlow);
  45. DDX_Control(pDX, IDC_CMB_TTS_TYPE, m_CmbTtsType);
  46. DDX_Control(pDX, IDC_EDT_MAX_CONCURRENCY, m_EdtMaxConcurrency);
  47. DDX_Control(pDX, IDC_EDTEX_TTS_BUF_PATH, m_EdtexTtsBufPath);
  48. }
  49. BEGIN_MESSAGE_MAP(CDialogCfgSys, CCfgDialog)
  50. ON_WM_SHOWWINDOW()
  51. ON_BN_CLICKED(IDC_BTN_ADD, &CDialogCfgSys::OnBnClickedBtnAdd)
  52. ON_BN_CLICKED(IDC_BTN_DEL, &CDialogCfgSys::OnBnClickedBtnDel)
  53. END_MESSAGE_MAP()
  54. // CDialogSysCfg 消息处理程序
  55. BOOL CDialogCfgSys::OnInitDialog()
  56. {
  57. CCfgDialog::OnInitDialog();
  58. // TODO: 在此添加额外的初始化
  59. CConfig& config = CConfig::GetInstance();
  60. // CTI配置
  61. m_AddrCti.SetWindowText(config.ctiAddr());
  62. m_EdtCtiPort.SetWindowText(config.ctiPort());
  63. m_CmbRcdType.InsertString(0, RCD_TYPE_TRUNK);
  64. m_CmbRcdType.InsertString(1, RCD_TYPE_PARALLEL);
  65. m_CmbRcdType.SetCurSel(config.recType());
  66. m_EdtexRcdPath.SetWindowText(config.recPath());
  67. m_CmbDevType.InsertString(DEV_TYPE_IPO, DEVICE_TYPE_IPO);
  68. m_CmbDevType.InsertString(DEV_TYPE_EHANGCOM, DEVICE_TYPE_EHANGCOM);
  69. m_CmbDevType.InsertString(DEV_TYPE_FS, DEVICE_TYPE_FS);
  70. m_CmbDevType.SetCurSel(config.devType());
  71. // ACD配置
  72. m_EdtAcdPort.SetWindowText(config.acdPort());
  73. m_EdtAgentLockPeriod.SetWindowText(config.agentLockedPeriod());
  74. m_CmbPPType.InsertString(0, PP_TYPE_AUTO);
  75. m_CmbPPType.InsertString(1, PP_TYPE_MANUAL);
  76. m_CmbPPType.SetCurSel(config.ppTriggeredType());
  77. m_EdtPpt.SetWindowText(config.ppTime());
  78. m_CmbQueueType.InsertString(0, QUEUE_TYPE_VIP);
  79. m_CmbQueueType.InsertString(1, QUEUE_TYPE_FIFS);
  80. m_CmbQueueType.SetCurSel(config.queueType());
  81. // IVR配置
  82. m_EdtexLeaveword.SetWindowText(config.leaveWordPath());
  83. m_EdtFlowCount.SetWindowText(config.ivrFlowCount());
  84. IvrFlowList& List = config.ivrFlowList();
  85. POSITION Pos = List.GetHeadPosition();
  86. while(Pos != NULL)
  87. {
  88. m_ListFlow.AddString(List.GetNext(Pos));
  89. }
  90. // 其他配置
  91. m_EdtexLogPath.SetWindowText(config.logFilePath());
  92. m_EdtMaxConcurrency.SetWindowText(config.maxConcurrency());
  93. m_CmbTtsType.InsertString(TTS_NONE, TTS_TYPE_NONE);
  94. m_CmbTtsType.InsertString(TTS_IFLY, TTS_TYPE_IFLY);
  95. m_CmbTtsType.InsertString(TTS_JT, TTS_TYPE_JT);
  96. m_CmbTtsType.InsertString(TTS_IBM, TTS_TYPE_IBM);
  97. m_CmbTtsType.SetCurSel(config.ttsType());
  98. m_EdtexTtsBufPath.SetWindowText(config.ttsBufferPath());
  99. return TRUE; // return TRUE unless you set the focus to a control
  100. // 异常: OCX 属性页应返回 FALSE
  101. }
  102. void CDialogCfgSys::OnShowWindow(BOOL bShow, UINT nStatus)
  103. {
  104. CCfgDialog::OnShowWindow(bShow, nStatus);
  105. // TODO: 在此处添加消息处理程序代码
  106. if(bShow)
  107. m_AddrCti.SetFocus();
  108. }
  109. void CDialogCfgSys::OnBnClickedBtnAdd()
  110. {
  111. // TODO: 在此添加控件通知处理程序代码
  112. CString FlowName;
  113. m_EdtexFlowPath.GetWindowText(FlowName);
  114. if(!FlowName.IsEmpty())
  115. {
  116. if(__isIvrFlowExisted(FlowName))
  117. {
  118. MessageBox(_T("该流程已添加"), MSGBOX_TIP_CAPTION);
  119. }
  120. else
  121. {
  122. m_ListFlow.AddString(FlowName);
  123. m_EdtexFlowPath.SetWindowText(_T(""));
  124. }
  125. }
  126. }
  127. void CDialogCfgSys::OnBnClickedBtnDel()
  128. {
  129. // TODO: 在此添加控件通知处理程序代码
  130. CString FlowName;
  131. int Sel = m_ListFlow.GetCurSel();
  132. if(Sel == LB_ERR)
  133. return;
  134. m_ListFlow.DeleteString(Sel);
  135. }
  136. BOOL CDialogCfgSys::PreTranslateMessage(MSG* pMsg)
  137. {
  138. // TODO: 在此添加专用代码和/或调用基类
  139. if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN))
  140. return TRUE;
  141. return CCfgDialog::PreTranslateMessage(pMsg);
  142. }
  143. /*****************************************************************
  144. **【函数名称】 upload
  145. **【函数功能】 上传配置项
  146. **【参数】
  147. **【返回值】
  148. ****************************************************************/
  149. void CDialogCfgSys::upload( void )
  150. {
  151. CString CfgInfo;
  152. CConfig& config = CConfig::GetInstance();
  153. // CTI
  154. m_AddrCti.GetWindowText(CfgInfo);
  155. config.ctiAddr() = CfgInfo;
  156. m_EdtCtiPort.GetWindowText(CfgInfo);
  157. config.ctiPort() = CfgInfo;
  158. config.recType() = (RecordType)m_CmbRcdType.GetCurSel();
  159. m_EdtexRcdPath.GetWindowText(CfgInfo);
  160. config.recPath() = CfgInfo;
  161. config.devType() = (DEV_TYPE)m_CmbDevType.GetCurSel();
  162. // ACD
  163. m_EdtAcdPort.GetWindowText(CfgInfo);
  164. config.acdPort() = CfgInfo;
  165. m_EdtAgentLockPeriod.GetWindowText(CfgInfo);
  166. config.agentLockedPeriod() = CfgInfo;
  167. config.ppTriggeredType() = (PPTriggeredType)m_CmbPPType.GetCurSel();
  168. m_EdtPpt.GetWindowText(CfgInfo);
  169. config.ppTime() = CfgInfo;
  170. config.queueType() = (QUEUE_TYPE)m_CmbQueueType.GetCurSel();
  171. // IVR
  172. m_EdtexLeaveword.GetWindowText(CfgInfo);
  173. config.leaveWordPath() = CfgInfo;
  174. m_EdtFlowCount.GetWindowText(CfgInfo);
  175. config.ivrFlowCount() = CfgInfo;
  176. config.ivrFlowList().RemoveAll();
  177. for(int i = 0; i < m_ListFlow.GetCount(); ++i)
  178. {
  179. m_ListFlow.GetText(i, CfgInfo);
  180. config.ivrFlowList().AddTail(CfgInfo);
  181. }
  182. // other
  183. m_EdtexLogPath.GetWindowText(CfgInfo);
  184. config.logFilePath() = CfgInfo;
  185. m_EdtMaxConcurrency.GetWindowText(CfgInfo);
  186. config.maxConcurrency() = CfgInfo;
  187. m_EdtexTtsBufPath.GetWindowText(CfgInfo);
  188. config.ttsBufferPath() = CfgInfo;
  189. config.ttsType() = (TTS_TYPE)m_CmbTtsType.GetCurSel();
  190. }