// DlgSystemRevolver.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewSystemSetting.h" #include "DlgSystemRevolver.h" #include "ReviewSystemSettingDlg.h" #include "CHReviewSetting/Sys_SystemManager.h" #include "CHCommonControls/GridCellCombo.h" #include "CHCommonControls/GridCellCheck.h" // CDlgSystemRevolver ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgSystemRevolver, CDialog) CDlgSystemRevolver::CDlgSystemRevolver(CWnd* pParent /*=NULL*/) : CDialog(CDlgSystemRevolver::IDD, pParent) , m_nGantryIdx(0) , m_nHeaderIdx(0) { m_nRevolverCount = 0; } CDlgSystemRevolver::~CDlgSystemRevolver() { } void CDlgSystemRevolver::DoDataExchange(CDataExchange* pDX) { DDX_Control(pDX, IDC_GRID_SYSTEM_REVOLVER_INFO, m_ctrlGridRevolverInfo); DDX_Text(pDX, IDC_EDIT_SYS_SL_GANTRY_IDX, m_nGantryIdx); DDX_Text(pDX, IDC_EDIT_SYS_SL_HEADER_IDX, m_nHeaderIdx); CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CDlgSystemRevolver, CDialog) ON_BN_CLICKED(IDCANCEL, &CDlgSystemRevolver::OnBnClickedCancel) ON_BN_CLICKED(IDOK, &CDlgSystemRevolver::OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON_SYS_SYSTEM_REVOLVER_RESET, &CDlgSystemRevolver::OnBnClickedButtonSysSystemRevolverReset) ON_BN_CLICKED(IDC_BUTTON_SYS_SYSTEM_REVOLVER_APPLY, &CDlgSystemRevolver::OnBnClickedButtonSysSystemRevolverApply) ON_EN_CHANGE(IDC_EDIT_SYS_SL_REVOLVER_IDX, &CDlgSystemRevolver::OnEnChangeEditSysRevolverIdxCount) END_MESSAGE_MAP() // CDlgSystemRevolver ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. void CDlgSystemRevolver::UpdateDialogData(int nGantryIdx, int nHeaderIdx, int nRevolverCount) { m_nGantryIdx = nGantryIdx; m_nHeaderIdx = nHeaderIdx; m_nRevolverCount = nRevolverCount; UpdateData(FALSE); FillRevolverInfo(); m_ctrlGridRevolverInfo.Invalidate(FALSE); } void CDlgSystemRevolver::OnBnClickedCancel() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // OnCancel(); } void CDlgSystemRevolver::OnBnClickedOk() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // OnOK(); } BOOL CDlgSystemRevolver::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. InitRevolverInfoGridControl(); FillRevolverInfo(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CDlgSystemRevolver::InitRevolverInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; CString strTemp; nRows = REVOLVER_INFO_GRID_ROW_COUNT; nCols = m_nRevolverCount + 1; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridRevolverInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridRevolverInfo.SetRowCount(nRows); m_ctrlGridRevolverInfo.SetColumnCount(nCols); m_ctrlGridRevolverInfo.SetFixedRowCount(nFixRows); m_ctrlGridRevolverInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Index")); //_T("À妽º")); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Total Index")); //_T("ÅäÅ» À妽º") Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Name")); //_T("¸®º¼¹ö À̸§") Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Controller Type")); //_T("ÄÁÆ®·Ñ·¯ ŸÀÔ")); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Connection Infomation")); //_T("¿¬°á Á¤º¸")); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Baud Rate (bps)")); //_T("Åë½Å ¼Óµµ")); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Default Level")); //_T("±âº» ¹èÀ² À妽º")); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Maximum Level")); //_T("ÃÖ´ë ¹èÀ² ÀÎÅØ½º") Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Minimum Level")); //_T("ÃÖ¼Ò ¹èÀ² À妽º") Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); m_ctrlGridRevolverInfo.AutoSize(); } void CDlgSystemRevolver::OnBnClickedButtonSysSystemRevolverApply() { UpdateData(TRUE); CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CSys_SystemManager* pSystemManager = pDlg->GetSystemManager(); if(pSystemManager==NULL) return; CSystemInfo *pSystemInfo = pSystemManager->GetSystemInfo(); if(pSystemInfo==NULL) return; CGantryInfo *pGantryInfo = pSystemInfo->GetGantryInfo(m_nGantryIdx); if (pGantryInfo==NULL) return; CHeaderInfo *pHeaderInfo = pGantryInfo->GetHeaderInfo(m_nHeaderIdx); if (pHeaderInfo==NULL) return; int nColIdx = 1; CString strItemText = _T(""); CStringArray strArrayOption; for (int nRevolveIdx=0; nRevolveIdxGetRevolverInfoCount(); nRevolveIdx++) { CLensChangeControlInfo *pRevolverInfo = pHeaderInfo->GetRevolverInfo(nRevolveIdx); if (pRevolverInfo==NULL) continue; int nRowIdx = 1; // 1. ÅäÅ» ÀÎÅØ½º strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetIndex(_ttoi(strItemText)); // 2. ¸®º¼¹ö À̸§ nRowIdx++; strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetName(strItemText); // 3. ÄÁÆ®·Ñ·¯ ŸÀÔ nRowIdx++; CGridCellCombo *pCellCombo = (CGridCellCombo*)m_ctrlGridRevolverInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); int nArrayCount = (int)strArrayOption.GetCount(); for(int j = 0; j < nArrayCount; j++) { CString strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRevolverInfo->SetControllerType(j); break; } } } // 4. ¿¬°á Á¤º¸ nRowIdx++; strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetConnectionPort(strItemText); // 5. Åë½Å ¼Óµµ nRowIdx++; strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetBaudRate(_ttoi(strItemText)); // 6. ±âº» ¹èÀ² À妽º nRowIdx++; strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetDefaultLevel(_ttoi(strItemText)); // 7. ÃÖ´ë ¹èÀ² ÀÎÅØ½º nRowIdx++; strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetMaxLevel(_ttoi(strItemText)); // 8. ÃÖ¼Ò ¹èÀ² À妽º nRowIdx++; strItemText = m_ctrlGridRevolverInfo.GetItemText(nRowIdx, nColIdx); pRevolverInfo->SetMinLevel(_ttoi(strItemText)); } } void CDlgSystemRevolver::FillRevolverInfo() { ChangeRevolverCountRevolverInfoGridControl(); CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CSys_SystemManager* pSystemManager = pDlg->GetSystemManager(); if(pSystemManager==NULL) return; CSystemInfo *pSystemInfo = pSystemManager->GetSystemInfo(); if(pSystemInfo==NULL) return; CGantryInfo *pGantryInfo = pSystemInfo->GetGantryInfo(m_nGantryIdx); if (pGantryInfo==NULL) return; CHeaderInfo *pHeaderInfo = pGantryInfo->GetHeaderInfo(m_nHeaderIdx); if (pHeaderInfo==NULL) return; int nColIdx = 1; CString strItemText = _T(""); CStringArray strArrayOption; for (int nRevolveIdx=0; nRevolveIdxGetRevolverInfoCount(); nRevolveIdx++) { CLensChangeControlInfo *pRevolverInfo = pHeaderInfo->GetRevolverInfo(nRevolveIdx); if (pRevolverInfo==NULL) continue; int nRowIdx = 1; // 1. ÅäÅ» ÀÎÅØ½º strItemText.Format(_T("%d"),pRevolverInfo->GetIndex()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 2. ¸®º¼¹ö À̸§ nRowIdx++; strItemText.Format(_T("%s"), pRevolverInfo->GetName()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 3. ÄÁÆ®·Ñ·¯ ŸÀÔ nRowIdx++; CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridRevolverInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRevolverInfo->GetControllerType() > -1) { strItemText = strArrayOption.GetAt(pRevolverInfo->GetControllerType()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); } } // 4. ¿¬°á Á¤º¸ nRowIdx++; strItemText.Format(_T("%s"),pRevolverInfo->GetConnectionPort()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 5. Åë½Å ¼Óµµ nRowIdx++; strItemText.Format(_T("%d"),pRevolverInfo->GetBaudRate()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 6. ±âº» ¹èÀ² À妽º nRowIdx++; strItemText.Format(_T("%d"), pRevolverInfo->GetDefaultLevel()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 7. ÃÖ´ë ¹èÀ² ÀÎÅØ½º nRowIdx++; strItemText.Format(_T("%d"), pRevolverInfo->GetMaxLevel()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 8. ÃÖ¼Ò ¹èÀ² À妽º nRowIdx++; strItemText.Format(_T("%d"),pRevolverInfo->GetMinLevel()); m_ctrlGridRevolverInfo.SetItemText(nRowIdx, nColIdx, strItemText); nColIdx++; } } void CDlgSystemRevolver::ChangeRevolverCountRevolverInfoGridControl() { int i, j, nRowIdx, nColIdx; int nWidth, nMargin, nDataColumnWidth; CString strTemp; CRect rect; m_ctrlGridRevolverInfo.GetWindowRect(&rect); m_ctrlGridRevolverInfo.SetColumnCount(m_nRevolverCount + 1); nWidth = m_ctrlGridRevolverInfo.GetColumnWidth(0); nMargin = 5; nDataColumnWidth = rect.Width() - nWidth - nMargin; if(m_nRevolverCount > 0) { GV_ITEM Item; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; nColIdx = 1; nDataColumnWidth = nDataColumnWidth / m_nRevolverCount; for(i = 0; i < m_nRevolverCount; i++) { m_ctrlGridRevolverInfo.SetColumnWidth(i + 1, nDataColumnWidth); //¸®º¼¹ö À妽º nRowIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); // 1. ÅäÅ» ÀÎÅØ½º nRowIdx++; // 2. ¸®º¼¹ö À̸§ nRowIdx++; // 3. ÄÁÆ®·Ñ·¯ ŸÀÔ nRowIdx++; strArrayOption.RemoveAll(); for(j = 0; j < LensChangeController_Count; j++) { switch(j) { case LensChangeController_Simulation: strTemp.Format(_T("Simulation")); break; case LensChangeController_Linear: strTemp.Format(_T("Linear Turret")); break; case LensChangeController_Nikon: strTemp.Format(_T("Nikon Revolver")); break; case LensChangeController_DualTube: strTemp.Format(_T("Dual Tube")); break; default: strTemp.Format(_T("")); break; } strArrayOption.Add(strTemp); } m_ctrlGridRevolverInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridRevolverInfo.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); nColIdx++; } } } void CDlgSystemRevolver::OnBnClickedButtonSysSystemRevolverReset() { ResetRevolverInfoGrid(); } void CDlgSystemRevolver::ResetRevolverInfoGrid() { int i, j, nRowIdx, nColIdx; CString strItemText; CGridCellCheck* pCellCheck = NULL; nRowIdx = 0; nColIdx = 0; strItemText = _T(""); for(i = 0; i < m_nRevolverCount; i++) { nRowIdx = 1; nColIdx++; for(j = 0; j < REVOLVER_INFO_GRID_ROW_COUNT - 1; j++) { m_ctrlGridRevolverInfo.SetItemText(nRowIdx++, nColIdx, strItemText); } } } void CDlgSystemRevolver::OnEnChangeEditSysRevolverIdxCount() { /* UpdateData(TRUE); int i, j, nRowIdx, nColIdx; int nWidth, nMargin, nDataColumnWidth; CString strTemp; CRect rect; m_ctrlGridRevolverInfo.GetWindowRect(&rect); m_ctrlGridRevolverInfo.SetColumnCount(m_nRevolverIdx + 1); nWidth = m_ctrlGridRevolverInfo.GetColumnWidth(0); nMargin = 20; nDataColumnWidth = rect.Width() - nWidth - nMargin; if(m_nRevolverIdx > 0) { GV_ITEM Item; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; nColIdx = 1; nDataColumnWidth = nDataColumnWidth / m_nRevolverIdx; for(i = 0; i < m_nRevolverIdx; i++) { m_ctrlGridRevolverInfo.SetColumnWidth(i + 1, nDataColumnWidth); //±Û¶ó½º ŸÀÔ À妽º nRowIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridRevolverInfo.SetItem(&Item); nColIdx++; } }*/ }