Version: 9.15.0
FormAdvParamContainer Class Reference

#include <FormAdvParamContainer.hxx>

Inheritance diagram for FormAdvParamContainer:
Collaboration diagram for FormAdvParamContainer:

Public Slots

void onModifyResource (const QString &text)
 
void onModifyPolicy (const QString &text)
 
void onModifyWorkDir (const QString &text)
 
void onModifyContName (const QString &text)
 
void onModifyOS (const QString &text)
 
void onModifyParLib (const QString &text)
 
void onModifyIsMPI (bool isMpi)
 
void onModifyMem (const QString &text)
 
void onModifyClock (const QString &text)
 
void onModifyNodes (const QString &text)
 
void onModifyProcs (const QString &text)
 
void onModifyCompos (const QString &text)
 
void onModifyProcPar (const QString &text)
 
void onModifyResourceName (const QString &text)
 
void onModifyHostName (const QString &text)
 
void onModifyProcRes (const QString &text)
 
void onModifyCompoList (const QString &text)
 
void onModifyResourceList (const QString &text)
 
void onModifyUsePyCache (int val)
 

Public Member Functions

 FormAdvParamContainer (std::map< std::string, std::string > &prop, QWidget *parent=0)
 
virtual ~FormAdvParamContainer ()
 
void FillPanel (const std::string &resource, YACS::ENGINE::Container *container)
 
virtual void onModified ()
 
void updateResource (const std::string &resource)
 
void setModeText (const std::string &mode)
 

Protected Attributes

bool _advanced
 
YACS::ENGINE::Container_container
 
std::map< std::string, std::string > & _properties
 

Detailed Description

Definition at line 37 of file FormAdvParamContainer.hxx.

Constructor & Destructor Documentation

◆ FormAdvParamContainer()

FormAdvParamContainer::FormAdvParamContainer ( std::map< std::string, std::string > &  prop,
QWidget parent = 0 
)

Definition at line 40 of file FormAdvParamContainer.cxx.

40  :QWidget(parent),_properties(prop)
41 {
42  setupUi(this);
43  sb_mem->setMaximum(INT_MAX);
44  sb_cpu->setMaximum(INT_MAX);
45  sb_nbNodes->setMaximum(INT_MAX);
46  sb_procNode->setMaximum(INT_MAX);
47  sb_nbprocpar->setMaximum(INT_MAX);
48  sb_nbproc->setMaximum(INT_MAX);
49 
50  FillPanel("",0); // --- set widgets before signal connexion to avoid false modif detection
51 
52  connect(cb_policy, SIGNAL(activated(const QString&)), this, SLOT(onModifyPolicy(const QString&)));
53  connect(cb_parallel, SIGNAL(activated(const QString&)), this, SLOT(onModifyParLib(const QString&)));
54  connect(le_workdir, SIGNAL(textChanged(const QString&)), this, SLOT(onModifyWorkDir(const QString&)));
55  connect(le_contname, SIGNAL(textChanged(const QString&)), this, SLOT(onModifyContName(const QString&)));
56  connect(le_os, SIGNAL(textChanged(const QString&)), this, SLOT(onModifyOS(const QString&)));
57  connect(le_hostname, SIGNAL(textChanged(const QString&)), this, SLOT(onModifyHostName(const QString&)));
58  connect(le_compolist, SIGNAL(textChanged(const QString&)), this, SLOT(onModifyCompoList(const QString&)));
59  connect(le_resourceList, SIGNAL(textChanged(const QString&)), this, SLOT(onModifyResourceList(const QString&)));
60  connect(ch_mpi, SIGNAL(clicked(bool)), this, SLOT(onModifyIsMPI(bool)));
61  connect(sb_mem, SIGNAL(valueChanged(const QString&)), this, SLOT(onModifyMem(const QString&)));
62  connect(sb_cpu, SIGNAL(valueChanged(const QString&)), this, SLOT(onModifyClock(const QString&)));
63  connect(sb_nbNodes, SIGNAL(valueChanged(const QString&)), this, SLOT(onModifyNodes(const QString&)));
64  connect(sb_procNode, SIGNAL(valueChanged(const QString&)), this, SLOT(onModifyProcs(const QString&)));
65  connect(sb_nbprocpar, SIGNAL(valueChanged(const QString&)), this, SLOT(onModifyProcPar(const QString&)));
66  connect(sb_nbproc, SIGNAL(valueChanged(const QString&)), this, SLOT(onModifyProcRes(const QString&)));
67  connect(ch_pycache,SIGNAL(stateChanged(int)),this,SLOT(onModifyUsePyCache(int)));
68 }
void onModifyNodes(const QString &text)
void onModifyMem(const QString &text)
void onModifyClock(const QString &text)
void onModifyProcPar(const QString &text)
void onModifyResourceList(const QString &text)
void onModifyProcs(const QString &text)
std::map< std::string, std::string > & _properties
void onModifyHostName(const QString &text)
void onModifyContName(const QString &text)
void onModifyPolicy(const QString &text)
void onModifyCompoList(const QString &text)
void onModifyOS(const QString &text)
void onModifyParLib(const QString &text)
void onModifyWorkDir(const QString &text)
void FillPanel(const std::string &resource, YACS::ENGINE::Container *container)
void onModifyProcRes(const QString &text)

References FillPanel(), onModifyClock(), onModifyCompoList(), onModifyContName(), onModifyHostName(), onModifyIsMPI(), onModifyMem(), onModifyNodes(), onModifyOS(), onModifyParLib(), onModifyPolicy(), onModifyProcPar(), onModifyProcRes(), onModifyProcs(), onModifyResourceList(), onModifyUsePyCache(), and onModifyWorkDir().

◆ ~FormAdvParamContainer()

FormAdvParamContainer::~FormAdvParamContainer ( )
virtual

Definition at line 70 of file FormAdvParamContainer.cxx.

71 {
72 }

Member Function Documentation

◆ FillPanel()

void FormAdvParamContainer::FillPanel ( const std::string &  resource,
YACS::ENGINE::Container container 
)

Definition at line 74 of file FormAdvParamContainer.cxx.

75 {
76  DEBTRACE("FormContainer::FillPanel");
77  _container = container;
78  if (_container)
79  {
81  }
82  else
83  {
84  _properties.clear();
85  }
86 
87  if(_properties.count("type") && _properties["type"]=="multi")
88  cb_mode->setText("multi");
89  else
90  cb_mode->setText("mono");
91 
92  vector<string> parlibs;
93  parlibs.push_back("");
94  parlibs.push_back("Mpi");
95  parlibs.push_back("Dummy");
96  cb_parallel->clear();
97  for(int i=0; i< parlibs.size(); i++)
98  cb_parallel->addItem(parlibs[i].c_str());
99  if(_properties.count("parallelLib"))
100  {
101  int i=0;
102  for(i=0; i< parlibs.size(); i++)
103  if(parlibs[i] == _properties["parallelLib"])
104  {
105  cb_parallel->setCurrentIndex(i);
106  break;
107  }
108  }
109  else
110  cb_parallel->setCurrentIndex(0);
111 
112  if(_properties.count("workingdir"))
113  le_workdir->setText(_properties["workingdir"].c_str());
114  else
115  le_workdir->setText("");
116 
117  if(_container)
118  ch_pycache->setCheckState(_container->isUsingPythonCache()?Qt::Checked:Qt::Unchecked);
119  else
120  ch_pycache->setCheckState(Qt::Unchecked);
121 
122  if(_properties.count("container_name"))
123  le_contname->setText(_properties["container_name"].c_str());
124  else
125  le_contname->setText("");
126 
127  if(_properties.count("isMPI"))
128  {
129  DEBTRACE("_properties[isMPI]=" << _properties["isMPI"]);
130  if ((_properties["isMPI"] == "0") || (_properties["isMPI"] == "false"))
131  ch_mpi->setCheckState(Qt::Unchecked);
132  else
133  ch_mpi->setCheckState(Qt::Checked);
134  }
135  else
136  ch_mpi->setCheckState(Qt::Unchecked);
137 
138  if(_properties.count("nb_parallel_procs"))
139  sb_nbprocpar->setValue(atoi(_properties["nb_parallel_procs"].c_str()));
140  else
141  sb_nbprocpar->setValue(0);
142 
143  updateResource(resource);
144 
145  if (!QtGuiContext::getQtCurrent()->isEdition())
146  {
147  //if the schema is in execution do not allow editing
148  cb_parallel->setEnabled(false);
149  le_workdir->setReadOnly(true);
150  le_contname->setReadOnly(true);
151  ch_mpi->setEnabled(false);
152  sb_nbprocpar->setReadOnly(true);
153  le_hostname->setEnabled(false);
154  le_os->setEnabled(false);
155  sb_nbproc->setEnabled(false);
156  sb_mem->setEnabled(false);
157  sb_cpu->setEnabled(false);
158  sb_nbNodes->setEnabled(false);
159  sb_procNode->setEnabled(false);
160  cb_policy->setEnabled(false);
161  le_compolist->setEnabled(false);
162  le_resourceList->setEnabled(false);
163  }
164 }
#define DEBTRACE(msg)
Definition: YacsTrace.hxx:31
YACS::ENGINE::Container * _container
void updateResource(const std::string &resource)
virtual std::map< std::string, std::string > getProperties() const =0
virtual bool isUsingPythonCache()
Definition: Container.cxx:109

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), yacsorb.CORBAEngineTest::i, YACS::ENGINE::Container::isUsingPythonCache(), and updateResource().

Referenced by FormContainerBase::FillPanel(), and FormAdvParamContainer().

◆ onModified()

void FormAdvParamContainer::onModified ( )
virtual

Definition at line 166 of file FormAdvParamContainer.cxx.

167 {
168  DEBTRACE("FormContainer::onModified");
169  Subject *sub = QtGuiContext::getQtCurrent()->getSelectedSubject();
170  if (!sub) return;
171  YASSERT(QtGuiContext::getQtCurrent()->_mapOfEditionItem.count(sub));
172  QWidget *widget = QtGuiContext::getQtCurrent()->_mapOfEditionItem[sub];
173  ItemEdition *item = dynamic_cast<ItemEdition*>(widget);
174  YASSERT(item);
175  item->setEdited(true);
176 }
#define YASSERT(val)
YASSERT macro is always defined, used like assert, but throw a YACS::Exception instead of abort.
Definition: YacsTrace.hxx:59
virtual void setEdited(bool isEdited)

References DEBTRACE, YACS::HMI::ItemEdition::setEdited(), and YASSERT.

Referenced by onModifyClock(), onModifyCompoList(), onModifyCompos(), onModifyContName(), onModifyHostName(), onModifyIsMPI(), onModifyMem(), onModifyNodes(), onModifyOS(), onModifyParLib(), onModifyPolicy(), onModifyProcPar(), onModifyProcRes(), onModifyProcs(), onModifyResource(), onModifyResourceList(), onModifyResourceName(), onModifyUsePyCache(), and onModifyWorkDir().

◆ onModifyClock

void FormAdvParamContainer::onModifyClock ( const QString &  text)
slot

Definition at line 430 of file FormAdvParamContainer.cxx.

431 {
432  DEBTRACE("onModifyClock " << text.toStdString());
433  if (!_container) return;
434  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
435  map<string,string> properties = _container->getProperties();
436  if(properties.count("cpu_clock")==0 )properties["cpu_clock"]="0"; //default value
437  _properties["cpu_clock"] = text.toStdString();
438  if (properties["cpu_clock"] != text.toStdString())
439  onModified();
440 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyCompoList

void FormAdvParamContainer::onModifyCompoList ( const QString &  text)
slot

Definition at line 520 of file FormAdvParamContainer.cxx.

521 {
522  DEBTRACE("onModifyCompoList " << text.toStdString());
523  if (!_container) return;
524  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
525  map<string,string> properties = _container->getProperties();
526  _properties["component_list"] = text.toStdString();
527  if (properties["component_list"] != text.toStdString())
528  onModified();
529 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyCompos

void FormAdvParamContainer::onModifyCompos ( const QString &  text)
slot

Definition at line 466 of file FormAdvParamContainer.cxx.

467 {
468  DEBTRACE("onModifyCompo " << text.toStdString());
469  if (!_container) return;
470  map<string,string> properties = _container->getProperties();
471  _properties["nb_component_nodes"] = text.toStdString();
472  if (properties["nb_component_nodes"] != text.toStdString())
473  onModified();
474 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

◆ onModifyContName

void FormAdvParamContainer::onModifyContName ( const QString &  text)
slot

Definition at line 374 of file FormAdvParamContainer.cxx.

375 {
376  DEBTRACE("onModifyContName " << text.toStdString());
377  if (!_container) return;
378  map<string,string> properties = _container->getProperties();
379  _properties["container_name"] = text.toStdString();
380  if (properties["container_name"] != text.toStdString())
381  onModified();
382 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyHostName

void FormAdvParamContainer::onModifyHostName ( const QString &  text)
slot

Definition at line 496 of file FormAdvParamContainer.cxx.

497 {
498  DEBTRACE("onModifyHostName " << text.toStdString());
499  if (!_container) return;
500  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
501 
502  map<string,string> properties = _container->getProperties();
503  _properties["hostname"] = text.toStdString();
504  if (properties["hostname"] != text.toStdString())
505  onModified();
506 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyIsMPI

void FormAdvParamContainer::onModifyIsMPI ( bool  isMpi)
slot

Definition at line 405 of file FormAdvParamContainer.cxx.

406 {
407  DEBTRACE("onModifyIsMPI " << isMpi);
408  if (!_container) return;
409  string text = "false";
410  if (isMpi) text = "true";
411  DEBTRACE(text);
412  map<string,string> properties = _container->getProperties();
413  _properties["isMPI"] = text;
414  if (properties["isMPI"] != text)
415  onModified();
416 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyMem

void FormAdvParamContainer::onModifyMem ( const QString &  text)
slot

Definition at line 418 of file FormAdvParamContainer.cxx.

419 {
420  DEBTRACE("onModifyMem " << text.toStdString());
421  if (!_container) return;
422  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
423  map<string,string> properties = _container->getProperties();
424  if(properties.count("mem_mb")==0 )properties["mem_mb"]="0"; //default value
425  _properties["mem_mb"] = text.toStdString();
426  if (properties["mem_mb"] != text.toStdString())
427  onModified();
428 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyNodes

void FormAdvParamContainer::onModifyNodes ( const QString &  text)
slot

Definition at line 442 of file FormAdvParamContainer.cxx.

443 {
444  DEBTRACE("onModifyNodes " << text.toStdString());
445  if (!_container) return;
446  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
447  map<string,string> properties = _container->getProperties();
448  if(properties.count("nb_node")==0 )properties["nb_node"]="0"; //default value
449  _properties["nb_node"] = text.toStdString();
450  if (properties["nb_node"] != text.toStdString())
451  onModified();
452 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyOS

void FormAdvParamContainer::onModifyOS ( const QString &  text)
slot

Definition at line 384 of file FormAdvParamContainer.cxx.

385 {
386  DEBTRACE("onModifyOS " << text.toStdString());
387  if (!_container) return;
388  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
389  map<string,string> properties = _container->getProperties();
390  _properties["OS"] = text.toStdString();
391  if (properties["OS"] != text.toStdString())
392  onModified();
393 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyParLib

void FormAdvParamContainer::onModifyParLib ( const QString &  text)
slot

Definition at line 395 of file FormAdvParamContainer.cxx.

396 {
397  DEBTRACE("onModifyParLib " << text.toStdString());
398  if (!_container) return;
399  map<string,string> properties = _container->getProperties();
400  _properties["parallelLib"] = text.toStdString();
401  if (properties["parallelLib"] != text.toStdString())
402  onModified();
403 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyPolicy

void FormAdvParamContainer::onModifyPolicy ( const QString &  text)
slot

Definition at line 353 of file FormAdvParamContainer.cxx.

354 {
355  DEBTRACE("onModifyPolicy " << text.toStdString());
356  if (!_container) return;
357  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
358  map<string,string> properties = _container->getProperties();
359  _properties["policy"] = text.toStdString();
360  if (properties["policy"] != text.toStdString())
361  onModified();
362 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyProcPar

void FormAdvParamContainer::onModifyProcPar ( const QString &  text)
slot

Definition at line 476 of file FormAdvParamContainer.cxx.

477 {
478  DEBTRACE("onModifyProcPar " << text.toStdString());
479  if (!_container) return;
480  map<string,string> properties = _container->getProperties();
481  _properties["nb_parallel_procs"] = text.toStdString();
482  if (properties["nb_parallel_procs"] != text.toStdString())
483  onModified();
484 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyProcRes

void FormAdvParamContainer::onModifyProcRes ( const QString &  text)
slot

Definition at line 508 of file FormAdvParamContainer.cxx.

509 {
510  DEBTRACE("onModifyProcRes " << text.toStdString());
511  if (!_container) return;
512  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
513  map<string,string> properties = _container->getProperties();
514  if(properties.count("nb_resource_procs")==0 )properties["nb_resource_procs"]="0"; //default value
515  _properties["nb_resource_procs"] = text.toStdString();
516  if (properties["nb_resource_procs"] != text.toStdString())
517  onModified();
518 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyProcs

void FormAdvParamContainer::onModifyProcs ( const QString &  text)
slot

Definition at line 454 of file FormAdvParamContainer.cxx.

455 {
456  DEBTRACE("onModifyProcs " << text.toStdString());
457  if (!_container) return;
458  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
459  map<string,string> properties = _container->getProperties();
460  if(properties.count("nb_proc_per_node")==0 )properties["nb_proc_per_node"]="0"; //default value
461  _properties["nb_proc_per_node"] = text.toStdString();
462  if (properties["nb_proc_per_node"] != text.toStdString())
463  onModified();
464 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyResource

void FormAdvParamContainer::onModifyResource ( const QString &  text)
slot

Definition at line 329 of file FormAdvParamContainer.cxx.

330 {
331  DEBTRACE("onModifyResource " << text.toStdString());
332  if (!_container) return;
333  std::string resource=text.toStdString();
334  if(resource=="automatic")resource="";
335  map<string,string> properties = _container->getProperties();
336  _properties["name"] = resource;
337  if (properties["name"] != resource)
338  {
339  // reset resource properties
340  _properties.erase("hostname");
341  _properties.erase("OS");
342  _properties.erase("nb_resource_procs");
343  _properties.erase("mem_mb");
344  _properties.erase("cpu_clock");
345  _properties.erase("nb_node");
346  _properties.erase("nb_proc_per_node");
347  _properties.erase("policy");
348  onModified();
349  updateResource(resource);
350  }
351 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), onModified(), and updateResource().

◆ onModifyResourceList

void FormAdvParamContainer::onModifyResourceList ( const QString &  text)
slot

Definition at line 531 of file FormAdvParamContainer.cxx.

532 {
533  DEBTRACE("onModifyResourceList " << text.toStdString());
534  if (!_container) return;
535  if(_properties.count("name") && _properties["name"] != "")return; //do not modify resource parameter when specific resource is set
536  map<string,string> properties = _container->getProperties();
537  _properties["resource_list"] = text.toStdString();
538  if (properties["resource_list"] != text.toStdString())
539  onModified();
540 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ onModifyResourceName

void FormAdvParamContainer::onModifyResourceName ( const QString &  text)
slot

Definition at line 486 of file FormAdvParamContainer.cxx.

487 {
488  DEBTRACE("onModifyResourceName " << text.toStdString());
489  if (!_container) return;
490  map<string,string> properties = _container->getProperties();
491  _properties["resource_name"] = text.toStdString();
492  if (properties["resource_name"] != text.toStdString())
493  onModified();
494 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

◆ onModifyUsePyCache

void FormAdvParamContainer::onModifyUsePyCache ( int  val)
slot

Definition at line 542 of file FormAdvParamContainer.cxx.

543 {
544  if (!_container)
545  return;
546  bool val2(false);
547  if(val==Qt::Unchecked)
548  val2=false;
549  if(val==Qt::Checked)
550  val2=true;
551  bool prop = _container->isUsingPythonCache();
552  if(prop!=val2)
553  {
554  _container->usePythonCache(val2);
555  map<string,string> properties = _container->getProperties();
556  _properties[Container::USE_PYCACHE_PROPERTY] = properties[Container::USE_PYCACHE_PROPERTY];
557  onModified();
558  }
559 }
virtual void usePythonCache(bool v)
Definition: Container.cxx:125

References _container, _properties, YACS::ENGINE::Container::getProperties(), YACS::ENGINE::Container::isUsingPythonCache(), onModified(), and YACS::ENGINE::Container::usePythonCache().

Referenced by FormAdvParamContainer().

◆ onModifyWorkDir

void FormAdvParamContainer::onModifyWorkDir ( const QString &  text)
slot

Definition at line 364 of file FormAdvParamContainer.cxx.

365 {
366  DEBTRACE("onModifyWorkDir " << text.toStdString());
367  if (!_container) return;
368  map<string,string> properties = _container->getProperties();
369  _properties["workingdir"] = text.toStdString();
370  if (properties["workingdir"] != text.toStdString())
371  onModified();
372 }

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getProperties(), and onModified().

Referenced by FormAdvParamContainer().

◆ setModeText()

void FormAdvParamContainer::setModeText ( const std::string &  mode)

Definition at line 324 of file FormAdvParamContainer.cxx.

325 {
326  cb_mode->setText(mode.c_str());
327 }

Referenced by FormContainer::onModifyType().

◆ updateResource()

void FormAdvParamContainer::updateResource ( const std::string &  resource)

Definition at line 178 of file FormAdvParamContainer.cxx.

179 {
180  DEBTRACE("FormContainer::updateResource " << resource);
181  if(resource.empty())
182  {
183  //the resource is not specified: use automatic and allow editing
184  if(_properties.count("hostname"))
185  le_hostname->setText(_properties["hostname"].c_str());
186  else
187  le_hostname->setText("");
188  le_hostname->setEnabled(true);
189 
190  if(_properties.count("OS"))
191  le_os->setText(_properties["OS"].c_str());
192  else
193  le_os->setText("");
194  le_os->setEnabled(true);
195 
196  if(_properties.count("nb_resource_procs"))
197  sb_nbproc->setValue(atoi(_properties["nb_resource_procs"].c_str()));
198  else
199  sb_nbproc->setValue(0);
200  sb_nbproc->setEnabled(true);
201 
202  if(_properties.count("mem_mb"))
203  sb_mem->setValue(atoi(_properties["mem_mb"].c_str()));
204  else
205  sb_mem->setValue(0);
206  sb_mem->setEnabled(true);
207 
208  if(_properties.count("cpu_clock"))
209  sb_cpu->setValue(atoi(_properties["cpu_clock"].c_str()));
210  else
211  sb_cpu->setValue(0);
212  sb_cpu->setEnabled(true);
213 
214  if(_properties.count("nb_node"))
215  sb_nbNodes->setValue(atoi(_properties["nb_node"].c_str()));
216  else
217  sb_nbNodes->setValue(0);
218  sb_nbNodes->setEnabled(true);
219 
220  if(_properties.count("nb_proc_per_node"))
221  sb_procNode->setValue(atoi(_properties["nb_proc_per_node"].c_str()));
222  else
223  sb_procNode->setValue(0);
224  sb_procNode->setEnabled(true);
225 
226  std::vector<std::string> policies;
227  policies.push_back("cycl");
228  policies.push_back("altcycl");
229  policies.push_back("best");
230  policies.push_back("first");
231  cb_policy->clear();
232  for(int i=0; i< policies.size(); i++)
233  cb_policy->addItem(policies[i].c_str());
234  if(_properties.count("policy"))
235  {
236  int i=0;
237  for(i=0; i< policies.size(); i++)
238  if(policies[i] == _properties["policy"])
239  {
240  cb_policy->setCurrentIndex(i);
241  break;
242  }
243  }
244  else
245  cb_policy->setCurrentIndex(1);
246  cb_policy->setEnabled(true);
247 
248  if(_properties.count("component_list"))
249  le_compolist->setText(_properties["component_list"].c_str());
250  else
251  le_compolist->setText("");
252  le_compolist->setEnabled(true);
253 
254  if(_properties.count("resource_list"))
255  le_resourceList->setText(_properties["resource_list"].c_str());
256  else
257  le_resourceList->setText("");
258  le_resourceList->setEnabled(true);
259  }
260  else
261  {
262  //a specific resource has been chosen: properties are those declared in the resources manager
263  //properties can not be edited
264  std::map<std::string,std::string> properties(_container->getResourceProperties(resource));
265  if(properties.count("hostname"))
266  le_hostname->setText(properties["hostname"].c_str());
267  else
268  le_hostname->setText("");
269  le_hostname->setEnabled(false);
270 
271  if(properties.count("OS"))
272  le_os->setText(properties["OS"].c_str());
273  else
274  le_os->setText("");
275  le_os->setEnabled(false);
276 
277  if(properties.count("nb_resource_procs"))
278  sb_nbproc->setValue(atoi(properties["nb_resource_procs"].c_str()));
279  else
280  sb_nbproc->setValue(0);
281  sb_nbproc->setEnabled(false);
282 
283  if(properties.count("mem_mb"))
284  sb_mem->setValue(atoi(properties["mem_mb"].c_str()));
285  else
286  sb_mem->setValue(0);
287  sb_mem->setEnabled(false);
288 
289  if(properties.count("cpu_clock"))
290  sb_cpu->setValue(atoi(properties["cpu_clock"].c_str()));
291  else
292  sb_cpu->setValue(0);
293  sb_cpu->setEnabled(false);
294 
295  if(properties.count("nb_node"))
296  sb_nbNodes->setValue(atoi(properties["nb_node"].c_str()));
297  else
298  sb_nbNodes->setValue(0);
299  sb_nbNodes->setEnabled(false);
300 
301  if(properties.count("nb_proc_per_node"))
302  sb_procNode->setValue(atoi(properties["nb_proc_per_node"].c_str()));
303  else
304  sb_procNode->setValue(0);
305  sb_procNode->setEnabled(false);
306 
307  cb_policy->clear();
308  cb_policy->setEnabled(false);
309 
310  if(properties.count("component_list"))
311  le_compolist->setText(properties["component_list"].c_str());
312  else
313  le_compolist->setText("");
314  le_compolist->setEnabled(false);
315 
316  if(properties.count("resource_list"))
317  le_resourceList->setText(properties["resource_list"].c_str());
318  else
319  le_resourceList->setText("");
320  le_resourceList->setEnabled(false);
321  }
322 }
virtual std::map< std::string, std::string > getResourceProperties(const std::string &name) const =0

References _container, _properties, DEBTRACE, YACS::ENGINE::Container::getResourceProperties(), and yacsorb.CORBAEngineTest::i.

Referenced by FillPanel(), and onModifyResource().

Member Data Documentation

◆ _advanced

bool FormAdvParamContainer::_advanced
protected

Definition at line 73 of file FormAdvParamContainer.hxx.

◆ _container

◆ _properties


The documentation for this class was generated from the following files: