Index: Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h	(revision 343)
@@ -12,4 +12,5 @@
 #include "elementBeam.h"
 #include "elementFit.h"
+#include "elementSnapshot.h"
 
 #include <Wt/WDialog>
Index: Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElementFactory.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElementFactory.h	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElementFactory.h	(revision 343)
@@ -17,60 +17,69 @@
 #include "GWt_beam.h"
 #include "GWt_fit.h"
+#include "GWt_snapshot.h"
 
 using namespace Wt;
 using namespace std;
 
+class GWt_abstractElementFactory 
+{
 
-class GWt_abstractElementFactory {
-    public :
-    GWt_abstractElementFactory();
-    ~GWt_abstractElementFactory();
-    
-    /* Enable the rfgun element creation
-     */
-    inline void setRFGunEnable(bool a) { isRFGunElementEnable = a;};
+ public :
+  
+  GWt_abstractElementFactory();
+  ~GWt_abstractElementFactory();
+  
+  /* Enable the rfgun element creation
+   */
+  inline void setRFGunEnable(bool a) { isRFGunElementEnable = a;};
+  
+  /* Enable the drift element creation
+   */
+  inline void setDriftEnable(bool a) { isDriftElementEnable = a;};
+  
+  /* Enable the cell element creation
+   */
+  inline void setCellEnable(bool a) { isCellElementEnable = a;};
+  
+  /* Enable the bend element creation
+   */
+  inline void setBendEnable(bool a) { isBendElementEnable = a;};
+  
+  /* Enable the soleno element creation
+   */
+  inline void setSolenoEnable(bool a) { isSolenoElementEnable = a;};
+  
+  /* Enable the beam element creation
+   */
+  inline void setBeamEnable(bool a) { isBeamElementEnable = a;};
+  
+  /* Enable the fit element creation
+   */
+  inline void setFitEnable(bool a) { isFitElementEnable = a;};
+  
+  /* Enable the snapshot element creation
+   */
+  inline void setSnapshotEnable(bool a) { isSnapshotElementEnable = a;};
+  
+  GWt_drift* createDriftElement();
+  GWt_rfgun* createRFGunElement();
+  GWt_cell* createCellElement();
+  GWt_bend* createBendElement();
+  GWt_soleno* createSolenoElement();
+  GWt_beam* createBeamElement();
+  GWt_fit* createFitElement();
+  GWt_snapshot* createSnapshotElement();
+  vector <GWt_abstractElement*> getAllElements();
+  
+ private :
 
-    /* Enable the drift element creation
-     */
-    inline void setDriftEnable(bool a) { isDriftElementEnable = a;};
-
-    /* Enable the cell element creation
-     */
-    inline void setCellEnable(bool a) { isCellElementEnable = a;};
-
-    /* Enable the bend element creation
-     */
-    inline void setBendEnable(bool a) { isBendElementEnable = a;};
-
-    /* Enable the soleno element creation
-     */
-    inline void setSolenoEnable(bool a) { isSolenoElementEnable = a;};
-
-    /* Enable the beam element creation
-     */
-    inline void setBeamEnable(bool a) { isBeamElementEnable = a;};
-
-    /* Enable the fit element creation
-     */
-    inline void setFitEnable(bool a) { isFitElementEnable = a;};
-
-    GWt_drift* createDriftElement();
-    GWt_rfgun* createRFGunElement();
-    GWt_cell* createCellElement();
-    GWt_bend* createBendElement();
-    GWt_soleno* createSolenoElement();
-    GWt_beam* createBeamElement();
-    GWt_fit* createFitElement();
-    vector <GWt_abstractElement*> getAllElements();
-    
-    private :
-    bool isDriftElementEnable;
-    bool isRFGunElementEnable;
-    bool isCellElementEnable;
-    bool isBendElementEnable;
-    bool isSolenoElementEnable;
-    bool isBeamElementEnable;
-    bool isFitElementEnable;
+  bool isDriftElementEnable;
+  bool isRFGunElementEnable;
+  bool isCellElementEnable;
+  bool isBendElementEnable;
+  bool isSolenoElementEnable;
+  bool isBeamElementEnable;
+  bool isFitElementEnable;
+  bool isSnapshotElementEnable;
 };
-
 #endif
Index: Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_snapshot.h
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_snapshot.h	(revision 343)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_snapshot.h	(revision 343)
@@ -0,0 +1,35 @@
+#ifndef GRAPHSNAPSHOTELEMENT_SEEN
+#define GRAPHSNAPSHOTELEMENT_SEEN
+
+#include "GWt_abstractElement.h"
+#include "abstractElement.h"
+
+#include <iostream>
+#include <string>
+#include <sstream>
+
+using namespace Wt;
+using namespace std;
+
+class GWt_snapshot : public GWt_abstractElement
+{
+      
+ public:
+    
+  GWt_snapshot() {;}
+  GWt_snapshot(GWt_elementLigneFaisceau*);
+  ~GWt_snapshot() {;}
+  
+  virtual void dialogDone(WDialog::DialogCode code);
+  WImage* getImage();
+    
+  inline string getMimeType() {return "htdocs/snapshot.jpg"; }
+  inline string getSmallImageURL() {return "htdocs/snapshot.jpg"; }
+  inline string getBigImageURL() {return "htdocs/snapshot.jpg"; }
+  inline string getName() {return "snapshot"; }
+  
+ private :
+
+  void initilializeDialog();
+};
+#endif
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc	(revision 343)
@@ -14,4 +14,5 @@
 #include "GWt_beam.h"
 #include "GWt_fit.h"
+#include "GWt_snapshot.h"
 #include "GWt_draggableImage.h"
 #include "GWt_ligneFaisceau.h"
@@ -50,26 +51,26 @@
 string* GWt_abstractElement::beginDialog()
 {
-    string* param = abstractElement_-> getParametersString();
-    
-    if ( param == NULL )
+  string* param = abstractElement_-> getParametersString();
+    
+  if ( param == NULL )
+    {
+      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 " + abstractElement_->getNomdElement().getElementName());
+        }
+    }
+  //   int compteur = -1;
+  
+  //  int nbparam = atoi(param[++compteur].c_str());
+  int nbparam = atoi(param->c_str());
+  if ( nbparam != abstractElement_->getNbParams())
     {
         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 " + abstractElement_->getNomdElement().getElementName());
-        }
-    }
-    //   int compteur = -1;
-    
-    //  int nbparam = atoi(param[++compteur].c_str());
-    int nbparam = atoi(param->c_str());
-    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 " + abstractElement_->getNomdElement().getElementName());
-        }
-    }
-    
-    dialog_ = new WDialog("element " + abstractElement_->getNomdElement().getElementName());
+	  GWt_console* console = static_cast<GWt_console*> (wApp->findWidget ("console"));
+	  console->addConsoleMessage(" element seems not to be a " + abstractElement_->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());
@@ -88,6 +89,6 @@
 void GWt_abstractElement::clicked()
 {
-    initilializeDialog();
-    dialog_->show();
+  initilializeDialog();
+  dialog_->show();
 }
 
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElementFactory.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElementFactory.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElementFactory.cc	(revision 343)
@@ -9,106 +9,119 @@
 #include "GWt_abstractElementFactory.h"
 
+GWt_abstractElementFactory::GWt_abstractElementFactory()
+ :isDriftElementEnable(false),
+  isRFGunElementEnable(false),
+  isCellElementEnable(false),
+  isBendElementEnable(false),
+  isSolenoElementEnable(false),
+  isBeamElementEnable(false),
+  isFitElementEnable(false),
+  isSnapshotElementEnable(false)
+{}
 
-GWt_abstractElementFactory::GWt_abstractElementFactory()
-:isDriftElementEnable(false),
-isRFGunElementEnable(false),
-isCellElementEnable(false),
-isBendElementEnable(false),
-isSolenoElementEnable(false),
-isBeamElementEnable(false),
-isFitElementEnable(false)
+GWt_abstractElementFactory::~GWt_abstractElementFactory() 
 {
-    
+  isDriftElementEnable = false;
+  isRFGunElementEnable = false;
+  isCellElementEnable = false;
+  isBendElementEnable = false;
+  isSolenoElementEnable = false;
+  isBeamElementEnable = false;
+  isFitElementEnable = false;
+  isSnapshotElementEnable = false;
 }
 
-
-GWt_abstractElementFactory::~GWt_abstractElementFactory() {
-    isDriftElementEnable = false;
-    isRFGunElementEnable = false;
-    isCellElementEnable = false;
-    isBendElementEnable = false;
-    isSolenoElementEnable = false;
-    isBeamElementEnable = false;
-    isFitElementEnable = false;
+GWt_drift* GWt_abstractElementFactory::createDriftElement() 
+{
+  if (isDriftElementEnable) {
+    return new GWt_drift();
+  }
+  return NULL;
 }
 
-
-GWt_drift* GWt_abstractElementFactory::createDriftElement() {
-    if (isDriftElementEnable) {
-        return new GWt_drift();
-    }
-    return NULL;
+GWt_rfgun* GWt_abstractElementFactory::createRFGunElement() 
+{
+  if (isRFGunElementEnable) {
+    return new GWt_rfgun();
+  }
+  return NULL;
 }
 
-
-GWt_rfgun* GWt_abstractElementFactory::createRFGunElement() {
-    if (isRFGunElementEnable) {
-        return new GWt_rfgun();
-    }
-    return NULL;
+GWt_cell* GWt_abstractElementFactory::createCellElement() 
+{
+  if (isCellElementEnable) {
+    return new GWt_cell();
+  }
+  return NULL;
 }
 
-GWt_cell* GWt_abstractElementFactory::createCellElement() {
-    if (isCellElementEnable) {
-        return new GWt_cell();
-    }
-    return NULL;
+GWt_bend* GWt_abstractElementFactory::createBendElement() 
+{
+  if (isBendElementEnable) {
+    return new GWt_bend();
+  }
+  return NULL;
 }
-
-
-GWt_bend* GWt_abstractElementFactory::createBendElement() {
-    if (isBendElementEnable) {
-        return new GWt_bend();
-    }
-    return NULL;
-}
-
 
 GWt_soleno* GWt_abstractElementFactory::createSolenoElement()
 {
-    if (isSolenoElementEnable) {
-        return new GWt_soleno();
-    }
-    return NULL;
+  if (isSolenoElementEnable) {
+    return new GWt_soleno();
+  }
+  return NULL;
 }
 
-GWt_beam* GWt_abstractElementFactory::createBeamElement() {
-    if (isBeamElementEnable) {
-        return new GWt_beam();
-    }
-    return NULL;
+GWt_beam* GWt_abstractElementFactory::createBeamElement() 
+{
+  if (isBeamElementEnable) {
+    return new GWt_beam();
+  }
+  return NULL;
 }
 
-
-GWt_fit* GWt_abstractElementFactory::createFitElement() {
-    if (isFitElementEnable) {
-        return new GWt_fit();
-    }
-    return NULL;
+GWt_fit* GWt_abstractElementFactory::createFitElement() 
+{
+  if (isFitElementEnable) {
+    return new GWt_fit();
+  }
+  return NULL;
 }
 
-vector <GWt_abstractElement*> GWt_abstractElementFactory::getAllElements(){
-    vector <GWt_abstractElement*> elems;
-    if (isDriftElementEnable) {
-        elems.push_back(new GWt_drift());
-    }
-    if (isBeamElementEnable) {
-        elems.push_back(new GWt_beam());
-    }
-    if (isBendElementEnable) {
-        elems.push_back(new GWt_bend());
-    }
-    if (isCellElementEnable) {
-        elems.push_back(new GWt_cell());
-    }
-    if (isFitElementEnable) {
-        elems.push_back(new GWt_fit());
-    }
-    if (isRFGunElementEnable) {
-        elems.push_back(new GWt_rfgun());
-    }
-    if (isSolenoElementEnable) {
-        elems.push_back(new GWt_soleno());
-    }
-    return elems;
+GWt_snapshot* GWt_abstractElementFactory::createSnapshotElement()
+{
+  if (isSnapshotElementEnable) {
+    return new GWt_snapshot();
+  }
+  return NULL;
 }
+
+vector <GWt_abstractElement*> GWt_abstractElementFactory::getAllElements()
+{
+  vector <GWt_abstractElement*> elems;
+  if (isDriftElementEnable) {
+    elems.push_back(new GWt_drift());
+  }
+  if (isBeamElementEnable) {
+    elems.push_back(new GWt_beam());
+  }
+  if (isBendElementEnable) {
+    elems.push_back(new GWt_bend());
+  }
+  if (isCellElementEnable) {
+    elems.push_back(new GWt_cell());
+  }
+  if (isFitElementEnable) {
+    elems.push_back(new GWt_fit());
+  }
+  if (isRFGunElementEnable) {
+    elems.push_back(new GWt_rfgun());
+  }
+  if (isSolenoElementEnable) {
+    elems.push_back(new GWt_soleno());
+  }
+  if (isSnapshotElementEnable) {
+    elems.push_back(new GWt_snapshot());
+  }
+
+  return elems;
+}
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_dropZoneLigneFaisceau.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_dropZoneLigneFaisceau.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_dropZoneLigneFaisceau.cc	(revision 343)
@@ -9,11 +9,9 @@
 #include "nomdElements.h"
 
-
-
 GWt_dropZoneLigneFaisceau::GWt_dropZoneLigneFaisceau( PspaApplication* pspa)
-: WContainerWidget(){
-    initialise(pspa);
+  : WContainerWidget()
+{
+  initialise(pspa);
 }
-
 
 GWt_dropZoneLigneFaisceau::~GWt_dropZoneLigneFaisceau()
@@ -21,25 +19,21 @@
 }
 
-
 void GWt_dropZoneLigneFaisceau::initialise( PspaApplication* pspa)
 {
-    
-    // connect mouse events
-    
-    mouseWentOver().connect(this, &GWt_dropZoneLigneFaisceau::mouseOver);
-    mouseWentUp().connect(this, &GWt_dropZoneLigneFaisceau::mouseUp);
-    mouseWentDown().connect(this, &GWt_dropZoneLigneFaisceau::mouseDown);
-    mouseWentOut().connect(this, &GWt_dropZoneLigneFaisceau::mouseOut);
-    mouseDragged().connect(this, &GWt_dropZoneLigneFaisceau::mouseIsDragged);
-    
-    // accept drops
-    
-    vector <GWt_abstractElement*> elems = pspa->getAbstractElementFactory()->getAllElements();
-    for (int a = 0; a< elems.size(); a++) {
-        acceptDrops(elems[a]->getMimeType());
-    }
-    setMinimumSize(10,32);
+  
+  // connect mouse events
+  mouseWentOver().connect(this, &GWt_dropZoneLigneFaisceau::mouseOver);
+  mouseWentUp().connect(this, &GWt_dropZoneLigneFaisceau::mouseUp);
+  mouseWentDown().connect(this, &GWt_dropZoneLigneFaisceau::mouseDown);
+  mouseWentOut().connect(this, &GWt_dropZoneLigneFaisceau::mouseOut);
+  mouseDragged().connect(this, &GWt_dropZoneLigneFaisceau::mouseIsDragged);
+  
+  // accept drops
+  vector <GWt_abstractElement*> elems = pspa->getAbstractElementFactory()->getAllElements();
+  for(int a = 0; a < elems.size(); a++) {
+    acceptDrops(elems[a]->getMimeType());
+  }
+  setMinimumSize(10,32);
 }
-
 
 void GWt_dropZoneLigneFaisceau::mouseOver(const WMouseEvent& e)
@@ -49,10 +43,10 @@
 void GWt_dropZoneLigneFaisceau::mouseOut(const WMouseEvent& e)
 {
-    decorationStyle().setCursor(ArrowCursor);
+  decorationStyle().setCursor(ArrowCursor);
 }
 
 void GWt_dropZoneLigneFaisceau::mouseIsDragged(const WMouseEvent& e)
 {
-    decorationStyle().setCursor(OpenHandCursor);
+  decorationStyle().setCursor(OpenHandCursor);
 }
 
@@ -67,16 +61,16 @@
 void GWt_dropZoneLigneFaisceau::dropEvent(WDropEvent evt)
 {
-    // get LigneFaiseau widget and add new elementLigneFaiseau
-    GWt_LigneFaisceau* ligneFaisceau = NULL;
-    if ( static_cast<GWt_LigneFaisceau*> (wApp->findWidget ("ligneFaisceau"))) {
-        ligneFaisceau = static_cast<GWt_LigneFaisceau*> (wApp->findWidget ("ligneFaisceau"));
-    } else {
-        return;
-    }
-    
-    // get the type of element
-    nomdElements e(evt.mimeType());
-    typedElement eType = e.getElementType();
-    ligneFaisceau->addElement(eType, this);
+  // get LigneFaiseau widget and add new elementLigneFaiseau
+  GWt_LigneFaisceau* ligneFaisceau = NULL;
+  if ( static_cast<GWt_LigneFaisceau*> (wApp->findWidget ("ligneFaisceau"))) {
+    ligneFaisceau = static_cast<GWt_LigneFaisceau*> (wApp->findWidget ("ligneFaisceau"));
+  } else {
+    return;
+  }
+  
+  // get the type of element
+  nomdElements e(evt.mimeType());
+  typedElement eType = e.getElementType();
+  ligneFaisceau->addElement(eType, this);
 }
 
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc	(revision 343)
@@ -12,4 +12,5 @@
 #include "GWt_beam.h"
 #include "GWt_fit.h"
+#include "GWt_snapshot.h"
 
 
@@ -26,106 +27,106 @@
 #define PSPA_DEBUG 1
 
-
 GWt_elementLigneFaisceau::GWt_elementLigneFaisceau(PspaApplication* pspa)
-: WContainerWidget(),
-firstTimeInsertMessage_(NULL),
-dropZoneLeft_(NULL),
-dropZoneRight_(NULL),
-GWt_abstractElement_(NULL),
-elementLabel_(NULL),
-pspa_(pspa)
-{
-    
-    initialize_ligneFaisceau(inconnu);
+  : WContainerWidget(),
+    firstTimeInsertMessage_(NULL),
+    dropZoneLeft_(NULL),
+    dropZoneRight_(NULL),
+    GWt_abstractElement_(NULL),
+    elementLabel_(NULL),
+    pspa_(pspa)
+{
+  initialize_ligneFaisceau(inconnu);
 }
 
 
 GWt_elementLigneFaisceau::GWt_elementLigneFaisceau(typedElement type, PspaApplication* pspa)
-: WContainerWidget(),
-firstTimeInsertMessage_(NULL),
-dropZoneLeft_(NULL),
-dropZoneRight_(NULL),
-GWt_abstractElement_(NULL),
-elementLabel_(NULL),
-pspa_(pspa)
-{
-    // set the css name
-    setObjectName("elementLigneFaisceau");
-
-    initialize_ligneFaisceau(type);
-}
-
+  : WContainerWidget(),
+    firstTimeInsertMessage_(NULL),
+    dropZoneLeft_(NULL),
+    dropZoneRight_(NULL),
+    GWt_abstractElement_(NULL),
+    elementLabel_(NULL),
+    pspa_(pspa)
+{
+  // set the css name
+  setObjectName("elementLigneFaisceau"); 
+  initialize_ligneFaisceau(type);
+}
 
 void GWt_elementLigneFaisceau::initialize_ligneFaisceau(typedElement eType)
 {
     
-    cout<<"new GWt_elementLigneFaisceau : "<< this << endl;
-    
-    // set layout
-    //     +----------+--------+---------+
-    //     |   (--->) |  ELEM  | (-----) |
-    //     +----------+--------+---------+
-    //     |             NAME            |
-    //     +----------+--------+---------+
-    
-    
-    WGridLayout *gridLayout = new WGridLayout();
-    
-    gridLayout->setContentsMargins(0,0,0,0);
-    gridLayout->setHorizontalSpacing	(0);
-    gridLayout->setVerticalSpacing	(0);
-    
-    // add first line :  initialize arrow and link images
-    dropZoneLeft_ = new GWt_dropZoneLigneFaisceau(pspa_);
-    dropZoneRight_ = new GWt_dropZoneLigneFaisceau(pspa_);
-    
-    // change object name in order to manage css :
-    dropZoneLeft_->resize(10,30);
-    dropZoneRight_->resize(10,30);
-    
-    gridLayout->addWidget	(dropZoneLeft_,0,0);
-    gridLayout->addWidget	(dropZoneRight_,0,2);
-    
-    // add the image if present
-    
-    switch (  eType ) {
-        case RFgun :
-            GWt_abstractElement_ = new GWt_rfgun(this);
-            break;
-        case drift :
-            GWt_abstractElement_ = new GWt_drift(this);
-            break;
-        case cell  :
-            GWt_abstractElement_ = new GWt_cell(this);
-            break;
-        case bend  :
-            GWt_abstractElement_ = new GWt_bend(this);
-            break;
-        case soleno  :
-            GWt_abstractElement_ = new GWt_soleno(this);
-            break;
-        case beam  :
-            GWt_abstractElement_ = new GWt_beam(this);
-            break;
-        case fit  :
-            GWt_abstractElement_ = new GWt_fit(this);
-            break;
-        case inconnu :
-            GWt_abstractElement_ = NULL;
+  cout<<"new GWt_elementLigneFaisceau : "<< this << endl;
+    
+  // set layout
+  //     +----------+--------+---------+
+  //     |   (--->) |  ELEM  | (-----) |
+  //     +----------+--------+---------+
+  //     |             NAME            |
+  //     +----------+--------+---------+
+  
+    
+  WGridLayout *gridLayout = new WGridLayout();
+    
+  gridLayout->setContentsMargins(0,0,0,0);
+  gridLayout->setHorizontalSpacing(0);
+  gridLayout->setVerticalSpacing(0);
+  
+  // add first line :  initialize arrow and link images
+  dropZoneLeft_ = new GWt_dropZoneLigneFaisceau(pspa_);
+  dropZoneRight_ = new GWt_dropZoneLigneFaisceau(pspa_);
+    
+  // change object name in order to manage css :
+  dropZoneLeft_->resize(10,30);
+  dropZoneRight_->resize(10,30);
+  
+  gridLayout->addWidget	(dropZoneLeft_,0,0);
+  gridLayout->addWidget	(dropZoneRight_,0,2);
+    
+  // add the image if present
+  
+  switch ( eType ) {
+  case RFgun :
+    GWt_abstractElement_ = new GWt_rfgun(this);
+    break;
+  case drift :
+    GWt_abstractElement_ = new GWt_drift(this);
+    break;
+  case cell  :
+    GWt_abstractElement_ = new GWt_cell(this);
+    break;
+  case bend  :
+    GWt_abstractElement_ = new GWt_bend(this);
+    break;
+  case soleno  :
+    GWt_abstractElement_ = new GWt_soleno(this);
+    break;
+  case beam  :
+    GWt_abstractElement_ = new GWt_beam(this);
+    break;
+  case fit  :
+    GWt_abstractElement_ = new GWt_fit(this);
+    break;
+  case snapshot :
+    GWt_abstractElement_ = new GWt_snapshot(this);
+    break;
+  case inconnu :
+    GWt_abstractElement_ = NULL;
+  }
+
+  if (GWt_abstractElement_ != NULL) {
+    gridLayout->addWidget(GWt_abstractElement_,0,1);
+    GWt_abstractElement_->setMaximumSize(32,32);
+    GWt_abstractElement_->setMinimumSize(32,32);
+  }
+  
+  // add second line
+    if (GWt_abstractElement_ == NULL) {
+      elementLabel_ = new WText();
+    } else {
+      elementLabel_ = new WText(GWt_abstractElement_->getAbstractElement()->getLabel());
     }
-    if (GWt_abstractElement_ != NULL) {
-        gridLayout->addWidget	(GWt_abstractElement_,0,1);
-        GWt_abstractElement_->setMaximumSize(32,32);
-        GWt_abstractElement_->setMinimumSize(32,32);
-    }
-    
-    // add second line
-    if (GWt_abstractElement_ == NULL) {
-        elementLabel_ = new WText();
-    } else {
-        elementLabel_ = new WText(GWt_abstractElement_->getAbstractElement()->getLabel());
-    }
-    
-    gridLayout->addWidget	(elementLabel_,1,0,1,3,Wt::AlignCenter |Wt::AlignMiddle);
+    
+    gridLayout->addWidget(elementLabel_,1,0,1,3,Wt::AlignCenter |Wt::AlignMiddle);
     
     gridLayout->setColumnStretch (0,1);
@@ -141,27 +142,26 @@
 }
 
-
 void GWt_elementLigneFaisceau::removeDone(GWt_abstractElement* gw)
 {
-    if (messageDropZone_->result() == WDialog::Accepted) {
-        // FIXME
-        //    removeDropZone();
-    }
-}
-
-
-void GWt_elementLigneFaisceau::addElement(GWt_abstractElement* elem){
-    
-    clear();
-    GWt_abstractElement_ = elem;
-    addWidget(GWt_abstractElement_);
-    if (static_cast <WContainerWidget*> (parent())) {
-        WContainerWidget* wc = static_cast <WContainerWidget*> (parent());
-        WBoxLayout* layout = ((WBoxLayout*)(wc->layout()));
-        layout->setStretchFactor(this,0);
-    }
-    
-    
-    firstTimeInsertMessage_ = NULL;
+  if (messageDropZone_->result() == WDialog::Accepted) {
+    // FIXME
+    //    removeDropZone();
+  }
+}
+
+
+void GWt_elementLigneFaisceau::addElement(GWt_abstractElement* elem)
+{    
+  clear();
+  GWt_abstractElement_ = elem;
+  addWidget(GWt_abstractElement_);
+  if (static_cast <WContainerWidget*> (parent())) {
+    WContainerWidget* wc = static_cast <WContainerWidget*> (parent());
+    WBoxLayout* layout = ((WBoxLayout*)(wc->layout()));
+    layout->setStretchFactor(this,0);
+  }
+  
+  
+  firstTimeInsertMessage_ = NULL;
     dropZoneLeft_ = NULL;
 }
@@ -169,5 +169,5 @@
 
 std::string GWt_elementLigneFaisceau::getElementNumberInBeamLine(nomdElements elem){
-    string str = "";
+  string str = "";
     
     if (static_cast <WContainerWidget*> (parent())) {
@@ -210,7 +210,6 @@
 
 void GWt_elementLigneFaisceau::setElementLabel(std::string label) {
-    if (elementLabel_) {
-        elementLabel_->setText(label);
-    }
-}
-
+  if (elementLabel_) {
+    elementLabel_->setText(label);
+  }
+}
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 343)
@@ -3,4 +3,5 @@
 #include "GWt_elementLigneFaisceau.h"
 #include "GWt_ligneFaisceau.h"
+
 #include "GWt_drift.h"
 #include "GWt_rfgun.h"
@@ -15,235 +16,235 @@
 
 GWt_LigneFaisceau::GWt_LigneFaisceau(PspaApplication* ps) :
-WContainerWidget(),
-pspa_(ps),
-nObjets_(NULL)
-{
-    
-    cout<<"GWt_LigneFaisceau::GWt_LigneFaisceau() %d"<< this << "<---------------"<< endl;
-    
-    ligneFaisceauLayout_ = new WHBoxLayout();
-    //  decorationStyle().setBackgroundColor (WColor(245,245,245));
-    setLayout(ligneFaisceauLayout_);
-    ligneFaisceauLayout_->setContentsMargins(0,0,0,0);
-    ligneFaisceauLayout_->setSpacing	(0);
-    
-    int nElts= nomdElements::getNumberOfElements();
-    nObjets_= new Compteur[nElts];
-    
-    // set the object name
-    setObjectName("ligneFaisceau");
-    
-    
-    clear();
-}
-
-
-void GWt_LigneFaisceau::clear() {
-    ligneFaisceauLayout_->clear();
-
-    // add the first drop zone
-    decorationStyle().setBorder (WBorder (WBorder::Dotted));
-    allDropZone_ = new GWt_dropZoneLigneFaisceau(pspa_);
-    WVBoxLayout* fit = new WVBoxLayout();
-    allDropZone_->setLayout(fit);
-    
-    fit->addWidget(new WText("Drag elements here...."),1,Wt::AlignCenter |Wt::AlignMiddle);
-    ligneFaisceauLayout_->addWidget(allDropZone_,1);
+  WContainerWidget(),
+  pspa_(ps),
+  nObjets_(NULL)
+{
+  
+  cout<<"GWt_LigneFaisceau::GWt_LigneFaisceau() %d"<< this << "<---------------"<< endl;
+    
+  ligneFaisceauLayout_ = new WHBoxLayout();
+  //  decorationStyle().setBackgroundColor (WColor(245,245,245));
+  setLayout(ligneFaisceauLayout_);
+  ligneFaisceauLayout_->setContentsMargins(0,0,0,0);
+  ligneFaisceauLayout_->setSpacing(0);
+  
+  int nElts= nomdElements::getNumberOfElements();
+  nObjets_= new Compteur[nElts];
+  
+  // set the object name
+  setObjectName("ligneFaisceau");
+  
+  
+  clear();
+}
+
+
+void GWt_LigneFaisceau::clear() 
+{
+  ligneFaisceauLayout_->clear();
+
+  // add the first drop zone
+  decorationStyle().setBorder (WBorder (WBorder::Dotted));
+  allDropZone_ = new GWt_dropZoneLigneFaisceau(pspa_);
+  WVBoxLayout* fit = new WVBoxLayout();
+  allDropZone_->setLayout(fit);
+  
+  fit->addWidget(new WText("Drag elements here...."),1,Wt::AlignCenter |Wt::AlignMiddle);
+  ligneFaisceauLayout_->addWidget(allDropZone_,1);
 }
 
 
 GWt_abstractElement* GWt_LigneFaisceau::addElement(typedElement eType){
-    return addElement(eType,NULL);
-}
-
-
-
-GWt_abstractElement* GWt_LigneFaisceau::addElement(typedElement eType, GWt_dropZoneLigneFaisceau* dropContainer ){
-
-    GWt_abstractElement* GWtAbstractElem = NULL;
-    
-    cout << " Entree addElement element " << nomdElements::getLabelFromType(eType) << endl;
-    
-    int nElements= nomdElements ::getNumberOfElements();
-    nObjets_= new Compteur[nElements];
-    
-    // 3 cases :
-    // -dropContainer is an element of the ligneFaisceauLayout_
-    // -dropContainer is an element of the GWt_elementLigneFaisceau_
-    // -dropContainer is NULL, insert in the last element
-    
-    if(eType == inconnu) {
-        cout << "GWt_LigneFaisceau::element type " << eType << " inconnu " << endl;
-        return NULL;
-    }
-    
-    // add the element to the datamanager
-    
-    // first time we insert an element :
-    GWt_elementLigneFaisceau* firstElemIsElement = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(0)->widget());
-    if ((ligneFaisceauLayout_->count() == 1) && (!firstElemIsElement)) {
-        int index = indexOf (dropContainer);
-        if ((index != -1) || (dropContainer == NULL)){ // found
-            // remove global drop zone
-            ligneFaisceauLayout_->clear();
-
-            // add first element
-            GWt_elementLigneFaisceau* elemLigneFaisceau = new GWt_elementLigneFaisceau(eType, pspa_);
-            
-            ligneFaisceauLayout_->addWidget(elemLigneFaisceau,1);
-            GWtAbstractElem = elemLigneFaisceau->getGWt_AbstractElement();
-            // remove arrow from begin and end
-            
-        } else { // error
-            return NULL;
-        }
+  return addElement(eType,NULL);
+}
+
+GWt_abstractElement* GWt_LigneFaisceau::addElement(typedElement eType, GWt_dropZoneLigneFaisceau* dropContainer )
+{
+
+  GWt_abstractElement* GWtAbstractElem = NULL;
+    
+  cout << " Entree addElement element " << nomdElements::getLabelFromType(eType) << endl;
+    
+  int nElements= nomdElements ::getNumberOfElements();
+  nObjets_= new Compteur[nElements];
+  
+  // 3 cases :
+  // -dropContainer is an element of the ligneFaisceauLayout_
+  // -dropContainer is an element of the GWt_elementLigneFaisceau_
+  // -dropContainer is NULL, insert in the last element
+  
+  if(eType == inconnu) {
+    cout << "GWt_LigneFaisceau::element type " << eType << " inconnu " << endl;
+    return NULL;
+  }
+  
+  // add the element to the datamanager
+  
+  // first time we insert an element :
+  GWt_elementLigneFaisceau* firstElemIsElement = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(0)->widget());
+  if ((ligneFaisceauLayout_->count() == 1) && (!firstElemIsElement)) {
+    int index = indexOf (dropContainer);
+    if ((index != -1) || (dropContainer == NULL)){ // found
+      // remove global drop zone
+      ligneFaisceauLayout_->clear();
+      
+      // add first element
+      GWt_elementLigneFaisceau* elemLigneFaisceau = new GWt_elementLigneFaisceau(eType, pspa_);
+      
+      ligneFaisceauLayout_->addWidget(elemLigneFaisceau,1);
+      GWtAbstractElem = elemLigneFaisceau->getGWt_AbstractElement();
+      // remove arrow from begin and end
+      
+    } else { // error
+      return NULL;
+    }
+  } else {
+    int index = -1;
+    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+      GWt_elementLigneFaisceau* elem = static_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ());
+      if (elem) {
+	if (elem->getDropZoneLeft() == dropContainer) {
+	  index = a;
+	}
+	if (elem->getDropZoneRight() == dropContainer) {
+	  index = a+1;
+	}
+      }
+      
+    }
+    
+    
+    //  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaiseau(ptr),0);
+    GWt_elementLigneFaisceau* elemLigneFaisceau = new GWt_elementLigneFaisceau(eType, pspa_);
+    if (index != -1) {
+      //            nObjets_[ptr->getNomdElement().getElementType()].incr();
+      ligneFaisceauLayout_->insertWidget(index,elemLigneFaisceau,1);
+      GWtAbstractElem = elemLigneFaisceau->getGWt_AbstractElement();
     } else {
-        int index = -1;
-        for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-            GWt_elementLigneFaisceau* elem = static_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ());
-            if (elem) {
-                if (elem->getDropZoneLeft() == dropContainer) {
-                    index = a;
-                }
-                if (elem->getDropZoneRight() == dropContainer) {
-                    index = a+1;
-                }
-            }
-            
-        }
+      ligneFaisceauLayout_->addWidget(elemLigneFaisceau,1);
+      GWtAbstractElem = elemLigneFaisceau->getGWt_AbstractElement();
+    }
+  }
+  manageLineFaisceauLayout();
+  
+  return GWtAbstractElem;
+}
+
+
+void GWt_LigneFaisceau::manageLineFaisceauLayout() {
+  // special : hide/setVisible arrow :
+  for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+    if (GWt_elementLigneFaisceau* elem = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
+      
+      // update labels
+      elem->getGWt_AbstractElement()->updateLabelAndToolTipWidget();
+      
+      //  one element
+      if ((a == 0) && (a == (ligneFaisceauLayout_->count()-1))) {
+	elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_transparent");
+	elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_transparent");
+	
+	// first
+      } else if (a == 0){
+	elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_transparent");
+	elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_line");
+	
+	// last
+      } else if (a == (ligneFaisceauLayout_->count()-1)){
+	elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_line");
+	elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_transparent");
         
         
-        //  ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaiseau(ptr),0);
-        GWt_elementLigneFaisceau* elemLigneFaisceau = new GWt_elementLigneFaisceau(eType, pspa_);
-        if (index != -1) {
-//            nObjets_[ptr->getNomdElement().getElementType()].incr();
-            ligneFaisceauLayout_->insertWidget(index,elemLigneFaisceau,1);
-            GWtAbstractElem = elemLigneFaisceau->getGWt_AbstractElement();
-        } else {
-            ligneFaisceauLayout_->addWidget(elemLigneFaisceau,1);
-            GWtAbstractElem = elemLigneFaisceau->getGWt_AbstractElement();
-        }
-    }
+	// middle elements
+      } else {
+	elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_line");
+	elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_line");
+      }
+    }
+  }
+  
+  // insure that there is still the dropzone !
+  if (ligneFaisceauLayout_->count() == 0) {
+    clear();
+  }
+  
+  pspa_->getExecuteWidget()->updateSelections();
+}
+
+
+
+void GWt_LigneFaisceau::update() {
+  manageLineFaisceauLayout();
+}
+
+
+void GWt_LigneFaisceau::removeElement(GWt_abstractElement* GWt_abstractElement) {
+  if (GWt_abstractElement == NULL)
+    return;
+  
+  // remove Widget
+  // - GWt_abstractElement is an element of the GWt_elementLigneFaisceau_
+  
+  int index = -1;
+  for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+    GWt_elementLigneFaisceau* elem = static_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ());
+    if (elem) {
+      if (elem->getGWt_AbstractElement() == GWt_abstractElement) {
+	index = a;
+      }
+    }
+  }
+  
+  if (index != -1) {
+    // remove element from the list
+    //        pspa_->getDataManager()->removeElement(GWt_abstractElement->getElement()->getLabel());
+    
+    ligneFaisceauLayout_->removeItem(ligneFaisceauLayout_->itemAt(index));
+    delete GWt_abstractElement;
+    
+    // manage widgets if necessary
     manageLineFaisceauLayout();
-
-    return GWtAbstractElem;
-}
-
-
-void GWt_LigneFaisceau::manageLineFaisceauLayout() {
-    // special : hide/setVisible arrow :
-    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-        if (GWt_elementLigneFaisceau* elem = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
-
-            // update labels
-            elem->getGWt_AbstractElement()->updateLabelAndToolTipWidget();
-            
-            //  one element
-            if ((a == 0) && (a == (ligneFaisceauLayout_->count()-1))) {
-                elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_transparent");
-                elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_transparent");
-
-                // first
-            } else if (a == 0){
-                elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_transparent");
-                elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_line");
-
-                // last
-            } else if (a == (ligneFaisceauLayout_->count()-1)){
-                elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_line");
-                elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_transparent");
-                
-               
-                // middle elements
-            } else {
-                elem->getDropZoneLeft()->setStyleClass("elementLigneFaiseau_line");
-                elem->getDropZoneRight()->setStyleClass("elementLigneFaiseau_line");
-            }
-        }
-    }
-    
-    // insure that there is still the dropzone !
-    if (ligneFaisceauLayout_->count() == 0) {
-        clear();
-    }
-    
-    pspa_->getExecuteWidget()->updateSelections();
-}
-
-
-
-void GWt_LigneFaisceau::update() {
-    manageLineFaisceauLayout();
-}
-
-
-void GWt_LigneFaisceau::removeElement(GWt_abstractElement* GWt_abstractElement) {
-    if (GWt_abstractElement == NULL)
-        return;
-    
-    // remove Widget
-    // - GWt_abstractElement is an element of the GWt_elementLigneFaisceau_
-    
-    int index = -1;
-    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-        GWt_elementLigneFaisceau* elem = static_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ());
-        if (elem) {
-            if (elem->getGWt_AbstractElement() == GWt_abstractElement) {
-                index = a;
-            }
-        }
-    }
-    
-    if (index != -1) {
-        // remove element from the list
-//        pspa_->getDataManager()->removeElement(GWt_abstractElement->getElement()->getLabel());
-        
-        ligneFaisceauLayout_->removeItem(ligneFaisceauLayout_->itemAt(index));
-        delete GWt_abstractElement;
-        
-        // manage widgets if necessary
-        manageLineFaisceauLayout();
-    }
+  }
 }
 
 
 abstractElement* GWt_LigneFaisceau::getAbstractElement(int i){
-    int index = 0;
-
-    // first if 1
-//    i--;
-    
-    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-        if (GWt_elementLigneFaisceau* elem = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
-            if (index == i) {
-                printf("GWt_LigneFaisceau::getAbstractElement %d %s\n",i,elem->getGWt_AbstractElement()->getAbstractElement()->getLabel().c_str());
-                return elem->getGWt_AbstractElement()->getAbstractElement();
-            }
-            index ++;
-        }
-    }
-    return NULL;
+  int index = 0;
+  
+  // first if 1
+  //    i--;
+  
+  for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+    if (GWt_elementLigneFaisceau* elem = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
+      if (index == i) {
+	printf("GWt_LigneFaisceau::getAbstractElement %d %s\n",i,elem->getGWt_AbstractElement()->getAbstractElement()->getLabel().c_str());
+	return elem->getGWt_AbstractElement()->getAbstractElement();
+      }
+      index ++;
+    }
+  }
+  return NULL;
 }
 
 
 int GWt_LigneFaisceau::getBeamLineSize() {
-    int count = 0;
-    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-        if (dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
-            count ++;
-        }
-    }
-    return count;
-}
-
-
-vector <abstractElement*> GWt_LigneFaisceau::getAllAbstractElements(){
-    vector <abstractElement*> elems;
-    for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
-        if (GWt_elementLigneFaisceau* elem = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
-            elems.push_back(elem->getGWt_AbstractElement()->getAbstractElement());
-        }
-    }
-    return elems;
-}
-
+  int count = 0;
+  for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+    if (dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
+      count ++;
+    }
+  }
+  return count;
+}
+
+vector <abstractElement*> GWt_LigneFaisceau::getAllAbstractElements()
+{
+  vector <abstractElement*> elems;
+  for (int a=0; a< ligneFaisceauLayout_->count(); a++) {
+    if (GWt_elementLigneFaisceau* elem = dynamic_cast <GWt_elementLigneFaisceau*> (ligneFaisceauLayout_->itemAt(a)->widget ())) {
+      elems.push_back(elem->getGWt_AbstractElement()->getAbstractElement());
+    }
+  }
+  return elems;
+}
+
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_pspaApplication.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_pspaApplication.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_pspaApplication.cc	(revision 343)
@@ -65,4 +65,5 @@
     abstractElementFactory_->setBeamEnable(true);
     abstractElementFactory_->setFitEnable(true);
+    abstractElementFactory_->setSnapshotEnable(true);
     
     // include the styleSheet
@@ -71,4 +72,5 @@
     dtmanage_ = new dataManager(this);
     //    dtmanage_->setWorkingDir(workingDir_);
+
     /*
      * The main layout is a 3x2 grid layout.
@@ -125,5 +127,5 @@
     
     createBeamLine();
-
+    
     WScrollArea* scroll = new  WScrollArea();
     scroll->setWidget(beamLine_);
@@ -243,24 +245,22 @@
   Wt::WRadioButton *button2= new WRadioButton(" phase space after element");
 
-    choixAbsPhase_ = new WComboBox();
-    choixAbsPhase_->addItem("x");
-    choixAbsPhase_->addItem("y");
-    choixAbsPhase_->addItem("z");
-    choixAbsPhase_->addItem("xp");
-    choixAbsPhase_->addItem("yp");
-    choixAbsPhase_->addItem("dE/E");
-    choixAbsPhase_->setCurrentIndex(0);
-
-    choixOrdPhase_ = new WComboBox();
-    choixOrdPhase_->addItem("x");
-    choixOrdPhase_->addItem("y");
-    choixOrdPhase_->addItem("z");
-    choixOrdPhase_->addItem("xp");
-    choixOrdPhase_->addItem("yp");
-    choixOrdPhase_->addItem("dE/E");
-    choixOrdPhase_->setCurrentIndex(3);
-
-
-
+  choixAbsPhase_ = new WComboBox();
+  choixAbsPhase_->addItem("x");
+  choixAbsPhase_->addItem("y");
+  choixAbsPhase_->addItem("z");
+  choixAbsPhase_->addItem("xp");
+  choixAbsPhase_->addItem("yp");
+  choixAbsPhase_->addItem("dE/E");
+  choixAbsPhase_->setCurrentIndex(0);
+  
+  choixOrdPhase_ = new WComboBox();
+  choixOrdPhase_->addItem("x");
+  choixOrdPhase_->addItem("y");
+  choixOrdPhase_->addItem("z");
+  choixOrdPhase_->addItem("xp");
+  choixOrdPhase_->addItem("yp");
+  choixOrdPhase_->addItem("dE/E");
+  choixOrdPhase_->setCurrentIndex(3);
+  
   group_->addButton(button2,2);
   glayout->addWidget(button2,1,1);
@@ -461,9 +461,12 @@
   choixElementDessin_->clear();
   choixHistoDessin_->clear();
-  int nombre = dtmanage_->getBeamLineSize();
-  cout << " PspaApplication::faireDessin() nb elements : " << nombre << endl;
+
+  int nombre = dtmanage_->getBeamLineSize();  
   for(int i = 1; i <= nombre; i++) {
-    choixElementDessin_->addItem(dtmanage_->getLabelFromElementNumero(i));
-    choixHistoDessin_->addItem(dtmanage_->getLabelFromElementNumero(i));
+    abstractElement* elPtr = dtmanage_->getElementPointerFromNumero(i);
+    if(elPtr->getNomdElement().getElementType() == snapshot) continue;
+
+    choixElementDessin_->addItem(elPtr->getLabel());
+    choixHistoDessin_->addItem(elPtr->getLabel());
   } 
 }
@@ -537,9 +540,9 @@
   envDialog->show();
       
-  //       new WText(nameOfCase_ + " : enveloppe", toto);
   unsigned nbel = dtmanage_->getBeamLineSize();
   vector<double> xcor;
   vector<double> ycor;
-  dtmanage_->donneesRmsEnveloppe(type,1, nbel, xcor,ycor);
+  //dtmanage_->donneesRmsEnveloppe(type,1, nbel, xcor,ycor);
+  dtmanage_->donneesRmsEnveloppe(type,nbel,xcor,ycor);
   scatterPlot1D(envDialog->contents(),xcor,ycor);  
 }
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_snapshot.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_snapshot.cc	(revision 343)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_snapshot.cc	(revision 343)
@@ -0,0 +1,49 @@
+
+#include "GWt_snapshot.h"
+#include "mixedTools.h"
+
+#include <Wt/WBreak>
+#include <Wt/WLineEdit>
+#include <Wt/WDialog>
+#include <Wt/WPushButton>
+
+GWt_snapshot::GWt_snapshot(GWt_elementLigneFaisceau* elemLigne) : GWt_abstractElement(new elementSnapshot())
+{
+  elementLigneFaiseauContainer_ = elemLigne;
+  initialize();
+}
+
+void GWt_snapshot::initilializeDialog() 
+{
+  string* param = beginDialog();
+  new WBreak(dialog_->contents());
+
+  WPushButton *annule= new WPushButton("cancel",dialog_->contents()); 
+  annule->clicked().connect(dialog_,&Wt::WDialog::reject);
+  WPushButton *submit= new WPushButton("OK",dialog_->contents());
+  submit->clicked().connect(dialog_,&Wt::WDialog::accept);
+  dialog_->finished().connect(this, &GWt_snapshot::dialogDone);
+}
+
+void GWt_snapshot::dialogDone(WDialog::DialogCode code)
+{
+  if (code != Wt::WDialog::Accepted) return;
+  
+  unsigned nbParam = abstractElement_->getNbParams();
+  string* envoi = new string[nbParam+1];
+  int compteur = -1;
+  
+  envoi[++compteur] = mixedTools::intToString(nbParam);
+  envoi[++compteur] = labelEdit_->text().toUTF8();
+  if ( compteur !=  (int)nbParam ) {
+    cerr << " GWt_snapshot::dialogDone() : pb dans le nb de parametres, compteur = " << compteur << " nbParam= " << nbParam << endl;
+    return;
+  }
+
+  abstractElement_->setParametersString(envoi);
+  delete [] envoi;
+}
+
+WImage* GWt_snapshot::getImage() {
+  return image_;
+}
Index: Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc
===================================================================
--- Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 342)
+++ Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 343)
@@ -21,218 +21,206 @@
 
 GWt_softwarePanel::GWt_softwarePanel(dataManager* dataManager,PspaApplication* pspa)
-: WContainerWidget() {
-    
-    dtmanage_ = dataManager;
-    pspa_ = pspa;
-    setMaximumSize(600,150);
-    setMinimumSize(600,150);
-    
-    // bouton execute
-    exec_go_ = new WPushButton("execute!");
-    //    exec_go_->setMinimumSize(300,300);
-    exec_go_->setDisabled(true);
-    exec_go_->clicked().connect(this, &GWt_softwarePanel::executer);
-    
-    // preparation du bouton add
-    WPushButton* exec_add = new WPushButton("add");
-    exec_add->clicked().connect(this, &GWt_softwarePanel::addSectionToExecuteW);
-    
-    // preparation du bouton delete
-    WPushButton* exec_delete = new WPushButton("delete");
-    exec_delete->clicked().connect(this, &GWt_softwarePanel::deleteSectionToExecuteW);
-    
-    // preparation du bouton push_ok
-    WPushButton* exec_ok = new WPushButton("check/ok");
-    exec_ok->clicked().connect(this, &GWt_softwarePanel::checkSectionSelection);
-    
-    // le panel
-    WPanel *panelLogiciels = new WPanel(this);
-    panelLogiciels->setTitle(" sections of beam Line for executing softwares ");
-    
-    contenuSections_ = new WContainerWidget();
-    contenuSections_->addWidget(exec_add);
-    contenuSections_->addWidget(exec_delete);
-    contenuSections_->addWidget(exec_ok);
-    contenuSections_->addWidget(exec_go_);
-    contenuSections_->addWidget(new WBreak());
-    contenuSections_->addWidget(new WBreak());
-    addSectionToExecuteW();
-    
-    panelLogiciels->setCentralWidget(contenuSections_);
-}
-
+  : WContainerWidget() 
+{
+  dtmanage_ = dataManager;
+  pspa_ = pspa;
+  setMaximumSize(600,150);
+  setMinimumSize(600,150);
+    
+  // bouton execute
+  exec_go_ = new WPushButton("execute!");
+  //    exec_go_->setMinimumSize(300,300);
+  exec_go_->setDisabled(true);
+  exec_go_->clicked().connect(this, &GWt_softwarePanel::executer);
+  
+  // preparation du bouton add
+  WPushButton* exec_add = new WPushButton("add");
+  exec_add->clicked().connect(this, &GWt_softwarePanel::addSectionToExecuteW);
+    
+  // preparation du bouton delete
+  WPushButton* exec_delete = new WPushButton("delete");
+  exec_delete->clicked().connect(this, &GWt_softwarePanel::deleteSectionToExecuteW);
+    
+  // preparation du bouton push_ok
+  WPushButton* exec_ok = new WPushButton("check/ok");
+  exec_ok->clicked().connect(this, &GWt_softwarePanel::checkSectionSelection);
+  
+  // le panel
+  WPanel *panelLogiciels = new WPanel(this);
+  panelLogiciels->setTitle(" sections of beam Line for executing softwares ");
+  
+  contenuSections_ = new WContainerWidget();
+  contenuSections_->addWidget(exec_add);
+  contenuSections_->addWidget(exec_delete);
+  contenuSections_->addWidget(exec_ok);
+  contenuSections_->addWidget(exec_go_);
+  contenuSections_->addWidget(new WBreak());
+  contenuSections_->addWidget(new WBreak());
+  addSectionToExecuteW();
+  
+  panelLogiciels->setCentralWidget(contenuSections_);
+}
 
 GWt_softwarePanel::~GWt_softwarePanel() {
 }
 
-
 void GWt_softwarePanel::addSectionToExecuteW()
-{
-    
-    disableSectionExecute();
-    
-    string premierText, dernierText;
-    if(selectedSections_.size() == 0)
-    {
-        premierText = dtmanage_->getLabelFromElementNumero(1);
+{    
+  disableSectionExecute();
+  
+  string premierText, dernierText;
+  if(selectedSections_.size() == 0) {
+    premierText = dtmanage_->getLabelFromElementNumero(1); 
+    dernierText = dtmanage_->getLabelFromElementNumero(dtmanage_->getBeamLineSize());
+  } else {
+    dernierText = selectedSections_.back()->fin->text().toUTF8();
+    int dernierNumero = dtmanage_->getNumeroFromElementLabel(dernierText);
+    dernierNumero++;
+    if ( dernierNumero <= dtmanage_->getBeamLineSize() ) {
+      premierText = dtmanage_->getLabelFromElementNumero(dernierNumero);
+    } else {
+      premierText = dtmanage_->getLabelFromElementNumero(dtmanage_->getBeamLineSize());
+    }
+    dernierText = premierText;
+  }
+  
+  //  cout << "PspaApplication::addSectionToExecute() : " << premierText << " ââ   " << dernierText << endl;
+  
+  WContainerWidget* newSection = new WContainerWidget;
+    
+  selectedSections_.push_back(new GWt_sectionToExecute);
+  selectedSections_.back()->debut = new WLineEdit();
+  selectedSections_.back()->debut->setDisabled(true);
+  selectedSections_.back()->debut->setText(premierText);
+  selectedSections_.back()->fin = new WLineEdit();
+  selectedSections_.back()->fin->changed().connect(this,&GWt_softwarePanel::disableSectionExecute);
+  selectedSections_.back()->fin->setText(dernierText);
+  selectedSections_.back()->selection = new WComboBox();
+  selectedSections_.back()->ligneDeWidget = newSection;
+  newSection->addWidget(new WText(" from : "));
+  newSection->addWidget(selectedSections_.back()->debut);
+  newSection->addWidget(new WText(" to : "));
+  newSection->addWidget(selectedSections_.back()->fin);
+  newSection->addWidget(selectedSections_.back()->selection);
+  
+  contenuSections_->addWidget(newSection);
+  unsigned nb = nomDeLogiciel::getNumberOfSoftwares();
+  unsigned k;
+  for(k = 0; k < nb; k++) {
+    selectedSections_.back()->selection->addItem(nomDeLogiciel(k).getString());
+  }
+}
+
+
+void GWt_softwarePanel::disableSectionExecute()
+{
+  exec_go_->setDisabled(true);
+}
+
+
+void GWt_softwarePanel::checkSectionSelection()
+{
+  if ( selectedSections_.empty() ) return;
+  
+  // traitement de la premiere ligne
+  // on impose le depart du calcul au premier element
+  string premier = dtmanage_->getLabelFromElementNumero(1);
+  (*selectedSections_.begin())->debut->setText(premier);
+  
+  string currentString =  (*selectedSections_.begin())->fin->text().toUTF8();
+  int current = dtmanage_->getNumeroFromElementLabel(currentString);
+    
+  // si la fin est mal definie on prend toute la config par defaut
+  if ( current <= 0 || current > dtmanage_->getBeamLineSize() )
+    {
+      current = dtmanage_->getBeamLineSize();
+      currentString =  dtmanage_->getLabelFromElementNumero(current);
+      (*selectedSections_.begin())->fin->setText(currentString);
+    }
+  current++;
+  currentString = dtmanage_->getLabelFromElementNumero(current);
+  
+  // traitement des suivantes (on avance d'un cran dans la liste)
+  list<GWt_sectionToExecute*>::iterator itr, itr0;
+  itr0 = selectedSections_.begin();
+  itr0++;
+  for (itr = itr0; itr != selectedSections_.end(); itr++)
+    {
+      // debut
+      if ( current > dtmanage_->getBeamLineSize() )
+        {
+	  GWt_dialog warningDialog("PSPA :: verification des sections", " bad section definition !", GWt_dialog::Error,true,true);
+	  warningDialog.exec();
+	  return;
+        }
+      
+      (*itr)->debut->setText(currentString);
+      // fin
+      string finString =  (*itr)->fin->text().toUTF8();
+      
+      int numeroFin = dtmanage_->getNumeroFromElementLabel( finString);
+      
+      if ( numeroFin < current || numeroFin > dtmanage_->getBeamLineSize())
+        {
+	  GWt_dialog warningDialog("PSPA : Checking of sections", " bad section definition !", GWt_dialog::Error, true,true);
+	  warningDialog.exec();
+	  return;
+        }
+      
+      // preparation de la ligne suivante
+      current = numeroFin +1;
+      currentString = dtmanage_->getLabelFromElementNumero(current);
+    }
+  
+  if (!areDataCoherent()) {
+    GWt_dialog warningDialog("PSPA : verification des sections", " donnees incoherentes !", GWt_dialog::Error,true,true);
+    warningDialog.exec();
+  }
+  else
+    {
+      exec_go_->setDisabled(false);
+    }
+}
+
+
+bool GWt_softwarePanel::areDataCoherent()
+{
+  bool caMarche = true;
+  dtmanage_->initializeExecution();
+  
+  list<GWt_sectionToExecute*>::iterator itr;
+  for(itr = selectedSections_.begin(); itr != selectedSections_.end(); itr++)
+    {
+      string debString = (*itr)->debut->text().toUTF8();
+      string finString = (*itr)->fin->text().toUTF8();
         
-        dernierText = dtmanage_->getLabelFromElementNumero(dtmanage_->getBeamLineSize());
-    }
-    else
-    {
-        dernierText = selectedSections_.back()->fin->text().toUTF8();
-        int dernierNumero = dtmanage_->getNumeroFromElementLabel(dernierText);
-        dernierNumero++;
-        if ( dernierNumero <= dtmanage_->getBeamLineSize() )
-        {
-            premierText = dtmanage_->getLabelFromElementNumero(dernierNumero);
-        }
-        else
-        {
-            premierText = dtmanage_->getLabelFromElementNumero(dtmanage_->getBeamLineSize());
-        }
-        dernierText = premierText;
-    }
-    
-    //  cout << "PspaApplication::addSectionToExecute() : " << premierText << " ââ   " << dernierText << endl;
-    
-    WContainerWidget* newSection = new WContainerWidget;
-    
-    selectedSections_.push_back(new GWt_sectionToExecute);
-    selectedSections_.back()->debut = new WLineEdit();
-    selectedSections_.back()->debut->setDisabled(true);
-    selectedSections_.back()->debut->setText(premierText);
-    selectedSections_.back()->fin = new WLineEdit();
-    selectedSections_.back()->fin->changed().connect(this,&GWt_softwarePanel::disableSectionExecute);
-    selectedSections_.back()->fin->setText(dernierText);
-    selectedSections_.back()->selection = new WComboBox();
-    selectedSections_.back()->ligneDeWidget = newSection;
-    newSection->addWidget(new WText(" from : "));
-    newSection->addWidget(selectedSections_.back()->debut);
-    newSection->addWidget(new WText(" to : "));
-    newSection->addWidget(selectedSections_.back()->fin);
-    newSection->addWidget(selectedSections_.back()->selection);
-    
-    contenuSections_->addWidget(newSection);
-    unsigned nb = nomDeLogiciel::getNumberOfSoftwares();
-    unsigned k;
-    for(k = 0; k < nb; k++) {
-        selectedSections_.back()->selection->addItem(nomDeLogiciel(k).getString());
-    }
-}
-
-
-void GWt_softwarePanel::disableSectionExecute()
-{
-    exec_go_->setDisabled(true);
-}
-
-
-void GWt_softwarePanel::checkSectionSelection()
-{
-    if ( selectedSections_.empty() ) return;
-    
-    // traitement de la premiere ligne
-    // on impose le depart du calcul au premier element
-    string premier = dtmanage_->getLabelFromElementNumero(1);
-    (*selectedSections_.begin())->debut->setText(premier);
-    
-    string currentString =  (*selectedSections_.begin())->fin->text().toUTF8();
-    int current = dtmanage_->getNumeroFromElementLabel( currentString);
-    
-    // si la fin est mal definie on prend toute la config par defaut
-    if ( current <= 0 || current > dtmanage_->getBeamLineSize() )
-    {
-        current = dtmanage_->getBeamLineSize();
-        currentString =  dtmanage_->getLabelFromElementNumero(current);
-        (*selectedSections_.begin())->fin->setText(currentString);
-    }
-    current++;
-    currentString = dtmanage_->getLabelFromElementNumero(current);
-    
-    // traitement des suivantes (on avance d'un cran dans la liste)
-    list<GWt_sectionToExecute*>::iterator itr, itr0;
-    itr0 = selectedSections_.begin();
-    itr0++;
-    for (itr = itr0; itr != selectedSections_.end(); itr++)
-    {
-        // debut
-        if ( current > dtmanage_->getBeamLineSize() )
-        {
-            GWt_dialog warningDialog("PSPA : VÃrification des sections", " bad section definition !", GWt_dialog::Error,true,true);
-            warningDialog.exec();
-            return;
-        }
-        
-        (*itr)->debut->setText(currentString);
-        // fin
-        string finString =  (*itr)->fin->text().toUTF8();
-        
-        int numeroFin = dtmanage_->getNumeroFromElementLabel( finString);
-        
-        if ( numeroFin < current || numeroFin > dtmanage_->getBeamLineSize())
-        {
-            GWt_dialog warningDialog("PSPA : Checking of sections", " bad section definition !", GWt_dialog::Error, true,true);
-            warningDialog.exec();
-            return;
-        }
-        
-        // preparation de la ligne suivante
-        current = numeroFin +1;
-        currentString = dtmanage_->getLabelFromElementNumero(current);
-    }
-    
-    if (!areDataCoherent()) {
-        GWt_dialog warningDialog("PSPA : VÃrification des sections", " donnees incoherentes !", GWt_dialog::Error,true,true);
-        warningDialog.exec();
-    }
-    else
-    {
-        exec_go_->setDisabled(false);
-    }
-}
-
-
-bool GWt_softwarePanel::areDataCoherent()
-{
-    bool caMarche = true;
-    dtmanage_->initializeExecution();
-    
-    list<GWt_sectionToExecute*>::iterator itr;
-    for(itr = selectedSections_.begin(); itr != selectedSections_.end(); itr++)
-    {
-        string debString = (*itr)->debut->text().toUTF8();
-        string finString = (*itr)->fin->text().toUTF8();
-        
-        
-        int debut = dtmanage_->getNumeroFromElementLabel(debString);
-        int fin = dtmanage_->getNumeroFromElementLabel(finString);
-        nomDeLogiciel prog = nomDeLogiciel ( (*itr)->selection->currentIndex() );
-        dtmanage_->addSectionToExecute(debut,fin,prog);
-    }
-    
-    string diagnostic;
-    trivaluedBool essai = dtmanage_->checkExecute(diagnostic);
-    if ( essai == error ) {
-        caMarche = false;
-        GWt_dialog calculDialog("PSPA check execute : ERROR", diagnostic , GWt_dialog::Error,true,true);
-        calculDialog.exec();
-    } else if ( essai == warning )  {
-        caMarche = true;
-        GWt_dialog calculDialog("PSPA check execute : warning ", diagnostic , GWt_dialog::Warning, false,true);
-        calculDialog.exec();
-    }
-    
-    return caMarche;
-}
-
+      int debut = dtmanage_->getNumeroFromElementLabel(debString);
+      int fin = dtmanage_->getNumeroFromElementLabel(finString);
+      nomDeLogiciel prog = nomDeLogiciel ( (*itr)->selection->currentIndex() );
+      dtmanage_->addSectionToExecute(debut,fin,prog);
+    }
+  
+  string diagnostic;
+  trivaluedBool essai = dtmanage_->checkExecute(diagnostic);
+  if ( essai == error ) {
+    caMarche = false;
+    GWt_dialog calculDialog("PSPA check execute : ERROR", diagnostic , GWt_dialog::Error,true,true);
+    calculDialog.exec();
+  } else if ( essai == warning )  {
+    caMarche = true;
+    GWt_dialog calculDialog("PSPA check execute : warning ", diagnostic , GWt_dialog::Warning, false,true);
+    calculDialog.exec();
+  }
+  
+  return caMarche;
+}
 
 void GWt_softwarePanel::deleteSectionToExecuteW()
 {
-    if ( selectedSections_.empty() ) return;
-    disableSectionExecute();
-    selectedSections_.back()->ligneDeWidget->clear();
-    delete selectedSections_.back()->ligneDeWidget;
-    selectedSections_.pop_back();
+  if ( selectedSections_.empty() ) return;
+  disableSectionExecute();
+  selectedSections_.back()->ligneDeWidget->clear();
+  delete selectedSections_.back()->ligneDeWidget;
+  selectedSections_.pop_back();
 }
 
@@ -240,14 +228,14 @@
 void GWt_softwarePanel::updateSelections()
 {
-    string premierText, dernierText;
-    if ( selectedSections_.size() > 0 )
-    {
-        premierText = dtmanage_->getLabelFromElementNumero(1);
-        dernierText = dtmanage_->getLabelFromElementNumero( dtmanage_->getBeamLineSize() );
-        (*selectedSections_.begin())->debut->setText(premierText);
-        (*selectedSections_.begin())->fin->setText(dernierText);
-    }
-    
-    cout << "PspaApplication::updateSelections(): " << premierText << " ââ   " << dernierText << endl;
+  string premierText, dernierText;
+  if ( selectedSections_.size() > 0 )
+    {
+      premierText = dtmanage_->getLabelFromElementNumero(1);
+      dernierText = dtmanage_->getLabelFromElementNumero( dtmanage_->getBeamLineSize() );
+      (*selectedSections_.begin())->debut->setText(premierText);
+      (*selectedSections_.begin())->fin->setText(dernierText);
+    }
+  
+  cout << "PspaApplication::updateSelections(): " << premierText << " ââ   " << dernierText << endl;
 }
 
@@ -255,7 +243,7 @@
 string GWt_softwarePanel::getSelection()
 {
-    list<GWt_sectionToExecute*>::iterator itr = selectedSections_.begin();
-    string str = (*itr)->fin->text().toUTF8();
-    return str;
+  list<GWt_sectionToExecute*>::iterator itr = selectedSections_.begin();
+  string str = (*itr)->fin->text().toUTF8();
+  return str;
 }
 
@@ -263,38 +251,24 @@
 void GWt_softwarePanel::executer()
 {
-    GWt_console* console = NULL;
-    if ( static_cast<GWt_console*> (wApp->findWidget ("console"))) {
-        console = static_cast<GWt_console*> (wApp->findWidget ("console"));
-        console->addConsoleMessage(string("on va peut etre y arriver"));
-    }
-    
-    
-    static_cast<GWt_globalParameters*>(pspa_->getGlobalParam())->updateGlobals();
-    
-    GWt_dialog calculDialog("Calcul en cours", "Veuillez patienter...", GWt_dialog::Wait, true,false);
-    calculDialog.show();
-    
-    wApp->processEvents();
-    
-    //    string resultat;
-    if ( !dtmanage_->executeAll()) {
-        GWt_dialog warningDialog("PSPA : Echec", " echec lors de l'exÃcution !", GWt_dialog::Error, true,true);
-        warningDialog.exec();
-    }
-    //    cout << " PspaApplication : retour d'execution resultat =  " << resultat << endl;
-
-
-
-    // if (console) {
-    //     console->addConsoleMessage(resultat);
-    // }
-    //  cout << " PspaApplication : affichage console termine  " << endl;
-    
-    exec_go_->setDisabled(true);
-    
-    calculDialog.hide();
-    
-    pspa_->faireDessin();
-}
-
-
+  GWt_console* console = NULL;
+  if (static_cast<GWt_console*> (wApp->findWidget ("console"))) {
+    console = static_cast<GWt_console*> (wApp->findWidget ("console"));
+    console->addConsoleMessage(string("on va peut etre y arriver"));
+  }
+  
+  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();  
+  pspa_->faireDessin();
+}
