Index: /Interface_Web/trunk/pspaWT/History
===================================================================
--- /Interface_Web/trunk/pspaWT/History	(revision 482)
+++ /Interface_Web/trunk/pspaWT/History	(revision 483)
@@ -5,4 +5,17 @@
      PSPA - Plateforme de simulation en physique des accÃ©lÃ©rateurs
      =========================================================
+
+21 Janvier 2014 : Laurent Garnier
+- sectionToExecute : Ajout des méthodes
+  o bool isInside(abstractElement*);
+  o void removeElement(abstractElement*)
+- sector : Ajout de la méthode :
+  o void removeElement(abstractElement* currentElement);
+- GWt_elementLigneFaisceau : Suppression de la méthode :
+  o addElement(GWt_abstractElement* elem)
+- GWt_ligneFaisceau : Suppression de la méthode :
+  o GWt_abstractElement* addElement(nomdElements::typedElement eType);
+- GWt_ligneFaisceau::removeElement() : Correction d'un bug. La suppression d'un
+  élément est désormais effective.
 
 08 Janvier 2014 : Laurent Garnier
Index: /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 483)
@@ -70,4 +70,7 @@
   void setFirstElement(int);
   
+  bool isInside(abstractElement*);
+  void removeElement(abstractElement*);
+  
   private :
 
Index: /Interface_Web/trunk/pspaWT/sources/controler/include/sector.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/include/sector.h	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/controler/include/sector.h	(revision 483)
@@ -91,4 +91,6 @@
   void clearSectionToExecute(int a);
 
+  void removeElement(abstractElement* currentElement);
+
   inline sectorParameters getSectorParameters() {
     return sectorParam_;
Index: /Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc	(revision 483)
@@ -153,2 +153,23 @@
   }
 }
+
+
+bool sectionToExecute::isInside(abstractElement* previousElement) {
+  for (unsigned int a=0; a< elements_.size(); a++) {
+    if (elements_[a] == previousElement ) {
+      return true;
+    }
+  }
+  return false;
+}
+
+
+void sectionToExecute::removeElement(abstractElement* previousElement){
+  std::vector<abstractElement*>::iterator it;
+  for (it = elements_.begin(); it < elements_.end(); it++) {
+    if (*it == previousElement ) {
+      elements_.erase(it);
+      return;
+    }
+  }
+}
Index: /Interface_Web/trunk/pspaWT/sources/controler/src/sector.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/src/sector.cc	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/controler/src/sector.cc	(revision 483)
@@ -107,4 +107,17 @@
 }
 
+void sector::removeElement(abstractElement* currentElement) {
+  if (currentElement == NULL) return;
+  
+  for (unsigned int i=0; i<sectionToExecute_.size(); i++) {
+    sectionToExecute* section = sectionToExecute_[i];
+    
+    if (section->isInside(currentElement)) {
+      section->removeElement(currentElement);
+    }
+  }
+}
+
+
 void sector::clearSectionToExecute()
 {
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaisceau.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaisceau.h	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaisceau.h	(revision 483)
@@ -34,5 +34,4 @@
     
     ~GWt_elementLigneFaisceau();
-    void addElement(GWt_abstractElement* elem);
     
     inline WText* getElementName() {
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_ligneFaisceau.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_ligneFaisceau.h	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_ligneFaisceau.h	(revision 483)
@@ -43,5 +43,4 @@
      */
     GWt_abstractElement* addElement(nomdElements::typedElement eType, GWt_dropZoneLigneFaisceau* dropContainer);
-    GWt_abstractElement* addElement(nomdElements::typedElement eType);
     
     void removeElement(GWt_abstractElement*);
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc	(revision 483)
@@ -201,19 +201,4 @@
     //    removeDropZone();
   }
-}
-
-void GWt_elementLigneFaisceau::addElement(GWt_abstractElement* elem)
-{
-  clear();
-  GWt_abstractElement_deprecated_ = elem;
-  addWidget(GWt_abstractElement_deprecated_);
-  if (static_cast <WContainerWidget*> (parent())) {
-    WContainerWidget* wc = static_cast <WContainerWidget*> (parent());
-    WBoxLayout* layout = ((WBoxLayout*)(wc->layout()));
-    layout->setStretchFactor(this,0);
-  }
-    
-  firstTimeInsertMessage_ = NULL;
-  dropZoneLeft_ = NULL;
 }
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 482)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 483)
@@ -45,70 +45,23 @@
 
 
-GWt_abstractElement* GWt_ligneFaisceau::addElement(nomdElements::typedElement eType){
-  return addElement(eType,NULL);
-}
-
 GWt_abstractElement* GWt_ligneFaisceau::addElement(nomdElements::typedElement eType, GWt_dropZoneLigneFaisceau* dropContainer )
 {
   
-  
   GWt_abstractElement* UIabstractElement = NULL;
   
   // Add this element to the DataManager
-
-  // create a new abstractElement
-    // FIXME : To be move in an abstractFactory in the controler !!
-    abstractElement* currentElement = NULL;
-    switch (  eType ) {
-      case nomdElements::RFgun :
-        currentElement = new elementRfgun();
-        break;
-      case nomdElements::drift :
-        currentElement = new elementDrift();
-        break;
-      case nomdElements::cell  :
-        currentElement = new elementCell();
-        break;
-      case nomdElements::bend  :
-        currentElement = new elementBend();
-        break;
-      case nomdElements::soleno  :
-        currentElement = new elementSoleno();
-        break;
-      case nomdElements::beam  :
-        currentElement = new elementBeam();
-        break;
-      case nomdElements::fit  :
-        currentElement = new elementFit();
-        break;
-      case nomdElements::mpole  :
-        currentElement = new elementMultipole();
-        break;
-      case nomdElements::snapshot :
-      {
-        // FIXME : Snapshot a gÃ©rÃ©r
-/*        int incr = dataManager_->getPspaApplication()->getExtensionFile();
-        incr++;
-        dataManager_->getPspaApplication()->setExtensionFile(incr);
-*/
-        currentElement = new elementSnapshot();
-        break;
-      }
-    }
-
-    
-    // look for the previous element
-    abstractElement* previousElement = NULL;
-    
-    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-      GWt_elementLigneFaisceau* elem = static_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ());
-      if (elem) {
-        if (elem->getDropZoneRight() == dropContainer) {
-          previousElement = elem->getGWt_AbstractElement()->getAbstractElement();
-        }
-      }
-    }
-
-    getUISector()->getSectorControler()->addElementAfter(currentElement,previousElement );
+  // look for the previous element
+  abstractElement* previousElement = NULL;
+  
+  for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+    GWt_elementLigneFaisceau* elem = static_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ());
+    if (elem) {
+      if (elem->getDropZoneRight() == dropContainer) {
+        previousElement = elem->getGWt_AbstractElement()->getAbstractElement();
+      }
+    }
+  }
+  
+  getUISector()->getSectorControler()->addElementAfter(eType,previousElement );
   
   buildBeamLineWidget();
@@ -215,4 +168,9 @@
     return;
   
+  getUISector()->getSectorControler()->removeElement(GWt_abstractElement->getAbstractElement());
+  
+  buildBeamLineWidget();
+  getUISector()->getExecuteWidget()->displayFromControler();
+/*
   // remove Widget
   // - GWt_abstractElement is an element of the GWt_elementLigneFaisceau_
@@ -238,4 +196,5 @@
     manageLineFaisceauLayout_deprecated();
   }
+*/
 }
 
