creaImageIO_lib
creatisIOComparator.cpp
Go to the documentation of this file.
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  {
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 }