/[H6]/ResultDetailsDialog.cpp
ViewVC logotype

Contents of /ResultDetailsDialog.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (show annotations) (download)
Fri Sep 1 03:08:06 2006 UTC (17 years, 7 months ago) by torben
File size: 4752 byte(s)
Explain all the CEdit OnChange() handlers
1 // ResultDetailsDialog.cpp : implementation file
2 //
3
4 #include "stdafx.h"
5 #include "h6-udlånssystem.h"
6 #include "ResultDetailsDialog.h"
7 #include ".\resultdetailsdialog.h"
8 #include "CommonStorage.h"
9
10 // ResultDetailsDialog dialog
11
12 IMPLEMENT_DYNAMIC(ResultDetailsDialog, CDialog)
13 ResultDetailsDialog::ResultDetailsDialog(CWnd* pParent /*=NULL*/)
14 : CDialog(ResultDetailsDialog::IDD, pParent)
15 {
16 m_loadingData = false;
17 }
18
19 ResultDetailsDialog::~ResultDetailsDialog()
20 {
21 }
22
23 void ResultDetailsDialog::DoDataExchange(CDataExchange* pDX)
24 {
25 CDialog::DoDataExchange(pDX);
26 }
27
28
29 BEGIN_MESSAGE_MAP(ResultDetailsDialog, CDialog)
30 ON_EN_CHANGE(IDC_BARCODE, OnEnChangeBarcode)
31 ON_EN_CHANGE(IDC_NAME, OnEnChangeName)
32 ON_EN_CHANGE(IDC_DESCRIPTION, OnEnChangeDescription)
33 ON_EN_CHANGE(IDC_PLACEMENT, OnEnChangePlacement)
34 ON_EN_CHANGE(IDC_STATUS, OnEnChangeStatus)
35 ON_BN_CLICKED(IDC_CLOSE, OnBnClickedClose)
36 END_MESSAGE_MAP()
37
38
39 // ResultDetailsDialog message handlers
40
41 void ResultDetailsDialog::LoadData(void)
42 {
43 if (m_loadingData == true)
44 return;
45 m_loadingData = true;
46 Equipment currentdata = CommonStorage::Instance()->getSearchResult()[m_resultIndex];
47
48 GetDlgItem(IDC_BARCODE)->SetWindowText(currentdata.barcode);
49 GetDlgItem(IDC_NAME)->SetWindowText(currentdata.name);
50 GetDlgItem(IDC_DESCRIPTION)->SetWindowText(currentdata.description);
51 GetDlgItem(IDC_PLACEMENT)->SetWindowText(currentdata.placement);
52 GetDlgItem(IDC_STATUS)->SetWindowText(currentdata.status);
53
54 m_loadingData = false;
55 }
56
57 void ResultDetailsDialog::LoadListControls(void)
58 {
59 if (CommonStorage::Instance()->getAdmin() ) {
60 Equipment currentdata = CommonStorage::Instance()->getSearchResult()[m_resultIndex];
61
62 //load Equipment::checkouts
63 CListCtrl *checkouts = (CListCtrl*) GetDlgItem(IDC_CHECKOUTS);
64 checkouts->InsertColumn(0,"Inits");
65 checkouts->InsertColumn(1,"Start date");
66 checkouts->InsertColumn(2,"Return date");
67 checkouts->InsertColumn(3,"Number of days");
68
69 for (int i=0; i<currentdata.checkouts.size(); i++) {
70 int nItem = checkouts->InsertItem(i,currentdata.checkouts[i].inits);
71 checkouts->SetItemText(nItem,1,currentdata.checkouts[i].startdate);
72 checkouts->SetItemText(nItem,2,currentdata.checkouts[i].enddate);
73 checkouts->SetItemText(nItem,3,currentdata.checkouts[i].numdays);
74 }
75 checkouts->SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);
76 checkouts->SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);
77 checkouts->SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER);
78 checkouts->SetColumnWidth(3,LVSCW_AUTOSIZE_USEHEADER);
79
80 // load Equipment::reservations
81 CListCtrl *reservations = (CListCtrl*) GetDlgItem(IDC_RESERVATIONS);
82 reservations->InsertColumn(0,"Inits");
83 reservations->InsertColumn(1,"Start date");
84 reservations->InsertColumn(2,"Number of days");
85
86 for (int i=0; i<currentdata.reservations.size(); i++) {
87 int nItem = reservations->InsertItem(i, currentdata.reservations[i].inits);
88 reservations->SetItemText(nItem,1, currentdata.reservations[i].startdate);
89 reservations->SetItemText(nItem,2, currentdata.reservations[i].numdays);
90 }
91
92 reservations->SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);
93 reservations->SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);
94 reservations->SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER);
95
96
97 } else { // not administrator
98 GetDlgItem(IDC_CHECKOUTS)->EnableWindow(false);
99 GetDlgItem(IDC_RESERVATIONS)->EnableWindow(false);
100 }
101 }
102
103
104 BOOL ResultDetailsDialog::OnInitDialog()
105 {
106 CDialog::OnInitDialog();
107
108
109 GetDlgItem(IDC_RESERVE)->EnableWindow(CommonStorage::Instance()->getAdmin());
110 GetDlgItem(IDC_CHECKOUT)->EnableWindow(CommonStorage::Instance()->getAdmin());
111 GetDlgItem(IDC_RETURN)->EnableWindow(CommonStorage::Instance()->getAdmin());
112
113 CString status = CommonStorage::Instance()->getSearchResult()[m_resultIndex].status;
114
115 if (status == "Ledig")
116 GetDlgItem(IDC_RETURN)->EnableWindow(false);
117 if (status == "Udlånt")
118 GetDlgItem(IDC_CHECKOUT)->EnableWindow(false);
119 if (status == "Reserveret")
120 GetDlgItem(IDC_RETURN)->EnableWindow(false);
121
122 LoadData();
123 LoadListControls();
124
125 return TRUE;
126 }
127
128
129 // a normal EditControl is prettier than a greyed out read-only
130 // So to simulate a read-only field, we reload the data every time the
131 // user tries to modify the data
132 void ResultDetailsDialog::OnEnChangeBarcode()
133 {
134 LoadData();
135 }
136
137 void ResultDetailsDialog::OnEnChangeName()
138 {
139 LoadData();
140 }
141
142 void ResultDetailsDialog::OnEnChangeDescription()
143 {
144 LoadData();
145 }
146
147 void ResultDetailsDialog::OnEnChangePlacement()
148 {
149 LoadData();
150 }
151
152 void ResultDetailsDialog::OnEnChangeStatus()
153 {
154 LoadData();
155 }
156
157 void ResultDetailsDialog::OnBnClickedClose()
158 {
159 OnOK();
160 }

  ViewVC Help
Powered by ViewVC 1.1.20