--- h6-udlÃ¥nssystemDlg.cpp 2006/08/30 06:32:35 1 +++ h6-udlÃ¥nssystemDlg.cpp 2007/10/22 13:00:14 60 @@ -1,9 +1,20 @@ -// h6-udlånssystemDlg.cpp : implementation file -// +/* + * Developed by Torben H. Nielsen + */ + #include "stdafx.h" #include "h6-udlånssystem.h" #include "h6-udlånssystemDlg.h" +#include ".\h6-udlånssystemdlg.h" + +#include "ConfigFile.h" +#include "commonstorage.h" + +#include "databaselayer.h" +#include "microsoftdblayer.h" +#include "mysqllayer.h" +#include "postgreslayer.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -54,6 +65,7 @@ void Ch6udlnssystemDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_TAB, m_tabs); } BEGIN_MESSAGE_MAP(Ch6udlnssystemDlg, CDialog) @@ -61,6 +73,8 @@ ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP + ON_COMMAND(ID_HELP_ABOUT, OnHelpAbout) + ON_COMMAND(ID_FILE_EXIT, OnFileExit) END_MESSAGE_MAP() @@ -69,6 +83,7 @@ BOOL Ch6udlnssystemDlg::OnInitDialog() { CDialog::OnInitDialog(); + CWaitCursor wait; // Add "About..." menu item to system menu. @@ -93,6 +108,53 @@ SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon + m_tabs.InsertItem(0,"Search"); + m_tabs.InsertItem(1,"Result"); + m_tabs.InsertItem(2,"Administration"); + m_tabs.Init(); + m_tabs.SetCurSel(0); + + ConfigFile config; + try { + config.Read(); + } catch(...) { + MessageBox("Could not open config file"); + OnOK(); + return true; + } + + DatabaseLayer *dbl = 0; + try { + if (config.driver.MakeLower() == "mysql") + dbl = new MySQLLayer(config); + else if (config.driver.MakeLower() == "postgresql") + dbl = new PostgresLayer(config); + else if (config.driver.MakeLower() == "microsoftsql") + dbl = new MicrosoftDBLayer(config); + else { + CString tmp; + tmp.Format("Unsupported driver: %s", config.driver); + MessageBox(tmp); + OnOK(); + } + } catch (CDBException *ex) { + MessageBox(CString("Could not establish connection to the database server\r\n") + + "Please contact your network administrator\r\n\r\n" + + "ODBC Returned the following message:\r\n" + + ex->m_strError); + + OnOK(); + } catch (...) { + MessageBox("Unknown DB exception"); + OnOK(); + } + + CommonStorage::Instance()->setDBLayer(dbl); + + CString title = "H6-Udlånssystem - "; + title += config.driver; + SetWindowText(title); + // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control @@ -146,3 +208,15 @@ { return static_cast(m_hIcon); } + +void Ch6udlnssystemDlg::OnHelpAbout() +{ + CAboutDlg about; + about.DoModal(); +} + +void Ch6udlnssystemDlg::OnFileExit() +{ + // TODO: Add your command handler code here + OnOK(); +}