/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()) ; |
} |
} |
/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/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/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/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 = ""; |