]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMProjectsTreeCtrl.cxx
Feature #1711
[crea.git] / lib / creaDevManagerLib / wxCDMProjectsTreeCtrl.cxx
index 61bd7e7752de661ebbd72431474d1fe361b90946..671574dc64f5aab3bad860b9d6020229f5221257 100755 (executable)
@@ -70,17 +70,19 @@ bool wxCDMProjectsTreeCtrl::Create(
   return TRUE;
 }
 
-void wxCDMProjectsTreeCtrl::BuildTree(modelCDMProject* projectTree)
+void wxCDMProjectsTreeCtrl::BuildTree(std::map< wxTreeItemId, modelCDMIProjectTreeNode* >& modelElements, modelCDMProject* projectTree)
 {
   this->DeleteAllItems();
+  modelElements.clear();
   if(projectTree != NULL)
     {
       wxTreeItemId rootIndex;
       rootIndex= this-> AddRoot(crea::std2wx(projectTree->GetName()));
       projectTree->SetId(rootIndex);
+      modelElements[rootIndex] = projectTree;
 
       std::cout << "Building TreeCtrl for " << projectTree->GetName() << std::endl;
-      this->BuildTree(projectTree->GetChildren(), rootIndex);
+      this->BuildTree(projectTree->GetChildren(), modelElements, rootIndex);
 
       this->Expand(rootIndex);
 
@@ -92,7 +94,7 @@ void wxCDMProjectsTreeCtrl::BuildTree(modelCDMProject* projectTree)
     }
 }
 
-void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMIProjectTreeNode*>& treeNodes, wxTreeItemId parent)
+void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMIProjectTreeNode*>& treeNodes, std::map< wxTreeItemId, modelCDMIProjectTreeNode* >& modelElements, wxTreeItemId parent)
 {
   for (int i = 0; i < treeNodes.size(); i++)
     {
@@ -103,11 +105,12 @@ void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMIProjectTreeNode
           wxString nodeName((treeNodes[i]->GetName()).c_str(), wxConvUTF8);
           parentNodeIndex = this->AppendItem(parent, nodeName);
           treeNodes[i]->SetId(parentNodeIndex);
+          modelElements[parentNodeIndex] = treeNodes[i];
 
           std::vector<modelCDMIProjectTreeNode*> innerChildren = treeNodes[i]->GetChildren();
           if(innerChildren.size() > 0)
             {
-              this->BuildTree(innerChildren, parentNodeIndex);
+              this->BuildTree(innerChildren, modelElements, parentNodeIndex);
             }
         }