]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMProjectsTreeCtrl.cxx
Feature #1711
[crea.git] / lib / creaDevManagerLib / wxCDMProjectsTreeCtrl.cxx
index 5ba578e77c5bbbb46d0aa872933cb6bccca3b850..8337e48c35da386e7f1e4989a2936d166fbcf3b4 100755 (executable)
@@ -23,7 +23,7 @@
 #  The fact that you are presently reading this means that you have had
 #  knowledge of the CeCILL-B license and that you accept its terms.
 # ------------------------------------------------------------------------ 
-*/ 
+ */
 
 
 /*
@@ -70,32 +70,42 @@ bool wxCDMProjectsTreeCtrl::Create(
   return TRUE;
 }
 
-void wxCDMProjectsTreeCtrl::BuildTree(const modelCDMProjectsTree& projectsTree)
+void wxCDMProjectsTreeCtrl::BuildTree(modelCDMProject* projectTree)
 {
-  this->DeleteAllItems();
-  wxTreeItemId rootIndex = this-> AddRoot(_("Open Projects"));
-  std::cout << "Building TreeCtrl for " << projectsTree.projectRoot.GetName() << std::endl;
-  wxTreeItemId parentIndex = this-> AppendItem(rootIndex, wxString(projectsTree.projectRoot.GetName().c_str(), wxConvUTF8));
-  this->BuildTree(projectsTree.projectRoot.GetChildren(), parentIndex);
+  if(projectTree != NULL)
+    {
+      this->DeleteAllItems();
+      wxTreeItemId rootIndex;
+      rootIndex= this-> AddRoot(crea::std2wx(projectTree->GetName()));
+      projectTree->SetId(rootIndex);
 
-  this->Expand(rootIndex);
+      std::cout << "Building TreeCtrl for " << projectTree->GetName() << std::endl;
+      this->BuildTree(projectTree->GetChildren(), rootIndex);
 
-  this->Update();
+      this->Expand(rootIndex);
+
+      this->Update();
+    }
 }
 
-void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMProjectsTreeNode>& projectsTree, wxTreeItemId parent)
+void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMIProjectTreeNode*>& treeNodes, wxTreeItemId parent)
 {
-  for (int i = 0; i < projectsTree.size(); i++)
-  {
-    //cout << projectsTree[i].GetName() << endl;
-    wxTreeItemId parentNodeIndex;
-    wxString nodeName((projectsTree[i].GetName()).c_str(), wxConvUTF8);
-    parentNodeIndex = this->AppendItem(parent, nodeName);
-
-    std::vector<modelCDMProjectsTreeNode> innerChildren = projectsTree[i].GetChildren();
-    if(innerChildren.size() > 0)
+  for (int i = 0; i < treeNodes.size(); i++)
     {
-      this->BuildTree(innerChildren, parentNodeIndex);
+      //cout << projectsTree[i].GetName() << endl;
+      wxTreeItemId parentNodeIndex;
+      if(treeNodes[i] != NULL)
+        {
+          wxString nodeName((treeNodes[i]->GetName()).c_str(), wxConvUTF8);
+          parentNodeIndex = this->AppendItem(parent, nodeName);
+          treeNodes[i]->SetId(parentNodeIndex);
+
+          std::vector<modelCDMIProjectTreeNode*> innerChildren = treeNodes[i]->GetChildren();
+          if(innerChildren.size() > 0)
+            {
+              this->BuildTree(innerChildren, parentNodeIndex);
+            }
+        }
+
     }
-  }
 }