source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/nomDeLogiciel.cc @ 485

Last change on this file since 485 was 485, checked in by lemeur, 10 years ago

liste des logiciels compatibles dans les tooltip des elements

File size: 4.4 KB
Line 
1#include "nomDeLogiciel.h"
2
3nomDeLogiciel::Logiciel nomDeLogiciel::fromString( std::string s)
4  {
5    if (s == "parmela" ) return parmela;
6    else if ( s == "transport" ) return transport;
7    else if ( s == "generator" ) return generator;
8    else if ( s == "test" ) return test;
9    else if ( s == "madx" ) return madx;
10    else if ( s == "usersprogram" ) return usersprogram;
11    return unknownSoftware;
12  }
13
14std::string nomDeLogiciel::toString(nomDeLogiciel::Logiciel lg)
15{
16  switch (lg) 
17    {
18    case parmela : { return "parmela"; }
19    case transport : { return "transport"; }
20    case generator : { return "generator"; }
21    case test : { return "test"; }
22    case madx : { return "madx"; }
23    case usersprogram : { return "usersprogram"; }
24    case unknownSoftware : { return "unknownSoftware"; }
25    }
26  return "unknownSoftware";
27}
28
29/** Color of the background of the sofware
30    Should be a valid Css name as FFEEDD
31*/
32std::string nomDeLogiciel::getWtColor( nomDeLogiciel::Logiciel lg) const
33{
34  switch (lg)
35    {
36    case parmela : { return "#e09bdf"; }
37    case transport : { return "#c0ea8e"; }
38    case generator : { return "#a3c0ed"; }
39    case test : { return "#ecc38e"; }
40    case madx : { return "#ecc38e"; } //{ return "#FFFF00"; }
41    case unknownSoftware : { return "#FFFFFF"; }
42    }
43  return "#FFFFFF";
44}
45
46 nomDeLogiciel::nomDeLogiciel() 
47 {
48   program_ = unknownSoftware;
49   progString_ = toString(program_);
50   setCompatiblesElements();
51 }
52
53nomDeLogiciel::nomDeLogiciel(const string& s)
54{
55  program_ = fromString(s);
56  progString_ = toString(program_);
57  setCompatiblesElements(); 
58}
59
60nomDeLogiciel::nomDeLogiciel(int val)
61{ 
62  program_ = (Logiciel)val;
63  progString_ = toString(program_);
64  setCompatiblesElements(); 
65}
66
67int nomDeLogiciel::getNumberOfSoftwares() 
68{ 
69  return unknownSoftware;
70}
71
72
73void nomDeLogiciel::registerElement(nomdElements::typedElement nomdel,trivaluedBool b) 
74{
75  if (b == TBoolIgnore) {
76    ignoredElements_.push_back(nomdel);
77  } else if (b == TBoolOk) {
78    acceptedElements_.push_back(nomdel);
79  }
80}
81
82
83
84void nomDeLogiciel::setCompatiblesElements() 
85{
86  cout << " nomDeLogiciel::setCompatiblesElements() " << program_ << endl;
87  switch (program_) 
88    {
89    case parmela : 
90      { 
91        registerElement(nomdElements::RFgun,TBoolOk);
92        registerElement(nomdElements::drift,TBoolOk);
93        registerElement(nomdElements::cell,TBoolOk);
94        registerElement(nomdElements::bend,TBoolOk);
95        registerElement(nomdElements::soleno,TBoolOk);
96        registerElement(nomdElements::fit,TBoolIgnore);
97        registerElement(nomdElements::snapshot,TBoolIgnore);
98        break;
99      }
100     case transport : 
101       { 
102         registerElement(nomdElements::beam,TBoolOk);
103         registerElement(nomdElements::drift,TBoolOk);
104         registerElement(nomdElements::bend,TBoolOk);
105         registerElement(nomdElements::soleno,TBoolOk);
106         registerElement(nomdElements::fit,TBoolOk);
107         registerElement(nomdElements::snapshot,TBoolIgnore);
108         break;
109       }
110     case generator : 
111       { 
112         registerElement(nomdElements::RFgun,TBoolOk);
113         break;
114       }
115    case test : 
116      { 
117        break;
118      }
119    case madx : 
120      { 
121        registerElement(nomdElements::RFgun,TBoolOk);
122        registerElement(nomdElements::drift,TBoolOk);
123        registerElement(nomdElements::mpole,TBoolOk);
124        break;
125      }
126    case usersprogram : 
127      { 
128        registerElement(nomdElements::snapshot,TBoolOk);
129      }
130    case unknownSoftware :
131      { 
132        break;
133      }
134    }
135}
136
137
138
139trivaluedBool nomDeLogiciel::doAcceptElement(nomdElements::typedElement typdel) 
140{
141  //xx
142
143  cout << " nomDeLogiciel::doAcceptElement type : " << typdel << endl;
144  cout << " nomDeLogiciel::doAcceptElement nb el/ acc. " << acceptedElements_.size() << endl;
145  if (acceptedElements_.size() == 0 ) {
146    return TBoolError;
147  }
148
149  if (std::find(acceptedElements_.begin(),acceptedElements_.end(),typdel) != acceptedElements_.end()) {
150    return TBoolOk;
151  }
152
153  if (ignoredElements_.size() == 0) {
154    return TBoolError;
155  }
156
157  if (std::find(ignoredElements_.begin(),ignoredElements_.end(),typdel) != ignoredElements_.end()) {
158    return TBoolIgnore;
159  }
160
161  return TBoolOk;
162}
163
164
165
166
167// operators
168nomDeLogiciel& nomDeLogiciel::operator= (const nomDeLogiciel& nl)
169{
170  program_ = nl.program_;
171  progString_ = nl.progString_;
172  acceptedElements_ = nl.acceptedElements_;
173  ignoredElements_ = nl.ignoredElements_;
174  return *this;
175}
176
177bool nomDeLogiciel::operator== (const nomDeLogiciel& nl)
178{
179  return ( program_ == nl.program_);
180}
181
182bool nomDeLogiciel::operator!= (const nomDeLogiciel& nl)
183{
184  return ( program_ != nl.program_);
185}
Note: See TracBrowser for help on using the repository browser.