+ //set attributes
+ this->children.clear();
+ this->level = level;
+ this->CMakeLists = NULL;
+
+ std::vector<std::string> words;
+ std::string delimiters;
+ //TODO::fix for windows
+ delimiters = "/";
+ CDMUtilities::splitter::split(words, path, delimiters, CDMUtilities::splitter::no_empties);
+ this->name = words[words.size()-1];
+
+ this->path = path;
+ this->type = wxDIR_DIRS;
+
+ std::string pathFixed(CDMUtilities::fixPath(path));
+ //check all folders
+ wxDir dir(crea::std2wx((pathFixed).c_str()));
+ if (dir.IsOpened())
+ {
+ wxString fileName;
+ bool cont = dir.GetFirst(&fileName, wxEmptyString, wxDIR_DIRS);
+ while (cont)
+ {
+ std::string stdfileName = crea::wx2std(fileName);
+
+ //if is an unknown folder, create folder
+ this->children.push_back(new modelCDMFolder(pathFixed + "/" + stdfileName, this->level + 1));
+
+ cont = dir.GetNext(&fileName);
+ }
+
+ cont = dir.GetFirst(&fileName, wxEmptyString, wxDIR_FILES);
+ while (cont)
+ {
+ std::string stdfileName = crea::wx2std(fileName);
+
+ //if CMakeLists, create CMakeLists
+ if(stdfileName == "CMakeLists.txt")
+ {
+ this->CMakeLists = new modelCDMCMakeListsFile(pathFixed + "/" + stdfileName, this->level + 1);
+ this->children.push_back(this->CMakeLists);
+ }
+ else
+ {
+ this->children.push_back(new modelCDMFile(pathFixed + "/" + stdfileName, this->level + 1));
+ }
+ //if is an unknown file, create file
+ cont = dir.GetNext(&fileName);
+ }
+ }
+
+ this->SortChildren();