#include "wxCDMProjectsTreeCtrl.h"
#include <vector>
+#include <sstream>
#include <wx/imaglist.h>
this->ID_PkIcon = images->Add(wxIcon(PkIcon20));
this->AssignImageList(images);
- wxTreeItemId rootId = AddRoot(wxT("Root"), 0, 0);
-/*
- wxTreeItemId rootIndex = this->AddRoot(wxT("No Open Project"), this->ID_Cicon, this->ID_Cicon);*/
+ wxTreeItemId rootIndex = this->AddRoot(wxT("No Open Project"), this->ID_Cicon, this->ID_Cicon);
+
this->Update();
return TRUE;
}
-void wxCDMProjectsTreeCtrl::BuildTree(std::map< wxTreeItemId, modelCDMIProjectTreeNode* >& modelElements, modelCDMProject* projectTree)
+void wxCDMProjectsTreeCtrl::BuildTree(std::map< wxCDMTreeItemId, modelCDMIProjectTreeNode* >& modelElements, modelCDMProject* projectTree)
{
+ this->Unselect();
std::cout << "building tree" << std::endl;
this->DeleteAllItems();
modelElements.clear();
if(projectTree != NULL)
{
- wxTreeItemId rootIndex;
- rootIndex= this-> AddRoot(crea::std2wx(projectTree->GetName()), this->ID_PrIcon, this->ID_PrIcon);
- projectTree->SetId(rootIndex);
- modelElements[rootIndex] = projectTree;
+ projectTree->SetId(this->AddRoot(crea::std2wx(projectTree->GetName()), this->ID_PrIcon));
+
+ modelElements[projectTree->GetId()] = projectTree;
std::cout << "Building TreeCtrl for " << projectTree->GetName() << std::endl;
- this->BuildTree(projectTree->GetChildren(), modelElements, rootIndex);
+ this->BuildTree(projectTree->GetChildren(), modelElements, projectTree->GetId());
- this->Expand(rootIndex);
+ this->Expand(projectTree->GetId().GetWxId());
this->Update();
}
else
{
- wxTreeItemId rootIndex = this-> AddRoot(_("No Open Project"));
+ wxTreeItemId rootIndex = this-> AddRoot(_("No Open Project"), this->ID_Cicon);
}
}
-void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMIProjectTreeNode*>& treeNodes, std::map< wxTreeItemId, modelCDMIProjectTreeNode* >& modelElements, wxTreeItemId parent)
+void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMIProjectTreeNode*>& treeNodes, std::map< wxCDMTreeItemId, modelCDMIProjectTreeNode* >& modelElements, const wxCDMTreeItemId& parent)
{
- for (int i = 0; i < treeNodes.size(); i++)
+ for (int i = 0; i < (int)(treeNodes.size()); i++)
{
//cout << projectsTree[i].GetName() << endl;
- wxTreeItemId parentNodeIndex;
if(treeNodes[i] != NULL)
{
int idIcon = GetIconId(treeNodes[i]);
wxString nodeName((treeNodes[i]->GetName()).c_str(), wxConvUTF8);
- parentNodeIndex = this->AppendItem(parent, nodeName, idIcon, idIcon);
- treeNodes[i]->SetId(parentNodeIndex);
- modelElements[parentNodeIndex] = treeNodes[i];
+ treeNodes[i]->SetId(wxCDMTreeItemId(this->AppendItem(parent.GetWxId(), nodeName, idIcon)));
+
+ modelElements[treeNodes[i]->GetId()] = treeNodes[i];
std::vector<modelCDMIProjectTreeNode*> innerChildren = treeNodes[i]->GetChildren();
if(innerChildren.size() > 0)
{
- this->BuildTree(innerChildren, modelElements, parentNodeIndex);
+ this->BuildTree(innerChildren, modelElements, treeNodes[i]->GetId());
}
}