Index: /Interface_Web/trunk/pspaWT/History
===================================================================
--- /Interface_Web/trunk/pspaWT/History	(revision 467)
+++ /Interface_Web/trunk/pspaWT/History	(revision 468)
@@ -7,5 +7,13 @@
 
 18 Décembre 2013 : Laurent Garnier
-- requierements : Améliorer afin de mieux prendre en compte la gestion/création de tags sur le serveur.
+- sectionToExecute :
+  o Ajoute des méthodes getLastElement() et removeLastElement()
+- GWt_softwarePanel : Début de la réintégration de ce panel dans l'interface
+- GWt_accelerator :
+  o  Ajout de la méthode areDataCoherent (déplacé de GWt_sofwtarePanel)
+  o Impléméntation de run() (déplacé de la classe GWt_sofwtarePanel)
+
+18 Décembre 2013 : Laurent Garnier
+- requirements : Améliorer afin de mieux prendre en compte la gestion/création de tags sur le serveur.
   Précédement les libraries n'étaient pas accrochées comme il le fallait dans le requierement.
 
Index: /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 467)
+++ /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 468)
@@ -35,4 +35,14 @@
   inline std::vector< abstractElement* > getElements() {return elements_;};
   
+  /**
+   Get the last element of this section
+   */
+  inline abstractElement*  getLastElement() {return elements_.back();};
+  
+  /**
+   Remove the last element of this section
+   */
+  inline void removeLastElement() {return elements_.pop_back();};
+
   bool insertAfter(abstractElement*,abstractElement*);
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_accelerator.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_accelerator.h	(revision 467)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_accelerator.h	(revision 468)
@@ -45,5 +45,5 @@
   void dessinerHistogramme();
   void chartPlot2vec(WContainerWidget* toto,vector<double>& xcor,vector<double>& ycor,Wt::Chart::SeriesType seriesType,Wt::Chart::FillRangeType fillRange,Wt::Chart::AxisValue value,bool isGridLinesEnables,string title,string legendx,string legendy,int width,int height,bool makeIcon = false);
-  
+  bool areDataCoherent();
 
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_softwarePanel.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_softwarePanel.h	(revision 467)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_softwarePanel.h	(revision 468)
@@ -29,5 +29,5 @@
   virtual ~GWt_softwarePanel();
 
-  void addSectionToExecuteW();
+  void displayFromControler();
   void updateSections();
     
@@ -35,8 +35,7 @@
  
   bool updateSectionSelection();
-  void deleteSectionToExecuteW(int section);
+  void addSectionToExecute();
+  void deleteSectionToExecute(int section);
   string getSelection();
-  void executer();
-  bool areDataCoherent();
   void fillComboWithElements(Wt::WComboBox* cBox);
   void fillComboWithSoftwares(Wt::WComboBox* cBox);
@@ -44,9 +43,8 @@
 
   dataManager* dtmanage_;
-  WPushButton *exec_go_;
   WContainerWidget* contenuSections_;
   GWt_sector* UIsector_;
 
-  std::vector <GWt_sectionToExecute*> sections_;
+  std::vector <GWt_sectionToExecute*> UIsectionsToExecute_;
 };
 #endif /* defined(__PSPA__GWt_softwarePanel__) */
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_accelerator.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_accelerator.cc	(revision 467)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_accelerator.cc	(revision 468)
@@ -112,4 +112,26 @@
 void GWt_accelerator::run()
 {
+  cout << "***********************************" << endl;
+  cout << " GWt_softwarePanel::executer() " << endl<<endl;
+  
+  if (!areDataCoherent()) {
+    return;
+  }
+  
+  //static_cast<GWt_globalParameters*>(pspa_->getGlobalParam())->updateGlobals();
+  
+  GWt_dialog calculDialog("Calcul en cours", "Veuillez patienter...", GWt_dialog::Wait, true,false);
+  calculDialog.show();
+  
+  wApp->processEvents();
+  
+  if (!getDataManager()->executeAll()) {
+    GWt_dialog warningDialog("PSPA : Echec", " echec lors de l'exÃ©cution !", GWt_dialog::Error, true,true);
+    warningDialog.exec();
+  }
+  
+  //  exec_go_->setDisabled(true);
+  calculDialog.hide();
+  faireDessin();
 }
 
@@ -629,4 +651,71 @@
 
 
-
-
+bool GWt_accelerator::areDataCoherent()
+{
+  // FIXME
+  cout << "***********************************" << endl;
+  cout << "**  To be move in controler  **" << endl;
+  cout << "***********************************" << endl;
+  return true;
+#if BAVARD > 0
+  cout << "***********************************" << endl;
+  cout << " GWt_softwarePanel::areDataCoherent() " << endl<<endl;
+#endif
+  
+  bool caMarche = true;
+  /*
+   // initialize dataManager
+   dtmanage_->initializeExecution();
+   
+   // intialize User Interface
+   if (pspa_->getBeamLine()) {
+   pspa_->getBeamLine()->initializeSoftwares();
+   }
+   
+   string diagnosticErrors;
+   string diagnosticWarnings;
+   for (int a = 0; a < sections_.size(); a++)
+   {
+   string debString= sections_[a]->getFirstElementCurrentText().toUTF8();
+   string finString= sections_[a]->getLastElementCurrentText().toUTF8();
+   int debut = pspa_->getBeamLine()->getAbstractElementNumeroFromLabel(debString);
+   int fin = pspa_->getBeamLine()->getAbstractElementNumeroFromLabel(finString);
+   
+   string currentSoft= sections_[a]->getSoftwareCurrentText().toUTF8();
+   nomDeLogiciel prog = nomDeLogiciel(currentSoft);
+   sectionToExecute* sectToExec = dtmanage_->addSectionToExecute(pspa_->getBeamLine()->getAbstractElement(debut),debut,pspa_->getBeamLine()->getAbstractElement(fin),fin,prog);
+   
+   abstractSoftware* softToExec = sectToExec->getSoftware();
+   diagnosticErrors = "";
+   diagnosticWarnings = "";
+   for(int i = debut-1; i < fin; i++) // check sections
+   {
+   if (!pspa_->getBeamLine()) continue;
+   abstractElement* elPtr= pspa_->getBeamLine()->getAbstractElement(i);
+   if (!elPtr) continue;
+   
+   trivaluedBool tb = softToExec->doAcceptElement(elPtr->getNomdElement().getElementType());
+   cout << " GWt_softwarePanel::areDataCoherent() el " << elPtr->getLabel() << " tb= " << tb << endl;
+   if (tb  == TBoolOk ) {
+   elPtr->setSoftware(softToExec);
+   } else {
+   elPtr->setSoftware(NULL);
+   if (tb == TBoolIgnore) {
+   if(prog.getString() != "unknownSoftware") diagnosticWarnings += elPtr->getLabel() + " will be ignored by  "+ prog.getString() + "<br /> ";
+   } else {
+   // j'insiste pour remettre le nom generique de l'element refuse (glm / 30/03/2013)
+   diagnosticErrors += elPtr->getNomdElement().getExpandedName() + " is not allowed with " + prog.getString() + "<br /> ";
+   caMarche = false;
+   }
+   }
+   pspa_->getBeamLine()->update(i);
+   } //i
+   
+   // set errors and warnings
+   sections_[a]->setErrors(diagnosticErrors);
+   sections_[a]->setWarnings(diagnosticWarnings);
+   }//a
+   */
+  return caMarche;
+}
+
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 467)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 468)
@@ -113,4 +113,6 @@
   
   buildBeamLineWidget();
+  getUISector()->getExecuteWidget()->displayFromControler();
+
   return UIabstractElement;
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 467)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 468)
@@ -30,8 +30,4 @@
 {
   
-  // bouton execute
-  exec_go_ = new WPushButton("execute!");
-  exec_go_->clicked().connect(this, &GWt_softwarePanel::executer);
-
   // le panel
   WPanel *panelLogiciels = new WPanel(this);
@@ -39,8 +35,7 @@
   
   contenuSections_ = new WContainerWidget();
-  contenuSections_->addWidget(exec_go_);
   contenuSections_->addWidget(new WBreak());
   contenuSections_->addWidget(new WBreak());
-  addSectionToExecuteW();
+  displayFromControler();
   
   panelLogiciels->setCentralWidget(contenuSections_);
@@ -50,108 +45,96 @@
 }
 
-void GWt_softwarePanel::addSectionToExecuteW()
+void GWt_softwarePanel::displayFromControler()
 {      
-  cout << "***********************************" << endl;
-  cout << "*  A rÃ©Ã©crire  *" << endl;
-  cout << "***********************************" << endl;
+#if BAVARD > 0
+  cout << "***********************************" << endl;
+  cout << " GWt_softwarePanel::addSectionToExecuteW() " << endl<<endl;
+#endif
+
+  // Clear all
+  contenuSections_->clear();
+  
+  // Get all sectionsToExecute from this sector
+  if (!UIsector_->getSectorControler()) {
+    return;
+  }
+  
+  if (UIsector_->getSectorControler()->getSectionsToExecute().size() == 0) {
+    // FIXME : Add a message to tell the user to add first an element
+  } else {
+    for (unsigned int a=0; a<UIsector_->getSectorControler()->getSectionsToExecute().size(); a++) {
+      abstractElement* premierElement = NULL;
+      abstractElement* dernierElement = NULL;
+      
+      int premierIndex = 0;
+      int dernierIndex = 0;
+      
+      std::string premierElementLabel = "";
+      std::string dernierElementLabel = "";
+      if (premierElement) {
+        premierElementLabel = premierElement->getLabel();
+      }
+      if (dernierElement) {
+        dernierElementLabel = dernierElement->getLabel();
+      }
+      
+      WComboBox* lineFromCombo = new WComboBox();
+      WComboBox* lineToCombo = new WComboBox();
+      fillComboWithElements(lineFromCombo);
+      fillComboWithElements(lineToCombo);
+      
+      // set selection
+      lineFromCombo->setCurrentIndex(premierIndex);
+      lineToCombo->setCurrentIndex(dernierIndex);
+      
+      WComboBox* softCombo = new WComboBox();
+      fillComboWithSoftwares(softCombo);
+      
+      // Add the sectionToExecute Widget
+      GWt_sectionToExecute* newSection = new GWt_sectionToExecute(lineFromCombo,lineToCombo,softCombo,createAddDeletePushButtons(UIsectionsToExecute_.size()),this,UIsector_);
+      
+      stringstream st;
+      st << UIsectionsToExecute_.size();
+      
+      // this is the mean to identify this section!
+      newSection->setObjectName(st.str());
+      
+      // push back on sections vector
+      UIsectionsToExecute_.push_back(newSection);
+      contenuSections_->addWidget(newSection);
+      updateSections();
+
+      
+    }
+  }
+ }
+
+void GWt_softwarePanel::updateSections()
+{
+#if BAVARD > 0
+  cout << "***********************************" << endl;
+  cout << " GWt_softwarePanel::updateSections() " << endl<<endl;
+#endif
   return;
-#if BAVARD > 0
-  cout << "***********************************" << endl;
-  cout << " GWt_softwarePanel::addSectionToExecuteW() " << endl<<endl;
-#endif
-
-  abstractElement* premierElement = NULL;
-  abstractElement* dernierElement = NULL;
-
-  int premierIndex = 0;
-  int dernierIndex = 0;
-  
-  cout << "sections_.size() = " << sections_.size() << endl;
-/*
-  // if there is no section
-  if(sections_.size() == 0) {
-    premierElement = pspa_->getBeamLine()->getAbstractElement(0);
-    premierIndex = 0;
-    
-    // if this is not the first :
-    // - first element will be the last of the previous section
-    // (or the same if it is the last of the beam line)
-    // - lastElement will be the last of the beam line
-    // - software will be the first of the list
-    
-  } else {
-    dernierElement = pspa_->getBeamLine()->getAbstractElement(pspa_->getBeamLine()->getBeamLineSize()-1);
-    dernierIndex = pspa_->getBeamLine()->getBeamLineSize()-1;
-    
-    premierElement = dernierElement;
-    premierIndex = dernierIndex;
-  }
-  
-  dernierElement = pspa_->getBeamLine()->getAbstractElement(pspa_->getBeamLine()->getBeamLineSize()-1);
-  dernierIndex = pspa_->getBeamLine()->getBeamLineSize()-1;
-  
-  dtmanage_->addSectionToExecute(premierElement,premierIndex,dernierElement,dernierIndex,nomDeLogiciel());
-*/
-  std::string premierElementLabel = "";
-  std::string dernierElementLabel = "";
-  if (premierElement) {
-    premierElementLabel = premierElement->getLabel();
-  }
-  if (dernierElement) {
-    dernierElementLabel = dernierElement->getLabel();
-  }
-
-  WComboBox* lineFromCombo = new WComboBox();
-  WComboBox* lineToCombo = new WComboBox();
-  fillComboWithElements(lineFromCombo);
-  fillComboWithElements(lineToCombo);
-
-  // set selection
-  lineFromCombo->setCurrentIndex(premierIndex);
-  lineToCombo->setCurrentIndex(dernierIndex);
-
-  WComboBox* softCombo = new WComboBox();
-  fillComboWithSoftwares(softCombo);
-
-  GWt_sectionToExecute* newSection = new GWt_sectionToExecute(lineFromCombo,lineToCombo,softCombo,createAddDeletePushButtons(sections_.size()),this,UIsector_);
-
-  stringstream st;
-  st << sections_.size();
-
-  // this is the mean to identify this section!
-  newSection->setObjectName(st.str());
-
-  // push back on sections vector
-  sections_.push_back(newSection);
-  contenuSections_->addWidget(newSection);
-  updateSections();
-}
-
-void GWt_softwarePanel::updateSections()
-{
-#if BAVARD > 0
-  cout << "***********************************" << endl;
-  cout << " GWt_softwarePanel::updateSections() " << endl<<endl;
-#endif
-
+  
   // update all sections in order to manage new/deleted items
-  for (int a = 0; a < sections_.size(); a++) {
-    fillComboWithElements(sections_[a]->getFirstElement());
-    fillComboWithElements(sections_[a]->getLastElement());
-    sections_[a]->getFirstElement()->setEnabled (true);
-    sections_[a]->getLastElement()->setEnabled (true);
-  }
-  
-  if (sections_.size() == 0) {
+  for (int a = 0; a < UIsectionsToExecute_.size(); a++) {
+    fillComboWithElements(UIsectionsToExecute_[a]->getFirstElement());
+    fillComboWithElements(UIsectionsToExecute_[a]->getLastElement());
+    UIsectionsToExecute_[a]->getFirstElement()->setEnabled (true);
+    UIsectionsToExecute_[a]->getLastElement()->setEnabled (true);
+  }
+  
+  if (UIsectionsToExecute_.size() == 0) {
     return;
   }
   
   // the first element will always be the first element of the beamLine
-  sections_[0]->getFirstElement()->setCurrentIndex(0);
-  sections_[0]->getFirstElement()->setEnabled (false);
+  UIsectionsToExecute_[0]->getFirstElement()->setCurrentIndex(0);
+  UIsectionsToExecute_[0]->getFirstElement()->setEnabled (false);
 
   // the last element will always be the last element of the beamLine
-  sections_[sections_.size()-1]->getLastElement()->setCurrentIndex(sections_[sections_.size()-1]->getLastElement()->count());
-  sections_[sections_.size()-1]->getLastElement()->setEnabled(false);
+  UIsectionsToExecute_[UIsectionsToExecute_.size()-1]->getLastElement()->setCurrentIndex(UIsectionsToExecute_[UIsectionsToExecute_.size()-1]->getLastElement()->count());
+  UIsectionsToExecute_[UIsectionsToExecute_.size()-1]->getLastElement()->setEnabled(false);
 
   // set default values
@@ -181,9 +164,9 @@
   // FIXME :  A rÃ©Ã©crire
   /*
-  if (sections_.size() > 0) {
-    sections_[0]->setFirstElementCurrentSelection(premier);
-  }
-  
-  Wt::WString currentString =  sections_[0]->getLastElementCurrentText();
+  if (UIsectionsToExecute_.size() > 0) {
+    UIsectionsToExecute_[0]->setFirstElementCurrentSelection(premier);
+  }
+  
+  Wt::WString currentString =  UIsectionsToExecute_[0]->getLastElementCurrentText();
   int current = dtmanage_->getNumeroFromElementLabel(currentString.toUTF8());
   
@@ -193,6 +176,6 @@
       current = dtmanage_->getBeamLineSize();
       currentString =  dtmanage_->getLabelFromElementNumero(current);
-      if (sections_.size() > 0) {
-	sections_[0]->setLastElementCurrentSelection(currentString);
+      if (UIsectionsToExecute_.size() > 0) {
+	UIsectionsToExecute_[0]->setLastElementCurrentSelection(currentString);
 	//...
       }
@@ -202,18 +185,18 @@
   
   // traitement des suivantes (on avance d'un cran dans la liste)
-  for (int a = 1; a< sections_.size(); a++)
+  for (int a = 1; a< UIsectionsToExecute_.size(); a++)
     {
       // debut
       if ( current > dtmanage_->getBeamLineSize() )
         {
-          sections_[a]->setErrors("This section element could not be after previous session last element");
+          UIsectionsToExecute_[a]->setErrors("This section element could not be after previous session last element");
           exec_go_->disable();
           return false;
         }
       
-      sections_[a]->setFirstElementCurrentSelection(currentString);
+      UIsectionsToExecute_[a]->setFirstElementCurrentSelection(currentString);
 
       // fin
-      string finString =  sections_[a]->getLastElementCurrentText().toUTF8();
+      string finString =  UIsectionsToExecute_[a]->getLastElementCurrentText().toUTF8();
       
       int numeroFin = dtmanage_->getNumeroFromElementLabel( finString);
@@ -221,5 +204,5 @@
       if ( numeroFin < current)
       {
-        sections_[a]->setErrors("Last section element should be after first section element");
+        UIsectionsToExecute_[a]->setErrors("Last section element should be after first section element");
         exec_go_->disable();
         return false;
@@ -228,5 +211,5 @@
       if (numeroFin > dtmanage_->getBeamLineSize())
       {
-        sections_[a]->setErrors("Last section element number is greater than the beam line size");
+        UIsectionsToExecute_[a]->setErrors("Last section element number is greater than the beam line size");
         exec_go_->disable();
         return false;
@@ -254,74 +237,25 @@
 }
 
-bool GWt_softwarePanel::areDataCoherent()
-{
-// FIXME
-  cout << "***********************************" << endl;
-  cout << "**  To be move in controler  **" << endl;
-  cout << "***********************************" << endl;
-  return true;
-#if BAVARD > 0
-  cout << "***********************************" << endl;
-  cout << " GWt_softwarePanel::areDataCoherent() " << endl<<endl;
-#endif
-
-  bool caMarche = true;
-/*
-  // initialize dataManager
-  dtmanage_->initializeExecution();
-  
-  // intialize User Interface
-  if (pspa_->getBeamLine()) {
-    pspa_->getBeamLine()->initializeSoftwares();
-  }
-        
-  string diagnosticErrors;
-  string diagnosticWarnings;
-  for (int a = 0; a < sections_.size(); a++) 
-    {
-      string debString= sections_[a]->getFirstElementCurrentText().toUTF8();
-      string finString= sections_[a]->getLastElementCurrentText().toUTF8();
-      int debut = pspa_->getBeamLine()->getAbstractElementNumeroFromLabel(debString);
-      int fin = pspa_->getBeamLine()->getAbstractElementNumeroFromLabel(finString);
-
-      string currentSoft= sections_[a]->getSoftwareCurrentText().toUTF8();
-      nomDeLogiciel prog = nomDeLogiciel(currentSoft);
-      sectionToExecute* sectToExec = dtmanage_->addSectionToExecute(pspa_->getBeamLine()->getAbstractElement(debut),debut,pspa_->getBeamLine()->getAbstractElement(fin),fin,prog);
-
-      abstractSoftware* softToExec = sectToExec->getSoftware(); 
-      diagnosticErrors = "";
-      diagnosticWarnings = "";
-      for(int i = debut-1; i < fin; i++) // check sections
-	{
-	  if (!pspa_->getBeamLine()) continue;
-	  abstractElement* elPtr= pspa_->getBeamLine()->getAbstractElement(i);	  
-	  if (!elPtr) continue; 
-
-	  trivaluedBool tb = softToExec->doAcceptElement(elPtr->getNomdElement().getElementType());
-	  cout << " GWt_softwarePanel::areDataCoherent() el " << elPtr->getLabel() << " tb= " << tb << endl;
-	  if (tb  == TBoolOk ) {
-	    elPtr->setSoftware(softToExec);
-	  } else {
-	    elPtr->setSoftware(NULL);
-	    if (tb == TBoolIgnore) {
-	      if(prog.getString() != "unknownSoftware") diagnosticWarnings += elPtr->getLabel() + " will be ignored by  "+ prog.getString() + "<br /> ";           
-	    } else {
-	      // j'insiste pour remettre le nom generique de l'element refuse (glm / 30/03/2013)
-	      diagnosticErrors += elPtr->getNomdElement().getExpandedName() + " is not allowed with " + prog.getString() + "<br /> ";
-	      caMarche = false;
-	    }
-	  }
-	  pspa_->getBeamLine()->update(i);
-	} //i
-      
-      // set errors and warnings
-      sections_[a]->setErrors(diagnosticErrors);
-      sections_[a]->setWarnings(diagnosticWarnings);
-    }//a
-    */
-  return caMarche;
-}
-
-void GWt_softwarePanel::deleteSectionToExecuteW(int sectionLabel)
+
+void GWt_softwarePanel::addSectionToExecute() {
+  // We put the last element of the previous sectionToExecute inside
+  
+  // Get the last element from previous section
+  if (!UIsector_->getSectorControler()) {
+    return;
+  }
+  unsigned int s = UIsector_->getSectorControler()->getSectionsToExecute().size();
+  if (s > 0) {
+    abstractElement* abs = UIsector_->getSectorControler()->getSectionsToExecute()[s-1]->getLastElement();
+    UIsector_->getSectorControler()->addSectionToExecute(new sectionToExecute(abs));
+    UIsector_->getSectorControler()->getSectionsToExecute()[s]->removeLastElement();
+  }
+
+ 
+  displayFromControler();
+}
+
+
+void GWt_softwarePanel::deleteSectionToExecute(int sectionLabel)
 {
 #if BAVARD > 0
@@ -335,6 +269,6 @@
   
   if ( dtmanage_->getJobListSize() == 0 ) return;
-  for (unsigned int sectionIndex = 0; sectionIndex< sections_.size(); sectionIndex++) {
-    if (sections_[sectionIndex]->objectName() == sectionName) {
+  for (unsigned int sectionIndex = 0; sectionIndex< UIsectionsToExecute_.size(); sectionIndex++) {
+    if (UIsectionsToExecute_[sectionIndex]->objectName() == sectionName) {
 
       // delete from dataManager
@@ -342,46 +276,17 @@
 
       // delete from User Interface
-      contenuSections_->removeWidget(sections_[sectionIndex]);
-      delete sections_[sectionIndex];
-      sections_.erase (sections_.begin()+sectionIndex);
+      contenuSections_->removeWidget(UIsectionsToExecute_[sectionIndex]);
+      delete UIsectionsToExecute_[sectionIndex];
+      UIsectionsToExecute_.erase (UIsectionsToExecute_.begin()+sectionIndex);
     }
   }  
-}
-
-void GWt_softwarePanel::executer()
-{
-  cout << "***********************************" << endl;
-  cout << " GWt_softwarePanel::executer() " << endl<<endl;
-
-  if (!areDataCoherent()) {
-    return;
-  }  
-  
-  //static_cast<GWt_globalParameters*>(pspa_->getGlobalParam())->updateGlobals();
-  
-  GWt_dialog calculDialog("Calcul en cours", "Veuillez patienter...", GWt_dialog::Wait, true,false);
-  calculDialog.show();
-    
-  wApp->processEvents();
-  
-  if (!dtmanage_->executeAll()) {
-    GWt_dialog warningDialog("PSPA : Echec", " echec lors de l'exÃ©cution !", GWt_dialog::Error, true,true);
-    warningDialog.exec();
-  }
-      
-  //  exec_go_->setDisabled(true);
-  calculDialog.hide();  
-  UIsector_->getAccelerator()->faireDessin();
-}
+  displayFromControler();
+}
+
 
 void GWt_softwarePanel::fillComboWithElements(Wt::WComboBox* cBox) 
 {
-  // FIXME
-  cout << "***********************************" << endl;
-  cout << "**  To be move in controler  **" << endl;
-  cout << "***********************************" << endl;
-  return;
-
-/*  if (cBox == NULL) return;
+
+  if (cBox == NULL) return;
 
   // get the last item selected
@@ -389,8 +294,14 @@
   cBox->clear();
 
-  for(int a = 0; a < pspa_->getBeamLine()->getBeamLineSize(); a++) {
-    abstractElement* abs = pspa_->getBeamLine()->getAbstractElement(a);
-    if (abs != NULL) {
-      cBox->addItem(abs->getLabel());
+  if (!UIsector_->getSectorControler()) {
+    return;
+  }
+  for (unsigned int a=0; a < UIsector_->getSectorControler()->getSectionsToExecute().size(); a++) {
+    for(unsigned int b=0; b < UIsector_->getSectorControler()->getSectionsToExecute()[a]->getElements().size(); b++) {
+      
+      abstractElement* abs = UIsector_->getSectorControler()->getSectionsToExecute()[a]->getElements()[b];
+      if (abs != NULL) {
+        cBox->addItem(abs->getLabel());
+      }
     }
   }
@@ -402,5 +313,4 @@
   }
   cBox->refresh();
-*/
 }
 
@@ -432,5 +342,5 @@
   // preparation du bouton add
   WPushButton* exec_add = new WPushButton("+");
-  exec_add->clicked().connect(this, &GWt_softwarePanel::addSectionToExecuteW);
+  exec_add->clicked().connect(this, &GWt_softwarePanel::addSectionToExecute);
   exec_add->setStyleClass("roundButton");
   exec_add->setMaximumSize(20,20);
@@ -441,5 +351,5 @@
   //  warningsContainer_->setStyleClass("warningsContainer");
 
-  exec_delete->clicked().connect(boost::bind(&GWt_softwarePanel::deleteSectionToExecuteW, this, sectionNumber));
+  exec_delete->clicked().connect(boost::bind(&GWt_softwarePanel::deleteSectionToExecute, this, sectionNumber));
   exec_delete->setStyleClass("roundButton");
   exec_delete->setMaximumSize(20,20);
