Index: /Interface_Web/trunk/pspaWT/History
===================================================================
--- /Interface_Web/trunk/pspaWT/History	(revision 291)
+++ /Interface_Web/trunk/pspaWT/History	(revision 292)
@@ -7,5 +7,16 @@
 
 29 Janvier 2012  Laurent Garnier
-- Ajout de GWt_abstractElementFactory
+- Ajout de la classe GWt_abstractElementFactory
+- GWt_bend, GWt_drift, GWt_beam
+  GWt_soleno, GWt_fit, GWt_rfgun
+  GWt_cell,  GWt_pspaApplication,
+  GWt_dropZoneLigneFaisceau : Déplacement des mimeTypes et imagesUrl directement 
+  dans les élements
+
+- GWt_abstractElement : Déplacement de methode createDragImage()
+
+- GWt_elementLigneFaisceau : passage d'une référence vers "pspaApplication"
+
+- GWt_pspaApplication : ajout d'une abstractElementFactory
 
 28 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 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElement.h	(revision 292)
@@ -47,5 +47,4 @@
     
     virtual void dialogDone() = 0;
-    virtual WImage* getImage() = 0;
     virtual WString print() = 0;
     virtual string getMimeType()= 0;
@@ -53,7 +52,10 @@
     virtual string getBigImageURL()= 0;
     virtual string getName()= 0;
+
+    void createDragImage(WContainerWidget*);
+    WImage* getImage();
     
-    //    virtual void createDragImage() = 0;
-    
+protected:
+    WImage* image_;
 private:
     GWt_elementLigneFaisceau* elementLigneFaiseauContainer_;
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_beam.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_beam.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_beam.h	(revision 292)
@@ -23,5 +23,4 @@
     virtual void dialogDone();
     
-    WImage* getImage();
     WString print();
 
@@ -31,6 +30,4 @@
     inline string getName() {return "beam"; }
 
-private:
-    WImage* image_;
 };
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_bend.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_bend.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_bend.h	(revision 292)
@@ -30,6 +30,4 @@
     inline string getName() {return "bend"; }
 
-private:
-    WImage* image_;
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_cell.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_cell.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_cell.h	(revision 292)
@@ -41,6 +41,4 @@
     inline string getName() {return "cell"; }
 
-private:
-    WImage* image_;
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_drift.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_drift.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_drift.h	(revision 292)
@@ -32,6 +32,4 @@
     inline string getName() {return "drift"; }
 
-private:
-    WImage* image_;
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_dropZoneLigneFaisceau.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_dropZoneLigneFaisceau.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_dropZoneLigneFaisceau.h	(revision 292)
@@ -3,4 +3,5 @@
 
 #include "GWt_dropZoneLigneFaisceau.h"
+#include "GWt_pspaApplication.h"
 
 #include <Wt/WContainerWidget>
@@ -13,9 +14,9 @@
     public :
     
-    GWt_dropZoneLigneFaisceau();
+    GWt_dropZoneLigneFaisceau(PspaApplication* pspa_);
     ~GWt_dropZoneLigneFaisceau();
     
 private:
-    void initialise();
+    void initialise( PspaApplication* pspa);
     void mouseOver(const WMouseEvent &e );
     void mouseOut(const WMouseEvent &e );
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaisceau.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaisceau.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_elementLigneFaisceau.h	(revision 292)
@@ -6,4 +6,5 @@
 #include "GWt_abstractElement.h"
 #include "GWt_dropZoneLigneFaisceau.h"
+#include "GWt_pspaApplication.h"
 
 #include <Wt/WContainerWidget>
@@ -32,6 +33,6 @@
      */
     
-    GWt_elementLigneFaisceau();
-    GWt_elementLigneFaisceau(abstractElement*);
+    GWt_elementLigneFaisceau(PspaApplication*);
+    GWt_elementLigneFaisceau(abstractElement*,PspaApplication*);
     
     ~GWt_elementLigneFaisceau();
@@ -69,5 +70,5 @@
     GWt_dropZoneLigneFaisceau* dropZoneRight_;
     WText* elementName_;
-    
+    PspaApplication* pspa_;
     GWt_abstractElement* abstractElement_;
 };
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_fit.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_fit.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_fit.h	(revision 292)
@@ -27,6 +27,4 @@
     inline string getName() {return "fit"; }
 
-private:
-    WImage* image_;
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_pspaApplication.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_pspaApplication.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_pspaApplication.h	(revision 292)
@@ -115,4 +115,7 @@
     void updateSelections();
     string getSelection();
+    inline GWt_abstractElementFactory* getAbstractElementFactory() {
+        return abstractElementFactory_;
+    }
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_rfgun.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_rfgun.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_rfgun.h	(revision 292)
@@ -38,7 +38,4 @@
     inline string getName() {return "rfgun"; }
 
-private:
-    WImage* image_;
-    
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_soleno.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_soleno.h	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_soleno.h	(revision 292)
@@ -39,6 +39,4 @@
     inline string getName() {return "soleno"; }
 
-private:
-    WImage* image_;
 };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElement.cc	(revision 292)
@@ -12,4 +12,5 @@
 #include "GWt_beam.h"
 #include "GWt_fit.h"
+#include "GWt_draggableImage.h"
 
 #include "mixedTools.h"
@@ -114,2 +115,17 @@
 }
 
+
+void GWt_abstractElement::createDragImage(WContainerWidget* w){
+
+    GWt_draggableImage *result = new GWt_draggableImage(getBigImageURL(),w);
+
+    /*
+     * Set the image to be draggable, showing the other image (dragImage)
+     * to be used as the widget that is visually dragged.
+     */
+    result->setDraggable(getMimeType(),new WImage(getSmallImageURL(),w),true);
+}
+
+WImage* GWt_abstractElement::getImage() {
+    return image_;
+}
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_beam.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_beam.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_beam.cc	(revision 292)
@@ -46,5 +46,5 @@
     
     // make image
-    image_ = new WImage("htdocs/beam.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
@@ -76,10 +76,7 @@
 }
 
-WImage* GWt_beam::getImage() {
-    return image_;
-}
-
 
 WString GWt_beam::print(){
     return WString(abstractElement_->print());
 }
+
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_bend.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_bend.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_bend.cc	(revision 292)
@@ -47,5 +47,5 @@
     
     // make image
-    image_ = new WImage("htdocs/bend.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_cell.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_cell.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_cell.cc	(revision 292)
@@ -69,5 +69,5 @@
     
     // make image
-    image_ = new WImage("htdocs/cell.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_drift.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_drift.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_drift.cc	(revision 292)
@@ -25,5 +25,5 @@
     
     // make image
-    image_ = new WImage("htdocs/drift.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_dropZoneLigneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_dropZoneLigneFaisceau.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_dropZoneLigneFaisceau.cc	(revision 292)
@@ -12,7 +12,7 @@
 //#define PSPA_DEBUG 1
 
-GWt_dropZoneLigneFaisceau::GWt_dropZoneLigneFaisceau()
+GWt_dropZoneLigneFaisceau::GWt_dropZoneLigneFaisceau( PspaApplication* pspa)
 : WContainerWidget(){
-    initialise();
+    initialise(pspa);
 }
 
@@ -23,5 +23,5 @@
 
 
-void GWt_dropZoneLigneFaisceau::initialise()
+void GWt_dropZoneLigneFaisceau::initialise( PspaApplication* pspa)
 {
     
@@ -37,12 +37,9 @@
     
     // accept drops
-    acceptDrops("htdocs/beam.jpg");
-    acceptDrops("htdocs/rfgun.jpg");
-    acceptDrops("htdocs/drift.jpg");
-    acceptDrops("htdocs/cell.jpg");
-    acceptDrops("htdocs/bend.jpg");
-    acceptDrops("htdocs/soleno.jpg");
-    acceptDrops("htdocs/fit.jpg");
 
+        vector <GWt_abstractElement*> elems = pspa->getAbstractElementFactory()->getAllElements();
+    for (int a = 0; a< elems.size(); a++) {
+        acceptDrops(elems[a]->getMimeType());
+    }
     setMinimumSize(10,32);
 }
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc	(revision 292)
@@ -26,19 +26,6 @@
 #define PSPA_DEBUG 1
 
-GWt_elementLigneFaisceau::GWt_elementLigneFaisceau()
-: WContainerWidget(),
-firstTimeInsertMessage_(NULL),
-dropZoneLeft_(NULL),
-dropZoneRight_(NULL),
-abstractElement_(NULL)
-{
-    // set the css name
-    setObjectName("elementLigneFaisceau");
-    
-    initialize_ligneFaisceau(NULL);
-}
-
-
-GWt_elementLigneFaisceau::GWt_elementLigneFaisceau(abstractElement* abstractElement)
+
+GWt_elementLigneFaisceau::GWt_elementLigneFaisceau(PspaApplication* pspa)
 : WContainerWidget(),
 firstTimeInsertMessage_(NULL),
@@ -46,6 +33,23 @@
 dropZoneRight_(NULL),
 abstractElement_(NULL),
-elementName_(NULL)
-{
+elementName_(NULL),
+pspa_(pspa)
+{
+    
+    initialize_ligneFaisceau(NULL);
+}
+
+GWt_elementLigneFaisceau::GWt_elementLigneFaisceau(abstractElement* abstractElement, PspaApplication* pspa)
+: WContainerWidget(),
+firstTimeInsertMessage_(NULL),
+dropZoneLeft_(NULL),
+dropZoneRight_(NULL),
+abstractElement_(NULL),
+elementName_(NULL),
+pspa_(pspa)
+{
+    // set the css name
+    setObjectName("elementLigneFaisceau");
+
     initialize_ligneFaisceau(abstractElement);
 }
@@ -72,7 +76,7 @@
     
     // add first line :  initialize arrow and link images
-    dropZoneLeft_ = new GWt_dropZoneLigneFaisceau();
+    dropZoneLeft_ = new GWt_dropZoneLigneFaisceau(pspa_);
     dragElementZone_ = new WContainerWidget();
-    dropZoneRight_ = new GWt_dropZoneLigneFaisceau();
+    dropZoneRight_ = new GWt_dropZoneLigneFaisceau(pspa_);
     
     // change object name in order to manage css :
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_fit.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_fit.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_fit.cc	(revision 292)
@@ -48,5 +48,5 @@
     
     // make image
-    image_ = new WImage("htdocs/fit.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_ligneFaisceau.cc	(revision 292)
@@ -38,5 +38,5 @@
     // add the first drop zone
     decorationStyle().setBorder (WBorder (WBorder::Dotted));
-    GWt_dropZoneLigneFaisceau* allDropZone= new GWt_dropZoneLigneFaisceau();
+    GWt_dropZoneLigneFaisceau* allDropZone= new GWt_dropZoneLigneFaisceau(pspa_);
     WVBoxLayout* fit = new WVBoxLayout();
     allDropZone->setLayout(fit);
@@ -68,5 +68,5 @@
         nObjets_[ptr->getNomdElement().getElementType()].incr();
 
-        ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaisceau(ptr),1);
+        ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaisceau(ptr,pspa_),1);
         
     }
@@ -104,5 +104,5 @@
             ligneFaisceauLayout_->clear();
             // add first element
-            ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaisceau(ptr),1);
+            ligneFaisceauLayout_->addWidget(new GWt_elementLigneFaisceau(ptr,pspa_),1);
             // remove arrow from begin and end
             
@@ -129,5 +129,5 @@
         if (index != -1) {
             nObjets_[ptr->getNomdElement().getElementType()].incr();
-            ligneFaisceauLayout_->insertWidget(index,new GWt_elementLigneFaisceau(ptr),1);
+            ligneFaisceauLayout_->insertWidget(index,new GWt_elementLigneFaisceau(ptr,pspa_),1);
         }
     }
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_pspaApplication.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_pspaApplication.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_pspaApplication.cc	(revision 292)
@@ -189,20 +189,9 @@
     //  nomdElements bidon;
     
-    // FIXME a reprendre avec un patern
-    createDragImage("htdocs/beam.jpg","htdocs/beam.jpg","htdocs/beam.jpg",palette,"beam");
-    new WBreak(palette);
-    createDragImage("htdocs/rfgun.jpg","htdocs/rfgun.jpg","htdocs/rfgun.jpg",palette,"rfgun");
-    new WBreak(palette);
-    createDragImage("htdocs/drift.jpg","htdocs/drift.jpg","htdocs/drift.jpg",palette,"drift");
-    new WBreak(palette);
-    createDragImage("htdocs/cell.jpg","htdocs/cell.jpg","htdocs/cell.jpg",palette,"cell");
-    new WBreak(palette);
-    createDragImage("htdocs/bend.jpg","htdocs/bend.jpg","htdocs/bend.jpg",palette,"bend");
-    new WBreak(palette);
-    createDragImage("htdocs/soleno.jpg","htdocs/soleno.jpg","htdocs/soleno.jpg",palette,"soleno");
-    new WBreak(palette);
-    createDragImage("htdocs/fit.jpg","htdocs/fit.jpg","htdocs/fit.jpg",palette,"fit");
-    new WBreak(palette);
-    
+    vector <GWt_abstractElement*> elems = abstractElementFactory_->getAllElements();
+    for (int a = 0; a< elems.size(); a++) {
+        elems[a]->createDragImage(palette);
+        new WBreak(palette);
+    }
     
     //  palette->setMinimumSize(100,300);
@@ -214,5 +203,4 @@
 {
     GWt_draggableImage *result = new GWt_draggableImage(url,p);
-    WImage *dragImage = new WImage(smallurl,p);
     
     /*
@@ -220,5 +208,5 @@
      * to be used as the widget that is visually dragged.
      */
-    result->setDraggable(mimeType,dragImage,true);
+    result->setDraggable(mimeType,new WImage(smallurl,p),true);
 }
 
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_rfgun.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_rfgun.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_rfgun.cc	(revision 292)
@@ -43,5 +43,5 @@
     
     // make image
-    image_ = new WImage("htdocs/rfgun.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_soleno.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_soleno.cc	(revision 291)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_soleno.cc	(revision 292)
@@ -29,5 +29,5 @@
     
     // make image
-    image_ = new WImage("htdocs/soleno.jpg",this);
+    image_ = new WImage(getBigImageURL(),this);
     
     // activate slots
