// CDatafileDlg.cpp : implementation file
//

#include "stdafx.h"
#include "datafiledlg.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#ifndef WM_MODELESSEXIT
#define WM_MODELESSEXIT (WM_USER + 1)
#endif


/////////////////////////////////////////////////////////////////////////////
// CDatafileDlg dialog


CDatafileDlg::CDatafileDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDatafileDlg::IDD, pParent)
{
	m_pDialog = pParent;
	pAM = AlarmManager::instance();
	pDM = DataManager::instance();

	//{{AFX_DATA_INIT(CDatafileDlg)
	m_AlarmLog = _T("");
	m_EngDataLog = _T("");
	m_SciDataLog = _T("");
	//}}AFX_DATA_INIT
}

void CDatafileDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDatafileDlg)
	DDX_Text(pDX, IDC_ALARMLOG, m_AlarmLog);
	DDV_MaxChars(pDX, m_AlarmLog, 256);
	DDX_Text(pDX, IDC_ENGDATALOG, m_EngDataLog);
	DDV_MaxChars(pDX, m_EngDataLog, 256);
	DDX_Text(pDX, IDC_SCIDATALOG, m_SciDataLog);
	DDV_MaxChars(pDX, m_SciDataLog, 256);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDatafileDlg, CDialog)	
	//{{AFX_MSG_MAP(CDatafileDlg)
	ON_BN_CLICKED(ID_UNDO, OnUndo)
	ON_BN_CLICKED(ID_SAVE, OnSave)
	ON_BN_CLICKED(ID_EXIT, OnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDatafileDlg message handlers

void CDatafileDlg::OnUndo() 
{
	OnInitDialog();
}

void CDatafileDlg::OnSave() 
{
Nat16 len;
	
	UpdateData(TRUE);

	if( (len = m_EngDataLog.GetLength()) < 256 && len  > 0)
		lastAlarmFile = m_AlarmLog.GetBuffer(len);	

	if( (len = m_EngDataLog.GetLength()) < 256 && len > 0 )
		lastEngDataFile = m_EngDataLog.GetBuffer(len);	

	if( (len = m_SciDataLog.GetLength()) < 256 && len > 0 )
		lastSciDataFile = m_SciDataLog.GetBuffer(len);	
}


void CDatafileDlg::OnExit() 
{
	if(lastAlarmFile != NULL)
		pAM->createLogFile(lastAlarmFile);

	if(lastEngDataFile != NULL)
		pDM->createDynamicLog(lastEngDataFile);

	if(lastSciDataFile != NULL)
		pDM->createStaticLog(lastSciDataFile);

	if(m_pDialog != NULL)
		m_pDialog->PostMessage(WM_MODELESSEXIT,IDD_FILEDLG);				
	else //handle modal dialog case
		CDialog::OnCancel();			
}

BOOL CDatafileDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	lastAlarmFile = (char *)pAM->getLogFileName();
	lastEngDataFile = pDM->getDynamicLogFileName();
	lastSciDataFile = pDM->getStaticLogFileName();
	
	m_AlarmLog.Format("%s", lastAlarmFile);  
	m_EngDataLog.Format("%s", lastEngDataFile);
	m_SciDataLog.Format("%s", lastSciDataFile);

	UpdateData(FALSE);

	return TRUE;  // return TRUE unless you set the focus to a control	            
}
