/*****************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved
* 
* This software contains proprietary and confidential information of Digi
* International Inc.  By accepting transfer of this copy, Recipient agrees
* to retain this software in confidence, to prevent disclosure to others,
* and to make no use of this software other than that for which it was
* delivered.  This is an unpublished copyrighted work of Digi International
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
* prohibited.
* 
* Restricted Rights Legend
*
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7031 or
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
* Restricted Rights at 48 CFR 52.227-19, as applicable.
*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
*
*****************************************************************************/


// WizNFAS.cpp : implementation file
//

#include "stdafx.h"
#include "WizNFAS.h"

#include "dxbtypes.h"
#include "mgmthlc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CWizNFAS property page

IMPLEMENT_DYNAMIC(CWizNFAS, CConfigWizPage)

CWizNFAS::CWizNFAS(CConfigObject const * const pOwner /* = NULL */, int const nState /* = -1 */) : CConfigWizPage()
{
   Construct(pOwner, nState);

	//{{AFX_DATA_INIT(CWizNFAS)
	m_fUseNFAS = FALSE;
	//}}AFX_DATA_INIT
}

void CWizNFAS::Construct(CConfigObject const * const pOwner /* = NULL */, int const nState /* = -1 */)
{
   CConfigWizPage::Construct(CWizNFAS::IDD, 0, pOwner, nState);
}

CWizNFAS::~CWizNFAS()
{
}

void CWizNFAS::DoDataExchange(CDataExchange* pDX)
{
	CConfigWizPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CWizNFAS)
	DDX_Control(pDX, IDC_NFASGroupList, m_ctrlNFASGroupList);
	DDX_Control(pDX, IDC_NFASGroup, m_ctrlNFASGroupBox);
	DDX_Check(pDX, IDC_UseNFAS, m_fUseNFAS);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CWizNFAS, CConfigWizPage)
	//{{AFX_MSG_MAP(CWizNFAS)
	ON_BN_CLICKED(IDC_UseNFAS, OnUseNFAS)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CWizNFAS::SetNFAS(DWORD const dwNFAS, CNFASGroup const & NFASGroup)
{
   BOOL fSuccess = FALSE;

   try
   {
      m_fUseNFAS = (dwNFAS == NFAS_ON);
      m_NFASGroup.Copy(NFASGroup);

      if (m_hWnd != NULL) UpdateNFASControls(TRUE);

      fSuccess = TRUE;
   }
   catch(CAffirmException ae)
   {
   }

   return fSuccess;
}

void CWizNFAS::UpdateNFASControls(BOOL const fResetList /* = FALSE */)
{
   try
   {
      m_ctrlNFASGroupBox.EnableWindow(m_fUseNFAS);
      m_ctrlNFASGroupList.EnableWindow(m_fUseNFAS);

      if (fResetList)
      {
         m_ctrlNFASGroupList.ResetContent();
         for (int i = 0; i < m_NFASGroup.GetSize(); i++)
         {
            AffirmThrow(m_NFASGroup[i]->pLine != NULL);
            m_ctrlNFASGroupList.AddString((m_NFASGroup[i]->pLine)->GetDisplayName());
         }
      }
   }
   catch(CAffirmException ae)
   {
   }
}

/////////////////////////////////////////////////////////////////////////////
// CWizNFAS message handlers

BOOL CWizNFAS::OnInitDialog() 
{
	CConfigWizPage::OnInitDialog();
	
   UpdateNFASControls(TRUE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CWizNFAS::OnUseNFAS() 
{
   UpdateData();
   UpdateNFASControls();
}
