Index: Interface_Web/trunk/pspaWT/History
===================================================================
--- Interface_Web/trunk/pspaWT/History	(revision 479)
+++ Interface_Web/trunk/pspaWT/History	(revision 480)
@@ -5,4 +5,10 @@
      PSPA - Plateforme de simulation en physique des accÃ©lÃ©rateurs
      =========================================================
+
+08 Janvier 2014 : Laurent Garnier
+- sectionToExecute : Ameliorations dans le changement du début des sections
+- dataManager : Ajout d'une protection dans executeAll()
+- GWt_sectionToExecute : BUGFIX: Memory leak résolu ici. Lors du changement d'une section, on demandait au secteur qui contient à le section de toute redessiner(y compris la section courante qui était supprimée), cela revenait à couper la branche sur laquelle ont était assis. Désormais, on passe par un signal.
+- GWt_sector : Changement de privé à public de displayWidgetBeamLine()
 
 07 Janvier 2014 : Laurent Garnier
Index: Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 480)
@@ -51,8 +51,16 @@
   bool insertAfter(abstractElement*,abstractElement*);
 
-  inline bool insertAtFirst(abstractElement* abs) {
+  inline void insertAtFirst(abstractElement* abs) {
     elements_.insert ( elements_.begin() ,abs);
   };
 
+  inline void removeFirstElement() {
+    elements_.erase(elements_.begin());
+  };
+  
+  inline void insertAtLast(abstractElement* abs) {
+    elements_.push_back(abs);
+  };
+  
   /** Set the first element of this section.
    If needed, it will change the last element of the previous section
Index: Interface_Web/trunk/pspaWT/sources/controler/src/dataManager.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/controler/src/dataManager.cc	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/controler/src/dataManager.cc	(revision 480)
@@ -135,5 +135,5 @@
     }
     
-    if ( success ) {
+    if ( success  && (diagnosticBeam_.size() > 0)) {
       sector->setParticleBeam(&diagnosticBeam_.at(indexElementToIndexDiag_.back()));
       cout << " execute termine avec succes " << endl;
Index: Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc	(revision 480)
@@ -119,8 +119,9 @@
       std::vector< abstractElement* > elemsVect = sectVect[a]->getElements();
       long stop = 0;
+      long start = elemsVect.size();
       if (a == newBeginSectionNumber) {
         stop = indexOfNewBeginSectionNumber;
       }
-      for (long elemIndex = elemsVect.size(); elemIndex > stop; elemIndex--) {
+      for (long elemIndex = start; elemIndex > stop; elemIndex--) {
         insertAtFirst(elemsVect.back());
         elemsVect.pop_back();
@@ -132,5 +133,9 @@
     
     // Moved in the same section :
-  } else if ( newBeginSectionNumber == sectionNumber ) {
+  } else if (( newBeginSectionNumber == sectionNumber ) && (sectionNumber > 0)){
+    for (long elemIndex = 0; elemIndex < indexOfNewBeginSectionNumber; elemIndex++) {
+      sectVect[sectionNumber-1]->insertAtLast(elements_.front());
+      removeFirstElement();
+    }
     
     
Index: Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_sectionToExecute.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_sectionToExecute.h	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_sectionToExecute.h	(revision 480)
@@ -5,4 +5,5 @@
 #include <Wt/WComboBox>
 #include <Wt/WText>
+#include <Wt/WSignal>
 
 class GWt_softwarePanel;
@@ -50,4 +51,6 @@
     }
 
+    Wt::Signal<void> redraw_;
+
     private :
     
Index: Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_sector.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_sector.h	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_sector.h	(revision 480)
@@ -39,8 +39,12 @@
   };
   
+  /**
+   Display the content of this sector. Create a widget for the beamline and the softwares
+   */
+  void displayWidgetBeamLine();
+
   private :
   GWt_ligneFaisceau* UI_beamLine_;
   void setIcon(WLayout*);
-  void displayWidgetBeamLine();
   GWt_accelerator* UI_Accelerator_;
   sector* sectorControler_;
Index: Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_softwarePanel.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_softwarePanel.h	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_softwarePanel.h	(revision 480)
@@ -29,4 +29,7 @@
   virtual ~GWt_softwarePanel();
 
+  /**
+   Read all sectionToExecute from the controler and build a newsoftware panel with it
+   */
   void displayFromControler();
   void updateSections();
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_sectionToExecute.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_sectionToExecute.cc	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_sectionToExecute.cc	(revision 480)
@@ -94,4 +94,5 @@
 //  lastElement->activated().connect(softwarePanel,&GWt_softwarePanel::updateSections);
   softElement_->activated().connect(this,&GWt_sectionToExecute::setSoftware);
+  this->redraw_.connect(UIsector_,&GWt_sector::displayWidgetBeamLine);
   
   manageWarningsAndErrors();
@@ -155,5 +156,4 @@
 
   section_->setFirstElement(firstElement_->currentIndex());
-  UIsector_->getExecuteWidget()->displayFromControler();
-  UIsector_->getBeamLineWidget()->buildBeamLineWidget();
+  redraw_.emit();
 }
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_sector.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_sector.cc	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_sector.cc	(revision 480)
@@ -15,4 +15,5 @@
 {
   setIcon(UI_Accelerator_->getAcceleratorGlobalViewLayout());
+  displayWidgetBeamLine();
 }
 
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 479)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 480)
@@ -108,17 +108,17 @@
       GWt_sectionToExecute* newSection = new GWt_sectionToExecute(lineFromCombo,lineToCombo,softCombo,createAddDeletePushButtons(a),UIsector_->getSectorControler()->getSectionsToExecute()[a],UIsector_);
       
-/*      // FIXME ?
-      stringstream st;
-      st << UIsectionsToExecute_deprecated_.size();
-      
-      // this is the mean to identify this section!
-      newSection->setObjectName(st.str());
-      
-      // push back on sections vector
-      UIsectionsToExecute_deprecated_.push_back(newSection);
-*/
+      /*      // FIXME ?
+       stringstream st;
+       st << UIsectionsToExecute_deprecated_.size();
+       
+       // this is the mean to identify this section!
+       newSection->setObjectName(st.str());
+       
+       // push back on sections vector
+       UIsectionsToExecute_deprecated_.push_back(newSection);
+       */
       contenuSections_->addWidget(newSection);
-//      updateSections();
-
+      //      updateSections();
+      
       firstSectionToExecuteIndex += UIsector_->getSectorControler()->getSectionsToExecute()[a]->getElements().size();
     }
