| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- // DialogSysCfg.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "FirstStep.h"
- #include "DialogCfgSys.h"
- #include "Config.h"
- // CDialogSysCfg 对话框
- IMPLEMENT_DYNAMIC(CDialogCfgSys, CCfgDialog)
- CDialogCfgSys::CDialogCfgSys(CWnd* pParent /*=NULL*/)
- : CCfgDialog(2, CDialogCfgSys::IDD, pParent)
- {
- }
- CDialogCfgSys::~CDialogCfgSys()
- {
- }
- bool CDialogCfgSys::__isIvrFlowExisted( const CString& IvrFlow )
- {
- CString FlowName;
- for(int i = 0; i < m_ListFlow.GetCount(); ++i)
- {
- m_ListFlow.GetText(i, FlowName);
- if(FlowName == IvrFlow)
- return true;
- }
- return false;
- }
- void CDialogCfgSys::DoDataExchange(CDataExchange* pDX)
- {
- CCfgDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_EDTEX_RCD_PATH, m_EdtexRcdPath);
- DDX_Control(pDX, IDC_CMB_DEV_TYPE, m_CmbDevType);
- DDX_Control(pDX, IDC_CMB_PP_TYPE, m_CmbPPType);
- DDX_Control(pDX, IDC_CMB_QUEUE_TYPE, m_CmbQueueType);
- DDX_Control(pDX, IDC_CMB_RCD_TYPE, m_CmbRcdType);
- DDX_Control(pDX, IDC_EDT_ACD_PORT, m_EdtAcdPort);
- DDX_Control(pDX, IDC_EDT_AGENT_LOCK_PERIOD, m_EdtAgentLockPeriod);
- DDX_Control(pDX, IDC_EDT_CTI_PORT, m_EdtCtiPort);
- DDX_Control(pDX, IDC_EDT_FLOW_COUNT, m_EdtFlowCount);
- DDX_Control(pDX, IDC_EDT_PPT, m_EdtPpt);
- DDX_Control(pDX, IDC_EDTEX_FLOW, m_EdtexFlowPath);
- DDX_Control(pDX, IDC_EDTEX_LEAVEWORD, m_EdtexLeaveword);
- DDX_Control(pDX, IDC_EDTEX_LOG_PATH, m_EdtexLogPath);
- DDX_Control(pDX, IDC_IPADDR_CTI, m_AddrCti);
- DDX_Control(pDX, IDC_LIST_FLOW, m_ListFlow);
- DDX_Control(pDX, IDC_CMB_TTS_TYPE, m_CmbTtsType);
- DDX_Control(pDX, IDC_EDT_MAX_CONCURRENCY, m_EdtMaxConcurrency);
- DDX_Control(pDX, IDC_EDTEX_TTS_BUF_PATH, m_EdtexTtsBufPath);
- }
- BEGIN_MESSAGE_MAP(CDialogCfgSys, CCfgDialog)
- ON_WM_SHOWWINDOW()
- ON_BN_CLICKED(IDC_BTN_ADD, &CDialogCfgSys::OnBnClickedBtnAdd)
- ON_BN_CLICKED(IDC_BTN_DEL, &CDialogCfgSys::OnBnClickedBtnDel)
- END_MESSAGE_MAP()
- // CDialogSysCfg 消息处理程序
- BOOL CDialogCfgSys::OnInitDialog()
- {
- CCfgDialog::OnInitDialog();
- // TODO: 在此添加额外的初始化
- CConfig& config = CConfig::GetInstance();
- // CTI配置
- m_AddrCti.SetWindowText(config.ctiAddr());
- m_EdtCtiPort.SetWindowText(config.ctiPort());
- m_CmbRcdType.InsertString(0, RCD_TYPE_TRUNK);
- m_CmbRcdType.InsertString(1, RCD_TYPE_PARALLEL);
- m_CmbRcdType.SetCurSel(config.recType());
- m_EdtexRcdPath.SetWindowText(config.recPath());
- m_CmbDevType.InsertString(DEV_TYPE_IPO, DEVICE_TYPE_IPO);
- m_CmbDevType.InsertString(DEV_TYPE_EHANGCOM, DEVICE_TYPE_EHANGCOM);
- m_CmbDevType.InsertString(DEV_TYPE_FS, DEVICE_TYPE_FS);
- m_CmbDevType.SetCurSel(config.devType());
- // ACD配置
- m_EdtAcdPort.SetWindowText(config.acdPort());
- m_EdtAgentLockPeriod.SetWindowText(config.agentLockedPeriod());
- m_CmbPPType.InsertString(0, PP_TYPE_AUTO);
- m_CmbPPType.InsertString(1, PP_TYPE_MANUAL);
- m_CmbPPType.SetCurSel(config.ppTriggeredType());
- m_EdtPpt.SetWindowText(config.ppTime());
- m_CmbQueueType.InsertString(0, QUEUE_TYPE_VIP);
- m_CmbQueueType.InsertString(1, QUEUE_TYPE_FIFS);
- m_CmbQueueType.SetCurSel(config.queueType());
- // IVR配置
- m_EdtexLeaveword.SetWindowText(config.leaveWordPath());
- m_EdtFlowCount.SetWindowText(config.ivrFlowCount());
- IvrFlowList& List = config.ivrFlowList();
- POSITION Pos = List.GetHeadPosition();
- while(Pos != NULL)
- {
- m_ListFlow.AddString(List.GetNext(Pos));
- }
- // 其他配置
- m_EdtexLogPath.SetWindowText(config.logFilePath());
- m_EdtMaxConcurrency.SetWindowText(config.maxConcurrency());
- m_CmbTtsType.InsertString(TTS_NONE, TTS_TYPE_NONE);
- m_CmbTtsType.InsertString(TTS_IFLY, TTS_TYPE_IFLY);
- m_CmbTtsType.InsertString(TTS_JT, TTS_TYPE_JT);
- m_CmbTtsType.InsertString(TTS_IBM, TTS_TYPE_IBM);
- m_CmbTtsType.SetCurSel(config.ttsType());
- m_EdtexTtsBufPath.SetWindowText(config.ttsBufferPath());
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- void CDialogCfgSys::OnShowWindow(BOOL bShow, UINT nStatus)
- {
- CCfgDialog::OnShowWindow(bShow, nStatus);
- // TODO: 在此处添加消息处理程序代码
- if(bShow)
- m_AddrCti.SetFocus();
- }
- void CDialogCfgSys::OnBnClickedBtnAdd()
- {
- // TODO: 在此添加控件通知处理程序代码
- CString FlowName;
- m_EdtexFlowPath.GetWindowText(FlowName);
-
- if(!FlowName.IsEmpty())
- {
- if(__isIvrFlowExisted(FlowName))
- {
- MessageBox(_T("该流程已添加"), MSGBOX_TIP_CAPTION);
- }
- else
- {
- m_ListFlow.AddString(FlowName);
- m_EdtexFlowPath.SetWindowText(_T(""));
- }
- }
- }
- void CDialogCfgSys::OnBnClickedBtnDel()
- {
- // TODO: 在此添加控件通知处理程序代码
- CString FlowName;
- int Sel = m_ListFlow.GetCurSel();
- if(Sel == LB_ERR)
- return;
- m_ListFlow.DeleteString(Sel);
- }
- BOOL CDialogCfgSys::PreTranslateMessage(MSG* pMsg)
- {
- // TODO: 在此添加专用代码和/或调用基类
- if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN))
- return TRUE;
- return CCfgDialog::PreTranslateMessage(pMsg);
- }
- /*****************************************************************
- **【函数名称】 upload
- **【函数功能】 上传配置项
- **【参数】
- **【返回值】
- ****************************************************************/
- void CDialogCfgSys::upload( void )
- {
- CString CfgInfo;
- CConfig& config = CConfig::GetInstance();
- // CTI
- m_AddrCti.GetWindowText(CfgInfo);
- config.ctiAddr() = CfgInfo;
- m_EdtCtiPort.GetWindowText(CfgInfo);
- config.ctiPort() = CfgInfo;
- config.recType() = (RecordType)m_CmbRcdType.GetCurSel();
- m_EdtexRcdPath.GetWindowText(CfgInfo);
- config.recPath() = CfgInfo;
- config.devType() = (DEV_TYPE)m_CmbDevType.GetCurSel();
- // ACD
- m_EdtAcdPort.GetWindowText(CfgInfo);
- config.acdPort() = CfgInfo;
- m_EdtAgentLockPeriod.GetWindowText(CfgInfo);
- config.agentLockedPeriod() = CfgInfo;
- config.ppTriggeredType() = (PPTriggeredType)m_CmbPPType.GetCurSel();
- m_EdtPpt.GetWindowText(CfgInfo);
- config.ppTime() = CfgInfo;
- config.queueType() = (QUEUE_TYPE)m_CmbQueueType.GetCurSel();
- // IVR
- m_EdtexLeaveword.GetWindowText(CfgInfo);
- config.leaveWordPath() = CfgInfo;
- m_EdtFlowCount.GetWindowText(CfgInfo);
- config.ivrFlowCount() = CfgInfo;
- config.ivrFlowList().RemoveAll();
- for(int i = 0; i < m_ListFlow.GetCount(); ++i)
- {
- m_ListFlow.GetText(i, CfgInfo);
- config.ivrFlowList().AddTail(CfgInfo);
- }
- // other
- m_EdtexLogPath.GetWindowText(CfgInfo);
- config.logFilePath() = CfgInfo;
- m_EdtMaxConcurrency.GetWindowText(CfgInfo);
- config.maxConcurrency() = CfgInfo;
- m_EdtexTtsBufPath.GetWindowText(CfgInfo);
- config.ttsBufferPath() = CfgInfo;
- config.ttsType() = (TTS_TYPE)m_CmbTtsType.GetCurSel();
- }
|