/trunk/src/org/tela_botanica/client/vues/MenuImageVue.java |
---|
28,9 → 28,17 |
*/ |
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() |
51,10 → 59,13 |
// on construit le menu |
uploaderImage = new Item("Uploader des images") ; |
supprimerImage = new Item("Supprimer les images selectionnées") ; |
chercherImage = new Item("Filtrer des images") ; |
chercherImage = new Item("Filtrer par les mots clés") ; |
chercherCommentaire = new Item("Filtrer par les commentaires") ; |
addItem(uploaderImage); |
addItem(supprimerImage) ; |
addSeparator() ; |
addItem(chercherImage) ; |
addItem(chercherCommentaire) ; |
// on ajoute les listeners |
ajouterListeners() ; |
75,8 → 86,6 |
{ |
// on notifie le médiateur |
getIMediateur().uploaderImages() ; |
// et on cache le menu |
hide() ; |
} |
// si c'est la suppression |
84,17 → 93,25 |
{ |
// 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)) |
{ |
getIMediateur().afficherFiltres() ; |
hide() ; |
// on notifie le médiateur |
getIMediateur().afficherFiltreMotsCles() ; |
} |
// 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/BarreRechercheFiltreVue.java |
---|
New file |
0,0 → 1,177 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.image.ImageMediateur; |
import org.tela_botanica.client.interfaces.Filtrable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import com.google.gwt.core.client.JavaScriptObject; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Window; |
import com.gwtext.client.widgets.event.ButtonListener; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
import com.gwtext.client.widgets.event.KeyListener; |
import com.gwtext.client.widgets.form.TextField; |
import com.gwtext.client.widgets.layout.BorderLayout; |
import com.gwtext.client.widgets.menu.Menu; |
/** |
* Fenêtre de recherche pour les mots clés, contenant un champ texte, |
* et un bouton cliquable |
* @author aurelien |
* |
*/ |
public class BarreRechercheFiltreVue extends Window implements Rafraichissable, Filtrable { |
/** |
* Médiateur associé à la vue |
*/ |
private ImageMediateur iMediateur = null ; |
/** |
* Barre de recherche |
* |
*/ |
private TextField champRecherche = null ; |
/** |
* Bouton rechercher |
*/ |
private Button rechercher = null ; |
/** |
* Booleen d'etat du filtre |
*/ |
private boolean filtreModifie = false ; |
/** |
* mot(s) à chercher |
*/ |
private String motsAChercher = "" ; |
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
private BarreRechercheFiltreVue() |
{ |
super() ; |
} |
/** |
* Constructeur avec médiateur |
* @param im |
*/ |
public BarreRechercheFiltreVue(ImageMediateur im) |
{ |
super("Recherche dans les commentaires") ; |
iMediateur = im ; |
champRecherche = new TextField() ; |
rechercher = new Button("Rechercher") ; |
add(champRecherche) ; |
add(rechercher) ; |
setSize(250, 100) ; |
setCollapsible(true) ; |
this.setCloseAction(HIDE) ; |
ajouterListeners() ; |
} |
/** |
* ajoute des listeners |
*/ |
private void ajouterListeners() |
{ |
// gestion du clic sur le bouton |
rechercher.addListener(new ButtonListenerAdapter() { |
public void onClick(Button button, EventObject e) { |
validationEtRequete() ; |
} |
}) ; |
// gestion de la touche entrée |
champRecherche.addKeyListener(EventObject.ENTER, new KeyListener() { |
public void onKey(int key, EventObject e) { |
validationEtRequete() ; |
} |
}) ; |
} |
/** |
* Fonction héritée de l'interface rafraichissable |
*/ |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
filtreModifie = false ; |
} |
/** |
* renvoie l'état du filtre (modifié ou non) |
* @return l'état du filtre |
*/ |
public boolean renvoyerEtatFiltre() { |
return filtreModifie ; |
} |
/** |
* Renvoie le nom du filtre |
* @return le nom du filtre |
*/ |
public String renvoyerNomFiltre() { |
return "Recherche Commentaires" ; |
} |
/** |
* 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[] valeurFiltre = {"ci_meta_comment" , motsAChercher } ; |
return valeurFiltre ; |
} |
/** |
* Accesseur pour le médiateur |
* @return le médiateur associé |
*/ |
public ImageMediateur getIMediateur() |
{ |
return iMediateur ; |
} |
/** |
* Effectue quelque opérations dans la classe et envoie une requête de données |
* au médiateur |
*/ |
public void validationEtRequete() |
{ |
filtreModifie = true ; |
motsAChercher = champRecherche.getText() ; |
getIMediateur().obtenirPhotoGalerie(getIMediateur().getFiltreCommentaires()) ; |
} |
/** |
* Affiche la fenetre |
*/ |
public void afficherFiltre() { |
show() ; |
champRecherche.setValue(motsAChercher) ; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/ArbreMotsClesFiltreVue.java |
---|
27,6 → 27,12 |
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 { |
/** |
58,11 → 64,18 |
*/ |
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) |
{ |
99,7 → 112,7 |
this.setBorder(false) ; |
this.setCollapsible(true) ; |
this.setTitleCollapse(true) ; |
this.setCloseAction(HIDE) ; |
// on ajoute les listeners |
ajouterListeners() ; |
106,7 → 119,10 |
estInstancie = true ; |
} |
public void ajouterListeners() |
/** |
* Ajoute les listeners |
*/ |
private void ajouterListeners() |
{ |
// gestion de la validation |
rechercher.addListener(new ButtonListenerAdapter() { |
146,6 → 162,7 |
}) ; |
// gestion de la fermeture du panneau |
this.addListener(new WindowListenerAdapter() { |
public void onClose(Panel panel) { |
162,6 → 179,9 |
}) ; |
} |
/** |
* Méthode héritée de l'interface rafraichissable |
*/ |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
170,6 → 190,18 |
{ |
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() ; |
189,21 → 221,37 |
} |
/** |
* 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} ; |
211,7 → 259,13 |
return valeursFiltrees ; |
} |
public void copierFilsNoeud(Node ndPereOriginal, TreeNode ndPereCopie) |
/** |
* 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) |
{ |
Node[] ndNodeFils = ndPereOriginal.getChildNodes() ; |
232,7 → 286,10 |
} |
} |
/** |
* 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/vues/pageToolBarVue.java |
---|
317,8 → 317,6 |
{ |
surTotalPage.setText(" sur "+pageTotale) ; |
System.out.println("Nombre d'éléments :"+nbElement); |
if(nbElement == 0) |
{ |
champPage.setValue(""+(0)) ; |