Index: /Interface_Web/trunk/pspaWT/History
===================================================================
--- /Interface_Web/trunk/pspaWT/History	(revision 265)
+++ /Interface_Web/trunk/pspaWT/History	(revision 266)
@@ -8,4 +8,5 @@
 22 Janvier 2012  Laurent Garnier
 - Fix probleme de compilation introduit par la dernière revision (260)
+- refactoring (suite)
 
 21 Janvier 2012  Laurent Garnier
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h	(revision 266)
@@ -2,5 +2,4 @@
 #define GWTABSTRACELEMENT_SEEN
 
-//#include "GWt_pspaApplication.h"
 #include "GWt_draggableImage.h"
 #include "abstractElement.h"
@@ -15,4 +14,6 @@
 using namespace std;
 
+class GWt_elementLigneFaisceau;
+
 class GWt_abstractElement : public WContainerWidget
 {
@@ -20,5 +21,5 @@
 
   //  PspaApplication* pspa_;
-  abstractElement* element_;
+  abstractElement* abstractElement_;
 
   WDialog* dialog_;
@@ -33,5 +34,5 @@
  public :
 
-  GWt_abstractElement(abstractElement* elem);
+  GWt_abstractElement(abstractElement* ,GWt_elementLigneFaisceau*);
 
   // methode Factory
@@ -47,5 +48,7 @@
   virtual void dialogDone() = 0;
   virtual WImage* getImage() = 0;
-
+    
+private:
+    GWt_elementLigneFaisceau* elementLigneFaiseauContainer_;
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_beam.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_beam.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_beam.h	(revision 266)
@@ -19,5 +19,5 @@
  public :
 
-  GWt_beam(abstractElement* elem);
+  GWt_beam(abstractElement* elem ,GWt_elementLigneFaisceau*);
   ~GWt_beam() {;}
   virtual void dialogDone();
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_bend.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_bend.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_bend.h	(revision 266)
@@ -19,5 +19,5 @@
  public :
 
-  GWt_bend(abstractElement* elem);
+  GWt_bend(abstractElement* elem ,GWt_elementLigneFaisceau*);
   ~GWt_bend() {;}
   virtual void dialogDone();
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_cell.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_cell.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_cell.h	(revision 266)
@@ -29,5 +29,5 @@
  public :
 
-  GWt_cell(abstractElement* elem);
+  GWt_cell(abstractElement* elem ,GWt_elementLigneFaisceau*);
   ~GWt_cell() {;}
   virtual void dialogDone();
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_drift.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_drift.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_drift.h	(revision 266)
@@ -22,5 +22,5 @@
  public:
 
-  GWt_drift(abstractElement* elem);
+  GWt_drift(abstractElement* elem ,GWt_elementLigneFaisceau*);
   ~GWt_drift() {;} 
   virtual void dialogDone();
Index: terface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaiseau.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaiseau.h	(revision 265)
+++ 	(revision )
@@ -1,71 +1,0 @@
-#ifndef GWT_ELEMENTLIGNEFAISEAU_SEEN
-#define GWT_ELEMENTLIGNEFAISEAU_SEEN
-
-#include "GWt_dialog.h"
-#include "GWt_pspaApplication.h"
-#include "abstractElement.h"
-#include "GWt_abstractElement.h"
-#include "GWt_dropZoneLigneFaisceau.h"
-
-#include <Wt/WContainerWidget>
-
-using namespace Wt;
-
-
-class GWt_elementLigneFaiseau : public WContainerWidget
-{
- public : 
-  /**
-     dropZone element
-     a drop zone is the basic element for a widget in the ligne faisceau drop zone area
-     it should be like this :
-
-     +----------+--------+---------+
-     |   (--->) |  ELEM  | (-----) |
-     +----------+--------+---------+
-     |             NAME            |
-     +----------+--------+---------+
-     ELEM : Element representation, draggable object
-     (----) and (---->) : Droppable zone, contain arrows or line if this element is connected to another
-     NAME : editable element name
-
-    At first time, the ELEM element is replace by a message.
-
-    @param pspa : application name
-    @param linkImage : true/false if the drop zone have to display the link image
-    @param showInsertMessage : true/false if it has to display the insertMessage at first step
-   */
-
-  GWt_elementLigneFaiseau();
-  GWt_elementLigneFaiseau(abstractElement*);
-
-  ~GWt_elementLigneFaiseau();
-  void addElement(GWt_abstractElement* elem);
-
-  inline WText* getElementName() {
-    return elementName_;
-  }
-
-  inline WText* getElementIcon() {
-    return elementName_;
-  }
-
- private:
-
-  void onClick(GWt_abstractElement*);
-  void removeDone(GWt_abstractElement*); 
-  std::string getElementNumberInBeamLine(nomdElements el);
-  void removeOtherDropZone(GWt_elementLigneFaiseau*);
-  void initialize_ligneFaisceau(abstractElement*);
-  PspaApplication* pspa_;
-  GWt_dialog* messageDropZone_;
-  WText* firstTimeInsertMessage_;
-
-  GWt_dropZoneLigneFaisceau* arrowImage_;
-  WContainerWidget* dragElementZone_;
-  GWt_dropZoneLigneFaisceau* lineImage_;
-  WText* elementName_;
-
-  GWt_abstractElement* abstractElement_;
-};
-#endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_fit.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_fit.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_fit.h	(revision 266)
@@ -16,5 +16,5 @@
  public : 
 
-GWt_fit(abstractElement* elem);
+GWt_fit(abstractElement* elem ,GWt_elementLigneFaisceau*);
 ~GWt_fit() {;}
  virtual void dialogDone();
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_rfgun.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_rfgun.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_rfgun.h	(revision 266)
@@ -27,5 +27,5 @@
  public : 
 
-  GWt_rfgun(abstractElement* elem);
+  GWt_rfgun(abstractElement* elem ,GWt_elementLigneFaisceau*);
   ~GWt_rfgun() {;}
   virtual void dialogDone();
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_soleno.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_soleno.h	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_soleno.h	(revision 266)
@@ -28,5 +28,5 @@
  public :
 
-  GWt_soleno( abstractElement* elem);
+  GWt_soleno( abstractElement* elem ,GWt_elementLigneFaisceau*);
   ~GWt_soleno() {;}
   virtual  void dialogDone();
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc	(revision 266)
@@ -4,4 +4,5 @@
 
 #include "GWt_abstractElement.h"
+#include "GWt_elementLigneFaisceau.h"
 #include "GWt_rfgun.h"
 #include "GWt_drift.h"
@@ -20,32 +21,16 @@
 #include <Wt/WApplication>
 
-GWt_abstractElement::GWt_abstractElement(abstractElement* elem)
+GWt_abstractElement::GWt_abstractElement(abstractElement* elem,GWt_elementLigneFaisceau* elemLigne)
   : WContainerWidget()
 {
   //  pspa_ = ps;
-  element_ = elem;
+  abstractElement_ = elem;
+    elementLigneFaiseauContainer_ = elemLigne;
+}
 
-  // FIXME : A quoi sert ce bout de code ?
-  /*
-  dropped_ = new GWt_draggableImage(element_->getNomdElement().getElementImage());
-  dropped_->setObjectName("aPushButton");
-  //  dropped_->setIcon(element_->getNomdElement().getElementImage());
-  dropped_->setMaximumSize(50,37);
-  dropped_->clicked().connect(this,&GWt_abstractElement::clicked);
-
-  wc_ = new WContainerWidget();
-  wc_->setObjectName("aContainer");
-  wc_->addWidget(dropped_);
-  */
-
-  WBreak *bk= new WBreak();
-  bk->setObjectName("aBreak");
-//  wc_->addWidget(bk);
-  //wc_->addWidget(new WBreak());
-}
 
 string* GWt_abstractElement::beginDialog()
 {
-  string* param = element_-> getParametersString();
+  string* param = abstractElement_-> getParametersString();
  
   if ( param == NULL )
@@ -53,5 +38,5 @@
       if ( static_cast<GWt_console*> (wApp->findWidget ("console"))) {
         GWt_console* console = static_cast<GWt_console*> (wApp->findWidget ("console"));
-        console->addConsoleMessage(" GWt_abstractElement::beginDialog : empty parameter set for element " + element_->getNomdElement().getElementName());
+        console->addConsoleMessage(" GWt_abstractElement::beginDialog : empty parameter set for element " + abstractElement_->getNomdElement().getElementName());
       }
     }
@@ -60,13 +45,13 @@
   //  int nbparam = atoi(param[++compteur].c_str());
   int nbparam = atoi(param->c_str());
-  if ( nbparam != element_->getNbParams()) 
+  if ( nbparam != abstractElement_->getNbParams()) 
     {
       if ( static_cast<GWt_console*> (wApp->findWidget ("console"))) {
         GWt_console* console = static_cast<GWt_console*> (wApp->findWidget ("console"));
-      console->addConsoleMessage(" element seems not to be a " + element_->getNomdElement().getElementName());
+      console->addConsoleMessage(" element seems not to be a " + abstractElement_->getNomdElement().getElementName());
       }
     }
 
-  dialog_ = new WDialog("element " + element_->getNomdElement().getElementName());
+  dialog_ = new WDialog("element " + abstractElement_->getNomdElement().getElementName());
   new WText(" label of the element : ",dialog_->contents());
   //  labelEdit_ = new WLineEdit(param[++compteur].c_str(), dialog_->contents());
@@ -79,14 +64,19 @@
 void GWt_abstractElement::updateLabelWidget()
 {
-  string str = element_->getLabel();
+    elementLigneFaiseauContainer_->setElementName(abstractElement_->getLabel());
+    
+    /*  string str = abstractElement_->getLabel();
   wc_item_->setText(str);
+*/
 }
 
 void GWt_abstractElement::setLabelWidget()
 {
-  string str = element_->getLabel();
+/*
+ string str = abstractElement_->getLabel();
   wc_item_ = new WText(str);
   wc_item_->setObjectName("aText");
   wc_->addWidget(wc_item_);
+*/
 }
 
@@ -103,10 +93,11 @@
 
 abstractElement* GWt_abstractElement::getElement() {
-  return element_;
+  return abstractElement_;
 }
 
 GWt_abstractElement* GWt_abstractElement::ajoute(abstractElement* ptr)
 {
-  typedElement eType = ptr->getNomdElement().getElementType();
+/*
+ typedElement eType = ptr->getNomdElement().getElementType();
 
   switch (  eType ) {
@@ -121,4 +112,5 @@
   default : return NULL;
   }
+*/
 }
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_beam.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_beam.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_beam.cc	(revision 266)
@@ -8,5 +8,5 @@
 #include <Wt/WPushButton>
 
-GWt_beam::GWt_beam(abstractElement* elem) : GWt_abstractElement(elem) {
+GWt_beam::GWt_beam(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem, elemLigne) {
 
 
@@ -48,9 +48,12 @@
   image_ = new WImage("htdocs/beam.jpg",this);
 
+  // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+
 }
 
 void GWt_beam::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -68,5 +71,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_bend.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_bend.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_bend.cc	(revision 266)
@@ -9,5 +9,5 @@
 #include <Wt/WPushButton>
 
-GWt_bend::GWt_bend(abstractElement* elem) : GWt_abstractElement(elem)
+GWt_bend::GWt_bend(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem, elemLigne)
 {
 
@@ -48,9 +48,14 @@
   // make image
   image_ = new WImage("htdocs/bend.jpg",this);
+
+    // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+    
+
 }
 
 void GWt_bend::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -69,5 +74,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_cell.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_cell.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_cell.cc	(revision 266)
@@ -10,5 +10,5 @@
 #include <Wt/WPanel>
 
-GWt_cell::GWt_cell(abstractElement* elem) : GWt_abstractElement(elem)
+GWt_cell::GWt_cell(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem, elemLigne)
 {
 
@@ -71,9 +71,13 @@
   image_ = new WImage("htdocs/cell.jpg",this);
   
+    // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+    
+
 }
 
 void GWt_cell::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -94,5 +98,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_drift.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_drift.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_drift.cc	(revision 266)
@@ -9,5 +9,5 @@
 #include <Wt/WPushButton>
 
-GWt_drift::GWt_drift(abstractElement* elem) : GWt_abstractElement(elem)
+GWt_drift::GWt_drift(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem,elemLigne)
 {
 
@@ -26,9 +26,13 @@
   // make image
   image_ = new WImage("htdocs/drift.jpg",this);
+    
+    // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+    
 }
 
 void GWt_drift::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -41,5 +45,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_fit.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_fit.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_fit.cc	(revision 266)
@@ -9,5 +9,5 @@
 #include <Wt/WComboBox>
 
-GWt_fit::GWt_fit(abstractElement* elem) : GWt_abstractElement(elem)
+GWt_fit::GWt_fit(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem, elemLigne)
 {
 
@@ -50,9 +50,12 @@
   image_ = new WImage("htdocs/fit.jpg",this);
 
+    // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+   
 }
 
 void GWt_fit::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -70,5 +73,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 266)
@@ -1,5 +1,5 @@
 #include <iostream>
 
-#include "GWt_elementLigneFaiseau.h"
+#include "GWt_elementLigneFaisceau.h"
 #include "GWt_ligneFaisceau.h"
 #include "GWt_drift.h"
@@ -35,5 +35,5 @@
 
   // add the first drop zone
-  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaiseau());
+  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaisceau());
 
     // add a last element to push everything
@@ -62,5 +62,5 @@
 
   // add first dropZone
-  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaiseau());
+  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaisceau());
 
   for(k = 0; k < (unsigned)nbElem; k++) 
@@ -74,5 +74,5 @@
  */
       nObjets_[ptr->getNomdElement().getElementType()].incr();
-      GWt_elementLigneFaiseau* dropZone = new GWt_elementLigneFaiseau(ptr);
+      GWt_elementLigneFaisceau* dropZone = new GWt_elementLigneFaisceau(ptr);
 
         /*      dropZone->addElement(gw->getWidget());
@@ -105,5 +105,5 @@
 
 //  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaiseau(ptr),0);
-  ligneFaisceauLayout_->insertWidget(ligneFaisceauLayout_->count()-1,new GWt_elementLigneFaiseau(ptr),0);
+  ligneFaisceauLayout_->insertWidget(ligneFaisceauLayout_->count()-1,new GWt_elementLigneFaisceau(ptr),0);
 }
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_rfgun.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_rfgun.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_rfgun.cc	(revision 266)
@@ -8,5 +8,5 @@
 #include <Wt/WPushButton>
 
-GWt_rfgun::GWt_rfgun(abstractElement* elem) : GWt_abstractElement(elem)
+GWt_rfgun::GWt_rfgun(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem, elemLigne)
 {
 
@@ -45,9 +45,12 @@
   image_ = new WImage("htdocs/rfgun.jpg",this);
 
+    // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+    
 }
 
 void GWt_rfgun::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -64,5 +67,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_soleno.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_soleno.cc	(revision 265)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_soleno.cc	(revision 266)
@@ -8,5 +8,5 @@
 #include <Wt/WPushButton>
 
-GWt_soleno::GWt_soleno(abstractElement* elem) : GWt_abstractElement(elem)
+GWt_soleno::GWt_soleno(abstractElement* elem ,GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(elem, elemLigne)
 {
   string* param = beginDialog();
@@ -30,4 +30,8 @@
   // make image
   image_ = new WImage("htdocs/soleno.jpg",this);
+    
+    // activate slots
+    image_->clicked().connect(this,&GWt_abstractElement::clicked);
+   
 }
 
@@ -35,5 +39,5 @@
 void GWt_soleno::dialogDone()
 {
-  unsigned nbParam = element_->getNbParams();
+  unsigned nbParam = abstractElement_->getNbParams();
   string* envoi = new string[nbParam+1];
   int compteur = -1;
@@ -51,5 +55,5 @@
     return;
   }
-  element_->setParametersString(envoi);
+  abstractElement_->setParametersString(envoi);
   updateLabelWidget();
   delete [] envoi;
