// ResultDetailsDialog.cpp : implementation file // #include "stdafx.h" #include "h6-udlånssystem.h" #include "ResultDetailsDialog.h" #include ".\resultdetailsdialog.h" #include "CommonStorage.h" // ResultDetailsDialog dialog IMPLEMENT_DYNAMIC(ResultDetailsDialog, CDialog) ResultDetailsDialog::ResultDetailsDialog(CWnd* pParent /*=NULL*/) : CDialog(ResultDetailsDialog::IDD, pParent) { m_loadingData = false; } ResultDetailsDialog::~ResultDetailsDialog() { } void ResultDetailsDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(ResultDetailsDialog, CDialog) ON_EN_CHANGE(IDC_BARCODE, OnEnChangeBarcode) ON_EN_CHANGE(IDC_NAME, OnEnChangeName) ON_EN_CHANGE(IDC_DESCRIPTION, OnEnChangeDescription) ON_EN_CHANGE(IDC_PLACEMENT, OnEnChangePlacement) ON_EN_CHANGE(IDC_STATUS, OnEnChangeStatus) ON_BN_CLICKED(IDC_CLOSE, OnBnClickedClose) END_MESSAGE_MAP() // ResultDetailsDialog message handlers void ResultDetailsDialog::LoadData(void) { if (m_loadingData == true) return; m_loadingData = true; Equipment currentdata = CommonStorage::Instance()->getSearchResult()[m_resultIndex]; GetDlgItem(IDC_BARCODE)->SetWindowText(currentdata.barcode); GetDlgItem(IDC_NAME)->SetWindowText(currentdata.name); GetDlgItem(IDC_DESCRIPTION)->SetWindowText(currentdata.description); GetDlgItem(IDC_PLACEMENT)->SetWindowText(currentdata.placement); GetDlgItem(IDC_STATUS)->SetWindowText(currentdata.status); m_loadingData = false; } void ResultDetailsDialog::LoadListControls(void) { if (CommonStorage::Instance()->getAdmin() ) { Equipment currentdata = CommonStorage::Instance()->getSearchResult()[m_resultIndex]; //load Equipment::checkouts CListCtrl *checkouts = (CListCtrl*) GetDlgItem(IDC_CHECKOUTS); checkouts->InsertColumn(0,"Inits"); checkouts->InsertColumn(1,"Start date"); checkouts->InsertColumn(2,"Return date"); checkouts->InsertColumn(3,"Number of days"); for (int i=0; iInsertItem(i,currentdata.checkouts[i].inits); checkouts->SetItemText(nItem,1,currentdata.checkouts[i].startdate); checkouts->SetItemText(nItem,2,currentdata.checkouts[i].enddate); checkouts->SetItemText(nItem,3,currentdata.checkouts[i].numdays); } checkouts->SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER); checkouts->SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER); checkouts->SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER); checkouts->SetColumnWidth(3,LVSCW_AUTOSIZE_USEHEADER); // load Equipment::reservations CListCtrl *reservations = (CListCtrl*) GetDlgItem(IDC_RESERVATIONS); reservations->InsertColumn(0,"Inits"); reservations->InsertColumn(1,"Start date"); reservations->InsertColumn(2,"Number of days"); for (int i=0; iInsertItem(i, currentdata.reservations[i].inits); reservations->SetItemText(nItem,1, currentdata.reservations[i].startdate); reservations->SetItemText(nItem,2, currentdata.reservations[i].numdays); } reservations->SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER); reservations->SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER); reservations->SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER); } else { // not administrator GetDlgItem(IDC_CHECKOUTS)->EnableWindow(false); GetDlgItem(IDC_RESERVATIONS)->EnableWindow(false); } } BOOL ResultDetailsDialog::OnInitDialog() { CDialog::OnInitDialog(); GetDlgItem(IDC_RESERVE)->EnableWindow(CommonStorage::Instance()->getAdmin()); GetDlgItem(IDC_CHECKOUT)->EnableWindow(CommonStorage::Instance()->getAdmin()); GetDlgItem(IDC_RETURN)->EnableWindow(CommonStorage::Instance()->getAdmin()); CString status = CommonStorage::Instance()->getSearchResult()[m_resultIndex].status; if (status == "Ledig") GetDlgItem(IDC_RETURN)->EnableWindow(false); if (status == "Udlånt") GetDlgItem(IDC_CHECKOUT)->EnableWindow(false); if (status == "Reserveret") GetDlgItem(IDC_RETURN)->EnableWindow(false); LoadData(); LoadListControls(); return TRUE; } void ResultDetailsDialog::OnEnChangeBarcode() { LoadData(); } void ResultDetailsDialog::OnEnChangeName() { LoadData(); } void ResultDetailsDialog::OnEnChangeDescription() { LoadData(); } void ResultDetailsDialog::OnEnChangePlacement() { LoadData(); } void ResultDetailsDialog::OnEnChangeStatus() { LoadData(); } void ResultDetailsDialog::OnBnClickedClose() { OnOK(); }