|
//------------------------------------------------------------------------------
// $Workfile: ControlledDocument.cpp $
// $Header: /SbjDev/SbjCore/ControlledDocument.cpp 5 11/24/08 10:33a Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 5 $
//
//-----------------------------------------------------------------------------
#include "stdafx.h"
#include "ControlledDocument.h"
#include "DocController.h"
#include "DocEvents.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
namespace SbjCore
{
namespace Mvc
{
namespace Doc
{
struct ControlledDocumentImpl
{
ControlledDocumentImpl()
{
}
virtual ~ControlledDocumentImpl()
{
}
};
///////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(ControlledDocument, CDocument)
ControlledDocument::ControlledDocument() :
m_pImpl(new ControlledDocumentImpl)
{
}
ControlledDocument::~ControlledDocument()
{
try
{
delete m_pImpl;
}
catch(...)
{
ASSERT(FALSE);
}
}
Controller* ControlledDocument::GetDocController() const
{
return static_cast<Controller*>(GetController());
}
BOOL ControlledDocument::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// if this asserts, you probably didn't call SetController
// in the derived class' ctor
ASSERT(GetDocController() != NULL);
SbjCore::Mvc::Doc::Events::FileNew theEvent(GetDocController(), GetDocController()->GetItemRoot());
SbjCore::Mvc::Doc::Events::DocModified event(false);
BOOL bRslt = GetDocController()->OnNewDocument();
return bRslt;
}
BOOL ControlledDocument::OnOpenDocument( LPCTSTR lpszPathName )
{
ASSERT(GetDocController() != NULL);
BOOL bRslt = GetDocController()->OnOpenDocument(lpszPathName);
if (bRslt)
{
SbjCore::Mvc::Doc::Events::FileOpen theEvent(GetDocController(), GetDocController()->GetItemRoot());
SbjCore::Mvc::Doc::Events::DocModified event(false);
}
return bRslt;
}
BOOL ControlledDocument::OnSaveDocument( LPCTSTR lpszPathName )
{
ASSERT(GetDocController() != NULL);
BOOL bRslt = GetDocController()->OnSaveDocument(lpszPathName);
if (bRslt)
{
SbjCore::Mvc::Doc::Events::FileSave theEvent;
SbjCore::Mvc::Doc::Events::DocModified event(false);
}
return bRslt;
}
void ControlledDocument::Serialize( CArchive& ar )
{
ASSERT(GetDocController() != NULL);
GetDocController()->Serialize(ar);
}
}
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/ControlledDocument.cpp $
//
// 5 11/24/08 10:33a Steve
// Final changes before MVCChapt1 v2.0.1
//
// 4 11/12/08 2:22p Steve
// Finished Generalization of Model v2.0.1
//
// 3 10/26/08 9:19a Steve
//
// 2 10/24/08 9:03a Steve
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Real name is Steve Johnson. Programming since 1979. Started on a Heathkit Micro with a DEC LSI-11 and UCSD Pascal. Moved to PCs & DOS as soon as Turbo Pascal became available. Did some Assembly, ISR, TSR etc. All this while working for a Manufacturing Co. for 8 years. Had my own solo Co. doing barcode labeling software for 4 years (terrible business man, all I wanted to do was code). Since then working for various software companies. Moved to Windows around the time of 3.1 with Borland C then C++. Then on to VC++ and MFC, and just about anything I could get my hands on or had to learn for my job, and been at it ever since. Of course recently I've been playing with .NET, ASP, C#, WPF etc.