// RunInfoEditDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ManageSetup.h" #include "RuninfoEditDlg.h" #include "ManageSetupDlg.h" #include // CRunInfoEditDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CRunInfoEditDlg, CDialog) CRunInfoEditDlg::CRunInfoEditDlg(CWnd* pParent /*=NULL*/) : CDialog(CRunInfoEditDlg::IDD, pParent) , m_strSelRunInfoIndex(_T("")) , m_strSelRunInfoIP(_T("")) , m_strSelRunInfoPath(_T("")) , m_strSelRunInfoOPT(_T("")) { } CRunInfoEditDlg::~CRunInfoEditDlg() { } void CRunInfoEditDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_SERVERIP_CB, m_ctrlServerIPCb); DDX_Control(pDX, IDC_EXEPATH_CB, m_ctrlExePathCb); DDX_Control(pDX, IDC_EXEOPT_CB, m_ctrlExeOptCb); DDX_Control(pDX, IDC_RUNINFO_LIST, m_ctrlRunInfoListCtrl); DDX_Text(pDX, IDC_SELRUNINFOINDEX_EDIT, m_strSelRunInfoIndex); DDX_Text(pDX, IDC_SELRUNINFOIP_EDIT, m_strSelRunInfoIP); DDX_Text(pDX, IDC_SELRUNINFOPATH_EDIT, m_strSelRunInfoPath); DDX_Text(pDX, IDC_SELRUNINFOOPT_EDIT, m_strSelRunInfoOPT); } BEGIN_MESSAGE_MAP(CRunInfoEditDlg, CDialog) ON_BN_CLICKED(IDC_BIND_BTN, OnBnClickedBindBtn) ON_NOTIFY(LVN_ITEMCHANGED, IDC_RUNINFO_LIST, OnLvnItemchangedRuninfoList) ON_CBN_SELCHANGE(IDC_SERVERIP_CB, OnCbnSelchangeServeripCb) ON_CBN_SELCHANGE(IDC_EXEPATH_CB, OnCbnSelchangeExepathCb) ON_CBN_SELCHANGE(IDC_EXEOPT_CB, OnCbnSelchangeExeoptCb) ON_BN_CLICKED(IDC_MODIFYRUNINFO_BTN, OnBnClickedModifyruninfoBtn) ON_BN_CLICKED(IDC_DELETERUNINFO_BTN, OnBnClickedDeleteruninfoBtn) END_MESSAGE_MAP() // CRunInfoEditDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CRunInfoEditDlg::OnInitDialog() { CDialog::OnInitDialog(); // ¸ÞÀÎ ´ÙÀ̾ó·Î±× ÇÚµé ¾ò¾î¿À±â CManageSetupDlg* lpMainDlg = static_cast(this->GetParent()); lpMainDlg->GetMachineList(m_ctrlServerIPCb); lpMainDlg->GetPathList(m_ctrlExePathCb); lpMainDlg->GetOptionList(m_ctrlExeOptCb); m_ctrlServerIPCb.SetCurSel(0); m_ctrlExePathCb.SetCurSel(0); m_ctrlExeOptCb.SetCurSel(0); m_ctrlRunInfoListCtrl.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB ); //m_ctrlRunInfoListCtrl.SetBkColor ( COLORREF RGB( 255, 190, 125) ); //m_ctrlRunInfoListCtrl.SetTextBkColor ( COLORREF RGB( 255, 190, 125) ); m_ctrlRunInfoListCtrl.InsertColumn ( 0, _T("RunID"), LVCFMT_LEFT, 50 ); m_ctrlRunInfoListCtrl.InsertColumn ( 1, _T("IP"), LVCFMT_LEFT, 105 ); m_ctrlRunInfoListCtrl.InsertColumn ( 2, _T("Name"), LVCFMT_LEFT, 100 ); m_ctrlRunInfoListCtrl.InsertColumn ( 3, _T("Path"), LVCFMT_LEFT, 400 ); m_ctrlRunInfoListCtrl.InsertColumn ( 4, _T("Option"), LVCFMT_LEFT, 140 ); RunInfoListSet(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } class CRefreshRunInfoList { public: CRefreshRunInfoList(CListCtrl& ctrlList) : m_ctrlList(ctrlList) { } bool operator () (const ServerManage::RunInfo& runInfo) { const int MIN_BUFFER = 32; char szRunID[MIN_BUFFER]; int nPosition = m_ctrlList.GetItemCount(); in_addr addr; addr.S_un.S_addr = runInfo.m_dwServerIP; _snprintf(szRunID, MIN_BUFFER - 1, "%d", runInfo.m_dwRunID); szRunID[MIN_BUFFER - 1] = 0; m_ctrlList.InsertItem (nPosition, ""); m_ctrlList.SetItemText (nPosition, 0, szRunID); m_ctrlList.SetItemText (nPosition, 1, inet_ntoa(addr)); m_ctrlList.SetItemText (nPosition, 2, runInfo.m_szServerName); m_ctrlList.SetItemText (nPosition, 3, runInfo.m_szPath); m_ctrlList.SetItemText (nPosition, 4, runInfo.m_szOption); m_ctrlList.SetItemData(nPosition, runInfo.m_dwRunID); return true; } private: CListCtrl& m_ctrlList; }; void CRunInfoEditDlg::RunInfoListSet() { // RunInfo ¸®½ºÆ® ÄÁÆ®·Ñ °»½Å m_ctrlRunInfoListCtrl.DeleteAllItems(); CManageClientManager::GetInstance().EnumRunInfo(CRefreshRunInfoList(m_ctrlRunInfoListCtrl)); } // ( RunInfo Ãß°¡, ¼öÁ¤, »èÁ¦ )____________________________________________________________________________ void CRunInfoEditDlg::OnBnClickedBindBtn() { // RunInfo Ãß°¡ if((-1 != m_ctrlServerIPCb.GetCurSel()) && (-1 != m_ctrlExePathCb.GetCurSel()) && (-1 != m_ctrlExeOptCb.GetCurSel())) { unsigned long dwRunID = 0; ServerManage::RunInfo runInfo; memset(&runInfo, 0, sizeof(ServerManage::RunInfo)); runInfo.m_dwPathID = static_cast(m_ctrlExePathCb.GetItemData(m_ctrlExePathCb.GetCurSel())); runInfo.m_dwOptionID = static_cast(m_ctrlExeOptCb.GetItemData(m_ctrlExeOptCb.GetCurSel())); runInfo.m_dwServerIP = static_cast(m_ctrlServerIPCb.GetItemData(m_ctrlServerIPCb.GetCurSel())); if(CManageClientManager::GetInstance().Add( CManageClientManager::RUN_INFO, runInfo, dwRunID)) { RunInfoListSet(); } else { AfxMessageBox("Add run info failed"); } } } void CRunInfoEditDlg::OnBnClickedModifyruninfoBtn() { // RunInfo ¼öÁ¤ UpdateData( true ); int nSelIndex = m_ctrlRunInfoListCtrl.GetNextItem( -1, LVNI_SELECTED ); if( -1 != nSelIndex ) { ServerManage::RunInfo runInfo; memset(&runInfo, 0, sizeof(ServerManage::RunInfo)); runInfo.m_dwServerIP = static_cast(m_ctrlServerIPCb.GetItemData(m_ctrlServerIPCb.GetCurSel())); runInfo.m_dwPathID = static_cast(m_ctrlExePathCb.GetItemData(m_ctrlExePathCb.GetCurSel())); runInfo.m_dwOptionID = static_cast(m_ctrlExeOptCb.GetItemData(m_ctrlExeOptCb.GetCurSel())); if( CManageClientManager::GetInstance().Modify( CManageClientManager::RUN_INFO, runInfo) ) { RunInfoListSet(); } else { AfxMessageBox( "Modify run info failed" ); } } } void CRunInfoEditDlg::OnBnClickedDeleteruninfoBtn() { // RunInfo »èÁ¦ UpdateData( true ); int nSelIndex = m_ctrlRunInfoListCtrl.GetNextItem( -1, LVNI_SELECTED ); if( -1 != nSelIndex ) { if(CManageClientManager::GetInstance().Remove(CManageClientManager::RUN_INFO, static_cast(m_ctrlRunInfoListCtrl.GetItemData(nSelIndex)), true)) { m_strSelRunInfoIndex = _T(""); m_strSelRunInfoIP = _T(""); m_strSelRunInfoPath = _T(""); m_strSelRunInfoOPT = _T(""); RunInfoListSet(); UpdateData(false); } else { AfxMessageBox( "Remove run info failed" ); } } } //_________________________________________________________________________________________________________ void CRunInfoEditDlg::OnLvnItemchangedRuninfoList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); CString strSelRunInfoName; int nSelIndex = m_ctrlRunInfoListCtrl.GetNextItem(-1, LVNI_SELECTED); if( -1 != nSelIndex ) { m_strSelRunInfoIndex = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 0 ); m_strSelRunInfoIP = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 1 ); strSelRunInfoName = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 2 ); m_strSelRunInfoPath = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 3 ); m_strSelRunInfoOPT = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 4 ); } CString strFindingKey; strFindingKey.Format( "%s : %s", m_strSelRunInfoIP, strSelRunInfoName ); m_ctrlServerIPCb.SetCurSel ( m_ctrlServerIPCb.FindString ( 0, strFindingKey ) ); m_ctrlExePathCb.SetCurSel ( m_ctrlExePathCb.FindString ( 0, m_strSelRunInfoPath ) ); m_ctrlExeOptCb.SetCurSel ( m_ctrlExeOptCb.FindString ( 0, m_strSelRunInfoOPT ) ); UpdateData(false); *pResult = 0; } void CRunInfoEditDlg::OnCbnSelchangeServeripCb() { if( m_strSelRunInfoIndex != "" ) { m_ctrlServerIPCb.GetLBText(m_ctrlServerIPCb.GetCurSel(), m_strSelRunInfoIP); UpdateData(false); } } void CRunInfoEditDlg::OnCbnSelchangeExepathCb() { if( m_strSelRunInfoIndex != "" ) { m_ctrlExePathCb.GetLBText(m_ctrlExePathCb.GetCurSel(), m_strSelRunInfoPath); UpdateData(false); } } void CRunInfoEditDlg::OnCbnSelchangeExeoptCb() { if( m_strSelRunInfoIndex != "" ) { m_ctrlExeOptCb.GetLBText(m_ctrlExeOptCb.GetCurSel(), m_strSelRunInfoOPT); UpdateData(false); } } void CRunInfoEditDlg::OnOK() { // CDialog::OnOK(); }