5,16 → 5,15 |
import java.util.Set; |
|
import com.google.gwt.json.client.JSONObject; |
|
/** |
* |
* Classe representant une image du carnet, |
* elle ne contient pas d'image à proprement parler mais |
* plutôt les informations associées ainsi que l'url distante. |
* C'est une table de hachage qui contient des paires propriété/valeur |
* Classe representant une image du carnet, elle ne contient pas d'image à |
* proprement parler mais plutôt les informations associées ainsi que l'url |
* distante. C'est une table de hachage qui contient des paires propriété/valeur |
* |
*/ |
public class ImageCarnet extends HashMap<String, String> { |
|
|
/** |
* |
23,345 → 22,347 |
|
/** |
* Constructeur avec un objet JSON |
* |
* @param image |
*/ |
public ImageCarnet(JSONObject image) |
{ |
public ImageCarnet(JSONObject image) { |
// l'objet JSON est une table de hachage |
Set<String> im = image.keySet() ; |
|
Set<String> im = image.keySet(); |
|
// on la parcourt pour chaque clé |
for (Iterator<String> iterator = im.iterator(); iterator.hasNext();) { |
|
|
// si elle est associée à une valeur, on l'ajoute |
String key = iterator.next(); |
if(image.get(key).isString() != null) |
{ |
String valeur = image.get(key).isString().stringValue() ; |
this.put(key, valeur) ; |
} |
else |
{ |
if (image.get(key).isString() != null) { |
String valeur = image.get(key).isString().stringValue(); |
this.put(key, valeur); |
} else { |
// sinon on ajoute la clé avec une valeur vide |
String valeur = " " ; |
this.put(key, valeur) ; |
String valeur = " "; |
this.put(key, valeur); |
} |
|
|
} |
|
} |
|
|
/** |
* Surcharge de toString qui affiche toutes les propriétés de l'image |
*/ |
|
public String toString() |
{ |
|
public String toString() { |
String valeur = " "; |
|
for (Iterator<String> iterator = this.keySet().iterator(); iterator.hasNext();) { |
|
|
|
for (Iterator<String> iterator = this.keySet().iterator(); iterator |
.hasNext();) { |
|
String key = iterator.next(); |
if(this.get(key) != null) |
{ |
valeur += "cle : "+key+" valeur :"+this.get(key)+"\n" ; |
if (this.get(key) != null) { |
valeur += "cle : " + key + " valeur :" + this.get(key) + "\n"; |
} |
|
|
} |
|
return valeur ; |
|
return valeur; |
} |
|
|
/** |
* Pour éviter que l'on traite des valeurs nulles à l'affichage |
* on passe par cette fonction qui retire les charactères nuls qui font planter |
* l'affichage, il ne faut pas utiliser get directement |
* Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par |
* cette fonction qui retire les charactères nuls qui font planter |
* l'affichage, il ne faut pas utiliser get directement |
* |
* @param cle |
* @return la valeur associée à la clé |
*/ |
public String renvoyerValeurCorrecte(String cle) |
{ |
if(this.containsKey((cle))) |
{ |
String valeur = this.get(cle) ; |
if(valeur.equals("null") || valeur == null) |
{ |
return " " ; |
} |
else |
{ |
char nullChar = '\u0000' ; |
String sNull = ""+nullChar ; |
valeur = valeur.replaceAll(sNull, "") ; |
return valeur ; |
public String renvoyerValeurCorrecte(String cle) { |
if (this.containsKey((cle))) { |
String valeur = this.get(cle); |
if (valeur.equals("null") || valeur == null) { |
return " "; |
} else { |
char nullChar = '\u0000'; |
String sNull = "" + nullChar; |
valeur = valeur.replaceAll(sNull, ""); |
return valeur; |
} |
} else { |
return " "; |
} |
else |
{ |
return " " ; |
} |
} |
|
/** |
* Acesseur pour l'id de l'image |
* |
* @return l'id de l'image |
*/ |
public String getId() { |
|
return renvoyerValeurCorrecte("ci_id_image") ; |
|
return renvoyerValeurCorrecte("ci_id_image"); |
} |
|
|
/** |
* Acesseur pour le numero d'ordre de l'image |
* |
* @return l'ordre de l'image |
*/ |
public String getOrdre() { |
|
return renvoyerValeurCorrecte("ci_ordre") ; |
|
return renvoyerValeurCorrecte("ci_ordre"); |
} |
|
|
/** |
* Base de l'url serveur pour les images |
* |
* @return url racine pour les images |
*/ |
public String getBaseUrl() |
{ |
return "http://162.38.234.9/Documents/images_serveur/" ; |
public String getBaseUrl() { |
return "http://162.38.234.9/Documents/images_serveur/"; |
} |
|
|
/** |
* Renvoie le nom de base du fichier image et ses sous dossier |
* @return le nom de base du fichier de type (XXX_XXX_XXX), et ses sous dossier |
* |
* @return le nom de base du fichier de type (XXX_XXX_XXX), et ses sous |
* dossier |
*/ |
public String[] getBaseFileName() |
{ |
String id = getId() ; |
|
int maxZeros = 9 - id.length() ; |
|
for(int i = 0 ; i < maxZeros ; i++) |
{ |
id = "0"+id ; |
public String[] getBaseFileName() { |
String id = getId(); |
|
int maxZeros = 9 - id.length(); |
|
for (int i = 0; i < maxZeros; i++) { |
id = "0" + id; |
} |
|
String dossierNv1 = id.substring(0, 3) ; |
String dossierNv2 = id.substring(3, 6) ; |
String fichierNv = id.substring(6, 9) ; |
|
String nomFichier = dossierNv1+"_"+dossierNv2+"_"+fichierNv ; |
|
String[] infosFichier = {nomFichier , dossierNv1 , dossierNv2} ; |
|
return infosFichier ; |
|
String dossierNv1 = id.substring(0, 3); |
String dossierNv2 = id.substring(3, 6); |
String fichierNv = id.substring(6, 9); |
|
String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv; |
|
String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 }; |
|
return infosFichier; |
} |
|
/** |
* Renvoie le chemin et nom du fichier grand format |
* |
* @return le chemin du fichier grand format |
*/ |
public String getLUrl() { |
|
String[] infosFichier = getBaseFileName() ; |
|
return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/L/"+infosFichier[0]+"_L.jpg" ; |
|
String[] infosFichier = getBaseFileName(); |
|
return getBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/L/" |
+ infosFichier[0] + "_L.jpg"; |
} |
|
|
/** |
* Renvoie le chemin et nom du fichier petit format |
* |
* @return le chemin du fichier petit format |
*/ |
public String getSUrl() { |
|
String[] infosFichier = getBaseFileName() ; |
|
return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/S/"+infosFichier[0]+"_S.jpg" ; |
|
String[] infosFichier = getBaseFileName(); |
|
return getBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/S/" |
+ infosFichier[0] + "_S.jpg"; |
} |
|
|
/** |
* Renvoie le chemin et nom du fichier moyen format |
* |
* @return le chemin du fichier moyen format |
*/ |
public String getMUrl() { |
|
String[] infosFichier = getBaseFileName() ; |
|
return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/M/"+infosFichier[0]+"_M.jpg" ; |
|
String[] infosFichier = getBaseFileName(); |
|
return getBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/M/" |
+ infosFichier[0] + "_M.jpg"; |
} |
|
|
/** |
* Renvoie la taille de l'image |
* @return un tableau de deux string contenant la hauteur puis la largeur |
* |
* @return un tableau de deux string contenant la hauteur puis la largeur |
*/ |
public String[] getTailleImage() |
{ |
String[] XY = { renvoyerValeurCorrecte("ci_meta_height") , renvoyerValeurCorrecte("ci_meta_width") } ; |
return XY ; |
public String[] getTailleImage() { |
String[] XY = { renvoyerValeurCorrecte("ci_meta_height"), |
renvoyerValeurCorrecte("ci_meta_width") }; |
return XY; |
} |
|
public String[] getNote() |
{ |
String[] note = {renvoyerValeurCorrecte("ci_note_image") } ; |
return note ; |
|
public String[] getNote() { |
String[] note = { renvoyerValeurCorrecte("ci_note_image") }; |
return note; |
} |
|
/** |
|
/** |
* Renvoie la date exif associée à l'image |
* |
* @return la date associée à l'image |
*/ |
public String getDate() { |
|
return renvoyerValeurCorrecte("ci_meta_date") ; |
|
return renvoyerValeurCorrecte("ci_meta_date"); |
} |
|
/** |
* Renvoie la ville associée à l'image |
* |
* @return la ville iptc |
*/ |
public Object getIptcCity() { |
|
return renvoyerValeurCorrecte("ci_meta_iptc_city") ; |
|
return renvoyerValeurCorrecte("ci_meta_iptc_city"); |
} |
|
/** |
* Renvoie le fabricant de l'appareil |
* |
* @return le fabricant |
*/ |
public String getMake() { |
|
return renvoyerValeurCorrecte("ci_meta_make") ; |
|
return renvoyerValeurCorrecte("ci_meta_make"); |
} |
|
/** |
* Renvoie le modele de l'appareil |
* |
* @return le modele |
*/ |
public String getModel() { |
|
return renvoyerValeurCorrecte("ci_meta_model") ; |
|
return renvoyerValeurCorrecte("ci_meta_model"); |
} |
|
|
/** |
* Renvoie un tableau nom / valeur de toutes les metadonnées Iptc |
* |
* @return les métadonnées iptc |
*/ |
public String[][] getMetadonnesIptc() { |
|
String[][] metaIptc = new String[14][2] ; |
int elem = 0 ; |
|
for (Iterator<String> it = this.keySet().iterator(); it.hasNext();) |
{ |
|
|
String[][] metaIptc = new String[14][2]; |
int elem = 0; |
|
for (Iterator<String> it = this.keySet().iterator(); it.hasNext();) { |
|
String key = it.next(); |
|
// on filtre le "ci" |
String type[] = key.split("_",3) ; |
|
|
// si c'est une metadonnee exif ou iptc |
if(type[1].equals("meta")) |
{ |
String[] genre = type[2].split("_",2) ; |
if(genre[0].equals("iptc")) |
{ |
String nom = genre[1] ; |
metaIptc[elem][0] = nom ; |
metaIptc[elem][1] = renvoyerValeurCorrecte(key) ; |
elem++ ; |
} |
|
} |
|
|
// on filtre le "ci" |
String type[] = key.split("_", 3); |
|
// si c'est une metadonnee exif ou iptc |
if (type[1].equals("meta")) { |
String[] genre = type[2].split("_", 2); |
if (genre[0].equals("iptc")) { |
String nom = genre[1]; |
metaIptc[elem][0] = nom; |
metaIptc[elem][1] = renvoyerValeurCorrecte(key); |
elem++; |
} |
|
} |
|
} |
|
return metaIptc ; |
|
return metaIptc; |
} |
|
|
/** |
* Renvoie un tableau nom / valeur de toutes les metadonnées Exif |
* |
* @return les métadonnées Exif |
*/ |
public String[][] getMetadonnesExif() { |
|
String[][] metaExif = new String[31][2] ; |
int elem = 0 ; |
|
for (Iterator<String> it = this.keySet().iterator(); it.hasNext();) |
{ |
|
|
String[][] metaExif = new String[31][2]; |
int elem = 0; |
|
for (Iterator<String> it = this.keySet().iterator(); it.hasNext();) { |
|
String key = it.next(); |
|
// on filtre le "ci" |
String type[] = key.split("_",3) ; |
|
|
// si c'est une metadonnee exif ou iptc |
if(type[1].equals("meta")) |
{ |
String[] genre = type[2].split("_",2) ; |
if(genre[0].equals("exif")) |
{ |
String nom = genre[1] ; |
metaExif[elem][0] = nom ; |
metaExif[elem][1] = renvoyerValeurCorrecte(key) ; |
elem++ ; |
} |
|
} |
|
|
// on filtre le "ci" |
String type[] = key.split("_", 3); |
|
// si c'est une metadonnee exif ou iptc |
if (type[1].equals("meta")) { |
String[] genre = type[2].split("_", 2); |
if (genre[0].equals("exif")) { |
String nom = genre[1]; |
metaExif[elem][0] = nom; |
metaExif[elem][1] = renvoyerValeurCorrecte(key); |
elem++; |
} |
|
} |
|
} |
|
return metaExif ; |
|
|
return metaExif; |
|
} |
|
|
/** |
* Renvoie un tableau nom / valeur contenant les infos générales |
* |
* @return les infos générales |
*/ |
public String[][] getInfoGenerales() { |
|
String[][] metaGen = new String[2][2] ; |
|
metaGen[0][0] = "ci_meta_comment" ; |
metaGen[0][1] = this.renvoyerValeurCorrecte("ci_meta_comment") ; |
|
metaGen[1][0] = "ci_meta_date" ; |
metaGen[1][1] = this.renvoyerValeurCorrecte("ci_meta_date") ; |
|
return metaGen ; |
|
String[][] metaGen = new String[2][2]; |
|
metaGen[0][0] = "ci_meta_comment"; |
metaGen[0][1] = this.renvoyerValeurCorrecte("ci_meta_comment"); |
|
metaGen[1][0] = "ci_meta_date"; |
metaGen[1][1] = this.renvoyerValeurCorrecte("ci_meta_date"); |
|
return metaGen; |
} |
|
|
/** |
* Renvoie une string contenant les mots clés séparés par des ',' |
* |
* @return les mots clés |
*/ |
public String getMotsCles() { |
|
return renvoyerValeurCorrecte("ci_meta_mots_cles") ; |
|
return renvoyerValeurCorrecte("ci_meta_mots_cles"); |
} |
|
|
/** |
* Met à jour le commenentaire et la date |
* @param commentaires le nouveau commentaire |
* @param date la nouvelle date |
* |
* @param commentaires |
* le nouveau commentaire |
* @param date |
* la nouvelle date |
*/ |
public void miseAJourInfoGenerales(String commentaires, String date, String note) |
{ |
put("ci_meta_comment",commentaires) ; |
put("ci_note_image",note) ; |
put("ci_meta_date",date) ; |
public void miseAJourInfoGenerales(String commentaires, String date, |
String note) { |
put("ci_meta_comment", commentaires); |
put("ci_note_image", note); |
put("ci_meta_date", date); |
} |
|
|
/** |
* Met à jour les mots clés |
* @param motsClesEnCours la liste de mots clés séparés par des ',' |
* |
* @param motsClesEnCours |
* la liste de mots clés séparés par des ',' |
*/ |
public void mettreAjourMotsCles(String motsClesEnCours) { |
|
put("ci_meta_mots_cles",motsClesEnCours) ; |
|
|
put("ci_meta_mots_cles", motsClesEnCours); |
|
} |
|
|
} |