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 |
*/ |
101,6 → 119,8 |
// on permet le drag and drop dans l'arbre |
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"); |
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,20 → 260,18 |
|
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(); |
} |
} |
|
// 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; |
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 |
383,6 → 463,14 |
te.startEdit(nd); |
|
} |
|
/** |
* 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 |