Subversion Repositories eFlore/Applications.coel

Rev

Rev 1417 | Rev 1762 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1417 Rev 1513
Line 27... Line 27...
27
		if (Mediateur.DEBUG) System.out.println("|| CommentaireAsyncDao > vueARafraichir = "+vueARafraichirCourrante.getClass().toString());
27
		if (Mediateur.DEBUG) System.out.println("|| CommentaireAsyncDao > vueARafraichir = "+vueARafraichirCourrante.getClass().toString());
28
		vueARafraichir = vueARafraichirCourrante ;
28
		vueARafraichir = vueARafraichirCourrante ;
29
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
29
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
30
	}
30
	}
Line -... Line 31...
-
 
31
 
-
 
32
	
-
 
33
	/**
-
 
34
	 * 
-
 
35
	 * @param paginationProgressive : définit le mode de consultation de la base de données
-
 
36
	 * 			- True :	la consultation des données est progressive, ce qui signifie que la liste est chargée (paginée) au
-
 
37
	 * 						fur et à mesure de la consultation des données par l'utilisateur.
-
 
38
	 * 			- False :	la consultation des données est classique : un seul appel à la base de données est effectué, le retour
-
 
39
	 * 						est renvoyé à l'appelant
-
 
40
	 * 			// FIXME : si la taille de la liste est supérieure à la limite du JREST (150), ce deuxieme mode ne fonctionne pas
31
 
41
	 */
-
 
42
	public void selectionner(final boolean paginationProgressive, final String commentaireId, final String projetId, final String titre, final int start, final int nbElements, final Integer seqId) {
-
 
43
 
-
 
44
		// Ajout des paramètres et données à selectionner dans l'URL
32
	public void selectionner(final String commentaireId, String projetId, String titre, final int pageCourante, final int nbElements, final Integer seqId) {
45
		String nom = (titre == null) ? "%" : titre+"%";
Line 33... Line 46...
33
		String[] parametres = {projetId, commentaireId, titre};
46
		String[] parametres = {projetId, commentaireId, nom};
34
		
-
 
-
 
47
		
35
		HashMap<String, String> restrictions = new HashMap<String, String>();
48
		HashMap<String, String> restrictions = new HashMap<String, String>();
36
		restrictions.put("start", String.valueOf(pageCourante*nbElements));
49
		
37
		if (nbElements != -1)	{
50
		if (nbElements != -1)	{
38
			restrictions.put("limit", String.valueOf(nbElements));
-
 
39
		}
51
			restrictions.put("limit", String.valueOf(nbElements));
40
		
52
		}
41
		restrictions.put("orderby", "cc_nom ASC");
53
		restrictions.put("orderby", "ccm_titre ASC");
42
		
-
 
43
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
-
 
44
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
-
 
45
			@Override
54
 
46
			public void surReponse(JSONValue responseValue) {
-
 
47
				if (responseValue != null) {
-
 
48
					// Si la requête est un succès, réception d'un objet ou d'un tableau
55
		/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/
49
					JSONArray responseArray = responseValue.isArray();
-
 
50
					
-
 
51
					if (responseArray.get(1).isObject() != null) {
-
 
52
						final JSONObject reponse = responseArray.get(1).isObject();
-
 
53
						// Transformation du tableau JSON réponse en ListeInstitution
56
		if (paginationProgressive) {
54
						Commentaire commentaire = new Commentaire(reponse);
-
 
55
						// et on met à jour le demandeur des données
-
 
56
						if (seqId != null)	{
57
 
57
							Reponse reponseRequete = new Reponse(commentaire, seqId);
-
 
58
							vueARafraichir.rafraichir(reponseRequete);
-
 
59
						}
-
 
60
						else	{
58
			/** DEFINITION DU TUPLE DE DEPART **/
61
							vueARafraichir.rafraichir(commentaire);
-
 
62
						}			
-
 
63
					} else if (responseValue.isArray() != null) {
59
			restrictions.put("start", String.valueOf(start));
64
						final JSONArray reponse = responseValue.isArray();						
-
 
65
						CommentaireListe commentaires;
-
 
66
						if (reponse.get(1).isObject() != null)	{
-
 
67
							commentaires = new CommentaireListe(reponse.get(1).isArray());
60
			
68
						} else	{
-
 
69
							commentaires = new CommentaireListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
-
 
70
						}
-
 
Line -... Line 61...
-
 
61
			/** CONSTRUCTION DE LA REQUETE **/
-
 
62
    		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
-
 
63
 
-
 
64
    		/** ENVOI DE LA REQUETE **/
-
 
65
    		rb.envoyerRequete(null, new JsonRestRequestCallback()
-
 
66
    		{
-
 
67
    			/** RECEPTION DE LA REPONSE **/
-
 
68
    			public void surReponse(JSONValue responseValue)
-
 
69
    			{
71
						commentaires.setTaillePage(nbElements);
70
    				/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy.
-
 
71
    				 * On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/
-
 
72
    				
-
 
73
					if (seqId != null)	{
-
 
74
						if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste paginée, retour au sequenceur");
-
 
75
						Reponse reponseRequete = new Reponse(responseValue, seqId);
-
 
76
						vueARafraichir.rafraichir(reponseRequete);
-
 
77
					}
-
 
78
					else	{
-
 
79
						if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString());
-
 
80
						vueARafraichir.rafraichir(responseValue);
-
 
81
					}
-
 
82
    			}
-
 
83
    		});
-
 
84
		}
-
 
85
		/** GESTION DE LA REQUETE dans le cas d'une liste NON paginée progressive **/
-
 
86
		else {
-
 
87
 
-
 
88
			/** DEFINITION DU TUPLE DE DEPART **/
-
 
89
			restrictions.put("start", String.valueOf(start*nbElements));
-
 
90
			
-
 
91
			final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
-
 
92
			
-
 
93
			rb.envoyerRequete(null, new JsonRestRequestCallback() {
-
 
94
				@Override
-
 
95
				public void surReponse(JSONValue responseValue) {
-
 
96
					if (responseValue != null) {
-
 
97
 
-
 
98
						JSONObject responseObject = responseValue.isObject();
-
 
99
 
-
 
100
						if (responseObject != null) {
-
 
101
							// Si la réponse est un tableau, alors c'est une liste de commentaires qui a été retournée
-
 
102
							if (responseObject.get("commentaires").isArray() != null) {
-
 
103
								
-
 
104
								final JSONArray reponse = responseObject.get("commentaires").isArray();
-
 
105
 
-
 
106
								CommentaireListe commentaires = new CommentaireListe(reponse, responseObject.get("nbElements").isNumber(), vueARafraichir);
-
 
107
								
-
 
108
								commentaires.setTaillePage(nbElements);
-
 
109
								commentaires.setPageCourante(start);		
-
 
110
								
-
 
111
								vueARafraichir.rafraichir(commentaires);
-
 
112
 
-
 
113
							// Si la réponse est un objet, alors c'est un unique commentaire qui a été retournée
-
 
114
							} else if (responseObject.get("commentaires").isObject() != null) {
-
 
115
 
-
 
116
								final JSONObject reponse = responseObject.get("commentaires").isObject();
-
 
117
								Commentaire commentaire = new Commentaire(reponse);
-
 
118
								
72
						commentaires.setPageCourante(pageCourante);							
119
								// et on met à jour le demandeur des données
73
 
120
								if (seqId != null)	{
-
 
121
									if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste non paginée, retour au sequenceur");
-
 
122
									Reponse reponseRequete = new Reponse(commentaire, seqId);
-
 
123
									vueARafraichir.rafraichir(reponseRequete);
-
 
124
								}
-
 
125
								else	{
-
 
126
									if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste non paginée, retour à "+vueARafraichir.getClass().toString());
-
 
127
									vueARafraichir.rafraichir(commentaire);
-
 
128
								}
74
						if (seqId != null)	{
129
							}
75
							Reponse reponseRequete = new Reponse(commentaires, seqId);
-
 
76
							vueARafraichir.rafraichir(reponseRequete);
-
 
77
						}
-
 
78
						else	{
130
						} else {
79
							vueARafraichir.rafraichir(commentaires);
-
 
80
						}						
-
 
81
					} else {
-
 
82
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
131
							GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
83
					}
132
						}
84
				} else {
133
					} else {
85
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
134
						// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide
86
					if (commentaireId == null) {
135
						if (commentaireId == null) {
87
						CommentaireListe commentaires = new CommentaireListe(0);
136
							CommentaireListe commentaires = new CommentaireListe(0);
-
 
137
							if (seqId != null)	{
-
 
138
								Reponse reponseRequete = new Reponse(commentaires, seqId);
-
 
139
								vueARafraichir.rafraichir(reponseRequete);
-
 
140
							}
88
						if (seqId != null)	{
141
							else {
89
							Reponse reponseRequete = new Reponse(commentaires, seqId);
-
 
90
							vueARafraichir.rafraichir(reponseRequete);
-
 
91
						}
-
 
92
						else	{
142
								vueARafraichir.rafraichir(commentaires);
93
							vueARafraichir.rafraichir(commentaires);
143
							}					
94
						}			
144
						}
95
					}
145
					}
96
				}
146
				}
Line 97... Line 147...
97
			}
147
			});
98
		});
148
		}