Subversion Repositories eFlore/Applications.cel

Rev

Rev 1008 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1008 Rev 1085
Line 1... Line 1...
1
package org.tela_botanica.client.image;
1
package org.tela_botanica.client.image;
Line -... Line 2...
-
 
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.HashMap;
4
import java.util.HashMap;
-
 
5
import java.util.Iterator;
4
import java.util.Iterator;
6
import java.util.List;
Line 5... Line 7...
5
import java.util.Vector;
7
import java.util.Vector;
6
 
8
 
7
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
Line 17... Line 19...
17
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
19
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
18
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
20
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
19
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO;
21
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO;
20
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
22
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
Line -... Line 23...
-
 
23
 
-
 
24
import com.google.gwt.http.client.Request;
-
 
25
import com.google.gwt.http.client.RequestCallback;
21
 
26
import com.google.gwt.http.client.Response;
22
import com.google.gwt.json.client.JSONArray;
27
import com.google.gwt.json.client.JSONArray;
23
import com.google.gwt.json.client.JSONObject;
-
 
24
import com.google.gwt.user.client.Window;
28
import com.google.gwt.json.client.JSONObject;
25
import com.gwtext.client.data.ArrayReader;
29
import com.gwtext.client.data.ArrayReader;
26
import com.gwtext.client.data.FieldDef;
30
import com.gwtext.client.data.FieldDef;
27
import com.gwtext.client.data.IntegerFieldDef;
31
import com.gwtext.client.data.IntegerFieldDef;
28
import com.gwtext.client.data.MemoryProxy;
32
import com.gwtext.client.data.MemoryProxy;
Line 274... Line 278...
274
	 *            le rafraichissable auquel on enverra les informations
278
	 *            le rafraichissable auquel on enverra les informations
275
	 * @param id
279
	 * @param id
276
	 *            l'identifiant de l'image
280
	 *            l'identifiant de l'image
277
	 */
281
	 */
278
	public void obtenirMotsClesId(Rafraichissable r, String id) {
282
	public void obtenirMotsClesId(Rafraichissable r, String id) {
279
		ImageCarnet im = cacheImage.get(id);
-
 
280
		String motsClesId = im.getMotsCles();
-
 
281
		String[] motsClesIdTab = motsClesId.split(",");
-
 
Line -... Line 283...
-
 
283
 
282
 
284
		String[] motsClesIdTab = getMotsClesId(id);
283
		r.rafraichir(motsClesIdTab, false);
285
		r.rafraichir(motsClesIdTab, false);
Line -... Line 286...
-
 
286
	}
-
 
287
	
-
 
288
	public String[] getMotsClesId(String idImage) {
-
 
289
		ImageCarnet im = cacheImage.get(idImage);
-
 
290
		String motsClesId = im.getMotsCles();
-
 
291
		String[] motsClesIdTab = motsClesId.split(",");
-
 
292
		
-
 
293
		return motsClesIdTab;
284
	}
294
	}
285
	
295
	
286
	/**
296
	/**
287
	 * Va chercher le nom du mot clé associé à un id dans le cache local
297
	 * Va chercher le nom du mot clé associé à un id dans le cache local
288
	 * 
298
	 * 
Line 593... Line 603...
593
	 * @param arbreMC
603
	 * @param arbreMC
594
	 *            l'arbre de mots clés en cours
604
	 *            l'arbre de mots clés en cours
595
	 */
605
	 */
596
	public void mettreAjourMotsCles(String[] ids, String motsClesEnCours,
606
	public void mettreAjourMotsCles(String[] ids, String motsClesEnCours,
597
			com.gwtext.client.data.Tree arbreMC) {
607
			com.gwtext.client.data.Tree arbreMC) {
-
 
608
		
-
 
609
		final List<String> erreurs = new ArrayList<String>();
598
		for (int i = 0; i < ids.length; i++) {
610
		for (int i = 0; i < ids.length; i++) {
-
 
611
			final int l = i;
599
			if (cacheImage.containsKey(ids[i])) {
612
			if (cacheImage.containsKey(ids[i])) {
600
				ImageCarnet ic = (ImageCarnet) cacheImage.get(ids[i]);
613
				final ImageCarnet ic = (ImageCarnet) cacheImage.get(ids[i]);
601
				ic.mettreAjourMotsCles(motsClesEnCours);
614
				ic.mettreAjourMotsCles(motsClesEnCours);
Line 602... Line 615...
602
 
615
 
603
				ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO(this);
616
				ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO(this);
-
 
617
				imgDao.synchroniserMotsClesImageBaseDeDonnees(ic, new RequestCallback() {
-
 
618
					
-
 
619
					@Override
-
 
620
					public void onResponseReceived(Request request, Response response) {
-
 
621
						// TODO: les messages ne devraient pas être affichés ici
-
 
622
						// mais l'architecture par très malléable complique les choses
-
 
623
						if (response.getText().equals("OK")) {
-
 
624
 
-
 
625
						} else {
-
 
626
							erreurs.add(response.getText());
-
 
627
						}
-
 
628
					}
-
 
629
					
-
 
630
					@Override
-
 
631
					public void onError(Request request, Throwable exception) {
-
 
632
					
-
 
633
					}
604
				imgDao.SynchroniserMotsClesImageBaseDeDonnees(ic);
634
				});
605
			}
635
			}
-
 
636
		}
-
 
637
		
-
 
638
		if(erreurs.isEmpty() && ids.length > 0) {
-
 
639
			final ImageCarnet ic = (ImageCarnet) cacheImage.get(ids[0]);
-
 
640
			com.google.gwt.user.client.Window
-
 
641
			.alert("Les mots clés suivants ont bien été appliqués : "+renvoyerChaineMotClesTexte(ic));
-
 
642
		} else {
-
 
643
			com.google.gwt.user.client.Window
-
 
644
			.alert("Problème lors de la mise à jour des données, le serveur a répondu les erreurs suivantes "+erreurs.get(0));
Line 606... Line 645...
606
		}
645
		}
607
 
646
 
Line 608... Line 647...
608
		rafraichirArbreMotsCles(arbreMC);
647
		rafraichirArbreMotsCles(arbreMC);
Line 652... Line 691...
652
			parentId = parentUsObj[1];
691
			parentId = parentUsObj[1];
653
		} else {
692
		} else {
654
			parentId = "racine";
693
			parentId = "racine";
655
		}
694
		}
Line 656... Line 695...
656
 
695
 
-
 
696
		rafraichirArbreMotsCles(arbreMC);		
Line 657... Line 697...
657
		rafraichirArbreMotsCles(arbreMC);
697
		mettreAjourMotsClesId(motCle, id);
658
 
698
 
659
		String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle="
699
		String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle="
660
				+ motCle + "&id=" + id + "&parent=" + parentId;
700
				+ motCle + "&id=" + id + "&parent=" + parentId;