#include "StdAfx.h" #include "T2ToolDef.h" #include "T2ToolDefDB.h" #include "T2ToolDefList.h" T2ToolDefDB::T2ToolDefDB() : LArray(sizeof(T2ToolDefList *)) { } /*virtual*/ T2ToolDefDB::~T2ToolDefDB() { } void T2ToolDefDB::AllClear() { RemoveItemsAt(mItemCount, 1); } void T2ToolDefDB::Regist(T2ToolDef* inToolDef) { if (!inToolDef) return; int categoryNo = inToolDef->GetCategory(); int n = 1; LArrayIterator iterator(*this); T2ToolDefList *theToolDefList; BOOL added = false; while (!added && iterator.Next(&theToolDefList)) { int thisCategory = theToolDefList->GetCategory(); if (thisCategory == categoryNo) { theToolDefList->Add(inToolDef); added = true; } else { if (thisCategory > categoryNo) break; } n++; } if (!added) { theToolDefList = new T2ToolDefList(categoryNo); theToolDefList->Add(inToolDef); InsertItemsAt(1, n, &theToolDefList); } } void T2ToolDefDB::Add(T2ToolDefList* inToolDefList) { LArrayIterator iterator(*this); T2ToolDefList *theToolDefList; BOOL added = false; while (!added && iterator.Next(&theToolDefList)) { if (theToolDefList->GetCategory() == inToolDefList->GetCategory()) { LArrayIterator toolDefIterator(*inToolDefList); T2ToolDef *theToolDef; while (toolDefIterator.Next(&theToolDef)) theToolDefList->Add(theToolDef); added = true; } } if (!added) InsertItemsAt(1, mItemCount + 1, &inToolDefList); } T2ToolDefList* T2ToolDefDB::GetToolDefList(int inCategory) { LArrayIterator iterator(*this); T2ToolDefList *theToolDefList; while (iterator.Next(&theToolDefList)) { if (theToolDefList->GetCategory() == inCategory) return theToolDefList; } return NULL; } T2TenantDef* T2ToolDefDB::FindFloor() { LArrayIterator iterator(*this); T2ToolDefList *theToolDefList; T2TenantDef *theFloor = NULL; while (iterator.Next(&theToolDefList)) { theFloor = theToolDefList->FindFloor(); if (theFloor) return theFloor; } return NULL; }