Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 93 → Rev 94

/trunk/src/org/tela_botanica/client/vues/MiniZoomImageVue.java
New file
0,0 → 1,364
package org.tela_botanica.client.vues;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.observation.ObservationMediateur;
 
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.dd.DragData;
import com.gwtext.client.dd.DragSource;
import com.gwtext.client.dd.DropTarget;
import com.gwtext.client.dd.DropTargetConfig;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.grid.GridDragData;
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
 
/**
* Panneau d'affichage d'une image avec des boutons précdents et suivant
*
* @author aurelien
*
*/
public class MiniZoomImageVue extends Panel implements Rafraichissable {
 
/**
* Le médiateur associé à la vue
*/
private ObservationMediateur oMediateur = null;
 
/**
* Panneau conteneur pour l'image
*/
private Panel imageConteneur = null;
/**
* l'image à afficher
*/
private Image image = new Image("vide.jpg");
/**
* Bouton précédent
*/
private final com.google.gwt.user.client.ui.Button prev = new com.google.gwt.user.client.ui.Button();
/**
* Bouton suivant
*/
private final com.google.gwt.user.client.ui.Button suiv = new com.google.gwt.user.client.ui.Button();
 
/**
* Taille originale Y de l'image
*/
private int imageHeight = 0;
 
/**
* Taille originale X de l'image
*/
private int imageWidth = 0;
/**
* Identifiant de l'image
*/
private String idImage = "0" ;
private String[] infosImages = null ;
private int index = 0 ;
 
/**
* Booleen d'initalisation général
*/
private boolean initialise = false;
 
/**
* Booleen d'initalisation du conteneur d'image
*/
private boolean conteneurInitialise = false;
 
/**
* Constructeur sans argument (privé car ne doit être utilisé)
*/
@SuppressWarnings("unused")
private MiniZoomImageVue() {
super();
}
 
/**
* Constructeur avec argument
*
* @param im
* le médiateur à associer à la vue
*/
public MiniZoomImageVue(ObservationMediateur im) {
super("Image liées");
setId("x-view-mini-zoom-panel");
// on associe le médiateur
oMediateur = im;
 
prev.setStylePrimaryName("x-view-zoom-button-p");
suiv.setStylePrimaryName("x-view-zoom-button-s");
 
// on crée une image qui gère le double clic et la roulette de la souris
image = new Image() {
 
public void onBrowserEvent(Event event) {
 
// lors d'un déplacement de la roulette
if (Event.ONMOUSEWHEEL == DOM.eventGetType(event)) {
 
// on simule un clic sur le bouton précédent
if (event.getMouseWheelVelocityY() >= 1) {
prev.click();
}
 
// ou suivant
if (event.getMouseWheelVelocityY() <= -1) {
suiv.click();
}
}
}
};
infosImages = new String[0] ;
 
this.setHeader(true);
 
imageConteneur = new Panel() ;
imageConteneur.setBorder(false);
 
imageConteneur.add(image);
imageConteneur.setId("x-view-mini-zoom-img");
 
// il n'existe pas de méthode pour ajouter un listener pour le double
// clic sur une image
// alors on lui dit manuellement de capter l'évènement double clic
image.sinkEvents(Event.ONDBLCLICK);
image.sinkEvents(Event.ONMOUSEWHEEL);
 
// l'image de base est vide
image.setUrl("vide_s.jpg");
 
this.setLayout(new BorderLayout());
 
prev.setWidth("60px");
suiv.setWidth("60px");
 
this.add(prev, new BorderLayoutData(RegionPosition.WEST));
this.add(imageConteneur, new BorderLayoutData(RegionPosition.CENTER));
this.add(suiv, new BorderLayoutData(RegionPosition.EAST));
 
imageConteneur.setMaskDisabled(true);
this.setBorder(false);
 
conteneurInitialise = true;
initialise = true;
 
// on ajoute les listeners
ajouterListeners();
 
}
 
/**
* Méthode héritée de l'interface rafraichissable
*
* @param nouvelleDonnees
* les nouvelles données
* @param repandreRafraichissement
* le booleen qui dit si on doit répnadre l'évènement
*/
public void rafraichir(Object nouvelleDonnees,
boolean repandreRafraichissement) {
 
// si on reçoit une string
if (nouvelleDonnees instanceof String[] && initialise
&& conteneurInitialise) {
infosImages = (String[]) nouvelleDonnees;
index = 0 ;
afficherImage() ;
} else {
// sinon on met une image vide
infosImages = new String[0] ;
getImage().setUrl("vide_s.jpg");
}
}
 
public void afficherImage()
{
// c'est l'url de l'image qu'on associe à la vue
if(infosImages.length != 0)
{
getImage().setUrl(infosImages[index]);
}
else
{
getImage().setUrl("vide_s.jpeg");
}
}
 
/**
* Desactive visuellement le panneau et les boutons
*/
public void desactiverPanneau() {
getImage().setUrl("vide_s.jpeg");
prev.setEnabled(false);
suiv.setEnabled(false);
}
 
/**
* Active visuellement le panneau et les boutons
*/
public void activerPanneau() {
prev.setEnabled(true);
suiv.setEnabled(true);
}
 
/**
* Ajoute les listeners pour la gestions d'évènement
*/
public void ajouterListeners() {
 
// gestion du clic sur le bouton précedent
prev.addClickListener(new ClickListener() {
 
// en cas de clic
public void onClick(Widget sender) {
if(infosImages.length != 0) {
if(index == 0)
{
index = infosImages.length - 1 ;
}
else
{
index-- ;
}
afficherImage() ;
}
}
 
});
 
// gestion du clic sur le bouton suivant
suiv.addClickListener(new ClickListener() {
 
// en cas de clic
public void onClick(Widget sender) {
if(infosImages.length != 0) {
if(index == infosImages.length - 1)
{
index = 0 ;
}
else
{
index++ ;
}
afficherImage() ;
}
}
 
});
 
}
 
/**
* Accesseur pour le médiateur
*
* @return le médiateur associé à la vue
*/
public ObservationMediateur getIMediateur() {
return oMediateur;
}
 
/**
* Accesseur au conteneur de l'image
*
* @return le conteneur de l'image
*/
public Image getImage() {
return image;
}
/**
* Acesseurs pour l'identifiant de l'image
* @return l'id de l'image
*/
public String getIdImage()
{
return idImage ;
}
 
/**
* Accesseur pour le bouton précédent
*
* @return le bouton précédent
*/
public com.google.gwt.user.client.ui.Button getPrev() {
return prev;
}
 
/**
* Accesseur pour le bouton suivant
*
* @return le bouton suivant
*/
public com.google.gwt.user.client.ui.Button getSuiv() {
return suiv;
}
 
/**
* Setter pour la taille de l'image
*
* @param x
* la largeur en pixels
* @param y
* la hauteur en pixels
*/
public void setTailleImage(int x, int y) {
imageHeight = y;
imageWidth = x;
}
/**
* Setteur pour l'identifiant de l'image
* @param id le nouvel identifiant
*/
public void setIdImage(String id)
{
idImage = id ;
}
 
/**
* renvoie la taille originale de l'image
*
* @return un tableau de deux entiers contenant la largeur puis la hauteur
*/
public int[] getTailleImage() {
int[] taille = { imageHeight, imageWidth };
 
return taille;
}
/**
* Accesseur pour le conteneur de l'image
* @return le conteur de l'image
*/
public Panel getImageConteneur() {
 
return imageConteneur;
 
}
}
 
/trunk/src/org/tela_botanica/client/vues/ArbreDateObservationFiltreVue.java
191,16 → 191,16
}
return ;
case 3: nomFiltre += "annee,mois,jour";
nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[0] ;
donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[0] ;
nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[1] ;
donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[1] ;
break;
case 2: nomFiltre += "annee,mois";
nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[0] ;
nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[1] ;
break;
case 1: nomFiltre += "annee";
donneesDateEnCours += ((String[])node.getUserObject())[0] ;
donneesDateEnCours += ((String[])node.getUserObject())[1] ;
break;
default:
break;
244,7 → 244,7
TreeNode root = new TreeNode();
root.setId("racine_date");
root.setText("Dates");
String[] usObjRoot = { "Dates"};
String[] usObjRoot = { "Dates", "Dates"};
root.setUserObject(usObjRoot);
donneesDates.setRootNode(root);
253,7 → 253,6
DateObservation ent=(DateObservation) data.get(it.next());
annee= ent.getAnnee() ;
mois= ent.getMois() ;
String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
263,25 → 262,21
annee="Inconnue" ;
}
if(moisLettre.contains("00")) {
mois="Inconnue" ;
}
if(jour.contains("00")) {
jour="Inconnue" ;
}
Node noeudMemeId = donneesDates.getNodeById(""+annee);
Node noeudMemeAnnee = donneesDates.getNodeById(""+annee);
// si la région existe déjà
if(noeudMemeId != null)
if(noeudMemeAnnee != null)
{
// on teste si la localité existe
Node noeudMemeLoc = donneesDates.getNodeById(""+(annee+mois));
if(noeudMemeLoc != null)
Node noeudMemeMois = donneesDates.getNodeById(""+(annee+mois));
if(noeudMemeMois != null)
{
// enfin on teste si le lieu dit existe
Node noeudMemeLieu = donneesDates.getNodeById(""+(annee+mois+jour));
if(noeudMemeLieu != null)
Node noeudMemeJour = donneesDates.getNodeById(""+(annee+mois+jour));
if(noeudMemeJour != null)
{
// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
}
288,54 → 283,54
else
{
// enfin on ne crée que le noeud du lieu dit
TreeNode node_lieu = new TreeNode();
node_lieu.setId(""+(annee+mois+jour));
node_lieu.setText(jour);
noeudMemeLoc.appendChild(node_lieu) ;
String[] usObj = {jour};
node_lieu.setUserObject(usObj);
TreeNode node_jour = new TreeNode();
node_jour.setId(""+(annee+mois+jour));
node_jour.setText(jour);
noeudMemeMois.appendChild(node_jour) ;
String[] usObj = {jour,jour};
node_jour.setUserObject(usObj);
}
}
else
{
TreeNode node_loc = new TreeNode();
node_loc.setId(""+(annee+mois));
node_loc.setText(moisLettre);
noeudMemeId.appendChild(node_loc) ;
String[] usObj = {mois};
node_loc.setUserObject(usObj);
TreeNode node_mois = new TreeNode();
node_mois.setId(""+(annee+mois));
node_mois.setText(moisLettre);
noeudMemeAnnee.appendChild(node_mois) ;
String[] usObj = {moisLettre,mois};
node_mois.setUserObject(usObj);
TreeNode node_lieu = new TreeNode();
node_lieu.setId(""+(annee+mois+jour));
node_lieu.setText(jour);
node_loc.appendChild(node_lieu) ;
String[] usObj2 = {jour};
node_lieu.setUserObject(usObj2);
TreeNode node_jour = new TreeNode();
node_jour.setId(""+(annee+mois+jour));
node_jour.setText(jour);
node_mois.appendChild(node_jour) ;
String[] usObj2 = {jour,jour};
node_jour.setUserObject(usObj2);
}
}
else
{
TreeNode node_id_loc = new TreeNode();
node_id_loc.setId(""+annee);
node_id_loc.setText(annee);
root.appendChild(node_id_loc) ;
String[] usObj = {annee};
node_id_loc.setUserObject(usObj);
TreeNode node_annee = new TreeNode();
node_annee.setId(""+annee);
node_annee.setText(annee);
root.appendChild(node_annee) ;
String[] usObj = {annee, annee};
node_annee.setUserObject(usObj);
TreeNode node_loc = new TreeNode();
node_loc.setId(""+(annee+mois));
node_loc.setText(moisLettre);
node_id_loc.appendChild(node_loc) ;
String[] usObj2 = {mois};
node_loc.setUserObject(usObj2);
TreeNode node_mois = new TreeNode();
node_mois.setId(""+(annee+mois));
node_mois.setText(moisLettre);
node_annee.appendChild(node_mois) ;
String[] usObj2 = {moisLettre,mois};
node_mois.setUserObject(usObj2);
TreeNode node_lieu = new TreeNode();
node_lieu.setId(""+(annee+mois+jour));
node_lieu.setText(jour);
node_loc.appendChild(node_lieu) ;
String[] usObj3 = {jour};
node_lieu.setUserObject(usObj3);
TreeNode node_jour = new TreeNode();
node_jour.setId(""+(annee+mois+jour));
node_jour.setText(jour);
node_mois.appendChild(node_jour) ;
String[] usObj3 = {jour,jour};
node_jour.setUserObject(usObj3);
}
 
}
355,6 → 350,9
copierFilsNoeud(donneesDates.getRootNode(), arbreDonneesDates
.getRootNode());
// on trie
root.sort(comparerNoeuds()) ;
// si l'arbre n'était pas encore considéré comme instancié
if (!estInstancie) {
// on signale que oui
368,16 → 366,17
 
}
if(nouvelleDonnees instanceof DateObservation)
if(nouvelleDonnees instanceof Observation)
{
DateObservation ent = (DateObservation)nouvelleDonnees ;
Observation ent = (Observation)nouvelleDonnees ;
String dateSpl[] = ent.getDate().split("/") ;
String annee= ent.getAnnee() ;
String mois= ent.getMois() ;
String annee= dateSpl[2];
String mois= dateSpl[1];
String jour= dateSpl[0];
String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
String jour= ent.getJour() ;
Node root = arbreDonneesDates.getRootNode() ;
if(annee.contains("0000") || annee.equals(null)) {
384,25 → 383,21
annee="Inconnue" ;
}
if(mois.contains("00") || mois.equals(null)) {
mois="Inconnue" ;
}
if(jour.contains("00") || jour.equals(null)) {
jour="Inconnue" ;
}
Node noeudMemeId = donneesDates.getNodeById(""+annee);
Node noeudMemeAnnee = donneesDates.getNodeById(""+annee);
// si la région existe déjà
if(noeudMemeId != null)
{
if(noeudMemeAnnee != null)
{
// on teste si la localité existe
Node noeudMemeLoc = donneesDates.getNodeById(""+(annee+mois));
if(noeudMemeLoc != null)
Node noeudMemeMois = donneesDates.getNodeById(""+(annee+mois));
if(noeudMemeMois != null)
{
// enfin on teste si le lieu dit existe
Node noeudMemeLieu = donneesDates.getNodeById(""+(annee+mois+jour));
if(noeudMemeLieu != null)
Node noeudMemeJour = donneesDates.getNodeById(""+(annee+mois+jour));
if(noeudMemeJour != null)
{
// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
}
409,56 → 404,60
else
{
// enfin on ne crée que le noeud du lieu dit
TreeNode node_lieu = new TreeNode();
node_lieu.setId(""+(annee+mois+jour));
node_lieu.setText(jour);
String[] usObj = {jour};
node_lieu.setUserObject(usObj);
noeudMemeLoc.appendChild(node_lieu) ;
TreeNode node_jour = new TreeNode();
node_jour.setId(""+(annee+mois+jour));
node_jour.setText(jour);
String[] usObj = {jour,jour};
node_jour.setUserObject(usObj);
noeudMemeMois.appendChild(node_jour) ;
root.sort(comparerNoeuds()) ;
}
}
else
{
TreeNode node_loc = new TreeNode();
node_loc.setId(""+(annee+mois));
node_loc.setText(mois);
String[] usObj = {moisLettre};
node_loc.setUserObject(usObj);
noeudMemeId.appendChild(node_loc) ;
TreeNode node_mois = new TreeNode();
node_mois.setId(""+(annee+mois));
node_mois.setText(moisLettre);
String[] usObj = {moisLettre,mois};
node_mois.setUserObject(usObj);
noeudMemeAnnee.appendChild(node_mois) ;
TreeNode node_lieu = new TreeNode();
node_lieu.setId(""+(annee+mois+jour));
node_lieu.setText(jour);
String[] usObj2 = {jour};
node_lieu.setUserObject(usObj2);
node_loc.appendChild(node_lieu) ;
Window.alert("on crée on nouveau mois "+node_mois.getId()) ;
TreeNode node_jour = new TreeNode();
node_jour.setId(""+(annee+mois+jour));
node_jour.setText(jour);
String[] usObj2 = {jour,jour};
node_jour.setUserObject(usObj2);
node_mois.appendChild(node_jour) ;
root.sort(comparerNoeuds()) ;
}
}
else
{
// TODO: Pourquoi l'ajout ne marche que sur la racine ?
TreeNode node_id_loc = new TreeNode();
node_id_loc.setId(""+annee);
node_id_loc.setText(annee);
String[] usObj = {annee};
node_id_loc.setUserObject(usObj);
root.appendChild(node_id_loc) ;
TreeNode node_annee = new TreeNode();
node_annee.setId(""+annee);
node_annee.setText(annee);
String[] usObj = {annee,annee};
node_annee.setUserObject(usObj);
root.appendChild(node_annee) ;
TreeNode node_loc = new TreeNode();
node_loc.setId(""+(annee+mois));
node_loc.setText(mois);
String[] usObj2 = {moisLettre};
node_loc.setUserObject(usObj2);
node_id_loc.appendChild(node_loc) ;
TreeNode node_mois = new TreeNode();
node_mois.setId(""+(annee+mois));
node_mois.setText(moisLettre);
String[] usObj2 = {moisLettre,mois};
node_mois.setUserObject(usObj2);
node_annee.appendChild(node_mois) ;
TreeNode node_lieu = new TreeNode();
node_lieu.setId(""+(annee+mois+jour));
node_lieu.setText(jour);
String[] usObj3 = {jour};
node_lieu.setUserObject(usObj3);
node_loc.appendChild(node_lieu) ;
TreeNode node_jour = new TreeNode();
node_jour.setId(""+(annee+mois+jour));
node_jour.setText(jour);
String[] usObj3 = {jour,jour};
node_jour.setUserObject(usObj3);
node_mois.appendChild(node_jour) ;
// TODO : améliorer la compararaison des noeuds
root.sort(comparerNoeuds()) ;
549,8 → 548,8
 
public int compare(TreeNode o1, TreeNode o2) {
String n1 = ((String[])o1.getUserObject())[0] ;
String n2 = ((String[])o2.getUserObject())[0] ;
String n1 = ((String[])o1.getUserObject())[1] ;
String n2 = ((String[])o2.getUserObject())[1] ;
return n1.compareTo(n2) ;
}
/trunk/src/org/tela_botanica/client/vues/FormulaireSaisieObservationVue.java
226,10 → 226,6
panneauFormulaire.add(panneauIntermediaire);
/*final Template tp = new Template("<div class=\"x-combo-list-item\">"
+ "{nom_mode}" + "<div class=\"x-clear\"></div></div>");
tp.compile();*/
Object[][] mode = {{"création",false} , {"modification", true} };
storeMode = new SimpleStore(new String[] { "nom_mode", "mode" },
mode);
279,9 → 275,7
}
private void ajouterListeners()
{
{
// Listener completion communne
commune.addListener(new ComboBoxListenerAdapter() {
522,7 → 516,7
}
// si l'on a reçu une liste du referentiel nom (complétion referentiel nom)
// si l'on a reçu une liste du référentiel nom (complétion referentiel nom)
if(nouvelleDonnees instanceof ListeReferentielNom)
{
585,6 → 579,7
 
public void obtenirListeReferentielCommune() {
String com=commune.getText().replaceAll(" ","/");
com=com.replaceAll("%","");
685,6 → 680,7
setTitle("Modification") ;
boutonAnnuler.setText("Supprimer") ;
modification = true ;
}
else
{
693,6 → 689,7
setTitle("Saisir") ;
boutonAnnuler.setText("Réinitialiser") ;
modification = false ;
}
}
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java
461,6 → 461,7
this.reconfigure(st, this.getColumnModel());
 
}
 
// si on doit répandre l'évenement
if (repandreRafraichissement) {
/trunk/src/org/tela_botanica/client/vues/ArbreEntiteGeographiqueObservationFiltreVue.java
544,7 → 544,7
 
public int compare(TreeNode o1, TreeNode o2) {
if(o1.getDepth() == 1 && o2.getDepth() == 1)
if(o1.getDepth() == 1 && o2.getDepth() == 1 && o1.getText().equals("Inconnue") && o2.getText().equals("Inconnue"))
{
Integer n1 = Integer.parseInt(((String[])o1.getUserObject())[0]) ;
Integer n2 = Integer.parseInt(((String[])o2.getUserObject())[0]) ;
552,7 → 552,7
return n1.compareTo(n2) ;
}
else
{
{
String n1 = o1.getText() ;
String n2 = o2.getText() ;
/trunk/src/org/tela_botanica/client/vues/ListeObservationVue.java
134,6 → 134,8
bt.setTaillePageParDefaut(20);
bt.setIntervallesPages(new String[] {"400","200", "100" , "50" , "20"}) ;
this.setBottomToolbar(bt) ;
this.setTitle("Observations") ;
 
// on construit le modèle de colonnes
 
484,24 → 486,11
masquerChargement();
 
observationMediateur.obtenirNombreObservation();
observationMediateur.obtenirNombreObservation();
/*
Record rd = getSelectionModel().getSelected();
rd.set("nomSaisi_observation",obs.getNomSaisi());
rd.set("nomRetenu_observation",obs.getNomRetenu());
rd.set("lieu_observation",obs.getLieudit());
rd.set("date_observation",obs.getDate());
*/
}
}
 
}
 
}
631,5 → 620,23
return pageEncours;
}
public void afficherFiltres(String nLieu, String nDate)
{
String titre = "Observations " ;
if(!nLieu.equals(""))
{
titre += " - Lieu : "+nLieu ;
}
if(!nDate .equals(""))
{
titre += " - Date : "+nDate ;
}
this.setTitle(titre) ;
}
 
}
/trunk/src/org/tela_botanica/client/modeles/LienImageAsynchroneDAO.java
2,6 → 2,7
 
import org.tela_botanica.client.image.ImageModele;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.observation.ObservationModele;
 
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
8,6 → 9,10
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class LienImageAsynchroneDAO {
14,9 → 19,17
 
private ImageModele iModele = null ;
private ObservationModele oModele = null ;
private Rafraichissable raf = null ;
public LienImageAsynchroneDAO(ImageModele im) {
iModele = im;
}
public LienImageAsynchroneDAO(ObservationModele om) {
oModele = om;
}
 
/**
* Setteur pour le modèle
58,6 → 71,82
}
}
public void obtenirLiaisonsObservationsImages(Rafraichissable r,String idObs, String utilisateur)
{
String paramGet = "&coi_ce_observation="+idObs ;
raf = r ;
 
// et on envoie ça au serveur
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, oModele
.getConfig().getServiceBaseUrl()
+ "/inventoryImageLink/" + utilisateur + "/" + paramGet);
try {
rb.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
public void onResponseReceived(Request request,
Response response) {
String baseUrl = "http://162.38.234.9/Documents/images_serveur/";
final JSONValue responseValue = JSONParser.parse(response
.getText());
// si c'est un tableau
if (responseValue.isArray() != null) {
 
final JSONArray reponse = responseValue.isArray();
final int taillemax = reponse.size();
String urlTab[] = new String[taillemax] ;
for(int i = 0 ;i<taillemax ;i++)
{
final JSONArray reponseInt = reponse.get(i).isArray();
String idImg = ((JSONString)reponseInt.get(0)).stringValue() ;
int maxZeros = 9 - idImg.length();
for (int j = 0; j < maxZeros; j++) {
idImg = "0" + idImg;
}
String dossierNv1 = idImg.substring(0, 3);
String dossierNv2 = idImg.substring(3, 6);
String fichierNv = idImg.substring(6, 9);
String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv;
String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 };
String url_img = baseUrl + infosFichier[1] + "/" + infosFichier[2] + "/M/"
+ infosFichier[0] + "_M.jpg";
urlTab[i]= url_img ;
}
raf.rafraichir(urlTab, false) ;
}
else
{
String urlTab[] = new String[0] ;
raf.rafraichir(urlTab, false) ;
}
}
});
} catch (RequestException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void lierImageBaseDeDonnees(String idsImages, String idsObs) {
String postData = "";
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
13,6 → 13,7
import org.tela_botanica.client.vues.ImageGeneriqueVue;
import org.tela_botanica.client.vues.InformationRepartitionVue;
import org.tela_botanica.client.vues.ListeObservationVue;
import org.tela_botanica.client.vues.MiniZoomImageVue;
import org.tela_botanica.client.vues.PanneauFiltresObservationVues;
 
import com.google.gwt.core.client.GWT;
128,7 → 129,9
private ImageGeneriqueVue imageGeneriqueVue=null;
private MiniZoomImageVue mvz = null ;
/**
* constructeur privé (on accède a la classe par la méthode getInstance
*/
211,7 → 214,11
imageGeneriqueVue.setHeight(160);
details.add(imageGeneriqueVue);
mvz = new MiniZoomImageVue(this) ;
mvz.setHeight(300) ;
details.add(mvz) ;
// on crée le panneau des filtres
filtres = new PanneauFiltresObservationVues(this);
293,6 → 300,8
// Affichage de l'image correspondante
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
 
 
}
323,6 → 332,7
// On raffraichi la liste d'observation
observationModele.ajouterObservation(listeObservation, obs) ;
filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
}
399,6 → 409,7
// D du CRUD
/**
* TODO : afficher un message du type "observation modifie".
* Lance la modification d'une observation
418,12 → 429,7
}
 
// Assistants de saisie
/**
*
* Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne
448,10 → 454,8
*/
public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
observationModele.obtenirListeReferentielNom(r,critere) ;
 
observationModele.obtenirListeReferentielNom(r,critere) ;
}
// Etat du syteme
478,6 → 482,8
String[] valsFiltres = chaineValFiltres.split(",") ;
String [][] valeursFiltres = new String[nomsFiltres.length][2] ;
listeObservation.afficherFiltres(chaineValFiltresGeo, chaineValFiltresDate) ;
 
if(nomsFiltres.length > 0)
/trunk/src/org/tela_botanica/client/observation/ObservationModele.java
8,6 → 8,7
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.ImageGeneriqueVueAsynchroneDAO;
import org.tela_botanica.client.modeles.ImageInformationRepartitionAsynchroneDAO;
import org.tela_botanica.client.modeles.LienImageAsynchroneDAO;
import org.tela_botanica.client.modeles.ListeDateObservationAsynchroneDAO;
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservation;
import org.tela_botanica.client.modeles.ListeEntiteGeographiqueObservationAsynchroneDAO;
21,6 → 22,7
import org.tela_botanica.client.vues.ArbreDateObservationFiltreVue;
import org.tela_botanica.client.vues.InformationRepartitionVue;
import org.tela_botanica.client.vues.ListeObservationVue;
import org.tela_botanica.client.vues.MiniZoomImageVue;
 
import com.google.gwt.user.client.Window;
 
264,5 → 266,15
ldoDAO.obtenirListeDate(r, observationMediateur.getIdentifiant());
}
 
 
 
public void obtenirLiaisonImage(Rafraichissable r,
String ordreObservation) {
LienImageAsynchroneDAO liaDAO = new LienImageAsynchroneDAO(this) ;
liaDAO.obtenirLiaisonsObservationsImages(r, ordreObservation,observationMediateur.getIdentifiant()) ;
}
}