Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1117 → Rev 1118

/trunk/src/org/tela_botanica/client/vues/image/FenetreGestionMotsCles.java
10,11 → 10,14
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.ToolbarButton;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.WindowListenerAdapter;
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.layout.HorizontalLayout;
import com.gwtext.client.widgets.layout.VerticalLayout;
import com.gwtext.client.widgets.tree.MultiSelectionModel;
import com.gwtext.client.widgets.tree.TreeEditor;
import com.gwtext.client.widgets.tree.TreeNode;
import com.gwtext.client.widgets.tree.TreePanel;
53,6 → 56,21
private Button annuler = null;
/**
* Bouton d'ajout de tag
*/
private ToolbarButton ajouterTag = null;
/**
* Bouton de suppression de tag
*/
private ToolbarButton supprimerTag = null;
/**
* Bouton de renommage de tag
*/
private ToolbarButton renommerTag = null;
/**
* Une string permettant connaitre les mots clés cochés en cours séparés par
* des virgules
*/
102,6 → 120,8
arbreMotsCles.setEnableDD(true);
arbreMotsCles.setId("x-view-tree-keyword-imgs");
 
arbreMotsCles.setSelectionModel(new MultiSelectionModel());
 
// on crée une racine pour l'arbre
TreeNode root = new TreeNode("Tags");
root.setId("racine");
143,7 → 163,7
panelIntermediaire.setLayoutData(new VerticalLayout());
Panel panelBoutons = new Panel();
panelBoutons.setLayout(new HorizontalLayout(50));
panelBoutons.setLayout(new HorizontalLayout(130));
panelBoutons.setWidth("100%");
 
// on met en forme le layout
153,8 → 173,24
this.add(panelIntermediaire);
this.add(panelBoutons);
arbreMotsCles.setHeight("348px");
arbreMotsCles.setHeight("338px");
Toolbar barreBouton = new Toolbar();
ajouterTag = new ToolbarButton("Nouveau Tag");
ajouterTag.setIcon("mot_cle_ajouter.png");
renommerTag = new ToolbarButton("Renommer");
renommerTag.setIcon("mot_cle_editer.png");
renommerTag.disable();
supprimerTag = new ToolbarButton("Supprimer");
supprimerTag.setIcon("mot_cle_supprimer.png");
supprimerTag.disable();
barreBouton.addButton(ajouterTag);
barreBouton.addSeparator();
barreBouton.addButton(renommerTag);
barreBouton.addSeparator();
barreBouton.addButton(supprimerTag);
this.setTopToolbar(barreBouton);
setCloseAction(com.gwtext.client.widgets.Window.HIDE);
// on ajoute les listeners
ajouterListeners();
213,6 → 249,10
 
e.stopEvent();
gererClicNoeud(node);
if(!node.equals(arbreMotsCles.getRootNode())) {
supprimerTag.enable();
renommerTag.enable();
}
}
 
// gestion du clic droit sur un noeud
220,15 → 260,9
 
e.stopEvent();
surAffichageMenuContextuel(node, e, getTe());
 
}
 
// gestion du double clic sur un noeud
public void onDblClick(TreeNode node, EventObject e) {
 
modifNoeud = true;
if (!node.getId().equals("racine")) {
te.startEdit(node);
if(!node.equals(arbreMotsCles.getRootNode())) {
supprimerTag.enable();
renommerTag.enable();
}
}
 
235,6 → 269,10
// gestion de la modification du texte d'un noeud
public void onTextChange(TreeNode node, String text, String oldText) {
 
if(node.equals(arbreMotsCles.getRootNode())) {
return;
}
 
// on récupère les informations associées au noeud
TreeNode nd = node;
String[] usObject = new String[2];
317,9 → 355,49
annuler.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
close();
hide();
}
});
renommerTag.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
TreeNode[] noeuds = ((MultiSelectionModel)arbreMotsCles.getSelectionModel()).getSelectedNodes();
TreeNode noeudRenommage;
if(noeuds.length > 0) {
noeudRenommage = noeuds[noeuds.length - 1];
} else {
noeudRenommage = arbreMotsCles.getRootNode();
}
renommerNoeud(noeudRenommage);
}
});
ajouterTag.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(Button button, EventObject e) {
TreeNode[] noeuds = ((MultiSelectionModel)arbreMotsCles.getSelectionModel()).getSelectedNodes();
TreeNode noeudAjout;
if(noeuds.length > 0) {
noeudAjout = noeuds[noeuds.length - 1];
} else {
noeudAjout = arbreMotsCles.getRootNode();
}
 
ajouterNoeud(noeudAjout);
}
});
supprimerTag.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(Button button, EventObject e) {
TreeNode[] noeuds = ((MultiSelectionModel)arbreMotsCles.getSelectionModel()).getSelectedNodes();
for (int i = 0; i < noeuds.length; i++) {
supprimerNoeud(noeuds[i]);
}
}
});
}
 
/**
338,12 → 416,14
public void supprimerNoeud(TreeNode n) {
// si ça n'est pas la racine (qu'on ne peut pas supprimer)
if (!n.getId().equals(getArbreMotsCles().getRootNode().getId())) {
// on détache le noeud et on le détruit
n.getParentNode().removeChild(n);
n.destroy();
// puis on en notifie le médiateur en lui passant le noeud supprimé
// et l'arbre
surSuppressionMotCle(n, arbreMotsCles.getTree());
if(Window.confirm("Êtes vous sur de vouloir supprimer le mot clé "+n.getText()+" ?")) {
// on détache le noeud et on le détruit
n.getParentNode().removeChild(n);
n.destroy();
// puis on en notifie le médiateur en lui passant le noeud supprimé
// et l'arbre
surSuppressionMotCle(n, arbreMotsCles.getTree());
}
} else {
// si l'utilisateur tente de supprimer la racine, on l'avertit de
// son erreur
385,6 → 465,14
}
 
/**
* Renomme le noeud passé en paramètre
*/
public void renommerNoeud(TreeNode n) {
// TODO Auto-generated method stub
te.startEdit(n);
}
 
/**
* Coche le noeud s'il est décoché, le décoche sinon
*
* @param node