/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java |
---|
124,42 → 124,14 |
{ |
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 |
*/ |
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 ; |
} |
/** |
* Renvoie le chemin et nom du fichier grand format |
* @return le chemin du fichier grand format |
*/ |
public String getLUrl() { |
public String getUrl() { |
String[] infosFichier = getBaseFileName() ; |
return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/L/"+infosFichier[0]+"_L.jpg" ; |
return getBaseUrl()+(String)this.get("ci_id_image")+".jpg" ; |
} |
/** |
168,9 → 140,7 |
*/ |
public String getSUrl() { |
String[] infosFichier = getBaseFileName() ; |
return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/S/"+infosFichier[0]+"_S.jpg" ; |
return getBaseUrl()+(String)this.get("ci_id_image")+"_S.jpg" ; |
} |
/** |
179,9 → 149,7 |
*/ |
public String getMUrl() { |
String[] infosFichier = getBaseFileName() ; |
return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/M/"+infosFichier[0]+"_M.jpg" ; |
return getBaseUrl()+(String)this.get("ci_id_image")+"_M.jpg" ; |
} |
/** |
/trunk/src/org/tela_botanica/client/modeles/ListeImageAsynchroneDAO.java |
---|
58,14 → 58,10 |
{ |
for (int i = 0; i < criteres.length; i++) { |
if(!criteres[i][1].equals("")) |
requete += criteres[i][0]+"="+criteres[i][1] ; |
if(i != criteres.length - 1) |
{ |
if(i!= 0) |
{ |
requete += "&"; |
} |
requete += criteres[i][0]+"="+criteres[i][1] ; |
requete += "&" ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/NombreImageAsynchroneDAO.java |
---|
51,15 → 51,16 |
for (int i = 0; i < criteres.length; i++) { |
if(!criteres[i][0].equals("ci_ordre")) |
{ |
if(!criteres[i][1].equals("")) |
{ |
if(i != 0) |
{ |
if(i!= 0) |
{ |
requete += "&"; |
} |
requete += criteres[i][0]+"="+criteres[i][1] ; |
requete += "&" ; |
} |
requete += criteres[i][0]+"="+criteres[i][1] ; |
if(i != criteres.length - 1) |
{ |
requete += "&" ; |
} |
} |
} |
} |
67,7 → 68,6 |
// on fait un get asynchrone |
HTTPRequest.asyncGet("jrest/InventoryImageCount/"+iModele.getIdentifiant()+"/"+requete, new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
final JSONValue responseValue = JSONParser.parse(responseText); |
/trunk/src/org/tela_botanica/client/CarnetEnLigneMediateur.java |
---|
38,7 → 38,8 |
private void _CarnetEnLigneMediateur() { |
ImageMediateur.Instance() ; |
ImageMediateur.Instance() ; |
//new ImageMediateur(this); |
new ObservationMediateur(this); |
} |
104,7 → 105,10 |
/** |
* Deconnecte l'utilisateur passe en parametre |
* @param String uti (utilisateur connecte) |
*/ |
public void deconnecterUtilisateur() { |
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java |
---|
2,10 → 2,8 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.interfaces.VueListable; |
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue; |
import org.tela_botanica.client.vues.ArbreMotsClesVue; |
import org.tela_botanica.client.vues.BarreOutilsVue; |
import org.tela_botanica.client.vues.BarreRechercheFiltreVue; |
import org.tela_botanica.client.vues.GalerieImageVue; |
import org.tela_botanica.client.vues.ListeImageVue; |
import org.tela_botanica.client.vues.MenuImageVue; |
116,16 → 114,6 |
private boolean selection = false ; |
/** |
* Filtre pour les mots cles |
*/ |
private ArbreMotsClesFiltreVue filtreMotsCles = null ; |
/** |
* Filtre pour les commentaires |
*/ |
private BarreRechercheFiltreVue filtreCommentaires = null ; |
/** |
* constructeur privé (on accède a la classe par la méthode getInstance |
*/ |
private ImageMediateur() |
184,9 → 172,6 |
detailsEtMotsCles.setTitleCollapse(true); |
detailsEtMotsCles.setCollapsible(true); |
filtreMotsCles = new ArbreMotsClesFiltreVue(this) ; |
filtreCommentaires = new BarreRechercheFiltreVue(this) ; |
// on crée le panneau conteneur des métadonnées et infos |
metadonneesIptcExif = new PanneauMetadonneesVue(this) ; |
// et on l'inclut dans le volet approprié |
347,24 → 332,6 |
} |
/** |
* Accesseur pour l'arbre des filtres |
* @return l'arbre pour filtrer les mots clés |
*/ |
public ArbreMotsClesFiltreVue getFiltreMotsCles() |
{ |
return filtreMotsCles ; |
} |
/** |
* Accesseur pour la barre de recherche |
* @return la barre de recherche pour filtrer les commentaires |
*/ |
public BarreRechercheFiltreVue getFiltreCommentaires() |
{ |
return filtreCommentaires ; |
} |
/** |
* Renvoie la vue sélectionné par l'utilisateur |
* @return la vue selectionnée par l'utilisateur |
*/ |
998,43 → 965,7 |
masked.unmask() ; |
} |
} |
public void afficherFiltreMotsCles() { |
getIModele().obtenirArbreMotCle(filtreMotsCles) ; |
} |
/** |
* C'est dans cette fonction que doivent être renvoyé les valeurs des filtres |
* sous forme de tableau [nom, valeur] |
* @return Les noms et valeurs des filtres |
*/ |
public String[][] renvoyerFiltres() |
{ |
String[][] valeursFiltres = { filtreMotsCles.renvoyerValeursAFiltrer() , filtreCommentaires.renvoyerValeursAFiltrer() } ; |
return valeursFiltres ; |
} |
/** |
* Indique si les filtres ont changés depuis la dernière requête |
* (il faut faire un OR sur le résultat de toutes les fonctions |
* renvoyerEtatFiltre s'il y a plus d'un filtre) |
* @return Une indication de changements de filtres |
*/ |
public boolean getEtatFiltres() |
{ |
System.out.println("les filtres sont modifiés ? "+(filtreMotsCles.renvoyerEtatFiltre() || filtreCommentaires.renvoyerEtatFiltre())) ; |
return (filtreMotsCles.renvoyerEtatFiltre() || filtreCommentaires.renvoyerEtatFiltre()); |
} |
public void afficherFiltreCommentaires() { |
filtreCommentaires.afficherFiltre() ; |
} |
} |
/trunk/src/org/tela_botanica/client/image/ImageModele.java |
---|
123,10 → 123,8 |
*/ |
public void obtenirPhotoGalerie(Rafraichissable r) |
{ |
String motsClesFiltres[][] = getIMediateur().renvoyerFiltres() ; |
// on rassemble les critères |
String[][] criteres = {{"ci_ce_utilisateur", ""+getIMediateur().getIdentifiant()}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ; |
String[][] criteres = {{"ci_ce_utilisateur", ""+getIMediateur().getIdentifiant()} } ; |
// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages) |
NombreImageAsynchroneDAO niaDAO = new NombreImageAsynchroneDAO() ; |
niaDAO.setIModele(this) ; |
133,7 → 131,7 |
niaDAO.obtenirNombreImages(this, criteres) ; |
// ensuite on demande la page correspondante avec les mêmes critères |
String[][] criteres2 = { {"ci_limite" ,""+taillePage },{"ci_numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ; |
String[][] criteres2 = { {"ci_limite" ,""+taillePage },{"ci_numero_page",""+pageEncours} } ; |
// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images |
ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO(); |
liaDAO.ObtenirListeImages(this, criteres2); |
300,12 → 298,6 |
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ; |
Object[][] photoData = new Object[data.size()][7]; |
int i = 0 ; |
if(data.size() == 0) |
{ |
pageEncours = 0 ; |
} |
// on la parse et on récupère les informations quiç nous interessent |
for (Iterator it = data.keySet().iterator(); it.hasNext();) |
{ |
656,7 → 648,7 |
Double nPageInt = new Double(nPageRound) ; |
// on convertit en entier |
return Math.abs(nPageInt.intValue()) ; |
return nPageInt.intValue() ; |
} |
/** |
687,11 → 679,6 |
return getIMediateur().getIdentifiant() ; |
} |
/** |
* renvoie la taille d'une image grâce à son identifiant |
* @param id l'identifiant de l'image |
* @return un tableau contenant la longueur et la hauteur de l'image |
*/ |
public String[] obtenirTailleImage(String id) { |
return ((ImageCarnet)cacheImage.get(id)).getTailleImage() ; |
/trunk/src/org/tela_botanica/client/vues/BarreRechercheFiltreVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/pageToolBarVue.java |
---|
317,6 → 317,8 |
{ |
surTotalPage.setText(" sur "+pageTotale) ; |
System.out.println("Nombre d'éléments :"+nbElement); |
if(nbElement == 0) |
{ |
champPage.setValue(""+(0)) ; |
/trunk/src/org/tela_botanica/client/vues/MenuImageVue.java |
---|
28,17 → 28,9 |
*/ |
private Item supprimerImage = null ; |
/** |
* Item pour la recherche par mots clés |
*/ |
private Item chercherImage = null ; |
/** |
* Item pour la recherche sur les commentaires |
*/ |
private Item chercherCommentaire = null ; |
/** |
* Constructeur sans argument (privé car ne doit être utilisé) |
*/ |
private MenuImageVue() |
59,13 → 51,10 |
// on construit le menu |
uploaderImage = new Item("Uploader des images") ; |
supprimerImage = new Item("Supprimer les images selectionnées") ; |
chercherImage = new Item("Filtrer par les mots clés") ; |
chercherCommentaire = new Item("Filtrer par les commentaires") ; |
chercherImage = new Item("Filtrer des images") ; |
addItem(uploaderImage); |
addItem(supprimerImage) ; |
addSeparator() ; |
addItem(chercherImage) ; |
addItem(chercherCommentaire) ; |
// on ajoute les listeners |
ajouterListeners() ; |
86,6 → 75,8 |
{ |
// on notifie le médiateur |
getIMediateur().uploaderImages() ; |
// et on cache le menu |
hide() ; |
} |
// si c'est la suppression |
93,25 → 84,17 |
{ |
// on notifie le médiateur |
getIMediateur().supprimerImages() ; |
// et on chache le menu |
hide() ; |
} |
// si c'est la recherche par mots clé |
if(item.equals(chercherImage)) |
{ |
// on notifie le médiateur |
getIMediateur().afficherFiltreMotsCles() ; |
getIMediateur().afficherFiltres() ; |
hide() ; |
} |
// si c'est la recherche par commentaires |
if(item.equals(chercherCommentaire)) |
{ |
// on notifie le médiateur |
getIMediateur().afficherFiltreCommentaires() ; |
} |
// enfin, on cache le menu |
hide() ; |
} |
}) ; |
/trunk/src/org/tela_botanica/client/vues/ArbreMotsClesFiltreVue.java |
---|
27,12 → 27,6 |
import com.gwtext.client.widgets.tree.TreeNode; |
import com.gwtext.client.widgets.tree.TreePanel; |
/** |
* fenêtre de recherche affichant l'arbre des mots clés en lecture et un bouton |
* cliquable |
* @author aurelien |
* |
*/ |
public class ArbreMotsClesFiltreVue extends Window implements Rafraichissable, Filtrable { |
/** |
64,18 → 58,11 |
*/ |
private boolean filtreModifie = false ; |
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
private ArbreMotsClesFiltreVue() |
{ |
super() ; |
} |
/** |
* Constructeur avec paramètres |
* @param im le médiateur à associer |
*/ |
public ArbreMotsClesFiltreVue(ImageMediateur im) |
{ |
112,7 → 99,7 |
this.setBorder(false) ; |
this.setCollapsible(true) ; |
this.setCloseAction(HIDE) ; |
this.setTitleCollapse(true) ; |
// on ajoute les listeners |
ajouterListeners() ; |
119,10 → 106,7 |
estInstancie = true ; |
} |
/** |
* Ajoute les listeners |
*/ |
private void ajouterListeners() |
public void ajouterListeners() |
{ |
// gestion de la validation |
rechercher.addListener(new ButtonListenerAdapter() { |
162,7 → 146,6 |
}) ; |
// gestion de la fermeture du panneau |
this.addListener(new WindowListenerAdapter() { |
public void onClose(Panel panel) { |
179,9 → 162,6 |
}) ; |
} |
/** |
* Méthode héritée de l'interface rafraichissable |
*/ |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
190,18 → 170,6 |
{ |
Tree nouvelArbre = (Tree)nouvelleDonnees ; |
arbreMotsCles.getRootNode().eachChild(new NodeTraversalCallback() { |
public boolean execute(Node node) { |
node.remove() ; |
return true ; |
} |
}) ; |
copierFilsNoeud(nouvelArbre.getRootNode(), arbreMotsCles.getRootNode()) ; |
getArbreMotsCles().expandAll() ; |
221,37 → 189,21 |
} |
/** |
* Accesseur pour le médiateur |
* @return le médiateur associé |
*/ |
public ImageMediateur getIMediateur() |
{ |
return iMediateur ; |
} |
/** |
* Accesseur pour le panneau contenant l'arbre |
* @return le panneau de l'arbre des mots clés |
*/ |
public TreePanel getArbreMotsCles() |
{ |
return arbreMotsCles ; |
} |
/** |
* Méthode héritée de Filtrable |
* renvoie le nom du filtre |
*/ |
public String renvoyerNomFiltre() { |
return "mots clés" ; |
} |
/** |
* Renvoie un tableau contenant le nom du champ à filtrer et la valeur |
* @return un tableau contenant le nom du champ à filtrer et sa valeur |
*/ |
public String[] renvoyerValeursAFiltrer() { |
String[] valeursFiltrees = {"ci_meta_mots_cles",motsClesEncours} ; |
259,13 → 211,7 |
return valeursFiltrees ; |
} |
/** |
* Fonction récursive qui prend deux noeuds d'arbre en paramètre et crée un copie du sous arbre du premier |
* noeud, qu'elle concatène au deuxième |
* @param ndPereOriginal le père des noeuds de l'arbre original |
* @param ndPereCopie le père qui va recevoir les copies |
*/ |
private void copierFilsNoeud(Node ndPereOriginal, TreeNode ndPereCopie) |
public void copierFilsNoeud(Node ndPereOriginal, TreeNode ndPereCopie) |
{ |
Node[] ndNodeFils = ndPereOriginal.getChildNodes() ; |
286,10 → 232,7 |
} |
} |
/** |
* Méthode héritée de Filtrable |
* Renvoie l'état du filtre modifié ou nom) |
*/ |
public boolean renvoyerEtatFiltre() { |
return filtreModifie ; |
/trunk/src/org/tela_botanica/client/interfaces/Filtrable.java |
---|
1,28 → 1,9 |
package org.tela_botanica.client.interfaces; |
/** |
* Les classes qui implémentent cette interface fonctionnent sous forme de filtres |
* et doivent être capable de rendre compte de leur état (modifié ou non) |
* et de renvoyer les valeurs de filtrage |
* @author aurelien |
* |
*/ |
public interface Filtrable { |
/** |
* Renvoie un tableau contenant le nom du filtre et sa valeur |
* @return un tableau contenant le nom du filtre (exemple : "ci_meta_mots_cle") et sa valeur |
*/ |
public String[] renvoyerValeursAFiltrer() ; |
/** |
* Renvoie le nom du filtre de manière lisible (exemple : Filtre pour les mots clés) |
* @return le nom du filtre |
*/ |
public String renvoyerNomFiltre() ; |
/** |
* Renvoie l'état du filtre (modifié ou non) |
* @return true si le filtre à été modifié depuis le dernier appel, false sinon |
*/ |
public boolean renvoyerEtatFiltre() ; |
} |
/trunk/src/org/tela_botanica/client/CarnetEnLigneModele.java |
---|
29,7 → 29,7 |
/** |
* |
* |
* @param retour |
*/ |
public void getUtilisateurAsynchroneDAO(final iRetourUtilisateur retour) { |
41,8 → 41,9 |
/** |
* |
* |
* @param retour |
*/ |
public Utilisateur getUtilisateurSynchroneDAO() { |
return new Utilisateur("David Delon synchrone",true); |