//-------------------------------------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TArchAppDocGlobals 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TArchAppDocGlobals 定义 // = Maintainers: // //-------------------------------------------------------------------------------------------------------+ #include "StdAfx.h" #include "TArchAppDocGlobals.h" #include "TArchDocReactor.h" #include "TArchLayoutReactor.h" #include "AcDbLMgr.h" #include "dbapserv.h" #ifdef TASD #include "TDbExtentsZoneTable.h" CMapPtrToPtr TArchAppDocGlobals::g_mapGlobalsDb2Reactor; #endif TArchAppDocGlobals::TArchAppDocGlobals() { m_pDocReactor = new TArchDocReactor(); acDocManager->addReactor(m_pDocReactor); m_pLayoutReactor = new TArchLayoutReactor(); acdbHostApplicationServices()->layoutManager()->addReactor(m_pLayoutReactor); } void TArchAppDocGlobals::InitDocGlobals(AcApDocument *pDoc) { ASSERT(pDoc); TArchPerDocData *pData = TArchDocReactor::g_pTArchAppDocGlobals->FindNode(pDoc, TArchPerDocData::CompareForFind); if(!pData) { TArchDocReactor::g_pTArchAppDocGlobals->Append(new TArchPerDocData(pDoc)); } #ifdef TASD pData = TArchDocReactor::g_pTArchAppDocGlobals->CurData(); if (pData) { pData->AttachReactor(); } #endif } void TArchAppDocGlobals::RemoveDocGlobals(AcApDocument *pDoc) { ASSERT(pDoc); TArchPerDocData *pData = TArchDocReactor::g_pTArchAppDocGlobals->FindNode(pDoc, TArchPerDocData::CompareForFind); if(pData) { pData->DetachReactor(); TArchDocReactor::g_pTArchAppDocGlobals->Remove(); } } void TArchAppDocGlobals::OnUnloadApp() { if(m_pDocReactor) { acDocManager->removeReactor(m_pDocReactor); delete m_pDocReactor; m_pDocReactor=NULL; acdbHostApplicationServices()->layoutManager()->removeReactor(m_pLayoutReactor); delete m_pLayoutReactor; m_pLayoutReactor=NULL; } }