#include "stdafx.h" #include "PropItemClr.h" #include namespace OTSCLRINTERFACE { CPropItemClr::CPropItemClr() { m_LpPropItem = new CPropItemPtr(new CPropItem()); } CPropItemClr::CPropItemClr(CPropItem* a_oSource) // copy constructor { if (a_oSource == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("CPropItemClr: invalid pointer")); return; } m_LpPropItem = new CPropItemPtr(new CPropItem(a_oSource)); } CPropItemClr::CPropItemClr(CPropItemPtr pPropItem) // copy constructor { if (pPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("CPropItemClr: invalid pointer")); return; } m_LpPropItem = new CPropItemPtr(pPropItem); } CPropItemClr::!CPropItemClr() { if (m_LpPropItem != nullptr) { delete m_LpPropItem; m_LpPropItem = nullptr; } } CPropItemClr::~CPropItemClr() { if (m_LpPropItem != nullptr) { delete m_LpPropItem; m_LpPropItem = nullptr; } } CPropItemPtr CPropItemClr::GetCPropItemPtr() { return *m_LpPropItem; } String^ CPropItemClr::GetName() { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return nullptr; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return nullptr; } CString sName = pProp->GetName(); String^ NameClr = gcnew String(sName); return NameClr; } void CPropItemClr::SetName(String^ a_strName) { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetName: invalid pointer.")); return; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetName: invalid pointer.")); return; } pProp->SetName(a_strName); } // description String^ CPropItemClr::GetDescription() { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetDescription: invalid pointer.")); return nullptr; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetDescription: invalid pointer.")); return nullptr; } CString sDes = pProp->GetDescription(); String^ DesClr = gcnew String(sDes); return DesClr; } void CPropItemClr::SetDescription(String^ a_strDescription) { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetDescription: invalid pointer.")); return; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetDescription: invalid pointer.")); return; } return pProp->SetDescription(a_strDescription); } // sample item Id int CPropItemClr::GetSmplItemId() { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetSmplItemId: invalid pointer.")); return -1; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetSmplItemId: invalid pointer.")); return -1; } return (int)pProp->GetSmplItemId(); } void CPropItemClr::SetSmplItemId(int a_nSmplId) { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetSmplItemId: invalid pointer.")); return; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetSmplItemId: invalid pointer.")); return; } pProp->SetSmplItemId(( OTSMODEL::OTS_SAMPLE_PROP_GRID_ITEMS)a_nSmplId); } // report item Id int CPropItemClr::GetReportItemId() { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetReportItemId: invalid pointer.")); return -1; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetReportItemId: invalid pointer.")); return -1; } return (int)pProp->GetReportItemId(); } void CPropItemClr::SetReportItemId(int a_nReportId) { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetReportItemId: invalid pointer.")); return; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetReportItemId: invalid pointer.")); return; } pProp->SetReportItemId((OTSMODEL::OTS_RETORT_PROP_GRID_ITEMS)a_nReportId); } // item type int CPropItemClr::GetTypeId() { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetTypeId: invalid pointer.")); return -1; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetTypeId: invalid pointer.")); return -1; } return (int)pProp->GetTypeId(); } void CPropItemClr::SetTypeId(int a_nType) { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetTypeId: invalid pointer.")); return; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetTypeId: invalid pointer.")); return; } pProp->SetTypeId((OTSMODEL::OTS_ITEM_TYPES)a_nType); } // read only flag bool CPropItemClr::IsReadOnly() { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("IsReadOnly: invalid pointer.")); return false; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("IsReadOnly: invalid pointer.")); return false; } return pProp->IsReadOnly(); } void CPropItemClr::SetReadOnly(bool a_bReadOnly) { if (m_LpPropItem == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return; } CPropItemPtr pProp = GetCPropItemPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return; } pProp->SetReadOnly(a_bReadOnly); } CPropItemGrpClr::CPropItemGrpClr() // constructor { m_LpPropItemGrp = new CPropItemGrpPtr(new CPropItemGrp()); } CPropItemGrpClr::CPropItemGrpClr(CPropItemGrp* a_oSource) // copy constructor { if (a_oSource == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("CPropItemClr: invalid pointer")); return; } m_LpPropItemGrp = new CPropItemGrpPtr(new CPropItemGrp(a_oSource)); } CPropItemGrpClr::CPropItemGrpClr(CPropItemGrpPtr pPropItemGrp) // copy constructor { ASSERT(pPropItemGrp); if(!pPropItemGrp) { LogErrorTrace(__FILE__, __LINE__, _T("CPropItemGrpClr: invalid pointer")); return; } m_LpPropItemGrp = new CPropItemGrpPtr(new CPropItemGrp(pPropItemGrp.get())); } CPropItemGrpClr::!CPropItemGrpClr() { if (m_LpPropItemGrp != nullptr) { delete m_LpPropItemGrp; m_LpPropItemGrp = nullptr; } } CPropItemGrpClr::~CPropItemGrpClr() { if (m_LpPropItemGrp != nullptr) { delete m_LpPropItemGrp; m_LpPropItemGrp = nullptr; } } CPropItemGrpPtr CPropItemGrpClr::GetPropItemGrpPtr() { return *m_LpPropItemGrp; } String^ CPropItemGrpClr::GetName() { if (m_LpPropItemGrp == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return nullptr; } CPropItemGrpPtr pProp = GetPropItemGrpPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return nullptr; } CString sName = pProp->GetName(); String^ NameClr = gcnew String(sName); return NameClr; } void CPropItemGrpClr::SetName(String^ a_strName) { if (m_LpPropItemGrp == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetName: invalid pointer.")); return; } CPropItemGrpPtr pProp = GetPropItemGrpPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetName: invalid pointer.")); return; } pProp->SetName(a_strName); } // items group Id int CPropItemGrpClr::GetGroupId() { if (m_LpPropItemGrp == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetGroupId: invalid pointer.")); return -1; } CPropItemGrpPtr pProp = GetPropItemGrpPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetGroupId: invalid pointer.")); return -1; } return (int)pProp->GetGroupId(); } void CPropItemGrpClr::SetGroupId(int a_nId) { if (m_LpPropItemGrp == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetGroupId: invalid pointer.")); return; } CPropItemGrpPtr pProp = GetPropItemGrpPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetGroupId: invalid pointer.")); return; } pProp->SetGroupId((OTSMODEL::OTS_SAMPLE_PROP_GRID_ITEM_GROUPS)a_nId); } // items list CPropItemsListClr^ CPropItemGrpClr::GetItemsList() { if (m_LpPropItemGrp == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return nullptr; } CPropItemGrpPtr pProp = GetPropItemGrpPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: invalid pointer.")); return nullptr; } CPropItemsList listItems = pProp->GetItemsList(); CPropItemsListClr^ listClr = gcnew CPropItemsListClr(); for (auto item : listItems) { CPropItemClr^ itemClr = gcnew CPropItemClr(item); listClr->Add(itemClr); } return listClr; } void CPropItemGrpClr::SetItemsList(CPropItemsListClr^ a_listPropItems) { if (m_LpPropItemGrp == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetItemsList: invalid pointer.")); return; } CPropItemGrpPtr pProp = GetPropItemGrpPtr(); ASSERT(pProp); if (!pProp) { LogErrorTrace(__FILE__, __LINE__, _T("SetItemsList: invalid pointer.")); return; } ASSERT(a_listPropItems); if (!a_listPropItems) { LogErrorTrace(__FILE__, __LINE__, _T("SetItemsList: invalid pointer.")); return; } CPropItemsList listItems; int nSize = (int)a_listPropItems->Count; for (int i = 0; i < nSize; i++) { CPropItemPtr pItem = a_listPropItems[i]->GetCPropItemPtr(); ASSERT(pItem); if (!pItem) { LogErrorTrace(__FILE__, __LINE__, _T("SetItemsList: invalid pointer.")); return; } listItems.push_back(pItem); } pProp->SetItemsList(listItems); } }