#include "stdafx.h" #include "PartSTDFileMnrClr.h" #include "OTSClassifyEng.h" namespace OTSINTERFACE { //CPartSTDFileMnrClr CPartSTDFileMnrClr::CPartSTDFileMnrClr() // constructor { m_PartSTDFileMnr = new CPartSTDFileMnrPtr(new CSTDXMLFileMnr()); } CPartSTDFileMnrClr::CPartSTDFileMnrClr(CPartSTDFileMnrPtr a_pSource) // copy constructor { m_PartSTDFileMnr = new CPartSTDFileMnrPtr(a_pSource); } CPartSTDFileMnrPtr CPartSTDFileMnrClr::GetPartSTDFileMnrPtr() { return *m_PartSTDFileMnr; } CPartSTDFileMnrClr::CPartSTDFileMnrClr(CSTDXMLFileMnr* a_pSource) // copy constructor { m_PartSTDFileMnr = new CPartSTDFileMnrPtr(new CSTDXMLFileMnr(a_pSource)); } CPartSTDFileMnrClr::~CPartSTDFileMnrClr() { if (m_PartSTDFileMnr != nullptr) { delete m_PartSTDFileMnr; m_PartSTDFileMnr = nullptr; } } CPartSTDFileMnrClr::!CPartSTDFileMnrClr() { if (m_PartSTDFileMnr != nullptr) { delete m_PartSTDFileMnr; m_PartSTDFileMnr = nullptr; } } // Load/Save bool CPartSTDFileMnrClr::Load(String^ a_strPathName, bool a_bClear) { bool bRet = false; CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); if (!pPartSTDData) { LogErrorTrace(__FILE__, __LINE__, _T("Load::invalide std file pointer")); return false; } bRet = pPartSTDData->Load(a_strPathName, a_bClear); return bRet; } bool CPartSTDFileMnrClr::Save(String^ a_strPathName, String^ a_LibraryName) { bool bRet = false; CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); if (!pPartSTDData) { LogErrorTrace(__FILE__, __LINE__, _T("Load::invalide stage file pointer")); return false; } bRet = pPartSTDData->Save(a_strPathName, a_LibraryName); return bRet; } CElementsListClr^ CPartSTDFileMnrClr::GetElementsList() { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); if (!pPartSTDData) { LogErrorTrace(__FILE__, __LINE__, _T("CPartSTDFileMnrClr::invalide std file pointer")); return nullptr; } CElementsList listElement = pPartSTDData->GetElementsList(); CElementsListClr^ listElementClr = gcnew CElementsListClr(); for (auto pElement : listElement) { CElementClr^ pElementClr = gcnew CElementClr(pElement); listElementClr->Add(pElementClr); } return listElementClr; } bool CPartSTDFileMnrClr::SetElementsList(CElementsListClr^ a_listElements, bool a_bClear /*= TRUE*/) { ASSERT(a_listElements); if (!a_listElements) { LogErrorTrace(__FILE__, __LINE__, _T("SetElementsList: invalid pointer.")); return false; } CElementsList listElement; listElement.clear(); for (int i = 0; i < a_listElements->Count; i++) { CElementClr^ pElementClr = a_listElements[i]; CElementPtr pElement = pElementClr->GetElementPtr(); listElement.push_back(pElement); } CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); pPartSTDData->SetElementsList(listElement, a_bClear); return true; } CElementClr^ CPartSTDFileMnrClr::GetElementByIndex(int a_nIndex) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); CElementPtr pElement = pPartSTDData->GetElementByIndex(a_nIndex); CElementClr^ pElementClr = gcnew CElementClr(pElement); return pElementClr; } bool CPartSTDFileMnrClr::DeleteElementByIndex(int a_nIndex) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); bool bRet = pPartSTDData->DeleteElementByIndex(a_nIndex); return bRet; } bool CPartSTDFileMnrClr::AddElement(CElementClr^ a_poElement) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); ASSERT(a_poElement); CElementPtr pElement = a_poElement->GetElementPtr(); ASSERT(pElement); bool bRet = pPartSTDData->AddElement(pElement); return bRet; } // std items list CSTDItemsListClr^ CPartSTDFileMnrClr::GetSTDItemsList() { bool bRet = false; CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); CSTDItemsList listSTDItem = pPartSTDData->GetSTDItemsList(); CSTDItemsListClr^ listSTDItemClr = gcnew CSTDItemsListClr(); for (auto pSTDItem : listSTDItem) { CSTDItemClr^ pSTDItemClr = gcnew CSTDItemClr(pSTDItem); listSTDItemClr->Add(pSTDItemClr); } return listSTDItemClr; } bool CPartSTDFileMnrClr::SetSTDItemsList(CSTDItemsListClr^ a_listSTDItems, bool a_bClear) { ASSERT(a_listSTDItems); CSTDItemsList* listSTDItem=new CSTDItemsList(); listSTDItem->clear(); for (int i = 0; i < a_listSTDItems->Count; i++) { CSTDItemClr^ pSTDItemClr = a_listSTDItems[i]; CSTDItemPtr pSTDItem = pSTDItemClr->GetSTDItemPtr(); listSTDItem->push_back(pSTDItem); } CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); pPartSTDData->SetSTDItemsList(*listSTDItem, a_bClear); return true; } CSTDItemClr^ CPartSTDFileMnrClr::GetSTDItemByIndex(int a_nIndex) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); CSTDItemPtr pSTDItem = pPartSTDData->GetSTDItemByIndex(a_nIndex); CSTDItemClr^ pSTDItemClr = gcnew CSTDItemClr(pSTDItem); return pSTDItemClr; } bool CPartSTDFileMnrClr::CPartSTDFileMnrClr::DeleteSTDItemByIndex(int a_nIndex) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); bool bRet = pPartSTDData->DeleteSTDItemByIndex(a_nIndex); return bRet; } bool CPartSTDFileMnrClr::MoveSTDItemDown(int a_nIndex) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); bool bRet = pPartSTDData->MoveSTDItemDown(a_nIndex); return bRet; } bool CPartSTDFileMnrClr::MoveSTDItemUp(int a_nIndex) { CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); bool bRet = pPartSTDData->MoveSTDItemUp(a_nIndex); return bRet; } bool CPartSTDFileMnrClr::AddSTDItem(CSTDItemClr^ a_poSTDItem) { ASSERT(a_poSTDItem); CSTDItemPtr pSTDItem = a_poSTDItem->GetSTDItemPtr(); CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); bool bRet = pPartSTDData->AddSTDItem(pSTDItem); return bRet; } bool CPartSTDFileMnrClr::InsertSTDItem(int a_nIndex, CSTDItemClr^ a_poSTDItem) { ASSERT(a_poSTDItem); CSTDItemPtr pSTDItem = a_poSTDItem->GetSTDItemPtr(); CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); bool bRet = pPartSTDData->InsertSTDItem(a_nIndex, pSTDItem); return bRet; } bool CPartSTDFileMnrClr::EditSTDItem(int a_nIndex, CSTDItemClr^ a_poSTDItem) { ASSERT(a_poSTDItem); CSTDItemPtr pSTDItem = a_poSTDItem->GetSTDItemPtr(); CPartSTDFileMnrPtr pPartSTDData = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDData); bool bRet = pPartSTDData->EditSTDItem(a_nIndex, pSTDItem); return bRet; } CPartSTDDataClr^ CPartSTDFileMnrClr::GetPartSTDData() { CPartSTDDataClr^ PartSTDDataClr; if (m_PartSTDFileMnr != nullptr) { CPartSTDDataPtr pPartSTDData = m_PartSTDFileMnr->get()->GetPartSTDData(); ASSERT(pPartSTDData); PartSTDDataClr = gcnew CPartSTDDataClr(pPartSTDData); } return PartSTDDataClr; } bool CPartSTDFileMnrClr::SetPartSTDData(CPartSTDDataClr^ pPartSTDDataClr) { ASSERT(pPartSTDDataClr); CPartSTDDataPtr pPartSTDData = pPartSTDDataClr->GetPartSTDDataPtr(); ASSERT(pPartSTDData); CPartSTDFileMnrPtr pPartSTDMnr = GetPartSTDFileMnrPtr(); ASSERT(pPartSTDMnr); pPartSTDMnr->SetPartSTDData(pPartSTDData); return true; } String^ CPartSTDFileMnrClr::GetPathName() { String^ PathNameClr; if (m_PartSTDFileMnr != nullptr) { CString PathName = m_PartSTDFileMnr->get()->GetPathName(); PathNameClr = gcnew String(PathName); } return PathNameClr; } void CPartSTDFileMnrClr::SetPathName(String^ a_strPathName) { ASSERT(a_strPathName); if (m_PartSTDFileMnr != nullptr) { m_PartSTDFileMnr->get()->SetPathName(a_strPathName); } } bool CPartSTDFileMnrClr::IsModified() { if (m_PartSTDFileMnr == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: current CLR point is IsModified.")); return false; } CPartSTDFileMnrPtr pPartSTDFileMnr = CPartSTDFileMnrPtr(); ASSERT(pPartSTDFileMnr); return pPartSTDFileMnr->IsModified(); } void CPartSTDFileMnrClr::SetModify(bool a_bModify) { if (m_PartSTDFileMnr != nullptr) { m_PartSTDFileMnr->get()->SetModify(a_bModify); } } /*CPartSTDDataClr^ CPartSTDFileMnrClr::GetSySSTDData1ByTypeClr(int in_astdtype) { CSTDFileMgrPtr m_poSTDFileMgr = CSTDFileMgrPtr(new CSTDFileMgr()); CPartSTDDataPtr a_pSTDlib = m_poSTDFileMgr->GetSysSTDLibByType((SYS_STD_TYPE)in_astdtype); CPartSTDDataClr^ m_poPartSTDData = gcnew CPartSTDDataClr(a_pSTDlib); return m_poPartSTDData; }*/ }