Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/CapteurAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/CapteurAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/CapteurAdapter.java	(revision 152)
@@ -0,0 +1,142 @@
+/*
+/*
+ * Created on 25 avr. 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.database.objects.Capteur;
+import com.medias.database.objects.Commentaire;
+import com.medias.database.objects.Fabriquant;
+import com.medias.database.objects.Jeu;
+import com.medias.database.objects.Parametre;
+import com.medias.database.objects.Plateforme;
+import com.medias.database.objects.TypeCapteur;
+import com.medias.megapoli.struts.forms.CapteurForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import org.hibernate.HibernateException;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Set;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la description d'un capteur
+ */
+public class CapteurAdapter {
+    
+    private Capteur capteur;
+
+    public CapteurAdapter () {
+        capteur = null;
+    }
+
+    public void loadCapteurFromDatabase  (CapteurForm captForm, String id) {
+        try {
+		    // Traitement de l'identifiant transmis
+		    String path = "";
+		    if (id.indexOf("_") != -1) {
+		        path = id.substring(id.indexOf("_")+1);
+		        id = id.substring(0,id.indexOf("_"));
+		    }
+            CommunicationBD.open();
+            // Recherche du capteur d'identifiant capteur_id
+            Capteur capt = (Capteur)CommunicationBD.getObjectById(Capteur.class, new Integer(id));
+			// Recherche des paramÃštres associÃ©s
+			//List<?> parametres = CommunicationBD.getList("select req.parametre from RequeteParametreCapteur as req where capteur_id='" + id + "'");
+            Set<Parametre> params = capt.getParametres();
+			// Recherche des plateformes associÃ©es
+			//List<?> plateformes = CommunicationBD.getList("select req.plateforme from RequetePlateformeCapteur as req where capteur_id='" + id + "'");
+            Set<Plateforme> plats = capt.getPlateformes();
+			// Recherche des jeux associÃ©es
+			//List<?> jeux = CommunicationBD.getList("select req.jeu from RequeteCapteurJeu as req where capteur_id='" + id + "'");
+            Set<Jeu> jeus = capt.getJeus();
+            capteur = new Capteur();
+            capteur.setCapteurEtalonnage(capt.getCapteurEtalonnage());
+            capteur.setCapteurId(capt.getCapteurId());
+            capteur.setCapteurModele(capt.getCapteurModele());
+            capteur.setCapteurNumserie(capt.getCapteurNumserie());
+            if (capt.getCommentaire() != null) {
+            	Commentaire commentaire = new Commentaire();
+            	commentaire.setCommentaireTxt(capt.getCommentaire().getCommentaireTxt());
+            	capteur.setCommentaire(commentaire);
+            }
+            Fabriquant fabriquant = new Fabriquant();
+            fabriquant.setFabriquantNom(capt.getFabriquant().getFabriquantNom());
+            capteur.setFabriquant(fabriquant);
+            TypeCapteur typeCapteur = new TypeCapteur();
+            typeCapteur.setTypeCapteurNom(capt.getTypeCapteur().getTypeCapteurNom());
+            capteur.setTypeCapteur(typeCapteur);
+            ArrayList<Parametre> parametres = new ArrayList<Parametre>();
+            Parametre parametre;
+			for (Parametre param: params) {
+			    parametre = new Parametre();
+			    parametre.setParametreId(param.getParametreId());
+			    parametre.setParametreCode(param.getParametreCode());
+			    parametre.setParametreNom(param.getParametreNom());
+			    parametres.add(parametre);
+            }
+			Collections.sort(parametres,new Parametre().new ComparatorNom());
+            ArrayList<Plateforme> plateformes = new ArrayList<Plateforme>();
+            Plateforme plateforme;
+            for (Plateforme plat: plats) {
+				plateforme = new Plateforme();
+				plateforme.setPlateformeId(plat.getPlateformeId());
+				plateforme.setPlateformeNom(plat.getPlateformeNom());
+				plateformes.add(plateforme);
+            }
+            Collections.sort(plateformes,new Plateforme().new ComparatorNom());
+            ArrayList<Jeu> jeux = new ArrayList<Jeu>();
+            Jeu jeu;
+            for (Jeu j : jeus) {
+            	jeu = new Jeu();
+            	jeu.setJeuId(j.getJeuId());
+            	jeu.setJeuNom(j.getJeuNom());
+            	jeu.setNbFichiers(j.getFichiers().size());
+            	jeux.add(jeu);
+            }
+			CommunicationBD.close();
+            captForm.setCapteur (capteur);
+            captForm.setParametres(parametres);
+            captForm.setPlateformes (plateformes);
+            captForm.setJeux(jeux);
+            captForm.setPath(path);
+        } catch (HibernateException e) {
+            System.out.println("exception_CapteurAdapter");
+            // LibÃ©ration de la connection Ã  la base de donnÃ©es
+            try {
+               CommunicationBD.close();
+            } catch (HibernateException ex) {
+
+            }
+        }
+    }
+    
+	public static com.medias.xml.metadata.Capteur dbCapteurToMetaCapteur (Capteur dbCapteur) {
+		com.medias.xml.metadata.Capteur capteur = new com.medias.xml.metadata.Capteur();
+		
+		capteur.setFabriquant(dbCapteur.getFabriquant().getFabriquantNom());
+		capteur.setModele(dbCapteur.getCapteurModele());
+		capteur.setNum(dbCapteur.getCapteurNumserie());
+		capteur.setEtalon(dbCapteur.getCapteurEtalonnage());
+		capteur.setType(dbCapteur.getTypeCapteur().getTypeCapteurNom());
+		capteur.setIdCapteur(String.valueOf(dbCapteur.getCapteurId()));
+		if (dbCapteur.getCommentaire() != null) {
+		    capteur.setDesc(dbCapteur.getCommentaire().getCommentaireTxt());
+		}
+		return capteur;
+	}
+
+	
+	public static ArrayList<com.medias.xml.metadata.Capteur> dbCapteursToMetaCapteurs (Set<Capteur> dbCapteurs) {
+		ArrayList<com.medias.xml.metadata.Capteur> result = new ArrayList<com.medias.xml.metadata.Capteur>();
+		for (Capteur c : dbCapteurs) {
+			result.add(dbCapteurToMetaCapteur(c));
+		}
+		Collections.sort(result,new com.medias.xml.metadata.Capteur().new ComparatorNom());
+		return result;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeCapteursAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeCapteursAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeCapteursAdapter.java	(revision 152)
@@ -0,0 +1,91 @@
+/*
+ * Created on 3 mai 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.database.objects.Capteur;
+import com.medias.database.objects.Fabriquant;
+import com.medias.database.objects.TypeCapteur;
+import com.medias.megapoli.struts.forms.CapteursForm;
+import com.medias.megapoli.struts.forms.DatasForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import org.apache.struts.action.ActionForm;
+import org.hibernate.HibernateException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la liste des capteurs
+ */
+public class ListeCapteursAdapter {
+	private ArrayList<Capteur> capteurs;
+	
+//	public ListeCapteursAdapter() {
+//	    capteurs = new ArrayList<Capteur>();
+//	}
+
+	public void loadCapteursFromDatabase (ActionForm form) {
+		try {
+			CommunicationBD.open();
+
+//			List<?> capts = CommunicationBD.get2OrderedList(Capteur.class, "typeCapteur","capteurModele");
+			List<?> capts = CommunicationBD.getList("from Capteur order by typeCapteur.typeCapteurNom, capteurModele");
+/*			Capteur capt;
+			for (int numCapt=0; numCapt<capteurs.size(); numCapt++) {
+			    capt = (Capteur) capteurs.get(numCapt);
+
+				System.out.println ("------------ ModÃšle capteur="+capt.getCapteurModele());
+				System.out.println ("------------ NumsÃ©rie capteur="+capt.getCapteurNumserie());
+				System.out.println ("------------ Etalonnage capteur="+capt.getCapteurEtalonnage());
+				System.out.println ("------------ ID capteur="+capt.getCapteurId().intValue());
+				System.out.println ("------------ Fabriquant capteur="+capt.getFabriquant().getFabriquantNom());
+				System.out.println ("------------ Type capteur="+capt.getTypeCapteur().getTypeCapteurNom());
+				if (capt.getCommentaire() != null) {
+				    System.out.println ("------------ Description capteur="+capt.getCommentaire().getCommentaireTxt());
+				}
+				if (capt.getTypeCapteur().getCommentaire() != null) {
+				System.out.println ("------------ Dexcription type capteur="+capt.getTypeCapteur().getCommentaire().getCommentaireTxt());
+				}
+				System.out.println ();
+			}
+*/
+			capteurs = new ArrayList<Capteur>();
+			Capteur capteur, capt;
+			TypeCapteur typeCapteur;
+			Fabriquant fabriquant;
+			for (int numCapt=0; numCapt<capts.size(); numCapt++) {
+				capt = (Capteur)capts.get(numCapt);
+				capteur = new Capteur();
+				capteur.setCapteurId(capt.getCapteurId());
+				capteur.setCapteurModele(capt.getCapteurModele());
+				capteur.setCapteurNumserie(capt.getCapteurNumserie());
+				typeCapteur = new TypeCapteur();
+				typeCapteur.setTypeCapteurId(capt.getTypeCapteur().getTypeCapteurId());
+				typeCapteur.setTypeCapteurNom(capt.getTypeCapteur().getTypeCapteurNom());
+				capteur.setTypeCapteur(typeCapteur);
+				fabriquant = new Fabriquant();
+				fabriquant.setFabriquantNom(capt.getFabriquant().getFabriquantNom());
+				capteur.setFabriquant(fabriquant);
+				capteurs.add(capteur);
+			}
+			CommunicationBD.close();
+			if (form instanceof CapteursForm )
+				((CapteursForm)form).setCapteurs(capteurs);
+			else
+				((DatasForm)form).setCapteurs(capteurs);
+		}
+		catch (HibernateException e) {
+		    System.out.println ("exception_ListeCapteursAdapter");
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				
+			}
+		}
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeFichiersAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeFichiersAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeFichiersAdapter.java	(revision 152)
@@ -0,0 +1,56 @@
+/*
+ * Created on 3 mai 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.database.objects.Fichier;
+import com.medias.megapoli.struts.forms.FichiersForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import org.hibernate.HibernateException;
+import com.medias.megapoli.struts.forms.FichiersForm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la liste des fichiers
+ */
+public class ListeFichiersAdapter {
+	private ArrayList<Fichier> fichiers;
+	
+	public void loadFichiersFromDatabase (FichiersForm fichiersForm, int idJeu) {
+		try {
+			CommunicationBD.open();
+			List<?> fichiersList = CommunicationBD.getList("from Fichier where jeu_id = "+idJeu+" order by fichier_nom");
+			fichiers = new ArrayList<Fichier>();
+			Fichier f, fichier;
+			fichiersForm.setNomJeu(null);
+			fichiersForm.setNomCategorie(null);
+			for (int numFic=0; numFic<fichiersList.size(); numFic++) {
+				f = (Fichier)fichiersList.get(numFic);
+				fichier = new Fichier();
+				fichier.setFichierId(f.getFichierId());
+				fichier.setFichierNom(f.getFichierNom());
+				fichier.setFichierTaille(f.getFichierTaille());
+				if (fichiersForm.getNomJeu()==null) fichiersForm.setNomJeu(f.getJeu().getJeuNom());
+				if (fichiersForm.getNomCategorie()==null) fichiersForm.setNomCategorie(f.getJeu().getCategorie().getCategorieNom());
+				fichiers.add(fichier);
+			}
+			CommunicationBD.close();
+			fichiersForm.setFichiers(fichiers);
+		}
+		catch (HibernateException e) {
+		    System.out.println ("exception_ListeFichiersAdapter");
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				ex.printStackTrace();
+			}
+		}
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeJeuxAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeJeuxAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeJeuxAdapter.java	(revision 152)
@@ -0,0 +1,95 @@
+/*
+ * Created on 3 mai 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.database.objects.Categorie;
+import com.medias.database.objects.Fichier;
+import com.medias.database.objects.Jeu;
+import com.medias.megapoli.struts.forms.DatasForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import org.apache.struts.action.ActionForm;
+import org.hibernate.HibernateException;
+import com.medias.megapoli.struts.forms.JeuxForm;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la liste des jeux
+ */
+public class ListeJeuxAdapter {
+	private ArrayList<Jeu> jeux;
+	
+//	private int min, max;
+	
+//	public ListePlateformesAdapter() {
+//	    plateformes = new ArrayList<Plateforme>();
+//	}
+
+	public void loadJeuxFromDatabase (ActionForm form) {
+		try {
+			CommunicationBD.open();
+			List<?> jeuxList = CommunicationBD.get2OrderedList(Jeu.class, "categorie","jeuNom");
+/*			Plateforme plat;
+			for (int numPlat=0; numPlat<plateformes.size(); numPlat++) {
+			    plat = (Plateforme) plateformes.get(numPlat);
+			    
+			    System.out.println ("------------ Nom plateforme="+plat.getPlateformeNom());
+				System.out.println ("------------ Type plateforme="+plat.getTypePlateforme().getTypePlateformeNom());
+				if (plat.getCommentaire() != null) {
+				    System.out.println ("------------ Description plateforme="+plat.getCommentaire().getCommentaireTxt());
+				}
+				if (plat.getTypePlateforme().getCommentaire() != null) {
+				    System.out.println ("------------ Description type plateforme="+plat.getTypePlateforme().getCommentaire().getCommentaireTxt());
+				}
+				System.out.println ("------------ ID plateforme="+plat.getPlateformeId().intValue());
+				System.out.println();
+			}
+*/
+			jeux = new ArrayList<Jeu>();
+			Jeu jeu, j;
+			Categorie categorie;
+			Set<Fichier> fichiers;
+			Fichier fichier;
+			for (int numJeu=0; numJeu<jeuxList.size(); numJeu++) {
+				j = (Jeu)jeuxList.get(numJeu);
+				jeu = new Jeu();
+				categorie = new Categorie();
+				categorie.setCategorieId(j.getCategorie().getCategorieId());
+				categorie.setCategorieNom(j.getCategorie().getCategorieNom());
+				jeu.setCategorie(categorie);
+				jeu.setJeuId(j.getJeuId());
+				jeu.setJeuNom(j.getJeuNom());
+				fichiers = new HashSet<Fichier>();
+				for (Fichier f : j.getFichiers()) {
+					fichier = new Fichier();
+					fichier.setFichierId(f.getFichierId());
+					fichiers.add(fichier);
+				}
+				jeu.setFichiers(fichiers);
+				jeux.add(jeu);
+			}
+			CommunicationBD.close();
+			if (form instanceof JeuxForm)
+				((JeuxForm)form).setJeux(jeux);
+			else
+				((DatasForm)form).setJeux(jeux);
+		}
+		catch (HibernateException e) {
+		    System.out.println ("exception_ListeJeuxAdapter");
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				ex.printStackTrace();
+			}
+		}
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeParametresAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeParametresAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListeParametresAdapter.java	(revision 152)
@@ -0,0 +1,101 @@
+/*
+ * Created on 3 mai 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.database.objects.CategorieParam;
+import com.medias.database.objects.Parametre;
+import com.medias.megapoli.struts.forms.DatasForm;
+import com.medias.megapoli.struts.forms.ParametresForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import org.apache.struts.action.ActionForm;
+import org.hibernate.HibernateException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la liste des paramÃštres
+ */
+public class ListeParametresAdapter {
+	private ArrayList<Parametre> parametres;
+	
+//	public ListeParametresAdapter() {
+//	    parametres = new ArrayList<Parametre>();
+//	}
+
+	public void loadParametresFromDatabase (ActionForm form) {
+		try {
+			CommunicationBD.open();
+			List<?> params = CommunicationBD.getList("from Parametre order by categorieParam.categorieParamNom, parametreNom, parametreId");
+			String appellationMegapoli;
+			ArrayList<String> paramUniques = new ArrayList<String>();
+			parametres = new ArrayList<Parametre>();
+			Parametre parametre, param;
+			CategorieParam categorieParam;
+			for (int numParam=0; numParam<params.size(); numParam++) {
+			    param = (Parametre) params.get(numParam);
+			    parametre = new Parametre();
+			    categorieParam = new CategorieParam();
+			    categorieParam.setCategorieParamId(param.getCategorieParam().getCategorieParamId());
+			    categorieParam.setCategorieParamNom(param.getCategorieParam().getCategorieParamNom());
+			    parametre.setCategorieParam(categorieParam);
+			    parametre.setParametreId(param.getParametreId());
+			    parametre.setParametreCode(param.getParametreCode());
+			    parametre.setParametreNom(param.getParametreNom());
+			    appellationMegapoli = param.getParametreCode();
+			    // S'il y a deux paramÃštres de noms identiques, on en enlÃšve un...
+			    if (!inclus(appellationMegapoli,paramUniques)) {
+			        paramUniques.add(appellationMegapoli);
+			        parametres.add(parametre);
+			    }
+/*			    
+				System.out.println ("------------ Nom param="+param.getParametreNom());
+				System.out.println ("------------ Code param="+param.getParametreCode());
+				System.out.println ("------------ CatÃ©gorie param="+param.getCategorieParam().getCategorieParamNom());
+				System.out.println ("------------ Domaine catÃ©gorie param="+param.getCategorieParam().getCategorieParamDomaine());
+				if (param.getCommentaire() != null) {
+				    System.out.println ("------------ Description param="+param.getCommentaire().getCommentaireTxt());
+				}
+				System.out.println ("------------ Nom unitÃ© param="+param.getUnite().getUniteNom());
+				System.out.println ("------------ Code unitÃ© param="+param.getUnite().getUniteCode());
+				System.out.println ("------------ ID param="+param.getParametreId().intValue());
+				System.out.println();
+*/			}
+			CommunicationBD.close();
+			if (form instanceof ParametresForm )
+				((ParametresForm)form).setParametres(parametres);
+			else
+				((DatasForm)form).setParametres(parametres);
+		}
+		catch (HibernateException e) {
+		    System.out.println ("exception_ListeParametresAdapter");
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				
+			}
+		}
+	}
+
+    /**
+     * VÃ©rifie si l'appellation Megapoli du paramÃštre est inclus dans la liste des noms de paramÃštres
+     */
+    private boolean inclus(String nom, ArrayList<String> paramUniques) {
+        boolean estInclus = false;
+        String nomParamUnique;
+        for (int num = 0; num < paramUniques.size(); num++) {
+            nomParamUnique = paramUniques.get(num);
+            if (nomParamUnique.equals(nom)) {
+                estInclus = true;
+                break;
+            }
+        }
+        return estInclus;
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListePlateformesAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListePlateformesAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ListePlateformesAdapter.java	(revision 152)
@@ -0,0 +1,100 @@
+/*
+ * Created on 3 mai 2005
+ */
+package com.medias.megapoli.trade;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.struts.action.ActionForm;
+import org.hibernate.HibernateException;
+import com.medias.database.objects.Plateforme;
+import com.medias.database.objects.TypePlateforme;
+import com.medias.megapoli.struts.forms.DatasForm;
+import com.medias.megapoli.struts.forms.PlateformesForm;
+import com.medias.utils.hibernate.CommunicationBD;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la liste des plateformes
+ */
+public class ListePlateformesAdapter {
+	private ArrayList<Plateforme> plateformes;
+	
+//	private int min, max;
+	
+//	public ListePlateformesAdapter() {
+//	    plateformes = new ArrayList<Plateforme>();
+//	}
+
+	public void loadPlateformesFromDatabase(ActionForm form) {
+		try {
+			CommunicationBD.open();
+			List<?> plats = CommunicationBD.getList("from Plateforme order by typePlateforme.typePlateformeNom, plateformeNom");
+			plateformes = new ArrayList<Plateforme>();
+			Plateforme plateforme, plat;
+			TypePlateforme typePlateforme;
+			for (int numPlat=0; numPlat<plats.size(); numPlat++) {
+				plat = (Plateforme)plats.get(numPlat);
+				plateforme = new Plateforme();
+				plateforme.setPlateformeId(plat.getPlateformeId());
+				plateforme.setPlateformeNom(plat.getPlateformeNom());
+				typePlateforme = new TypePlateforme();
+				typePlateforme.setTypePlateformeId(plat.getTypePlateforme().getTypePlateformeId());
+				typePlateforme.setTypePlateformeNom(plat.getTypePlateforme().getTypePlateformeNom());
+				plateforme.setTypePlateforme(typePlateforme);
+				plateformes.add(plateforme);
+			}
+			CommunicationBD.close();
+			if (form instanceof PlateformesForm)
+				((PlateformesForm)form).setPlateformes(plateformes);
+			else
+				((DatasForm)form).setPlateformes(plateformes);
+		}
+		catch (HibernateException e) {
+		    System.out.println ("exception_ListePlateformesAdapter");
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				
+			}
+		}
+	}
+
+    /**
+     * En cours ...
+     */
+//    private void trouverMinMax(ArrayList locs, String attribut) {
+//        Method appelGet;
+//        Class[] cl = {};
+//        Object[] arg = {};
+//        Localisation loc;
+//        Integer val;
+//        for (int num = 0; num<locs.size(); num++) {
+//            loc = ((Localisation)locs.get(num));
+//			try {
+//                // CrÃ©ation de la mÃ©thode correspondant au type trouvÃ©
+//                appelGet = Localisation.class.getMethod("get" + attribut,cl);
+//                // Invocation de la mÃ©thode sur la donnÃ©e
+//                val =  (Integer) appelGet.invoke(loc,arg);
+//			} catch (NoSuchMethodException e2) {
+//                e2.printStackTrace();
+//            } catch (SecurityException e) {
+//                e.printStackTrace();
+//            } catch (IllegalArgumentException e1) {
+//                e1.printStackTrace();
+//            } catch (IllegalAccessException e1) {
+//                e1.printStackTrace();
+//            } catch (InvocationTargetException e1) {
+//                e1.printStackTrace();
+//            }
+//            
+//          
+//        }
+//        
+//    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/MesureAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/MesureAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/MesureAdapter.java	(revision 152)
@@ -0,0 +1,73 @@
+/*
+ * Created on 25 avr. 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.DateTime;
+import com.medias.Nombre;
+import com.medias.megapoli.struts.forms.DatasForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import org.hibernate.HibernateException;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la description d'une mesure
+ */
+public class MesureAdapter {
+    
+    public MesureAdapter () {
+    }
+
+    public void loadDatesFromDatabase(DatasForm dForm) {
+        try {
+            CommunicationBD.open();
+            List<?> dates = CommunicationBD.getList("select min(m.mesureDate), max(m.mesureDate) from Mesure m");
+            
+			CommunicationBD.close();
+			Object[] resultats = (Object[])dates.get(0);
+            dForm.setDateDeb( DateTime.dateToString( (Date) resultats[0], DateTime.formatDateStandard ));
+            dForm.setDateFin(DateTime.dateToString((Date)resultats[1],DateTime.formatDateStandard));
+        } catch (HibernateException e) {
+            System.out.println("exception_MesureAdapter");
+            // LibÃ©ration de la connection Ã  la base de donnÃ©es
+            try {
+               CommunicationBD.close();
+            } catch (HibernateException ex) {
+            	ex.printStackTrace();
+            }
+        }
+    }
+    
+    public void loadLocsFromDatabase(DatasForm dForm) {
+        try {
+            CommunicationBD.open();
+            List<?> locs = CommunicationBD.getList("select min(l.localisationLat), max(l.localisationLat), min(l.localisationLon), max(l.localisationLon) from Localisation l");
+			CommunicationBD.close();
+			Object[] resultats = (Object[])locs.get(0);
+            dForm.setLatMin(Nombre.latIntToFloat((Integer)resultats[0]).toString());
+            dForm.setLatMax(Nombre.latIntToFloat((Integer)resultats[1]).toString());
+            dForm.setLonMin( Nombre.latIntToFloat( (Integer) resultats[2] ).toString());
+            dForm.setLonMax(Nombre.latIntToFloat((Integer)resultats[3]).toString());
+            dForm.setLatMinInit(dForm.getLatMin());
+            dForm.setLatMaxInit(dForm.getLatMax());
+            dForm.setLonMinInit(dForm.getLonMin());
+            dForm.setLonMaxInit(dForm.getLonMax());
+            dForm.setDateDebInit(dForm.getDateDeb());
+            dForm.setDateFinInit(dForm.getDateFin());
+        } catch (HibernateException e) {
+            System.out.println("exception_MesureAdapter");
+            // LibÃ©ration de la connection Ã  la base de donnÃ©es
+            try {
+               CommunicationBD.close();
+            } catch (HibernateException ex) {
+            	ex.printStackTrace();
+            }
+        }
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/MetadataAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/MetadataAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/MetadataAdapter.java	(revision 152)
@@ -0,0 +1,270 @@
+/*
+ * Created on 15 avr. 2005
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.ConversionException;
+import com.medias.DateTime;
+import com.medias.Nombre;
+import com.medias.database.objects.Capteur;
+import com.medias.database.objects.Jeu;
+import com.medias.database.objects.Parametre;
+import com.medias.database.objects.Plateforme;
+import com.medias.database.objects.RequeteNbvalsJeu;
+import com.medias.megapoli.struts.forms.MetadataForm;
+import com.medias.utils.hibernate.CommunicationBD;
+import com.medias.xml.metadata.Contenu;
+import com.medias.xml.metadata.Description;
+import com.medias.xml.metadata.ExactTime;
+import com.medias.xml.metadata.Integration;
+import com.medias.xml.metadata.Metadata;
+import com.medias.xml.metadata.Presentation;
+import org.hibernate.HibernateException;
+import org.jdom.JDOMException;
+import com.medias.megapoli.struts.exceptions.MetadataException;
+
+import java.io.IOException;
+import java.util.Set;
+
+
+/**
+ * @author pignot
+ *
+ * 
+ */
+public class MetadataAdapter {
+	
+	private Metadata metadata;
+	
+	public MetadataAdapter() {
+		metadata = new Metadata();
+	}
+	
+	private Presentation getPresentation(Jeu jeu) {
+		Presentation presentation = new Presentation();
+		presentation.setNom(jeu.getJeuNom());
+		presentation.setCat(jeu.getCategorie().getCategorieNom());
+		presentation.setDest("SGBD");
+		if (jeu.getCommentaire() != null) {
+		    presentation.setDef(jeu.getCommentaire().getCommentaireTxt().replaceAll("\\n", "<br/>"));
+		}
+		return presentation;
+	}
+	
+	private Description getDescription (Jeu jeu, int nbFichiers, int nbMesures) {
+		Description description = new Description ();
+		
+		description.setOrganisme (jeu.getOrganisme ().getOrganismeNom ());
+		if (jeu.getPersonneByPiId () != null) {
+			description.setPi (PersonneAdapter.dbPersonneToMetaContact (jeu.getPersonneByPiId ()));
+		}
+		description.setTech (PersonneAdapter.dbPersonneToMetaContact (jeu.getPersonneByContactId ()));
+		String dateD = DateTime.dateToString( jeu.getJeuDated() );
+		if (dateD != null) {
+		    ExactTime dateDeb = new ExactTime();
+		    dateDeb.setDate (dateD.substring (0,10));
+		    dateDeb.setHeure (dateD.substring (11));
+		    description.setDateDeb (dateDeb);
+		}
+		String dateF = DateTime.dateToString (jeu.getJeuDatef ());
+		if (dateF != null) {
+		    ExactTime dateFin = new ExactTime ();
+		    dateFin.setDate (dateF.substring (0,10));
+		    dateFin.setHeure (dateF.substring (11));
+		    description.setDateFin (dateFin);
+		}
+		if (jeu.getJeuLatmin () != null) {
+		    Float latmin = Nombre.latIntToFloat (jeu.getJeuLatmin ());
+		    description.setLat_min (Nombre.arrondir (latmin.doubleValue (), 2));
+		}
+		if (jeu.getJeuLatmax () != null) {
+		    Float latmax = Nombre.latIntToFloat (jeu.getJeuLatmax ());
+		    description.setLat_max (Nombre.arrondir (latmax.doubleValue (), 2));				    
+		}
+		if (jeu.getJeuLonmin () != null) {
+		    Float lonmin = Nombre.latIntToFloat (jeu.getJeuLonmin ());
+		    description.setLon_min (Nombre.arrondir (lonmin.doubleValue (), 2));
+		}
+		if (jeu.getJeuLonmax () != null) {
+		    Float lonmax = Nombre.latIntToFloat (jeu.getJeuLonmax ());
+		    description.setLon_max (Nombre.arrondir (lonmax.doubleValue (), 2));
+		}
+		if (jeu.getJeuAltmin () != null) {
+		    Float altmin = Nombre.altIntToFloat (jeu.getJeuAltmin ());
+		    description.setAlt_min (Nombre.arrondir (altmin.doubleValue (), 2));
+		}
+		if (jeu.getJeuAltmax () != null) {
+		    Float altmax = Nombre.altIntToFloat (jeu.getJeuAltmax ());
+		    description.setAlt_max (Nombre.arrondir (altmax.doubleValue (), 2));
+		}
+		
+		description.setNbFichiers(nbFichiers);
+		description.setNbMesures(nbMesures);
+		description.setJeuId(jeu.getJeuId());
+		return description;
+	}
+	
+	private Integration getIntegration (Jeu jeu, int nbFichiers) {
+		Integration integration = new Integration ();
+		ExactTime 	inser 		= new ExactTime ();
+		String 		date 		= DateTime.dateToString (jeu.getJeuDateinser ());
+		
+		inser.setDate (date.substring (0,10));
+		inser.setHeure (date.substring (11));
+		ExactTime modif = new ExactTime ();
+		if (jeu.getJeuDatemodif () != null) {
+		    date = DateTime.dateToString (jeu.getJeuDatemodif ());
+		    modif.setDate (date.substring (0,10));
+			modif.setHeure (date.substring (11));
+		} else {
+		    modif.setDate (inser.getDate ());
+			modif.setHeure (inser.getHeure ());
+		}
+		
+		integration.setDateD (inser);
+		integration.setDateF (modif);
+		integration.setNbFiles (nbFichiers);
+		integration.setJeuId(jeu.getJeuId());
+		integration.setResp (PersonneAdapter.dbPersonneToMetaContact (jeu.getPersonneByIntegrateurId ()));
+		
+		return integration;
+	}
+	
+	public void loadMetadata (MetadataForm metadataForm, String pathMetadata, String idJeu) 
+	throws MetadataException {
+	    String nomJeu = null;
+	    String destination = null;
+		// Si pathMetadata est un chemin
+		if (pathMetadata != null && pathMetadata.indexOf ("/") != -1) {
+		    nomJeu = pathMetadata.substring (pathMetadata.lastIndexOf ("/") + 1, pathMetadata.lastIndexOf ("_"));
+		    // Lecture du fichier de mÃ©tadonnÃ©es
+		    Metadata meta = null;
+            try {
+                meta = new Metadata(pathMetadata);
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (JDOMException e) {
+                e.printStackTrace();
+            } catch (ConversionException e) {
+                e.printStackTrace();
+            }
+            destination = meta.getPres().getDest();
+		}
+		// si pathMetadata est un nom de jeu
+		else if (pathMetadata!=null) {
+		    nomJeu = pathMetadata;
+		}
+	    if (destination == null || destination.equals("SGBD")) {
+	        loadMetadataFromDatabase(metadataForm, nomJeu, idJeu);
+	    } else {
+	        loadMetadataFromXMLFile(pathMetadata, metadataForm);
+	    }
+	}
+	
+	public void loadMetadataFromDatabase (MetadataForm metadataForm, String nomJeu, String idJeu) throws MetadataException {
+		try {
+			CommunicationBD.open();
+			Jeu jeu = null;
+			if (nomJeu != null) {
+			    jeu = (Jeu)CommunicationBD.getObjectByColonne(Jeu.class, "jeuNom", nomJeu);
+			} 
+			else if (idJeu != null) {
+			    Integer id = new Integer (idJeu);
+			    jeu = (Jeu)CommunicationBD.getObjectById(Jeu.class, id);
+			}
+			
+			if (jeu != null) {
+
+				RequeteNbvalsJeu requeteNb = (RequeteNbvalsJeu)CommunicationBD.getObjectById(RequeteNbvalsJeu.class, jeu.getJeuId ());
+				int nbFichiers = 0, nbMesures = 0;
+				if (requeteNb != null) {
+				    nbFichiers = requeteNb.getNbFichiers ();
+				    nbMesures = requeteNb.getNbMesures ();
+				}
+
+				Presentation presentation 	= getPresentation (jeu);
+				Description description 	= getDescription(jeu, nbFichiers, nbMesures);
+				Integration integration 	= getIntegration (jeu, nbFichiers);
+				Contenu contenu 		= new Contenu ();
+
+				// Les plateformes
+				//plateformes = CommunicationBD.getList("select req.plateforme from RequetePlateformeJeu as req where jeu_id = "+jeu.getJeuId());
+				Set<Plateforme> plateformes = jeu.getPlateformes();
+				contenu.setPlateformes(PlateformeAdapter.dbPlateformesToMetaPlateformes(plateformes));
+
+				// Les paramÃštres
+				//parametres = CommunicationBD.getList("select req.parametre from RequeteParametreJeu as req where jeu_id = "+jeu.getJeuId());
+				Set<Parametre> parametres = jeu.getParametres();
+				contenu.setParams(ParametreAdapter.dbParametresToMetaParametres(parametres));
+				
+				// Les capteurs
+				//capteurs = CommunicationBD.getList("select req.capteur from RequeteCapteurJeu as req where jeu_id = "+jeu.getJeuId ());
+				Set<Capteur> capteurs = jeu.getCapteurs();
+				contenu.setCapteurs(CapteurAdapter.dbCapteursToMetaCapteurs(capteurs));
+				
+				this.metadata.setPres (presentation);
+				this.metadata.setDesc (description);
+				this.metadata.setInteg (integration);
+				this.metadata.setContenuPrevu (contenu);
+			}
+			else {
+			    throw new MetadataException ("Aucune mÃ©tadonnÃ©e pour le jeu " + nomJeu);
+			}
+
+			CommunicationBD.close();
+			metadataForm.setMetadata (metadata);					
+		}
+		catch (HibernateException e) {			
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				
+			}
+		}
+	}
+
+	public void loadMetadataFromXMLFile (String file, MetadataForm metadataForm) {
+		try {
+		    metadata = new Metadata (file);
+			metadataForm.setMetadata(metadata);
+		}
+		catch (ConversionException e) {
+			e.printStackTrace();
+		}
+		catch (IOException e) {
+		    e.printStackTrace();
+		}
+		catch (JDOMException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public void updateMetadataInDatabase (MetadataForm metadataForm, String nomJeu) {
+		// TODO - Faire les vÃ©rifications sur les contacts (1 seul PI et 1 seul contact technique)
+		
+//		List<?>  jeux        = null;
+//		Jeu   jeu         = null;
+		
+		try {
+			CommunicationBD.open();
+			
+	//		Jeu jeu = (Jeu)CommunicationBD.getObjectByColonne(Jeu.class, "jeuNom", nomJeu);
+			
+			CommunicationBD.close();
+		}
+		catch (HibernateException e) {
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				
+			}
+		}
+	}
+	
+	public void updateMetadataInXMLFile (String file, MetadataForm metadaForm) {
+		
+	}
+	
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ParametreAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ParametreAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ParametreAdapter.java	(revision 152)
@@ -0,0 +1,150 @@
+/*
+ * Created on 25 avr. 2005
+ */
+package com.medias.megapoli.trade;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Set;
+
+import org.hibernate.HibernateException;
+import com.medias.database.objects.Capteur;
+import com.medias.database.objects.CategorieParam;
+import com.medias.database.objects.Commentaire;
+import com.medias.database.objects.Fabriquant;
+import com.medias.database.objects.Jeu;
+import com.medias.database.objects.Parametre;
+import com.medias.database.objects.Plateforme;
+import com.medias.database.objects.TypeCapteur;
+import com.medias.database.objects.Unite;
+import com.medias.megapoli.struts.forms.ParametreForm;
+import com.medias.utils.hibernate.CommunicationBD;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la description d'un paramÃštre
+ */
+public class ParametreAdapter {
+    private Parametre parametre;
+
+    public ParametreAdapter() {
+        parametre = null;
+    }
+
+    public void loadParametreFromDatabase(ParametreForm paramForm, String id) {
+        try {
+		    // Traitement de l'identifiant transmis
+		    String path = "";
+		    if (id.indexOf("_") != -1) {
+		        path = id.substring(id.indexOf("_")+1);
+		        id = id.substring(0,id.indexOf("_"));
+		    }
+		    CommunicationBD.open();
+            Parametre param = (Parametre)CommunicationBD.getObjectById(Parametre.class, new Integer(id));
+			// Recherche des capteurs associÃ©s
+			//List<?> capts = CommunicationBD.getList("select req.capteur from RequeteParametreCapteur as req where parametre_id='" + id + "'");
+            Set<Capteur> capts = param.getCapteurs();
+			// Recherche des plateformes associÃ©es
+			//List<?> plats = CommunicationBD.getList("select req.plateforme from RequetePlateformeParametre as req where parametre_id='" + id + "'");
+            Set<Plateforme> plats = param.getPlateformes();
+			// Recherche des plateformes associÃ©es
+			//List<?> jeus = CommunicationBD.getList("select req.jeu from RequeteParametreJeu as req where parametre_id='" + id + "'");
+            Set<Jeu> jeus = param.getJeus();
+			parametre = new Parametre();
+			CategorieParam categorieParam = new CategorieParam();
+			categorieParam.setCategorieParamDomaine(param.getCategorieParam().getCategorieParamDomaine());
+			categorieParam.setCategorieParamNom(param.getCategorieParam().getCategorieParamNom());
+			parametre.setCategorieParam(categorieParam);
+			parametre.setParametreCode(param.getParametreCode());
+			parametre.setParametreId(param.getParametreId());
+			parametre.setParametreNom(param.getParametreNom());
+			Unite unite = new Unite();
+			unite.setUniteCode(param.getUnite().getUniteCode());
+			parametre.setUnite(unite);
+			if (param.getCommentaire() != null) {
+				Commentaire commentaire = new Commentaire();
+				commentaire.setCommentaireTxt(param.getCommentaire().getCommentaireTxt());
+				parametre.setCommentaire(commentaire);
+			}
+            ArrayList<Capteur> capteurs = new ArrayList<Capteur>();
+            Capteur capteur;
+            TypeCapteur typeCapteur;
+            Fabriquant fabriquant;
+            for (Capteur capt: capts) {
+				capteur = new Capteur();
+				capteur.setCapteurId(capt.getCapteurId());
+				capteur.setCapteurModele(capt.getCapteurModele());
+				capteur.setCapteurNumserie(capt.getCapteurNumserie());
+				typeCapteur = new TypeCapteur();
+				typeCapteur.setTypeCapteurNom(capt.getTypeCapteur().getTypeCapteurNom());
+				capteur.setTypeCapteur(typeCapteur);
+				fabriquant = new Fabriquant();
+				fabriquant.setFabriquantNom(capt.getFabriquant().getFabriquantNom());
+				capteur.setFabriquant(fabriquant);
+				capteurs.add(capteur);
+            }
+			Collections.sort(capteurs,new Capteur().new ComparatorNom());
+            ArrayList<Plateforme> plateformes = new ArrayList<Plateforme>();
+            Plateforme plateforme;
+            for (Plateforme plat: plats) {
+				plateforme = new Plateforme();
+				plateforme.setPlateformeId(plat.getPlateformeId());
+				plateforme.setPlateformeNom(plat.getPlateformeNom());
+				plateformes.add(plateforme);
+            }
+            Collections.sort(plateformes,new Plateforme().new ComparatorNom());
+            ArrayList<Jeu> jeux = new ArrayList<Jeu>();
+            Jeu jeu;
+            for (Jeu j : jeus) {
+            	jeu = new Jeu();
+            	jeu.setJeuId(j.getJeuId());
+            	jeu.setJeuNom(j.getJeuNom());
+            	jeu.setNbFichiers(j.getFichiers().size());
+            	jeux.add(jeu);
+            }
+			CommunicationBD.close();
+            paramForm.setParametre(parametre);
+            paramForm.setCapteurs(capteurs);
+            paramForm.setPlateformes(plateformes);
+            paramForm.setJeux(jeux);
+            paramForm.setPath(path);
+        } catch (HibernateException e) {
+            System.out.println("exception_ParametreAdapter");
+            // LibÃ©ration de la connection Ã  la base de donnÃ©es
+            try {
+            	CommunicationBD.close();
+            } catch (HibernateException ex) {
+
+            }
+        }
+    }
+
+    public static com.medias.xml.metadata.Parametre dbParametreToMetaParametre(Parametre dbParametre) {
+        com.medias.xml.metadata.Parametre parametre = new com.medias.xml.metadata.Parametre();
+
+        parametre.setAbrev(dbParametre.getParametreCode());
+        parametre.setNom(dbParametre.getParametreNom());
+        parametre.setUnite(dbParametre.getUnite().getUniteCode());
+        parametre.setCategorie(dbParametre.getCategorieParam()
+                .getCategorieParamNom());
+        parametre.setDomaine(dbParametre.getCategorieParam()
+                .getCategorieParamDomaine());
+        parametre.setIdParametre(String.valueOf(dbParametre.getParametreId()));
+        if (dbParametre.getCommentaire() != null) {
+            parametre.setDesc(dbParametre.getCommentaire().getCommentaireTxt());
+        }
+        return parametre;
+    }
+
+    public static ArrayList<com.medias.xml.metadata.Parametre> dbParametresToMetaParametres(Set<Parametre> dbParametres) {
+    	ArrayList<com.medias.xml.metadata.Parametre> result = new ArrayList<com.medias.xml.metadata.Parametre>();
+    	for (Parametre p : dbParametres){
+            result.add(dbParametreToMetaParametre(p));
+        }
+		Collections.sort(result,new com.medias.xml.metadata.Parametre().new ComparatorNom());
+        return result;
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/PersonneAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/PersonneAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/PersonneAdapter.java	(revision 152)
@@ -0,0 +1,50 @@
+/*
+ * Created on 25 avr. 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package com.medias.megapoli.trade;
+
+import com.medias.xml.metadata.Contact;
+
+/**
+ * @author pignot
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class PersonneAdapter {
+	
+	public static Contact dbPersonneToMetaContact (com.medias.database.objects.Personne dbContact) {
+		Contact contact = new Contact ();
+		
+		contact.setNom(dbContact.getPersonneNom());
+		contact.setPrenom(dbContact.getPersonnePrenom());
+		contact.setOrganisme(dbContact.getOrganisme().getOrganismeNom());
+		contact.setMail(dbContact.getPersonneMail());
+		if (dbContact.getCommentaire() != null) {
+		    contact.setRole(dbContact.getCommentaire().getCommentaireTxt());
+		}
+		contact.setMailOrganisme(dbContact.getOrganisme().getOrganismeMail());
+		if (dbContact.getOrganisme().getCommentaire() != null) {
+		    contact.setDescriptionOrganisme(dbContact.getOrganisme().getCommentaire().getCommentaireTxt());
+		    contact.setUrlOrganisme(dbContact.getOrganisme().getCommentaire().getCommentaireUrl());
+		}
+		String adresse = dbContact.getOrganisme().getAdresse().getAdresseRue()+" "+dbContact.getOrganisme().getAdresse().getAdresseZip()+" "+dbContact.getOrganisme().getAdresse().getAdresseVille()+" "+dbContact.getOrganisme().getAdresse().getAdressePays();
+		contact.setAdresse(adresse);
+		return contact;
+	}
+
+	
+//	public static ArrayList<Contact> dbPersonnesToMetaContacts (List<?> dbContacts) {
+//		ArrayList<Contact> result = new ArrayList<Contact> ();
+//		
+//		Iterator<?> it = dbContacts.iterator();
+//		while (it.hasNext()) {
+//			result.add(dbPersonneToMetaContact ((com.medias.database.objects.Personne)it.next()));
+//		}
+//		
+//		return result;
+//	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/PlateformeAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/PlateformeAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/PlateformeAdapter.java	(revision 152)
@@ -0,0 +1,224 @@
+/*
+ * Created on 25 avr. 2005
+ */
+package com.medias.megapoli.trade;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.hibernate.HibernateException;
+import com.medias.database.objects.Capteur;
+import com.medias.database.objects.Categorie;
+import com.medias.database.objects.Commentaire;
+import com.medias.database.objects.Fabriquant;
+import com.medias.database.objects.Jeu;
+import com.medias.database.objects.Parametre;
+import com.medias.database.objects.Plateforme;
+import com.medias.database.objects.RequetePlatLoc;
+import com.medias.database.objects.TypeCapteur;
+import com.medias.database.objects.TypePlateforme;
+import com.medias.megapoli.struts.forms.PlateformeForm;
+import com.medias.megapoli.utils.MegapoliInitialisation;
+import com.medias.Nombre;
+import com.medias.utils.hibernate.CommunicationBD;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la description d'une plate-forme
+ */
+public class PlateformeAdapter {
+	
+	private Plateforme plateforme;
+		
+	public PlateformeAdapter() {
+	    plateforme = null;
+	}
+
+	public void loadPlateformeFromDatabase (PlateformeForm platForm, String id) {
+		try {
+		    // Traitement de l'identifiant transmis
+		    String path = "";
+		    if (id.indexOf("_") != -1) {
+		        path = id.substring(id.indexOf("_")+1);
+		        id = id.substring(0,id.indexOf("_"));
+		    }
+		    CommunicationBD.open();
+		    Plateforme plat = (Plateforme)CommunicationBD.getObjectById(Plateforme.class, new Integer(id));
+			// Recherche de la position de chaque plate-forme
+	        //List<?> locs = CommunicationBD.getList("from RequetePlatLoc as req where plateforme_id='"+id+"'");
+	        Set<RequetePlatLoc> locs = plat.getRequetePlatLocs();
+			// Recherche des capteurs associÃ©s
+			//List<?> capteurs = CommunicationBD.getList("select req.capteur from RequetePlateformeCapteur as req where plateforme_id='" + id + "'");
+			Set<Capteur> capts = plat.getCapteurs();
+			// Recherche des paramÃštres associÃ©s
+			//List<?> parametres = CommunicationBD.getList("select req.parametre from RequetePlateformeParametre as req where plateforme_id='" + id + "'");
+			Set<Parametre> params = plat.getParametres();
+			// Recherche des jeux associÃ©s
+			//List<?> jeux = CommunicationBD.getList("select req.jeu from RequetePlateformeJeu as req where plateforme_id='" + id + "'");
+			Set<Jeu> jeus = plat.getJeus();
+			plateforme = new Plateforme();
+			if (plat.getCommentaire() != null) {
+				Commentaire commentaire = new Commentaire();
+				commentaire.setCommentaireTxt(plat.getCommentaire().getCommentaireTxt());
+				plateforme.setCommentaire(commentaire);
+			}
+			plateforme.setPlateformeId(plat.getPlateformeId());
+			plateforme.setPlateformeNom(plat.getPlateformeNom());
+			TypePlateforme typePlateforme = new TypePlateforme();
+			typePlateforme.setTypePlateformeNom(plat.getTypePlateforme().getTypePlateformeNom());
+			plateforme.setTypePlateforme(typePlateforme);
+			Iterator<RequetePlatLoc> it_locs = locs.iterator();
+			if (it_locs.hasNext()) {
+				RequetePlatLoc loc = it_locs.next();
+				platForm.setLatMin(String.valueOf(Nombre.arrondir(Nombre.latIntToFloat(new Integer(loc.getLatMin())).doubleValue(),4)));
+				platForm.setLatMax(String.valueOf(Nombre.arrondir(Nombre.latIntToFloat(new Integer(loc.getLatMax())).doubleValue(),4)));
+				platForm.setLonMin(String.valueOf(Nombre.arrondir(Nombre.latIntToFloat(new Integer(loc.getLonMin())).doubleValue(),4)));
+				platForm.setLonMax(String.valueOf(Nombre.arrondir(Nombre.latIntToFloat(new Integer(loc.getLonMax())).doubleValue(),4)));
+				platForm.setAltMin(String.valueOf(Nombre.arrondir(Nombre.altIntToFloat(new Integer(loc.getAltMin())).doubleValue(),4)));
+				platForm.setAltMax(String.valueOf(Nombre.arrondir(Nombre.altIntToFloat(new Integer(loc.getAltMax())).doubleValue(),4)));
+				if (loc.getHsMin() != null) {
+					platForm.setHsMin(String.valueOf(Nombre.arrondir(Nombre.altIntToFloat(loc.getHsMin()).doubleValue(),4)));
+				}
+				else {
+				    platForm.setHsMin("-1000000");
+				}
+				if (loc.getHsMax() != null) {
+					platForm.setHsMax(String.valueOf(Nombre.arrondir(Nombre.altIntToFloat(loc.getHsMax()).doubleValue(),4)));
+				} else {
+				    platForm.setHsMax("-1000000");
+				}
+			} else {
+				platForm.setLatMin("");
+				platForm.setLatMax("");
+				platForm.setLonMin("");
+				platForm.setLonMax("");
+				platForm.setAltMin("");
+				platForm.setAltMax("");
+				platForm.setHsMin("");
+				platForm.setHsMax("");
+			}
+			ArrayList<Parametre> parametres = new ArrayList<Parametre>();
+			Parametre parametre;
+			for (Parametre param: params) {
+			    parametre = new Parametre();
+			    parametre.setParametreId(param.getParametreId());
+			    parametre.setParametreCode(param.getParametreCode());
+			    parametre.setParametreNom(param.getParametreNom());
+			    parametres.add(parametre);
+            }
+			Collections.sort(parametres,new Parametre().new ComparatorNom());
+			ArrayList<Capteur> capteurs = new ArrayList<Capteur>();
+			Capteur capteur;
+			TypeCapteur typeCapteur;
+			Fabriquant fabriquant;
+			for (Capteur capt : capts) {
+				capteur = new Capteur();
+				capteur.setCapteurId(capt.getCapteurId());
+				capteur.setCapteurModele(capt.getCapteurModele());
+				capteur.setCapteurNumserie(capt.getCapteurNumserie());
+				typeCapteur = new TypeCapteur();
+				typeCapteur.setTypeCapteurNom(capt.getTypeCapteur().getTypeCapteurNom());
+				capteur.setTypeCapteur(typeCapteur);
+				fabriquant = new Fabriquant();
+				fabriquant.setFabriquantNom(capt.getFabriquant().getFabriquantNom());
+				capteur.setFabriquant(fabriquant);
+				capteurs.add(capteur);
+            }
+			Collections.sort(capteurs,new Capteur().new ComparatorNom());
+			ArrayList<Jeu> jeux = new ArrayList<Jeu>();
+			Jeu jeu;
+			Categorie categorie;
+            for (Jeu j : jeus) {
+            	jeu = new Jeu();
+            	jeu.setJeuId(j.getJeuId());
+            	jeu.setJeuNom(j.getJeuNom());
+            	categorie = new Categorie();
+            	categorie.setCategorieNom(j.getCategorie().getCategorieNom());
+            	jeu.setCategorie(categorie);
+            	jeu.setNbFichiers(j.getFichiers().size());
+            	jeux.add(jeu);
+            }
+			CommunicationBD.close();
+			platForm.setPlateforme(plateforme);
+			platForm.setParametres(parametres);
+			platForm.setCapteurs(capteurs);
+			platForm.setJeux(jeux);
+			platForm.setPath(path);
+			// Images associÃ©es Ã  la plate-forme
+			ArrayList<String> images = chercherImages(jeux);
+			platForm.setImages(images);
+		}
+		catch (HibernateException e) {
+		    System.out.println ("exception_PlateformeAdapter");
+			// LibÃ©ration de la connection Ã  la base de donnÃ©es
+			try {
+				CommunicationBD.close();
+			} catch (HibernateException ex) {
+				
+			}
+		}
+	}
+    
+	/**
+     * MÃ©thode permettant de rechercher les images associÃ©es Ã  un ou plusieurs jeux
+     */
+    private ArrayList<String> chercherImages(ArrayList<Jeu> jeux) {
+        ArrayList<String> images = new ArrayList<String>();
+        String path = MegapoliInitialisation.pathImages;
+        
+        String nomJeu, nomCateg, cheminJeu, pathImg;
+        File fJeu;
+        String[] listeFic;
+        for (Jeu jeu: jeux) {
+            nomJeu = jeu.getJeuNom();
+            nomCateg = jeu.getCategorie().getCategorieNom();
+            cheminJeu = path + "/" + nomCateg +"/" + nomJeu;
+            fJeu = new File(cheminJeu);
+            if (fJeu.exists()) {
+                cheminJeu += "/";
+                // On recherche les images
+                fJeu = new File(cheminJeu);
+                listeFic = fJeu.list();
+                for (int numFic = 0; numFic < listeFic.length; numFic++) {
+                    pathImg = cheminJeu+listeFic[numFic];
+//                    pathImg = pathImg.replaceAll("/www", "http://medias.cnrs.fr");
+                    images.add(pathImg);
+                }
+            }
+        }
+        if (images.size() == 0) {
+            images.add("");
+        }
+        return images;
+    }
+
+    public static com.medias.xml.metadata.Plateforme dbPlateformeToMetaPlateforme (Plateforme dbPlateforme) {
+		com.medias.xml.metadata.Plateforme plateforme = new com.medias.xml.metadata.Plateforme();
+		
+		plateforme.setNom (dbPlateforme.getPlateformeNom());
+		if (dbPlateforme.getCommentaire() != null) {
+		    plateforme.setDesc (dbPlateforme.getCommentaire().getCommentaireTxt());
+		}
+		plateforme.setTypePlateforme(dbPlateforme.getTypePlateforme().getTypePlateformeNom());
+		plateforme.setIdPlateforme(String.valueOf(dbPlateforme.getPlateformeId()));
+		//plateforme.setListe_images (dbPlateforme.);
+		return plateforme;
+	}
+
+	
+	public static ArrayList<com.medias.xml.metadata.Plateforme> dbPlateformesToMetaPlateformes (Set<Plateforme> dbPlateformes) {
+		ArrayList<com.medias.xml.metadata.Plateforme> result = new ArrayList<com.medias.xml.metadata.Plateforme>();
+		
+		for (Plateforme p : dbPlateformes) {
+			result.add(dbPlateformeToMetaPlateforme (p));
+		}
+        Collections.sort(result,new com.medias.xml.metadata.Plateforme().new ComparatorNom());
+		return result;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ValeurAdapter.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ValeurAdapter.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/trade/ValeurAdapter.java	(revision 152)
@@ -0,0 +1,163 @@
+/*
+ * Created on 25 avr. 2005
+ */
+package com.medias.megapoli.trade;
+
+import java.util.Date;
+import java.util.List;
+
+import org.hibernate.HibernateException;
+import com.medias.megapoli.struts.forms.DatasForm;
+import com.medias.DateTime;
+import com.medias.Nombre;
+import com.medias.utils.hibernate.CommunicationBD;
+
+
+/**
+ * @author pignot
+ *
+ * Classe permettant, au moyen de requÃªtes sur la base de donnÃ©es,
+ * de charger la description d'une valeur
+ */
+public class ValeurAdapter {
+    
+    public ValeurAdapter () {
+    }
+
+    public void loadCountFromDatabase(DatasForm dForm) {
+        try {
+        	int nbVal = 0;
+    		String listeJeux = "", listePlats = "", listeParams = "", listeCapts = "";
+        	if ((dForm.getSelectCapts() != null && dForm.getSelectCapts().length != 0)
+        			|| (dForm.getSelectParams() != null && dForm.getSelectParams().length != 0)
+        			|| (dForm.getSelectPlats() != null && dForm.getSelectPlats().length != 0)
+        			|| (dForm.getSelectJeux() != null && dForm.getSelectJeux().length != 0)) {
+	            String dateMin = DateTime.getJourInc(dForm.getDateDeb(), DateTime.formatDateStandard, -1);
+	            String dateMax = DateTime.getJourInc(dForm.getDateFin(), DateTime.formatDateStandard, 1);
+	            Integer latMin = Nombre.latFloatToInt(Float.valueOf(dForm.getLatMin()));
+	            Integer latMax = Nombre.latFloatToInt(Float.valueOf(dForm.getLatMax()));
+	            Integer lonMin = Nombre.latFloatToInt(Float.valueOf(dForm.getLonMin()));
+	            Integer lonMax = Nombre.latFloatToInt(Float.valueOf(dForm.getLonMax()));
+	            String sqlDeb = "select count(v.valeurVal)";
+	            String sql = " from Valeur v";
+	            sql += " join v.mesure m  join m.localisation l";
+	            sql += " where m.mesureDate > '"+dateMin+"' and m.mesureDate < '"+dateMax+"'";
+	            sql += " and l.localisationLat >= "+latMin+" and l.localisationLat <= "+latMax;
+	            sql += " and l.localisationLon >= "+lonMin+" and l.localisationLon <= "+lonMax;
+	            String sqlBilan = " from Bilan b";
+	            sqlBilan += " where b.bilanDated <= '"+dateMax+"' and b.bilanDatef >= '"+dateMin+"'";
+	            sqlBilan += " and b.bilanLatmin <= "+latMax+" and b.bilanLatmax >= "+latMin;
+	            sqlBilan += " and b.bilanLonmin <= "+lonMax+" and b.bilanLonmax >= "+lonMin;
+	            if (dForm.getSelectCapts() != null && dForm.getSelectCapts().length != 0) {
+	            	sql += " and (";
+	            	sqlBilan += " and (";
+	            	for (int num = 0; num < dForm.getNbSelectedCapts(); num++) {
+	            		sql += (num == 0 ? "": " or ")+"v.capteur.capteurId = "+dForm.getSelectCapts()[num];
+	            		sqlBilan += (num == 0 ? "": " or ")+"b.capteur.capteurId = "+dForm.getSelectCapts()[num];
+//	            		listeCapts += (num == 0 ? "": ",")+dForm.getSelectCapts()[num];
+	            	}
+	            	sql += ")";
+	            	sqlBilan += ")";
+	            }
+	            if (dForm.getSelectParams() != null && dForm.getSelectParams().length != 0) {
+	            	sql += " and (";
+	            	sqlBilan += " and (";
+	            	for (int num = 0; num < dForm.getNbSelectedParams(); num++) {
+	            		sql += (num == 0 ? "": " or ")+"v.parametre.parametreId = "+dForm.getSelectParams()[num];
+	            		sqlBilan += (num == 0 ? "": " or ")+"b.parametre.parametreId = "+dForm.getSelectParams()[num];
+//	            		listeParams += (num == 0 ? "": ",")+dForm.getSelectParams()[num];
+	            	}
+	            	sql += ")";
+	            	sqlBilan += ")";
+	            }
+	            if (dForm.getSelectPlats() != null && dForm.getSelectPlats().length != 0) {
+	            	sql += " and (";
+	            	sqlBilan += " and (";
+	            	for (int num = 0; num < dForm.getNbSelectedPlats(); num++) {
+	            		sql += (num == 0 ? "": " or ")+"m.plateforme.plateformeId = "+dForm.getSelectPlats()[num];
+	            		sqlBilan += (num == 0 ? "": " or ")+"b.plateforme.plateformeId = "+dForm.getSelectPlats()[num];
+//	            		listePlats += (num == 0 ? "": ",")+dForm.getSelectPlats()[num];
+	            	}
+	            	sql += ")";
+	            	sqlBilan += ")";
+	            }
+	    		if (dForm.getSelectJeux() != null && dForm.getSelectJeux().length != 0) {
+	            	sql += " and (";
+	            	sqlBilan += " and (";
+	            	for (int num = 0; num < dForm.getNbSelectedJeux(); num++) {
+	            		sql += (num == 0 ? "": " or ")+"m.fichier.jeu.jeuId = "+dForm.getSelectJeux()[num];
+	            		sqlBilan += (num == 0 ? "": " or ")+"b.jeu.jeuId = "+dForm.getSelectJeux()[num];
+//	            		listeJeux += (num == 0 ? "": ",")+dForm.getSelectJeux()[num];
+	            	}
+	            	sql += ")";
+	            	sqlBilan += ")";
+	            }
+	    		String sqlParams = "select distinct b.parametre.parametreId";
+	    		String sqlCapts = "select distinct b.capteur.capteurId";
+	    		String sqlPlats = "select distinct b.plateforme.plateformeId";
+	    		String sqlJeux = "select distinct b.jeu.jeuId";
+	    		String sqlDatesLocs = "select min(b.bilanDated), max(b.bilanDatef), min(b.bilanLatmin), max(b.bilanLatmax), min(b.bilanLonmin), max(b.bilanLonmax)";
+	        	CommunicationBD.open();
+	            List<?> res = CommunicationBD.getList(sqlDeb+sql);
+	            List<?> resParams = CommunicationBD.getList(sqlParams+sqlBilan);
+	            List<?> resCapts = CommunicationBD.getList(sqlCapts+sqlBilan);
+	            List<?> resPlats = CommunicationBD.getList(sqlPlats+sqlBilan);
+	            List<?> resJeux = CommunicationBD.getList(sqlJeux+sqlBilan);
+	            List<?> resDatesLocs = CommunicationBD.getList(sqlDatesLocs+sqlBilan);
+				CommunicationBD.close();
+				nbVal = ((Long)res.get(0)).intValue();
+				String[] selJeux = new String[resJeux.size()];
+				String[] selParams = new String[resParams.size()];
+				String[] selCapts = new String[resCapts.size()];
+				String[] selPlats = new String[resPlats.size()];
+				Object[] selDatesLocs = (Object[])resDatesLocs.get(0);
+				for (int num = 0; num < resJeux.size(); num++) {
+					selJeux[num] = resJeux.get(num).toString();
+            		listeJeux += (num == 0 ? "": ",")+resJeux.get(num);
+				}
+				for (int num = 0; num < resCapts.size(); num++) {
+					selCapts[num] = resCapts.get(num).toString();
+            		listeCapts += (num == 0 ? "": ",")+resCapts.get(num);
+				}
+				for (int num = 0; num < resPlats.size(); num++) {
+					selPlats[num] = resPlats.get(num).toString();
+            		listePlats += (num == 0 ? "": ",")+resPlats.get(num);
+				}
+				for (int num = 0; num < resParams.size(); num++) {
+					selParams[num] = resParams.get(num).toString();
+            		listeParams += (num == 0 ? "": ",")+resParams.get(num);
+				}
+				
+				dForm.setSelectCapts(selCapts);
+				dForm.setSelectJeux(selJeux);
+				dForm.setSelectParams(selParams);
+				dForm.setSelectPlats(selPlats);
+				String dateD = DateTime.dateToString((Date)selDatesLocs[0],DateTime.formatDateStandard);
+				String dateF = DateTime.dateToString((Date)selDatesLocs[1],DateTime.formatDateStandard);
+				if (dateD != null && DateTime.plusGrand(dateD, dForm.getDateDeb())) dForm.setDateDeb(dateD);
+				if (dateF != null && DateTime.plusGrand(dForm.getDateFin(), dateF)) dForm.setDateFin(dateF);
+				Integer latD = (Integer)selDatesLocs[2];
+				Integer latF = (Integer)selDatesLocs[3];
+				Integer lonD = (Integer)selDatesLocs[4];
+				Integer lonF = (Integer)selDatesLocs[5];
+				if (latD != null && latMin.intValue() < latD.intValue()) dForm.setLatMin(Nombre.latIntToFloat(latD).toString());
+				if (latF != null && latF.intValue() < latMax.intValue()) dForm.setLatMax(Nombre.latIntToFloat(latF).toString());
+				if (lonD != null && lonMin.intValue() < lonD.intValue()) dForm.setLonMin(Nombre.latIntToFloat(lonD).toString());
+				if (lonF != null && lonF.intValue() < lonMax.intValue()) dForm.setLonMax(Nombre.latIntToFloat(lonF).toString());
+        	}
+			dForm.setNbValeurs(nbVal);
+			dForm.setListeJeux(listeJeux);
+			dForm.setListeCapts(listeCapts);
+			dForm.setListeParams(listeParams);
+			dForm.setListePlats(listePlats);
+        } catch (HibernateException e) {
+            System.out.println("exception_MesureAdapter");
+            // LibÃ©ration de la connection Ã  la base de donnÃ©es
+            try {
+               CommunicationBD.close();
+            } catch (HibernateException ex) {
+            	ex.printStackTrace();
+            }
+        }
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/MegapoliInitialisation.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/MegapoliInitialisation.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/MegapoliInitialisation.java	(revision 152)
@@ -0,0 +1,130 @@
+package com.medias.megapoli.utils;
+
+import com.medias.annuaire.Annuaire;
+import com.medias.mail.MailFactory;
+import com.medias.utils.hibernate.CommunicationBD;
+import com.medias.xml.hierarchie.Hierarchie;
+import org.hibernate.HibernateException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import java.io.FileInputStream;
+import java.util.Hashtable;
+import java.util.Properties;
+
+
+/**
+ * @author Caroline Combaz
+ * Created on 02 fev. 2005
+ */
+public class MegapoliInitialisation extends HttpServlet {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    // Le chemin vers les images des plates-formes
+    public static String pathImages;
+    
+	/**
+	 * Constructeur par defaut
+	 */
+	public MegapoliInitialisation() {
+		super();
+	}
+
+	/**
+	 * Destruction de la servlet 
+	 */
+	public void destroy() {
+		super.destroy(); // Just puts "destroy" string in log
+	}
+
+	/**
+	 * Initialisation de la servlet : 
+	 * <ul>
+	 * 		<li>un objet representant l'arborescence de fichiers du site de depot est cree et place au niveau de l'application,
+	 * 		<li>l'arborescence de dossiers est egalement creee,
+	 * 		<li>la vue representant cette arborescence, et permettant a l'utilisateur de deposer de nouveaux fichiers est generee.
+	 * </ul>
+	 * @throws ServletException if an error occure
+	 */
+	public void init () throws ServletException {
+		System.out.println ("************** INITIALISATION MEGAPOLI **************");
+		String root = this.getServletContext().getRealPath("");
+		String webinf = this.getServletContext().getRealPath("WEB-INF");
+		
+		//on charge le fichier de proprietes
+		Properties prop = new Properties();
+		try {
+			prop.load(new FileInputStream (webinf + "/megapoli.properties"));
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+		}
+		//on initialise l'objet reprÃ©sentant l'arborescence de fichiers du site de dÃ©pot et on le place au niveau de l'appli
+		String uploadRoot = prop.getProperty("data.upload.root");
+		String uploadFile = prop.getProperty("data.upload.desc");
+		String accessRoot = prop.getProperty ("data.access.root");
+		this.getServletContext().setAttribute("DataDescPathName", uploadFile);
+		pathImages = prop.getProperty("data.img");
+		Hashtable<String, String> uploadStylesheets = new Hashtable<String, String>();
+		uploadStylesheets.put( Hierarchie.TREE, webinf + prop.getProperty("data.upload.tree.stylesheet"));
+		uploadStylesheets.put(Hierarchie.FILES, webinf + prop.getProperty("data.upload.files.stylesheet"));
+		Hashtable<String, String> uploadViews = new Hashtable<String, String>();
+		uploadViews.put(Hierarchie.TREE,root + prop.getProperty("data.upload.tree.view"));
+		uploadViews.put(Hierarchie.FILES,root + prop.getProperty("data.upload.files.view"));
+		Hierarchie uploadTree = new Hierarchie(uploadFile, uploadRoot, uploadStylesheets, uploadViews);
+		uploadTree.setDataRoot2(accessRoot);
+		try {
+			uploadTree.createTree();
+			uploadTree.createTreeView();
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+		}
+		this.getServletContext().setAttribute("APP_UPLOADTREE", uploadTree);
+		
+		//on fait de mÃªme avec l'arborescence de fichiers du site de consultation
+		this.getServletContext().setAttribute("uploadDir", uploadRoot);
+		this.getServletContext().setAttribute("accessDir", accessRoot);
+//		String accessFile = prop.getProperty ("data.access.desc");
+//		Hashtable<String, String> accessStylesheets = new Hashtable<String, String> ();
+//		accessStylesheets.put (Hierarchie.TREE, webinf + prop.getProperty ("data.access.tree.stylesheet"));
+//		accessStylesheets.put (Hierarchie.FILES, webinf + prop.getProperty ("data.access.files.stylesheet"));
+//		Hashtable<String, String> accessViews = new Hashtable<String, String> ();
+//		accessViews.put (Hierarchie.TREE,root + prop.getProperty ("data.access.tree.view"));
+//		accessViews.put (Hierarchie.FILES,root + prop.getProperty ("data.access.files.view"));
+
+//		Hierarchie accessTree = new Hierarchie (accessFile, accessRoot, accessStylesheets, accessViews);
+//		try {
+//			accessTree.createTreeView ();
+//		}
+//		catch (Exception e) {
+//			e.printStackTrace ();
+//		}
+//		this.getServletContext ().setAttribute ("APP_ACCESSTREE", accessTree);
+
+		// Initialisation d'Hibernate
+		try {
+			CommunicationBD.open();
+			CommunicationBD.getList("select count(*) from Jeu");
+//			System.out.println("nombre de jeux insÃ©rÃ©s="+nbjeux.get(0));
+			CommunicationBD.close();
+		} catch (HibernateException e) {
+			e.printStackTrace();
+		}
+		
+		//on charge l'annuaire et on le met aussi au niveau de l'appli...
+		Annuaire annu = new Annuaire(prop.getProperty("annuaire"));
+		this.getServletContext().setAttribute("APP_ANNUAIRE", annu);
+		
+		//et idem pour l'utilitaire d'envoi des mails
+		MailFactory mail = new MailFactory(prop.getProperty("mail.host"));
+		this.getServletContext().setAttribute("APP_MAILFACTORY", mail);
+		String webmaster = prop.getProperty("mail.webmaster");
+		this.getServletContext().setAttribute("APP_WEBMASTER", webmaster);
+		String urlCGI = prop.getProperty("url.extractcgi");
+		this.getServletContext().setAttribute("APP_CGI", urlCGI);
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/NewSetMail.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/NewSetMail.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/NewSetMail.java	(revision 152)
@@ -0,0 +1,109 @@
+package com.medias.megapoli.utils;
+
+import com.medias.Context;
+import com.medias.mail.Mail;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+import java.util.Properties;
+
+/**
+ * @author combaz
+ *
+ * Created on 16 mars 2005
+ */
+public class NewSetMail extends Mail
+        implements Serializable {
+	/**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+//    private static String NEWMAIL_SUBJECT = "DÃ©pÃŽt de donnÃ©es pour la base MEGAPOLI";
+	private String[] content;
+//	{
+/*0*///			"Bonjour ",
+/*1*///			"dest_nom",
+/*2*///			",\n\nLa section \"DÃ©pÃŽt des donnÃ©es\" du site web MEGAPOLI est active.\n\nLe jeu ",
+/*3*///			"jeu_nom",
+/*4*///			" est maintenant pris en compte dans la base.\nVous avez Ã©tÃ© dÃ©signÃ© comme \"",
+/*5*///			"dest_role",
+/*6*///			"\".\n",
+/*7*///			"\nPouvez-vous s'il vous plaÃ®t aller voir Ã  l'adresse \"http://megapoli.sedoo.fr/InitLogon.do\"?" +
+	//	"\nVotre nom d'utilisateur est : ",
+/*8*///			"dest_login",
+/*9*///			",\nVotre mot de passe est : ",
+/*10*///			"dest_mdp",
+/*11*///			".\n\n1) VÃ©rifiez si les informations de mÃ©ta-donnÃ©es associÃ©es au jeu sont correctes (en cliquant sur le lien \"",
+/*12*///			"jeu_nom",
+/*13*///			"_metadata.xml\",\n2) TÃ©lÃ©charger vos fichiers de donnÃ©es sur le site. C'est au mÃªme endroit que " +
+	//	"prÃ©cÃ©demment, au niveau de l'icÃŽne avec une petite flÃšche : un bouton \"browse\" vous permet de choisir " +
+	//	"localement votre fichier, et un bouton \"submit\" permet de faire l'envoi.\nEn cas de problÃšme, veuillez contacter " +
+	//	"le webmaster (mailto:webmaster).\n\nA bientÃŽt,\n\n",
+/*14*///			"exp_nom"};
+	private Hashtable<String, String> roles;
+
+	/**
+	 * CrÃ©e un nouveau mail de crÃ©ation de nouveau jeu
+	 * @param from ExpÃ©diteur du mail
+	 * @param to Destinataire du mail
+	 */
+	public NewSetMail(String from, String to, String bcc) {
+		super(from, to, bcc);
+		this.setSubject( Context.getAnInternationalizeString( "ApplicationResources", "mail.subject" ));
+		roles = new Hashtable<String, String>();
+		roles.put("default",Context.getAnInternationalizeString("ApplicationResources", "data.upload.metadata.description.default2"));
+		roles.put("pi",Context.getAnInternationalizeString("ApplicationResources", "data.upload.metadata.description.pi"));
+		roles.put("tech",Context.getAnInternationalizeString("ApplicationResources", "data.upload.metadata.description.tech"));
+	}
+
+	/**
+	 * Met Ã  jour le contenu du mail Ã  partir d'informations personnelles sur l'expÃ©diteur et le destinataire.
+	 * @param dest_nom
+	 * @param dest_login
+	 * @param dest_mdp
+	 * @param dest_role
+	 * @param jeu_nom
+	 * @param exp_nom
+	 */
+	public void createContent(Properties prop, String dest_nom, String dest_login, String dest_mdp, String dest_role, String jeu_nom, String exp_nom) {
+		this.content = new String[19];
+		this.content[0] = Context.getAnInternationalizeString("ApplicationResources", "mail.content1");
+		this.content[1] = dest_nom;
+		this.content[2] = Context.getAnInternationalizeString("ApplicationResources", "mail.content2");
+		this.content[3] = jeu_nom;
+		this.content[4] = Context.getAnInternationalizeString("ApplicationResources", "mail.content3");
+		this.content[5] = this.roles.get(dest_role);
+		this.content[6] = Context.getAnInternationalizeString("ApplicationResources", "mail.content31");
+		this.content[7] = Context.getAnInternationalizeString("ApplicationResources", "mail.content4");
+		this.content[8] = prop.getProperty("url.upload");
+		this.content[9] = Context.getAnInternationalizeString("ApplicationResources", "mail.content5");
+		this.content[10] = dest_login;
+		this.content[11] = Context.getAnInternationalizeString("ApplicationResources", "mail.content6");
+		this.content[12] = dest_mdp;
+		this.content[13] = Context.getAnInternationalizeString("ApplicationResources", "mail.content7");
+		this.content[14] = jeu_nom;
+		this.content[15] = Context.getAnInternationalizeString("ApplicationResources", "mail.content8");
+		this.content[16] = prop.getProperty("mail.webmaster");
+		this.content[17] = Context.getAnInternationalizeString("ApplicationResources", "mail.content9");
+		this.content[18] = exp_nom;
+		synchronizeContent();
+	}
+	
+	public void addReference(String nom, String role) {
+		String phrase = "\n"+nom+" "+Context.getAnInternationalizeString("ApplicationResources", "mail.content10")+this.roles.get(role)+"\".";
+		this.content[6]=this.content[6]+phrase;
+		synchronizeContent();
+	}
+	
+	/**
+	 * Met Ã  jour le texte du mail Ã  partir du tableau de Strings content.
+	 *
+	 */
+	private void synchronizeContent() {
+		StringBuffer text = new StringBuffer();
+		for(int i=0; i<this.content.length;i++) {
+			text.append(content[i]);
+		}
+		this.setContent(text.toString());
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/Requete.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/Requete.java	(revision 152)
+++ /ether_megapoli/trunk/service/implementation/com/medias/megapoli/utils/Requete.java	(revision 152)
@@ -0,0 +1,55 @@
+package com.medias.megapoli.utils;
+
+import com.medias.annuaire.Personne;
+import com.medias.megapoli.struts.forms.DatasForm;
+import org.jdom.Document;
+import org.jdom.Element;
+
+public class Requete {
+
+	/**
+	 * Permet de gÃ©nÃ©rer le document XML contenant les informations Ã  extraire de la base de donnÃ©es
+	 */
+	public static Document toXml(DatasForm dform, Personne pers) {
+		// Balise liste des jeux
+		Element jeux = new Element("jeux");
+		jeux.addContent(dform.getListeJeux());
+		// Balise liste des paltes-formes
+		Element plats = new Element("plats");
+		plats.addContent(dform.getListePlats());
+		// Balise liste des paramÃštres
+		Element params = new Element("params");
+		params.addContent(dform.getListeParams());
+		// Balise liste des capteurs
+		Element capts = new Element("capts");
+		capts.addContent(dform.getListeCapts());
+		// Balise localisation
+		Element loc = new Element("loc");
+		loc.addContent(dform.getListeCoords());
+		// Balise pÃ©riode
+		Element period = new Element("period");
+		period.addContent(dform.getListeDates());
+		// Balise format de sortie
+		Element output = new Element("output");
+		output.addContent(dform.getOutput());
+		// Balise compression
+		Element compression = new Element("compression");
+		compression.addContent(dform.getCompression());
+		// Balise user
+		Element user = new Element("user");
+		user.addContent(pers.getPrenom()+","+pers.getNom()+","+pers.getMail());
+		// Balise racine
+		Element root = new Element("request");
+		root.addContent(jeux);
+		root.addContent(plats);
+		root.addContent(params);
+		root.addContent(capts);
+		root.addContent(loc);
+		root.addContent(period);
+		root.addContent(output);
+		root.addContent(compression);
+		root.addContent(user);
+		Document docXml = new Document(root);
+		return docXml;
+	}
+}
