#include "StdAfx.h" #include "MBCabinetInfo.h" IMPLEMENT_DYNAMIC(CMBCabinetInfo, CMBBaseCabinetObj) CMBCabinetInfo::CMBCabinetInfo(void) { m_pCatalogMgr = new CMBCatalogMgr(); m_pDocMgr = new CMBDocMgr(); m_pRecycleBinInfo = new CMBRecycleBinInfo(); m_pRecycleBinInfo->m_strID = _T(""); //CStrFileUtils::GenerateGuid(); m_pRecycleBinInfo->m_strName = DMS_PREDEFNAME_RECYCLEBIN; m_pRecycleBinInfo->m_strImgFontStyle = _T("fm-bin"); m_pRecycleBinInfo->m_strPermit = _T("0"); m_pRecycleBinInfo->m_nSubCount = 0; } CMBCabinetInfo::~CMBCabinetInfo(void) { if( m_pCatalogMgr ) { delete m_pCatalogMgr; m_pCatalogMgr = NULL; } if( m_pDocMgr ) { delete m_pDocMgr; m_pDocMgr = NULL; } if( m_pRecycleBinInfo ) { delete m_pRecycleBinInfo; m_pRecycleBinInfo = NULL; } } CMBCatalogMgr * CMBCabinetInfo::GetCatalogMgr() { return m_pCatalogMgr; } CMBDocMgr * CMBCabinetInfo::GetDocMgr() { return m_pDocMgr; } // ÒÀ¸½ÓÚ³¬Àà void CMBCabinetInfo::AttachSuper( CMBBaseCabinetObj *pCabinetObj ) { if( pCabinetObj == NULL) return ; m_nFakeType = pCabinetObj->m_nFakeType; // αÔìÀàÐÍ m_bLoadCatalog = pCabinetObj->m_bLoadCatalog; // ÊÇ·ñ¼ÓÔØÄ¿Â¼ m_hItem = pCabinetObj->m_hItem; // Ê÷µÄitem m_bCheck = pCabinetObj->m_bCheck; // Ñ¡ÔñÏî m_strID = pCabinetObj->m_strID; // Îĵµ¹ñµÄid m_strName = pCabinetObj->m_strName; // Îĵµ¹ñÃû³Æ m_strAdminLogin = pCabinetObj->m_strAdminLogin; // ¹ÜÀíÕߵǼÃû m_strAdminName = pCabinetObj->m_strAdminName; // ¹ÜÀíÕßÃû³Æ m_strRecycleAdminLogin = pCabinetObj->m_strRecycleAdminLogin; // »ØÊÕÕ¾¹ÜÀíÕߵǼÃû m_strRecycleAdminName = pCabinetObj->m_strRecycleAdminName; // »ØÊÕÕ¾¹ÜÀíÕßÃû³Æ m_strFileSFlag = pCabinetObj->m_strFileSFlag; // Îļþ·þÎñ±êʶ m_strPermit = pCabinetObj->m_strPermit; // ȨÏÞ m_strImgFontStyle = pCabinetObj->m_strImgFontStyle; // ×ÖÌå·ç¸ñ m_nSubCount = pCabinetObj->m_nSubCount; // ×ÓÎļþÊý m_strStatus = pCabinetObj->m_strStatus; // ״̬ m_strOrder = pCabinetObj->m_strOrder; // ÅÅÐò m_strCapacity = pCabinetObj->m_strCapacity; // ÈÝÁ¿ m_strHasAce = pCabinetObj->m_strHasAce; // ȨÏÞ m_strArchiveAdmin = pCabinetObj->m_strArchiveAdmin; // ¹éµµ¹ÜÀíÕß m_strBkColor = pCabinetObj->m_strBkColor; // ±³¾°ÑÕÉ« m_strIsUnit = pCabinetObj->m_strIsUnit; // µ¥Î»»òÕß²¿ÃÅÎĵµ¹ñ m_pRecycleBinInfo->m_strCabinetID = pCabinetObj->m_strID; } bool CMBCabinetInfo::RemoveCatalogInfoOnCabinet( CMBCatalogInfo *pCatalogInfo ) { if(!m_pCatalogMgr->RemoveCatalog( pCatalogInfo )) return false; return true; } bool CMBCabinetInfo::RemoveDocInfoOnCabinet( CMBDocInfo *pDocInfo ) { if(!m_pDocMgr->RemoveDocObj( pDocInfo )) return false; return true; } bool CMBCabinetInfo::RemoveCatalogInfoOnCabinet( CString strID ) { if(!m_pCatalogMgr->RemoveCatalog( strID )) return false; return true; } bool CMBCabinetInfo::RemoveDocInfoOnCabinet( CString strID ) { if(!m_pDocMgr->RemoveDocObj( strID )) return false; return true; } // Æ¥Åäserverpath "н¨Îļþ¼Ð/н¨Îļþ¼Ð/н¨Îļþ¼Ð" CMBCatalogInfo *CMBCabinetInfo::MatchServerPath( const CString & strServerPath,CString &strMatchPath ) { CString strTmpSvrPath; CStringArray arSvrPath; CString strSvrPathItem; CMBCatalogInfo *pCatalogInfo = NULL; CMBCatalogInfo *pRetCatalogInfo = NULL; CMBCatalogMgr *pTmpCatalogMgr = NULL; pTmpCatalogMgr = m_pCatalogMgr; if( strServerPath.IsEmpty() ) return NULL; strTmpSvrPath = strServerPath; strTmpSvrPath.Replace(_T('/'),_T(';')); CMBStrOper::SplitString(strTmpSvrPath,_T(';'), arSvrPath); for( int i= 0;i < arSvrPath.GetSize();i++ ) { strSvrPathItem = arSvrPath[i]; pCatalogInfo = (CMBCatalogInfo*)pTmpCatalogMgr->GetCatalogByName( strSvrPathItem ); if( pCatalogInfo == NULL ) break; strMatchPath += strSvrPathItem; strMatchPath += _T('/'); pTmpCatalogMgr = pCatalogInfo->GetCatalogMgr(); pRetCatalogInfo = pCatalogInfo; } strMatchPath = strMatchPath.Mid(0,strMatchPath.GetLength()-1); return pRetCatalogInfo; } // ͨ¹ý·þÎñ·¾¶£¬µÃµ½Ä¿Â¼ CMBCatalogInfo *CMBCabinetInfo::GetCatalogBySvrPath( CString strSvrPath ) { CString strTmpSvrPath,strSvrPathItem; CStringArray arSvrPath; CMBCatalogInfo *pCatalogInfo = NULL; CMBCatalogMgr *pTmpCatalogMgr = NULL; pTmpCatalogMgr = m_pCatalogMgr; if( strSvrPath.IsEmpty() ) return NULL; strTmpSvrPath = strSvrPath; strTmpSvrPath.Replace(_T('/'),_T(';')); CMBStrOper::SplitString(strTmpSvrPath,_T(';'), arSvrPath); int nDeep = arSvrPath.GetSize(); for( int i= 0;i < nDeep;i++ ) { strSvrPathItem = arSvrPath[i]; if( pTmpCatalogMgr == NULL ) return NULL; pCatalogInfo = (CMBCatalogInfo*)pTmpCatalogMgr->GetCatalogByName( strSvrPathItem ); if( pCatalogInfo == NULL ) return NULL; pTmpCatalogMgr = pCatalogInfo->GetCatalogMgr(); } return pCatalogInfo; } // µÃµ½ÎĵµÐÅÏ¢ CMBDocInfo *CMBCabinetInfo::GetDocInfo( CString strSvrPath,CString strDocID ) { if( strDocID.IsEmpty() ) return NULL; CMBCatalogInfo *pCatalog = GetCatalogBySvrPath( strSvrPath ); if( NULL == pCatalog ) return NULL; return pCatalog->GetDocMgr()->GetDocInfo(strDocID); }