]> Creatis software - crea.git/blob - lib/creaDevManagerLib/wxCDMProjectsTreeCtrl.cxx
Feature #1763
[crea.git] / lib / creaDevManagerLib / wxCDMProjectsTreeCtrl.cxx
1 /*
2 # ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
5 #                        pour la Santé)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 #
8 #  This software is governed by the CeCILL-B license under French law and 
9 #  abiding by the rules of distribution of free software. You can  use, 
10 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
11 #  license as circulated by CEA, CNRS and INRIA at the following URL 
12 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
13 #  or in the file LICENSE.txt.
14 #
15 #  As a counterpart to the access to the source code and  rights to copy,
16 #  modify and redistribute granted by the license, users are provided only
17 #  with a limited warranty  and the software's author,  the holder of the
18 #  economic rights,  and the successive licensors  have only  limited
19 #  liability. 
20 #
21 #  The fact that you are presently reading this means that you have had
22 #  knowledge of the CeCILL-B license and that you accept its terms.
23 # ------------------------------------------------------------------------ */ 
24
25
26 /*
27  * wxCreaDevManagerTreeCtrl.cpp
28  *
29  *  Created on: 19/10/2012
30  *      Author: daniel
31  */
32
33 #include "wxCDMProjectsTreeCtrl.h"
34 #include "creaDevManagerIds.h"
35 #include <vector>
36
37 wxCDMProjectsTreeCtrl::wxCDMProjectsTreeCtrl(
38     wxWindow *parent,
39     wxWindowID id,
40     const wxPoint &pos,
41     const wxSize &size,
42     long style,
43     const wxValidator &validator,
44     const wxString &name
45 )
46 {
47   wxCDMProjectsTreeCtrl::Create(parent, id, pos, size, style, validator, name);
48 }
49
50 wxCDMProjectsTreeCtrl::~wxCDMProjectsTreeCtrl()
51 {
52 }
53
54 bool wxCDMProjectsTreeCtrl::Create(
55     wxWindow* parent,
56     wxWindowID id,
57     const wxPoint &pos,
58     const wxSize &size,
59     long style,
60     const wxValidator &validator,
61     const wxString &name
62 )
63 {
64   wxTreeCtrl::Create (parent, id, pos, size, style, validator, name);
65   wxTreeItemId rootIndex = this-> AddRoot(_("Open Projects"));
66   this->Update();
67   return TRUE;
68 }
69
70 void wxCDMProjectsTreeCtrl::BuildTree(const modelCDMProjectsTree& projectsTree)
71 {
72   this->DeleteAllItems();
73   wxTreeItemId rootIndex = this-> AddRoot(_("Open Projects"));
74   std::cout << "Building TreeCtrl for " << projectsTree.projectRoot.GetName() << std::endl;
75   wxTreeItemId parentIndex = this-> AppendItem(rootIndex, wxString(projectsTree.projectRoot.GetName().c_str(), wxConvUTF8));
76   this->BuildTree(projectsTree.projectRoot.GetChildren(), parentIndex);
77
78   this->Expand(rootIndex);
79
80   this->Update();
81 }
82
83 void wxCDMProjectsTreeCtrl::BuildTree(const std::vector<modelCDMProjectsTreeNode>& projectsTree, wxTreeItemId parent)
84 {
85   for (int i = 0; i < projectsTree.size(); i++)
86   {
87     //cout << projectsTree[i].GetName() << endl;
88     wxTreeItemId parentNodeIndex;
89     wxString nodeName((projectsTree[i].GetName()).c_str(), wxConvUTF8);
90     parentNodeIndex = this->AppendItem(parent, nodeName);
91
92     std::vector<modelCDMProjectsTreeNode> innerChildren = projectsTree[i].GetChildren();
93     if(innerChildren.size() > 0)
94     {
95       this->BuildTree(innerChildren, parentNodeIndex);
96     }
97   }
98 }