129 lines
2.9 KiB
C++
129 lines
2.9 KiB
C++
// WorkspaceDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "WorkspaceDemo.h"
|
|
#include "WorkspaceDlg.h"
|
|
#include "OXWorkspaceState.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWorkspaceDlg dialog
|
|
|
|
|
|
CWorkspaceDlg::CWorkspaceDlg(CWnd* pParent /*=NULL*/)
|
|
:
|
|
CDialog(CWorkspaceDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CWorkspaceDlg)
|
|
m_sFilePath = ((CWorkspaceDemoApp*)AfxGetApp())->GetAppDir() + _T("Test.wsp");
|
|
m_nRegistryType = 1;
|
|
m_sRegistry = _T("Test");
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CWorkspaceDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CWorkspaceDlg)
|
|
DDX_Text(pDX, IDC_FILE_PATH, m_sFilePath);
|
|
DDX_Radio(pDX, IDC_REGISTRY_TYPE, m_nRegistryType);
|
|
DDX_Text(pDX, IDC_REGISTRY, m_sRegistry);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CWorkspaceDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CWorkspaceDlg)
|
|
ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
|
|
ON_BN_CLICKED(IDC_LOAD, OnLoad)
|
|
ON_BN_CLICKED(IDC_STORE, OnStore)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWorkspaceDlg message handlers
|
|
|
|
void CWorkspaceDlg::OnBrowse()
|
|
{
|
|
if (!UpdateData(TRUE))
|
|
return;
|
|
|
|
CFileDialog fileDlg(TRUE, NULL, _T("*.wsp"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
|
|
_T("Workspace (*.wsp)| *.* |All Files (*.*)| *.* ||"));
|
|
if (fileDlg.DoModal() == IDOK)
|
|
{
|
|
m_sFilePath = fileDlg.GetPathName();
|
|
m_nRegistryType = 1;
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
void CWorkspaceDlg::OnLoad()
|
|
{
|
|
if (!UpdateData(TRUE))
|
|
return;
|
|
|
|
COXWorkspaceState workspaceState;
|
|
BOOL bSuccess = FALSE;
|
|
switch(m_nRegistryType)
|
|
{
|
|
case 0:
|
|
bSuccess = workspaceState.LoadFromRegistry(m_sRegistry);
|
|
if (!bSuccess)
|
|
AfxMessageBox(IDS_FAILED_LOAD_REG, MB_ICONEXCLAMATION);
|
|
break;
|
|
case 1:
|
|
bSuccess = workspaceState.LoadFromFile(m_sFilePath);
|
|
if (!bSuccess)
|
|
AfxMessageBox(IDS_FAILED_LOAD_FILE, MB_ICONEXCLAMATION);
|
|
break;
|
|
default:
|
|
TRACE1("CWorkspaceDlg::OnLoad : Unexpected case in switch : %i\n", m_nRegistryType);
|
|
ASSERT(FALSE);
|
|
break;
|
|
}
|
|
|
|
if (bSuccess)
|
|
// ... Close this dialog
|
|
EndDialog(IDCANCEL);
|
|
}
|
|
|
|
|
|
void CWorkspaceDlg::OnStore()
|
|
{
|
|
if (!UpdateData(TRUE))
|
|
return;
|
|
|
|
COXWorkspaceState workspaceState;
|
|
BOOL bSuccess = FALSE;
|
|
switch(m_nRegistryType)
|
|
{
|
|
case 0:
|
|
bSuccess = workspaceState.StoreToRegistry(m_sRegistry);
|
|
if (!bSuccess)
|
|
AfxMessageBox(IDS_FAILED_STORE_REG, MB_ICONEXCLAMATION);
|
|
break;
|
|
case 1:
|
|
bSuccess = workspaceState.StoreToFile(m_sFilePath);
|
|
if (!bSuccess)
|
|
AfxMessageBox(IDS_FAILED_STORE_FILE, MB_ICONEXCLAMATION);
|
|
break;
|
|
default:
|
|
TRACE1("CWorkspaceDlg::OnStore : Unexpected case in switch : %i\n", m_nRegistryType);
|
|
ASSERT(FALSE);
|
|
break;
|
|
}
|
|
|
|
if (bSuccess)
|
|
// ... Close this dialog
|
|
EndDialog(IDCANCEL);
|
|
}
|
|
|