| Line 1... |
Line 1... |
| 1 |
package org.tela_botanica.client.image;
|
1 |
package org.tela_botanica.client.image;
|
| Line 2... |
Line 2... |
| 2 |
|
2 |
|
| 3 |
import java.util.HashMap;
|
3 |
import java.util.HashMap;
|
| 4 |
import java.util.Iterator;
|
- |
|
| Line 5... |
Line 4... |
| 5 |
import java.util.Vector;
|
4 |
import java.util.Iterator;
|
| 6 |
|
5 |
|
| 7 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
6 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
| 8 |
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
|
7 |
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
|
| 9 |
import org.tela_botanica.client.modeles.ImageCarnet;
|
- |
|
| 10 |
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
|
8 |
import org.tela_botanica.client.modeles.ImageCarnet;
|
| - |
|
9 |
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
|
| 11 |
import org.tela_botanica.client.modeles.ListeImageCarnet;
|
10 |
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
|
| 12 |
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
|
11 |
import org.tela_botanica.client.modeles.ListeImageCarnet;
|
| 13 |
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
|
- |
|
| Line 14... |
Line 12... |
| 14 |
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO;
|
12 |
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
|
| 15 |
import org.tela_botanica.client.vues.BarreNotationVue;
|
13 |
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO;
|
| 16 |
|
- |
|
| 17 |
import com.google.gwt.json.client.JSONArray;
|
- |
|
| 18 |
import com.google.gwt.json.client.JSONObject;
|
14 |
|
| 19 |
import com.gwtext.client.core.Ext;
|
15 |
import com.google.gwt.json.client.JSONArray;
|
| 20 |
import com.gwtext.client.core.ExtElement;
|
16 |
import com.google.gwt.json.client.JSONObject;
|
| 21 |
import com.gwtext.client.data.ArrayReader;
|
17 |
import com.gwtext.client.data.ArrayReader;
|
| 22 |
import com.gwtext.client.data.FieldDef;
|
18 |
import com.gwtext.client.data.FieldDef;
|
| 23 |
import com.gwtext.client.data.IntegerFieldDef;
|
- |
|
| 24 |
import com.gwtext.client.data.MemoryProxy;
|
19 |
import com.gwtext.client.data.IntegerFieldDef;
|
| 25 |
import com.gwtext.client.data.Node;
|
20 |
import com.gwtext.client.data.MemoryProxy;
|
| 26 |
import com.gwtext.client.data.NodeTraversalCallback;
|
21 |
import com.gwtext.client.data.Node;
|
| 27 |
import com.gwtext.client.data.RecordDef;
|
22 |
import com.gwtext.client.data.RecordDef;
|
| 28 |
import com.gwtext.client.data.Store;
|
23 |
import com.gwtext.client.data.Store;
|
| Line 89... |
Line 84... |
| 89 |
{
|
84 |
{
|
| 90 |
// si le modèle n'est pas encore instancié
|
85 |
// si le modèle n'est pas encore instancié
|
| 91 |
if(!estInstancie)
|
86 |
if(!estInstancie)
|
| 92 |
{
|
87 |
{
|
| 93 |
// on en crée un nouveau
|
88 |
// on en crée un nouveau
|
| - |
|
89 |
estInstancie = true ;
|
| 94 |
return new ImageModele(im);
|
90 |
return new ImageModele(im);
|
| 95 |
}
|
91 |
}
|
| 96 |
else
|
92 |
else
|
| 97 |
{
|
93 |
{
|
| 98 |
// sinon on renvoit null, interdisant explicitement la création d'un autre exemplaire
|
94 |
// sinon on renvoit null, interdisant explicitement la création d'un autre exemplaire
|
| Line 127... |
Line 123... |
| 127 |
String motsClesFiltres[][] = getIMediateur().renvoyerFiltres() ;
|
123 |
String motsClesFiltres[][] = getIMediateur().renvoyerFiltres() ;
|
| Line 128... |
Line 124... |
| 128 |
|
124 |
|
| 129 |
// on rassemble les critères
|
125 |
// on rassemble les critères
|
| 130 |
String[][] criteres = {{"ci_ce_utilisateur", ""+getIMediateur().getIdentifiant()}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
|
126 |
String[][] criteres = {{"ci_ce_utilisateur", ""+getIMediateur().getIdentifiant()}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
|
| 131 |
// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
|
127 |
// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
|
| 132 |
NombreImageAsynchroneDAO niaDAO = new NombreImageAsynchroneDAO() ;
|
- |
|
| 133 |
niaDAO.setIModele(this) ;
|
128 |
NombreImageAsynchroneDAO niaDAO = new NombreImageAsynchroneDAO(this) ;
|
| Line 134... |
Line 129... |
| 134 |
niaDAO.obtenirNombreImages(this, criteres) ;
|
129 |
niaDAO.obtenirNombreImages(this, criteres) ;
|
| 135 |
|
130 |
|
| 136 |
// ensuite on demande la page correspondante avec les mêmes critères
|
131 |
// ensuite on demande la page correspondante avec les mêmes critères
|
| 137 |
String[][] criteres2 = { {"ci_limite" ,""+taillePage },{"ci_numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
|
132 |
String[][] criteres2 = { {"ci_limite" ,""+taillePage },{"ci_numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
|
| 138 |
// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
|
133 |
// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
|
| 139 |
ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO();
|
134 |
ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO(this);
|
| Line 140... |
Line 135... |
| 140 |
liaDAO.ObtenirListeImages(this, criteres2);
|
135 |
liaDAO.ObtenirListeImages(this, criteres2);
|
| 141 |
}
|
136 |
}
|
| 142 |
|
137 |
|
| 143 |
/**
|
138 |
/**
|
| 144 |
* Appelle le DAO d'upload qui va choisir la methode d'upload adaptée
|
139 |
* Appelle le DAO d'upload qui va choisir la methode d'upload adaptée
|
| 145 |
* et lancer l'interface appropriée
|
140 |
* et lancer l'interface appropriée
|
| 146 |
*/
|
141 |
*/
|
| 147 |
public void uploaderImages()
|
- |
|
| 148 |
{
|
142 |
public void uploaderImages()
|
| 149 |
ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ;
|
143 |
{
|
| Line 150... |
Line 144... |
| 150 |
IuADaO.setIModele(this) ;
|
144 |
ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO(this) ;
|
| 151 |
IuADaO.choisirMethodeUpload() ;
|
145 |
IuADaO.choisirMethodeUpload() ;
|
| Line 226... |
Line 220... |
| 226 |
String key = ids[i] ;
|
220 |
String key = ids[i] ;
|
| 227 |
ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
|
221 |
ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
|
| 228 |
ic.miseAJourInfoGenerales(commentaires, date, note) ;
|
222 |
ic.miseAJourInfoGenerales(commentaires, date, note) ;
|
| 229 |
mettreAjourBaseDeDonneesImageCarnet(ic) ;
|
223 |
mettreAjourBaseDeDonneesImageCarnet(ic) ;
|
| 230 |
}
|
224 |
}
|
| - |
|
225 |
|
| 231 |
}
|
226 |
}
|
| Line 232... |
Line 227... |
| 232 |
|
227 |
|
| 233 |
/**
|
228 |
/**
|
| 234 |
* Ajoute un nouveau mot clés à la liste des mots clés locale
|
229 |
* Ajoute un nouveau mot clés à la liste des mots clés locale
|
| Line 244... |
Line 239... |
| 244 |
* Appelle le DAO chargé de mettre à jour la base de données avec
|
239 |
* Appelle le DAO chargé de mettre à jour la base de données avec
|
| 245 |
* les toutes les informations des images modifiées par l'utilisateur
|
240 |
* les toutes les informations des images modifiées par l'utilisateur
|
| 246 |
*/
|
241 |
*/
|
| 247 |
public void mettreAJourBaseDeDonneesListeImageCarnet()
|
242 |
public void mettreAJourBaseDeDonneesListeImageCarnet()
|
| 248 |
{
|
243 |
{
|
| 249 |
ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();
|
244 |
ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO(this);
|
| 250 |
liDaO.setIModele(this);
|
- |
|
| Line 251... |
Line 245... |
| 251 |
|
245 |
|
| 252 |
liDaO.SynchroniserBaseDeDonnees(cacheImage);
|
246 |
liDaO.SynchroniserBaseDeDonnees(cacheImage);
|
| Line 253... |
Line 247... |
| 253 |
}
|
247 |
}
|
| Line 257... |
Line 251... |
| 257 |
* les toutes les informations d'une image donnée
|
251 |
* les toutes les informations d'une image donnée
|
| 258 |
* @param ic l'image à synchroniser avec la base
|
252 |
* @param ic l'image à synchroniser avec la base
|
| 259 |
*/
|
253 |
*/
|
| 260 |
public void mettreAjourBaseDeDonneesImageCarnet(ImageCarnet ic)
|
254 |
public void mettreAjourBaseDeDonneesImageCarnet(ImageCarnet ic)
|
| 261 |
{
|
255 |
{
|
| 262 |
ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO();
|
256 |
ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO(this);
|
| 263 |
iaDaO.SynchroniserBaseDeDonnees(ic) ;
|
257 |
iaDaO.SynchroniserBaseDeDonnees(ic) ;
|
| 264 |
}
|
258 |
}
|
| Line 265... |
Line 259... |
| 265 |
|
259 |
|
| 266 |
/**
|
260 |
/**
|
| Line 269... |
Line 263... |
| 269 |
* @param ids les identifiants des images selectionnées
|
263 |
* @param ids les identifiants des images selectionnées
|
| 270 |
*/
|
264 |
*/
|
| 271 |
public void supprimerImages(String[] ids)
|
265 |
public void supprimerImages(String[] ids)
|
| 272 |
{
|
266 |
{
|
| 273 |
String rids[] = new String[ids.length] ;
|
267 |
String rids[] = new String[ids.length] ;
|
| 274 |
ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO() ;
|
268 |
ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO(this) ;
|
| 275 |
liDao.setIModele(this);
|
- |
|
| Line 276... |
Line 269... |
| 276 |
|
269 |
|
| 277 |
for (int i = 0; i < ids.length; i++)
|
270 |
for (int i = 0; i < ids.length; i++)
|
| 278 |
{
|
271 |
{
|
| 279 |
String key = ids[i] ;
|
272 |
String key = ids[i] ;
|
| Line 297... |
Line 290... |
| 297 |
{
|
290 |
{
|
| 298 |
// si l'on a reçu une liste d'images
|
291 |
// si l'on a reçu une liste d'images
|
| 299 |
if(nouvelleDonnees instanceof ListeImageCarnet)
|
292 |
if(nouvelleDonnees instanceof ListeImageCarnet)
|
| 300 |
{
|
293 |
{
|
| 301 |
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
|
294 |
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
|
| 302 |
Object[][] photoData = new Object[data.size()][7];
|
295 |
Object[][] photoData = new Object[data.size()][8];
|
| 303 |
int i = 0 ;
|
296 |
int i = 0 ;
|
| Line 304... |
Line 297... |
| 304 |
|
297 |
|
| 305 |
if(data.size() == 0)
|
298 |
if(data.size() == 0)
|
| 306 |
{
|
299 |
{
|
| Line 316... |
Line 309... |
| 316 |
photoData[i][2] = im.getIptcCity() ;
|
309 |
photoData[i][2] = im.getIptcCity() ;
|
| 317 |
photoData[i][3] = im.getMake()+" "+im.getModel() ;
|
310 |
photoData[i][3] = im.getMake()+" "+im.getModel() ;
|
| 318 |
photoData[i][4] = im.getSUrl() ;
|
311 |
photoData[i][4] = im.getSUrl() ;
|
| 319 |
photoData[i][5] = im.getMUrl() ;
|
312 |
photoData[i][5] = im.getMUrl() ;
|
| 320 |
photoData[i][6] = im.getLUrl() ;
|
313 |
photoData[i][6] = im.getLUrl() ;
|
| - |
|
314 |
photoData[i][7] = im.getNote() ;
|
| Line 321... |
Line 315... |
| 321 |
|
315 |
|
| 322 |
i++ ;
|
316 |
i++ ;
|
| Line 323... |
Line 317... |
| 323 |
}
|
317 |
}
|
| Line 328... |
Line 322... |
| 328 |
FieldDef defLieImage = new StringFieldDef("lie_image");
|
322 |
FieldDef defLieImage = new StringFieldDef("lie_image");
|
| 329 |
FieldDef defAppImage = new StringFieldDef("app_image");
|
323 |
FieldDef defAppImage = new StringFieldDef("app_image");
|
| 330 |
FieldDef defUrlImageS = new StringFieldDef("url_image_S");
|
324 |
FieldDef defUrlImageS = new StringFieldDef("url_image_S");
|
| 331 |
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
|
325 |
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
|
| 332 |
FieldDef defUrlImage = new StringFieldDef("url_image");
|
326 |
FieldDef defUrlImage = new StringFieldDef("url_image");
|
| - |
|
327 |
FieldDef defNoteImage = new IntegerFieldDef("note_image") ;
|
| 333 |
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage};
|
328 |
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage,defNoteImage};
|
| 334 |
RecordDef rd = new RecordDef(defTab) ;
|
329 |
RecordDef rd = new RecordDef(defTab) ;
|
| Line 335... |
Line 330... |
| 335 |
|
330 |
|
| 336 |
final MemoryProxy dataProxy = new MemoryProxy(photoData);
|
331 |
final MemoryProxy dataProxy = new MemoryProxy(photoData);
|
| Line 461... |
Line 456... |
| 461 |
if(cacheImage.containsKey(ids[i]))
|
456 |
if(cacheImage.containsKey(ids[i]))
|
| 462 |
{
|
457 |
{
|
| 463 |
ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ;
|
458 |
ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ;
|
| 464 |
ic.mettreAjourMotsCles(motsClesEnCours) ;
|
459 |
ic.mettreAjourMotsCles(motsClesEnCours) ;
|
| Line 465... |
Line 460... |
| 465 |
|
460 |
|
| 466 |
ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO() ;
|
461 |
ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO(this) ;
|
| 467 |
imgDao.SynchroniserMotsClesImageBaseDeDonnees(ic) ;
|
462 |
imgDao.SynchroniserMotsClesImageBaseDeDonnees(ic) ;
|
| 468 |
}
|
463 |
}
|
| Line 469... |
Line 464... |
| 469 |
}
|
464 |
}
|
| Line 475... |
Line 470... |
| 475 |
/**
|
470 |
/**
|
| 476 |
* Appelle le DAO des mots clés pour obtenir l'arbre complet stocké dans la base de données
|
471 |
* Appelle le DAO des mots clés pour obtenir l'arbre complet stocké dans la base de données
|
| 477 |
*/
|
472 |
*/
|
| 478 |
public void initialiserArbreMotsCles()
|
473 |
public void initialiserArbreMotsCles()
|
| 479 |
{
|
474 |
{
|
| 480 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
|
475 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
|
| 481 |
MCDao.setIModele(this) ;
|
- |
|
| 482 |
|
- |
|
| 483 |
MCDao.obtenirListeMotsCles(this) ;
|
476 |
MCDao.obtenirListeMotsCles(this) ;
|
| 484 |
}
|
477 |
}
|
| Line 485... |
Line 478... |
| 485 |
|
478 |
|
| 486 |
/**
|
479 |
/**
|
| Line 498... |
Line 491... |
| 498 |
* @param n le nouveau noeud contenant le mot clé
|
491 |
* @param n le nouveau noeud contenant le mot clé
|
| 499 |
* @param arbreMC l'arbre des mots cles en cours
|
492 |
* @param arbreMC l'arbre des mots cles en cours
|
| 500 |
*/
|
493 |
*/
|
| 501 |
public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC)
|
494 |
public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC)
|
| 502 |
{
|
495 |
{
|
| 503 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
|
496 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
|
| 504 |
MCDao.setIModele(this) ;
|
- |
|
| Line 505... |
Line 497... |
| 505 |
|
497 |
|
| 506 |
String[] usObj = (String[])n.getUserObject() ;
|
498 |
String[] usObj = (String[])n.getUserObject() ;
|
| 507 |
String motCle = usObj[0] ;
|
499 |
String motCle = usObj[0] ;
|
| 508 |
String id = usObj[1] ;
|
500 |
String id = usObj[1] ;
|
| Line 531... |
Line 523... |
| 531 |
* @param arbreMC l'arbre des mots clés en cours
|
523 |
* @param arbreMC l'arbre des mots clés en cours
|
| 532 |
*/
|
524 |
*/
|
| 533 |
public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC)
|
525 |
public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC)
|
| 534 |
{
|
526 |
{
|
| Line 535... |
Line 527... |
| 535 |
|
527 |
|
| 536 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
|
- |
|
| Line 537... |
Line 528... |
| 537 |
MCDao.setIModele(this) ;
|
528 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
|
| 538 |
|
529 |
|
| 539 |
String[] usObj = (String[])n.getUserObject() ;
|
530 |
String[] usObj = (String[])n.getUserObject() ;
|
| Line 553... |
Line 544... |
| 553 |
* @param arbreMC l'arbre des mots clés en cours
|
544 |
* @param arbreMC l'arbre des mots clés en cours
|
| 554 |
*/
|
545 |
*/
|
| 555 |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC)
|
546 |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC)
|
| 556 |
{
|
547 |
{
|
| Line 557... |
Line 548... |
| 557 |
|
548 |
|
| 558 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
|
- |
|
| Line 559... |
Line 549... |
| 559 |
MCDao.setIModele(this) ;
|
549 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
|
| 560 |
|
550 |
|
| 561 |
String[] usObj = (String[])n.getUserObject() ;
|
551 |
String[] usObj = (String[])n.getUserObject() ;
|
| 562 |
String motCle = usObj[0] ;
|
552 |
String motCle = usObj[0] ;
|
| Line 586... |
Line 576... |
| 586 |
* @param n le noeud deplace (et son sous arbre associe)
|
576 |
* @param n le noeud deplace (et son sous arbre associe)
|
| 587 |
* @param arbreMC l'arbre des mots cles en cours
|
577 |
* @param arbreMC l'arbre des mots cles en cours
|
| 588 |
*/
|
578 |
*/
|
| 589 |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC)
|
579 |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC)
|
| 590 |
{
|
580 |
{
|
| 591 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
|
581 |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
|
| 592 |
MCDao.setIModele(this) ;
|
- |
|
| Line 593... |
Line 582... |
| 593 |
|
582 |
|
| 594 |
String[] usObj = (String[])n.getUserObject() ;
|
583 |
String[] usObj = (String[])n.getUserObject() ;
|
| 595 |
String motCle = usObj[0] ;
|
584 |
String motCle = usObj[0] ;
|
| 596 |
String id = usObj[1] ;
|
585 |
String id = usObj[1] ;
|
| Line 674... |
Line 663... |
| 674 |
/**
|
663 |
/**
|
| 675 |
* Notifie le mediateur que l'upload ou le download est termine et qu'il faut rafraichir les vues avec les nouvelles données
|
664 |
* Notifie le mediateur que l'upload ou le download est termine et qu'il faut rafraichir les vues avec les nouvelles données
|
| 676 |
*/
|
665 |
*/
|
| 677 |
public void requeteTerminee()
|
666 |
public void requeteTerminee()
|
| 678 |
{
|
667 |
{
|
| - |
|
668 |
getIMediateur().demasquerChargement() ;
|
| 679 |
getIMediateur().rafraichirToutesVues() ;
|
669 |
getIMediateur().rafraichirToutesVues() ;
|
| 680 |
}
|
670 |
}
|
| Line 681... |
Line 671... |
| 681 |
|
671 |
|
| 682 |
/**
|
672 |
/**
|