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

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

refection generale des secteurs et applications de softwares (suite)

File size: 4.3 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
46nomDeLogiciel::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
72void nomDeLogiciel::registerElement(nomdElements::typedElement nomdel,trivaluedBool b) 
73{
74  if (b == TBoolIgnore) {
75    ignoredElements_.push_back(nomdel);
76  } else if (b == TBoolOk) {
77    acceptedElements_.push_back(nomdel);
78  }
79}
80
81void nomDeLogiciel::setCompatiblesElements() 
82{
83  switch (program_) 
84    {
85    case parmela : 
86      { 
87        registerElement(nomdElements::RFgun,TBoolOk);
88        registerElement(nomdElements::drift,TBoolOk);
89        registerElement(nomdElements::cell,TBoolOk);
90        registerElement(nomdElements::bend,TBoolOk);
91        registerElement(nomdElements::soleno,TBoolOk);
92        registerElement(nomdElements::fit,TBoolIgnore);
93        registerElement(nomdElements::snapshot,TBoolIgnore);
94        break;
95      }
96    case transport : 
97       { 
98         registerElement(nomdElements::beam,TBoolOk);
99         registerElement(nomdElements::drift,TBoolOk);
100         registerElement(nomdElements::bend,TBoolOk);
101         registerElement(nomdElements::soleno,TBoolOk);
102         registerElement(nomdElements::fit,TBoolOk);
103         registerElement(nomdElements::snapshot,TBoolIgnore);
104         break;
105       }
106    case generator : 
107      { 
108        registerElement(nomdElements::RFgun,TBoolOk);
109        break;
110      }
111    case test : 
112      { 
113        break;
114      }
115    case madx : 
116      { 
117        registerElement(nomdElements::RFgun,TBoolOk);
118        registerElement(nomdElements::drift,TBoolOk);
119        registerElement(nomdElements::mpole,TBoolOk);
120        registerElement(nomdElements::qpole,TBoolOk);
121        registerElement(nomdElements::spole,TBoolOk);
122        break;
123      }
124    case usersprogram : 
125      { 
126        registerElement(nomdElements::snapshot,TBoolOk);
127      }
128    case unknownSoftware :
129      { 
130        break;
131      }
132    }
133}
134
135trivaluedBool nomDeLogiciel::doAcceptElement(nomdElements::typedElement typdel) const
136{
137  if (acceptedElements_.size() == 0 ) {
138    return TBoolError;
139  }
140 
141  if (std::find(acceptedElements_.begin(),acceptedElements_.end(),typdel) != acceptedElements_.end()) {
142    return TBoolOk;
143  }
144 
145  if (ignoredElements_.size() == 0) {
146    return TBoolError;
147  }
148 
149  if (std::find(ignoredElements_.begin(),ignoredElements_.end(),typdel) != ignoredElements_.end()) {
150    return TBoolIgnore;
151  }
152 
153  return TBoolError;
154}
155
156// operators
157nomDeLogiciel& nomDeLogiciel::operator= (const nomDeLogiciel& nl)
158{
159  program_ = nl.program_;
160  progString_ = nl.progString_;
161  acceptedElements_ = nl.acceptedElements_;
162  ignoredElements_ = nl.ignoredElements_;
163  return *this;
164}
165
166bool nomDeLogiciel::operator== (const nomDeLogiciel& nl)
167{
168  return ( program_ == nl.program_);
169}
170
171bool nomDeLogiciel::operator!= (const nomDeLogiciel& nl)
172{
173  return ( program_ != nl.program_);
174}
Note: See TracBrowser for help on using the repository browser.