Subversion Repositories eFlore/Applications.cel

Rev

Rev 2277 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2277 Rev 2622
Line 1... Line 1...
1
package org.tela_botanica.client.vues.observation.filtres;
1
package org.tela_botanica.client.vues.observation.filtres;
-
 
2
import org.tela_botanica.client.i18n.Msg;
2
import org.tela_botanica.client.interfaces.Filtrable;
3
import org.tela_botanica.client.interfaces.Filtrable;
3
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.observation.ObservationMediateur;
5
import org.tela_botanica.client.observation.ObservationMediateur;
5
import org.tela_botanica.client.util.MotsClesUtilitaire;
6
import org.tela_botanica.client.util.MotsClesUtilitaire;
Line 114... Line 115...
114
		 * @param im
115
		 * @param im
115
		 *            le médiateur à associer
116
		 *            le médiateur à associer
116
		 */
117
		 */
117
		public ArbreMotsClesObservationVue(ObservationMediateur om) {
118
		public ArbreMotsClesObservationVue(ObservationMediateur om) {
118
			// on crée le panel
119
			// on crée le panel
119
			super("Projets");
120
			super(Msg.get("projets"));
Line 120... Line 121...
120
			
121
			
121
			this.setLayout(new VerticalLayout());
122
			this.setLayout(new VerticalLayout());
Line 122... Line 123...
122
			oMediateur = om;
123
			oMediateur = om;
Line 153... Line 154...
153
					
154
					
154
					msModel = new MultiSelectionModel();
155
					msModel = new MultiSelectionModel();
Line 155... Line 156...
155
					arbreMotsCles.setSelectionModel(msModel);
156
					arbreMotsCles.setSelectionModel(msModel);
156
 
157
 
157
					// on crée une racine pour l'arbre
158
					// on crée une racine pour l'arbre
158
					TreeNode root = new TreeNode("Projets");
159
					TreeNode root = new TreeNode(Msg.get("projets"));
159
					root.setId("racine_obs");
160
					root.setId("racine_obs");
160
					String[] usObject = { "Projets", "racine_obs" };
161
					String[] usObject = { Msg.get("projets"), "racine_obs" };
Line 161... Line 162...
161
					root.setUserObject(usObject);
162
					root.setUserObject(usObject);
Line 162... Line 163...
162
					root.setExpandable(true);
163
					root.setExpandable(true);
163
					
164
					
164
					arbreMotsCles.setRootNode(root);
165
					arbreMotsCles.setRootNode(root);
165
					
166
					
166
					// on crée l'éditeur pour l'arbre
167
					// on crée l'éditeur pour l'arbre
Line 167... Line 168...
167
					tfEdit = new TextField();
168
					tfEdit = new TextField();
168
					te = new TreeEditor(arbreMotsCles, tfEdit);
169
					te = new TreeEditor(arbreMotsCles, tfEdit);
169
					ajouterMotCle = new Button("Ajouter un projet");
170
					ajouterMotCle = new Button(Msg.get("ajouter-projet"));
Line 286... Line 287...
286
				@Override
287
				@Override
287
				public void onTextChange(TreeNode node, String text, String oldText) {
288
				public void onTextChange(TreeNode node, String text, String oldText) {
Line 288... Line 289...
288
					
289
					
289
					if(!MotsClesUtilitaire.estUnMotCleAutorise(text)) {
290
					if(!MotsClesUtilitaire.estUnMotCleAutorise(text)) {
290
						te.startEdit(node);
291
						te.startEdit(node);
-
 
292
						String[] params = { MotsClesUtilitaire.getChaineCaracteresInterdits() };
291
						Window.alert("Un mot clé ne peut pas être vide ou contenir les caractères suivants : "+MotsClesUtilitaire.getChaineCaracteresInterdits());
293
						Window.alert(Msg.get("mot-cle-non-vide", params));
292
						return;
294
						return;
Line 293... Line 295...
293
					}
295
					}
294
					
296
					
295
					if(!MotsClesUtilitaire.estUnePositionAutorisee(node, node.getParentNode(), text)) {
297
					if(!MotsClesUtilitaire.estUnePositionAutorisee(node, node.getParentNode(), text)) {
296
						te.startEdit(node);
298
						te.startEdit(node);
297
						Window.alert("Un mot clé de même nom existe déjà à cette position");
299
						Window.alert(Msg.get("mot-cle-existe-deja"));
Line 298... Line 300...
298
						return;
300
						return;
299
					}
301
					}
Line 322... Line 324...
322
				public boolean doBeforeMoveNode(Tree tree, TreeNode node,
324
				public boolean doBeforeMoveNode(Tree tree, TreeNode node,
323
						TreeNode oldParent, TreeNode newParent, int index) {
325
						TreeNode oldParent, TreeNode newParent, int index) {
324
					boolean ok = true;
326
					boolean ok = true;
325
					if(!MotsClesUtilitaire.estUnePositionAutorisee(node, newParent, node.getText())) {
327
					if(!MotsClesUtilitaire.estUnePositionAutorisee(node, newParent, node.getText())) {
326
						ok = false;
328
						ok = false;
327
						Window.alert("Un mot clé de même nom existe déjà à cette position");
329
						Window.alert(Msg.get("mot-cle-existe-deja"));
328
					}
330
					}
329
					return ok;
331
					return ok;
330
				}
332
				}
Line 331... Line 333...
331
				
333
				
Line 454... Line 456...
454
		 */
456
		 */
455
		public void supprimerNoeud(TreeNode n) {
457
		public void supprimerNoeud(TreeNode n) {
456
			// si ça n'est pas la racine (qu'on ne peut pas supprimer)
458
			// si ça n'est pas la racine (qu'on ne peut pas supprimer)
457
			if (!n.getId().equals(getArbreMotsCles().getRootNode().getId())) {
459
			if (!n.getId().equals(getArbreMotsCles().getRootNode().getId())) {
Line 458... Line 460...
458
				
460
				
459
				if(Window.confirm("Etes vous sur de vouloir supprimer ce projet ?")) {
461
				if(Window.confirm(Msg.get("confirmer-suppression-projet"))) {
460
					// on détache le noeud et on le détruit
462
					// on détache le noeud et on le détruit
461
					n.getParentNode().removeChild(n);
463
					n.getParentNode().removeChild(n);
462
					n.destroy();
464
					n.destroy();
463
					// puis on en notifie le médiateur en lui passant le noeud supprimé
465
					// puis on en notifie le médiateur en lui passant le noeud supprimé
Line 466... Line 468...
466
							.supprimerMotCleDansArbre(n, arbreMotsCles.getTree(), this);
468
							.supprimerMotCleDansArbre(n, arbreMotsCles.getTree(), this);
467
				}
469
				}
468
			} else {
470
			} else {
469
				// si l'utilisateur tente de supprimer la racine, on l'avertit de
471
				// si l'utilisateur tente de supprimer la racine, on l'avertit de
470
				// son erreur
472
				// son erreur
471
				Window.alert("Impossible de supprimer la racine de l'arbre");
473
				Window.alert(Msg.get("impossible-supprimer-racine"));
472
			}
474
			}
473
		}
475
		}
Line 474... Line 476...
474
 
476
 
475
		/**
477
		/**
Line 680... Line 682...
680
			arbreCharge = false ;
682
			arbreCharge = false ;
681
			arbreMotsCles.collapseAll();
683
			arbreMotsCles.collapseAll();
682
			arbreMotsCles.clear() ;
684
			arbreMotsCles.clear() ;
Line 683... Line 685...
683
			
685
			
684
			// on crée une racine pour l'arbre
686
			// on crée une racine pour l'arbre
685
			TreeNode root = new TreeNode("Projets");
687
			TreeNode root = new TreeNode(Msg.get("projets"));
686
			root.setId("racine_obs");
688
			root.setId("racine_obs");
687
			String[] usObject = { "Projets", "racine_obs" };
689
			String[] usObject = { Msg.get("projets"), "racine_obs" };
688
			root.setUserObject(usObject);
690
			root.setUserObject(usObject);
Line 689... Line 691...
689
			root.setExpandable(true);
691
			root.setExpandable(true);
Line 750... Line 752...
750
 
752
 
751
		public void montrerContextMenuArbre(final TreeNode n, EventObject e,
753
		public void montrerContextMenuArbre(final TreeNode n, EventObject e,
752
				TreeEditor te) {
754
				TreeEditor te) {
753
				Menu mn = new Menu();
755
				Menu mn = new Menu();
754
				final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
756
				final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
755
						"Ajouter un projet");
757
						Msg.get("ajouter-projet"));
756
				final com.gwtext.client.widgets.menu.Item suppN = new Item(
758
				final com.gwtext.client.widgets.menu.Item suppN = new Item(
Line 757... Line 759...
757
						"Supprimer projet");
759
						Msg.get("supprimer-projet"));
758
 
760
 
Line 759... Line 761...
759
				mn.addItem(ajoutN);
761
				mn.addItem(ajoutN);