|
//------------------------------------------------------------------------------
// $Workfile: TreeInsertHandler.cpp $
// $Header: /SbjDev/SbjCore/TreeInsertHandler.cpp 2 11/12/08 2:22p Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 2 $
//
//-----------------------------------------------------------------------------
#include "stdafx.h"
#include "TreeInsertHandler.h"
#include "TreeInserter.h"
#include "TreeController.h"
#include "TreeItemController.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
namespace SbjCore
{
namespace Mvc
{
namespace TreeView
{
IMPLEMENT_DYNCREATE(InsertHandler, SbjCore::Mvc::Model::ActionHandler)
InsertHandler::InsertHandler()
{
}
InsertHandler::~InsertHandler()
{
}
int InsertHandler::OnBeginHandling()
{
Inserter* pInserter = (Inserter*)GetAction();
if (pInserter)
{
HTREEITEM hti = NULL;
Controller* pTheCtrlr = (Controller*)pInserter->GetTreeController();
const SbjCore::Mvc::Model::Controller* pModelCtrlr = pInserter->GetModelController();
if (pTheCtrlr != NULL)
{
ItemController* pItem = pTheCtrlr->CreateItem(pModelCtrlr, GetItem());
if (pItem != NULL)
{
try
{
HTREEITEM htiParent = pInserter->GetCurParent();
HTREEITEM htiAfter = pInserter->GetItemAfter();
hti = pTheCtrlr->InsertItem(pItem, htiParent, htiAfter, pInserter->ExpandParent());
if (NULL == pInserter->GetFirstInsertion())
{
pInserter->SetFirstInsertion(pItem);
}
}
catch (...)
{
ASSERT(FALSE);
}
}
}
if (hti == NULL)
{
pInserter->PushParent(pInserter->GetCurParent());
}
else
{
pInserter->PushParent(hti);
}
pInserter->IncLevel();
}
return SbjCore::Mvc::Model::Action::kContinue;
}
int InsertHandler::OnEndHandling()
{
Inserter* pInserter = (Inserter*)GetAction();
if (pInserter != NULL)
{
pInserter->PopParent();
pInserter->DecLevel();
}
return SbjCore::Mvc::Model::Action::kContinue;
}
}
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/TreeInsertHandler.cpp $
//
// 2 11/12/08 2:22p Steve
// Finished Generalization of Model v2.0.1
//
// 1 10/29/08 11:42a Steve
//
// 4 10/14/08 1:12p Steve
// Implemented Deletes
|
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.