|
|
#include "ClusterPage.h"
#include "CommonUtils.h"
// History:
// --------
//
// Revised by : mhakim
// Date : 02-12-01
// Reason : Added passwords and remote control for nlbmgr.
BEGIN_MESSAGE_MAP( ClusterPage, CPropertyPage ) ON_WM_HELPINFO() ON_WM_CONTEXTMENU() END_MESSAGE_MAP()
ClusterPage::ClusterPage( ClusterProperties* pClusterProperty, bool fDisablePage, UINT ID ) : CPropertyPage( ID ), m_pClusterProperty( pClusterProperty ), m_fDisablePage (fDisablePage) { ZeroMemory(&m_WlbsConfig, sizeof(m_WlbsConfig));
lstrcpyn(m_WlbsConfig.cl_ip_addr, pClusterProperty->cIP, CVY_MAX_CL_IP_ADDR); lstrcpyn(m_WlbsConfig.cl_net_mask, pClusterProperty->cSubnetMask, CVY_MAX_NETWORK_ADDR); lstrcpyn(m_WlbsConfig.domain_name, pClusterProperty->cFullInternetName, CVY_MAX_DOMAIN_NAME); lstrcpyn(m_WlbsConfig.cl_mac_addr, pClusterProperty->cNetworkAddress, CVY_MAX_NETWORK_ADDR);
//
// pClusterProperty->multicastIPAddress could be NULL
//
if (pClusterProperty->multicastIPAddress.length() > 0) { lstrcpyn(m_WlbsConfig.szMCastIpAddress, pClusterProperty->multicastIPAddress, CVY_MAX_CL_IP_ADDR); } m_WlbsConfig.fMcastSupport = pClusterProperty->multicastSupportEnabled; m_WlbsConfig.fIGMPSupport = pClusterProperty->igmpSupportEnabled; m_WlbsConfig.fRctEnabled = pClusterProperty->remoteControlEnabled; m_WlbsConfig.fMcastSupport = pClusterProperty->multicastSupportEnabled; m_WlbsConfig.fIpToMCastIp = pClusterProperty->clusterIPToMulticastIP; m_WlbsConfig.fConvertMac = TRUE; // Always generate the MAC address from IP
lstrcpyn(m_WlbsConfig.szPassword, pClusterProperty->password, CVY_MAX_RCT_CODE + 1);
// m_pCommonClusterPage = new CCommonClusterPage(AfxGetInstanceHandle(),
// &m_WlbsConfig, true, NULL); // fDisablePassword = true
m_pCommonClusterPage = new CCommonClusterPage(AfxGetInstanceHandle(), &m_WlbsConfig, false, NULL); // fDisablePassword = true
}
ClusterPage::~ClusterPage() { delete m_pCommonClusterPage; }
//+----------------------------------------------------------------------------
//
// Function: ClusterPage::OnInitDialog
//
// Description: Process WM_INITDIALOG message
//
// Arguments: None
//
// Returns: BOOL -
//
// History: fengsun Created Header 1/4/01
//
//+----------------------------------------------------------------------------
BOOL ClusterPage::OnInitDialog() { CPropertyPage::OnInitDialog();
//
// Always set that the page has changed, so we don't have to keep track of this.
//
SetModified(TRUE);
m_pCommonClusterPage->OnInitDialog(m_hWnd);
if (m_fDisablePage) { //
// The page is for host property.
// disable all cluster windows as we are at host level.
//
::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_CL_IP), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_CL_MASK), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_RADIO_UNICAST), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_RADIO_MULTICAST), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK_IGMP), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_DOMAIN), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK_RCT), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_PASSW), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_PASSW2), FALSE ); } else { //
// The page is for cluster property
//
// enable all cluster windows as we are at cluster level.
//
::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_CL_IP), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_CL_MASK), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_RADIO_UNICAST), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_RADIO_MULTICAST), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK_IGMP), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_DOMAIN), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK_RCT), TRUE );
// enable remote control check box only if remote control is disabled.
//
// if remote control is enabled , enable password windows
// else disable them.
if (m_WlbsConfig.fRctEnabled) { ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_PASSW), TRUE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_PASSW2), TRUE ); } else { ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_PASSW), FALSE ); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_PASSW2), FALSE ); } }
::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT_ETH), FALSE );
return TRUE; }
//+----------------------------------------------------------------------------
//
// Function: ClusterPage::OnContextMenu
//
// Description: Process WM_CONTEXTMENU message
//
// Arguments: CWnd* pWnd -
// CPoint point -
//
// Returns: Nothing
//
// History: fengsun Created Header 1/4/01
//
//+----------------------------------------------------------------------------
//+----------------------------------------------------------------------------
//
// Function: ClusterPage::OnCommand
//
// Description: Process WM_COMMAND message
//
// Arguments: WPARAM wParam -
// LPARAM lParam -
//
// Returns: BOOL -
//
// History: fengsun Created Header 1/4/01
//
//+----------------------------------------------------------------------------
BOOL ClusterPage::OnCommand(WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { case IDC_EDIT_CL_IP: return m_pCommonClusterPage->OnEditClIp(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
case IDC_EDIT_CL_MASK: return m_pCommonClusterPage->OnEditClMask(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
case IDC_CHECK_RCT: return m_pCommonClusterPage->OnCheckRct(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
case IDC_BUTTON_HELP: return m_pCommonClusterPage->OnButtonHelp(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
case IDC_RADIO_UNICAST: return m_pCommonClusterPage->OnCheckMode(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
case IDC_RADIO_MULTICAST: return m_pCommonClusterPage->OnCheckMode(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
case IDC_CHECK_IGMP: return m_pCommonClusterPage->OnCheckIGMP(HIWORD(wParam),LOWORD(wParam), (HWND)lParam); break;
} return CPropertyPage::OnCommand(wParam, lParam); }
//+----------------------------------------------------------------------------
//
// Function: ClusterPage::OnNotify
//
// Description: Process WM_NOTIFY message
//
// Arguments: WPARAM idCtrl -
// LPARAM pnmh -
// LRESULT* pResult -
//
// Returns: BOOL -
//
// History: fengsun Created Header 1/4/01
//
//+----------------------------------------------------------------------------
BOOL ClusterPage::OnNotify(WPARAM idCtrl , LPARAM pnmh , LRESULT* pResult) { NMHDR* pNmhdr = (NMHDR*)pnmh ; switch(pNmhdr->code) { case PSN_APPLY: *pResult = m_pCommonClusterPage->OnApply(idCtrl, pNmhdr, *(BOOL*)pResult); if (*pResult == PSNRET_NOERROR) { //
// Call the base class, such that OnOk can be called
//
return CPropertyPage::OnNotify(idCtrl, pnmh, pResult); } else { return TRUE; }
case PSN_KILLACTIVE: *pResult = m_pCommonClusterPage->OnKillActive(idCtrl, pNmhdr, *(BOOL*)pResult); return TRUE;
case PSN_SETACTIVE: *pResult = m_pCommonClusterPage->OnActive(idCtrl, pNmhdr, *(BOOL*)pResult); return TRUE;
case PSN_RESET: *pResult = m_pCommonClusterPage->OnCancel(idCtrl, pNmhdr, *(BOOL*)pResult); return TRUE;
case IPN_FIELDCHANGED: *pResult = m_pCommonClusterPage->OnIpFieldChange(idCtrl, pNmhdr, *(BOOL*)pResult); return TRUE; } return CPropertyPage::OnNotify(idCtrl, pnmh, pResult); }
//+----------------------------------------------------------------------------
//
// Function: ClusterPage::OnOK
//
// Description: The property page is closed by OK
//
// Arguments: None
//
// Returns: Nothing
//
// History: fengsun Created Header 1/4/01
//
//+----------------------------------------------------------------------------
void ClusterPage::OnOK() { m_pClusterProperty->cIP = m_WlbsConfig.cl_ip_addr; m_pClusterProperty->cSubnetMask = m_WlbsConfig.cl_net_mask; m_pClusterProperty->cFullInternetName = m_WlbsConfig.domain_name; m_pClusterProperty->cNetworkAddress = m_WlbsConfig.cl_mac_addr; m_pClusterProperty->multicastIPAddress = m_WlbsConfig.szMCastIpAddress; m_pClusterProperty->multicastSupportEnabled= m_WlbsConfig.fMcastSupport; m_pClusterProperty->igmpSupportEnabled = m_WlbsConfig.fIGMPSupport; m_pClusterProperty->remoteControlEnabled = m_WlbsConfig.fRctEnabled; m_pClusterProperty->multicastSupportEnabled = m_WlbsConfig.fMcastSupport; m_pClusterProperty->clusterIPToMulticastIP = m_WlbsConfig.fIpToMCastIp; m_pClusterProperty->password = m_WlbsConfig.szPassword;
CPropertyPage::OnOK(); }
BOOL ClusterPage::OnHelpInfo (HELPINFO* helpInfo ) { if( helpInfo->iContextType == HELPINFO_WINDOW ) { ::WinHelp( static_cast<HWND> ( helpInfo->hItemHandle ), CVY_CTXT_HELP_FILE, HELP_WM_HELP, (ULONG_PTR ) g_aHelpIDs_IDD_CLUSTER_PAGE); }
return TRUE; }
void ClusterPage::OnContextMenu( CWnd* pWnd, CPoint point ) { ::WinHelp( m_hWnd, CVY_CTXT_HELP_FILE, HELP_CONTEXTMENU, (ULONG_PTR ) g_aHelpIDs_IDD_CLUSTER_PAGE); }
|