#include "StdAfx.h" #include "MBSelObjMgr.h" #include "MBCabinetInfo.h" #include "MBCatalogInfo.h" #include "MBPsnCabinetInfo.h" #include "MBPsnCatalogInfo.h" CMBSelObjMgr::CMBSelObjMgr(void) { m_pSelDocMgr = new CMBSelDocMgr(); m_pSelCatalogMgr = new CMBSelCatalogMgr(); } CMBSelObjMgr::~CMBSelObjMgr(void) { m_pSelDocMgr->EmptyContainer(); m_pSelCatalogMgr->EmptyContainer(); if( m_pSelDocMgr != NULL ) { delete m_pSelDocMgr; m_pSelDocMgr = NULL; } if( m_pSelCatalogMgr != NULL ) { delete m_pSelCatalogMgr; m_pSelCatalogMgr = NULL; } } CMBSelDocMgr *CMBSelObjMgr::GetDocMgr() { return m_pSelDocMgr; } CMBSelCatalogMgr *CMBSelObjMgr::GetCatalogMgr() { return m_pSelCatalogMgr; } CString CMBSelObjMgr::GetObjXml() { return m_pSelDocMgr->GetObjXml() + m_pSelCatalogMgr->GetObjXml(); } // ÒÆ³ýÑ¡Ôñ£¬À´×Ô¶ÔÏó void CMBSelObjMgr::RemoveSelFromObj( CMBBaseObj *pBaseObj ) { if( pBaseObj == NULL ) return ; CMBBaseDocObjVector vecotrDocObj; CMBBaseDocObjVector::iterator itDoc; CMBBaseDocObj *pDocObj = NULL; CMBBaseCatalogObjVector vectorCatalogObj; CMBBaseCatalogObjVector::iterator itCatalog; CMBBaseCatalogObj *pCatalogObj = NULL; if( pBaseObj->IsKindOf(RUNTIME_CLASS(CMBCabinetInfo)) ) { CMBCabinetInfo *pCabinetInfo = (CMBCabinetInfo *)pBaseObj; m_pSelDocMgr->GetDocObjVector( vecotrDocObj); for( itDoc = vecotrDocObj.begin();itDoc != vecotrDocObj.end();itDoc++ ) { pDocObj = *itDoc; pCabinetInfo->RemoveDocInfoOnCabinet((CMBDocInfo*)pDocObj); } m_pSelCatalogMgr->GetCatalogObjVector(vectorCatalogObj); for( itCatalog = vectorCatalogObj.begin();itCatalog != vectorCatalogObj.end();itCatalog++ ) { pCatalogObj = *itCatalog; pCabinetInfo->RemoveCatalogInfoOnCabinet((CMBCatalogInfo*)pCatalogObj); } } else if( pBaseObj->IsKindOf(RUNTIME_CLASS(CMBCatalogInfo)) ) { CMBCatalogInfo *pCatalogInfo = (CMBCatalogInfo *)pBaseObj; m_pSelDocMgr->GetDocObjVector( vecotrDocObj); for( itDoc = vecotrDocObj.begin();itDoc != vecotrDocObj.end();itDoc++ ) { pDocObj = *itDoc; pCatalogInfo->RemoveDocInfoOnCatalog((CMBDocInfo*)pDocObj); } m_pSelCatalogMgr->GetCatalogObjVector(vectorCatalogObj); for( itCatalog = vectorCatalogObj.begin();itCatalog != vectorCatalogObj.end();itCatalog++ ) { pCatalogObj = *itCatalog; pCatalogInfo->RemoveCatalogInfoOnCatalog((CMBCatalogInfo*)pCatalogObj); } } else if( pBaseObj->IsKindOf(RUNTIME_CLASS(CMBPsnCabinetInfo)) ) { CMBPsnCabinetInfo *pPsnCabinetInfo = (CMBPsnCabinetInfo *)pBaseObj; m_pSelDocMgr->GetDocObjVector( vecotrDocObj); for( itDoc = vecotrDocObj.begin();itDoc != vecotrDocObj.end();itDoc++ ) { pDocObj = *itDoc; pPsnCabinetInfo->RemoveDocInfoOnCabinet((CMBPsnDocInfo*)pDocObj); } m_pSelCatalogMgr->GetCatalogObjVector(vectorCatalogObj); for( itCatalog = vectorCatalogObj.begin();itCatalog != vectorCatalogObj.end();itCatalog++ ) { pCatalogObj = *itCatalog; pPsnCabinetInfo->RemoveCatalogInfoOnCabinet((CMBPsnCatalogInfo*)pCatalogObj); } } else if( pBaseObj->IsKindOf(RUNTIME_CLASS(CMBPsnCatalogInfo)) ) { CMBPsnCatalogInfo *pPsnCatalogInfo = (CMBPsnCatalogInfo *)pBaseObj; m_pSelDocMgr->GetDocObjVector( vecotrDocObj); for( itDoc = vecotrDocObj.begin();itDoc != vecotrDocObj.end();itDoc++ ) { pDocObj = *itDoc; pPsnCatalogInfo->RemoveDocInfoOnCatalog((CMBPsnDocInfo*)pDocObj); } m_pSelCatalogMgr->GetCatalogObjVector(vectorCatalogObj); for( itCatalog = vectorCatalogObj.begin();itCatalog != vectorCatalogObj.end();itCatalog++ ) { pCatalogObj = *itCatalog; pPsnCatalogInfo->RemoveCatalogInfoOnCatalog((CMBPsnCatalogInfo*)pCatalogObj); } } }