modelCDMPackage::modelCDMPackage()
{
+ this->src = NULL;
}
modelCDMPackage::modelCDMPackage(const std::string& path, const int& level)
//if src, check for black boxes
if(stdfileName == "src")
{
- wxDir srcF(crea::std2wx((path + delimiters + "src").c_str()));
+ this->src = new modelCDMPackageSrc(path + delimiters + "src", this->level + 1);
+ this->children.push_back(this->src);
+ /*wxDir srcF(crea::std2wx((path + delimiters + "src").c_str()));
if (srcF.IsOpened())
{
wxString srcName;
}
innerCont = srcF.GetNext(&srcName);
}
- }
+ }*/
}
- //if is an unknown folder, create folder
else
{
this->children.push_back(new modelCDMFolder(path + delimiters + stdfileName, this->level + 1));
}
+
cont = dir.GetNext(&fileName);
}
return this->description;
}
-const std::vector<modelCDMBlackBox*>& modelCDMPackage::GetBlackBoxes() const
+modelCDMPackageSrc* modelCDMPackage::GetSrc() const
{
- return this->blackBoxes;
+ return this->src;
}
bool modelCDMPackage::SetAuthors(const std::string& authors, std::string*& result)
std::vector<bool> checked(this->children.size(), false);
- std::vector<bool> checkedBlackBoxes(this->blackBoxes.size(), false);
+ bool checkedSrc = false;
//check all folders
wxDir dir(crea::std2wx((this->path).c_str()));
std::string stdfileName = crea::wx2std(fileName);
-
+ //detect black boxes in src
if(stdfileName == "src")
{
- wxDir srcF(crea::std2wx((path + "/" + "src").c_str()));
+ //check if box already exist
+ bool found = false;
+ if (this->src != NULL)
+ {
+ found = true;
+ int pos = std::find(this->children.begin(), this->children.end(), this->src) - this->children.begin();
+ checked[pos] = true;
+ checkedSrc = true;
+ if(!this->src->Refresh(result))
+ return false;
+ }
+ else
+ {
+ this->src = new modelCDMPackageSrc(path + "/" + "src", this->level +1);
+ this->children.push_back(this->src);
+ }
+ /*wxDir srcF(crea::std2wx((path + "/" + "src").c_str()));
if (srcF.IsOpened())
{
wxString srcName;
}
innerCont = srcF.GetNext(&srcName);
}
- }
+ }*/
}
- //if not src
else
{
- //check if they already exist
+
+ //check if folder already exist
bool found = false;
for (int i = 0;!found && i < this->children.size(); i++)
{
modelCDMFolder* folder = new modelCDMFolder(this->path + "/" + stdfileName, this->level + 1);
this->children.push_back(folder);
}
- cont = dir.GetNext(&fileName);
}
+ cont = dir.GetNext(&fileName);
+
}
cont = dir.GetFirst(&fileName, wxEmptyString, wxDIR_FILES);
}
}
- for (int i = 0; i < checkedBlackBoxes.size(); i++)
+ if(!checkedSrc)
{
- if(!checkedBlackBoxes[i])
- {
- this->blackBoxes.erase(this->blackBoxes.begin()+i);
- checkedBlackBoxes.erase(checkedBlackBoxes.begin()+i);
- i--;
- }
+ this->src = NULL;
}
+
for (int i = 0; i < checked.size(); i++)
{
if(!checked[i])