]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCreaDevManagerTreeCtrl.cxx
Feature #1711
[crea.git] / lib / creaDevManagerLib / wxCreaDevManagerTreeCtrl.cxx
index b4af43e1196e61a2d67a6ee26f4d9d98a6be6dd4..87c7880c283edbb8e93f83cb1ce350c276dbf7b0 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "wxCreaDevManagerTreeCtrl.h"
 #include "creaDevManagerIds.h"
+#include <vector>
 
 wxCreaDevManagerTreeCtrl::wxCreaDevManagerTreeCtrl(
     wxWindow *parent,
@@ -36,6 +37,39 @@ bool wxCreaDevManagerTreeCtrl::Create(
 )
 {
   wxTreeCtrl::Create (parent, id, pos, size, style, validator, name);
+  wxTreeItemId rootIndex = this-> AddRoot(_("Open Projects"));
+  this->Update();
   return TRUE;
 }
 
+void wxCreaDevManagerTreeCtrl::BuildTree(ModelCreaDevManagerTree& projectsTree)
+{
+  this->DeleteAllItems();
+  wxTreeItemId rootIndex = this-> AddRoot(_("Open Projects"));
+  for (int i = 0; i < projectsTree.projectRoots.size(); i++)
+  {
+    cout << "Building TreeCtrl for " << projectsTree.projectRoots[i].GetName() << endl;
+    wxTreeItemId parentIndex = this-> AppendItem(rootIndex, wxString(projectsTree.projectRoots[i].GetName().c_str(), wxConvUTF8));
+    this->BuildTree(projectsTree.projectRoots[i].GetChildren(), parentIndex);
+  }
+  this->Expand(rootIndex);
+
+  this->Update();
+}
+
+void wxCreaDevManagerTreeCtrl::BuildTree(vector<ModelCreaDevManagerTreeNode>& projectsTree, 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<ModelCreaDevManagerTreeNode> innerChildren = projectsTree[i].GetChildren();
+    if(innerChildren.size() > 0)
+    {
+      this->BuildTree(innerChildren, parentNodeIndex);
+    }
+  }
+}