]> Creatis software - creaImageIO.git/blob - src/creatisIOComparator.cpp
#3185 creaImageIO Feature New Normal - Clean code
[creaImageIO.git] / src / creatisIOComparator.cpp
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 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and 
11 #  abiding by the rules of distribution of free software. You can  use, 
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
13 #  license as circulated by CEA, CNRS and INRIA at the following URL 
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability. 
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------
26 */
27
28 #include <creatisIOComparator.h>
29
30 namespace creaImageIO{
31
32         Comparator::Comparator(tree::Node *i_tree, std::string i_tag) : m_discr(i_tag): bdiscr(false)
33         {
34                 std::map< std::string, std::string>  attr;
35                 i_tree->GetDescriptor().BuildAttributeMap(attr);
36                 std::map<std::string, std::string>::iterator it_att = attr.begin();
37                 for(; it_att != attr.end(); it_att++)
38                 {
39                         if (it_att->first == m_discr)
40                         {
41                                 bdiscr = true;
42                                 break;
43                         }
44                 }
45                 tree::Node::ChildrenListType::reverse_iterator j;
46         for (j = (*i)->GetChildrenList().rbegin(); 
47              j!= (*i)->GetChildrenList().rend(); 
48              ++j)
49           {
50             GimmickDebugMessage(1,
51                                 "adding children "
52                                 <<(*j)->GetLabel()
53                                 <<"'"
54                                 <<std::endl);
55             
56             wxListItem item;
57             item.SetMask(wxLIST_MASK_STATE | 
58                          wxLIST_MASK_TEXT |
59                          //                      wxLIST_MASK_IMAGE |
60                          wxLIST_MASK_DATA |
61                          //                      wxLIST_MASK_WIDTH |
62                          wxLIST_MASK_FORMAT
63                          );
64             
65                 ItemData* data = new ItemData();
66             data->node = *j;
67             data->id = _id;
68                 
69             item.SetId(_id);
70             item.SetData(data);
71
72             _id++;
73             GetCtrl(l)->InsertItem(item);
74             
75             //Setting attributes
76             for (int k=0; k<GetCtrl(l)->GetColumnCount(); ++k)                          
77               {
78                 std::string val;
79                 //  Temporary correction : it works but no explanation about the problem FCY
80                 
81                 if(k==0 && level <3)
82                 {
83                   val = (*j)->GetAttribute("NumberOfChildren");
84                 }
85                 else
86                   val = (*j)->GetAttribute(mLevelList[l].key[k]);
87                 
88         }
89 }