Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 965 Rev 1292
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.interfaces.Filtrable;
2
import org.tela_botanica.client.interfaces.Filtrable;
3
import org.tela_botanica.client.interfaces.Rafraichissable;
3
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.observation.ObservationMediateur;
4
import org.tela_botanica.client.observation.ObservationMediateur;
5
import org.tela_botanica.client.vues.observation.ListeObservationVue;
-
 
6
 
-
 
7
import com.google.gwt.core.client.GWT;
-
 
8
import com.google.gwt.core.client.JavaScriptObject;
-
 
9
import com.google.gwt.i18n.client.NumberFormat;
-
 
10
import com.google.gwt.user.client.Window;
5
import com.google.gwt.user.client.Window;
11
import com.google.gwt.user.client.ui.KeyboardListener;
-
 
12
import com.gwtext.client.core.EventObject;
6
import com.gwtext.client.core.EventObject;
13
import com.gwtext.client.data.Node;
7
import com.gwtext.client.data.Node;
14
import com.gwtext.client.data.NodeTraversalCallback;
8
import com.gwtext.client.data.NodeTraversalCallback;
15
import com.gwtext.client.data.Record;
-
 
16
import com.gwtext.client.data.Tree;
9
import com.gwtext.client.data.Tree;
17
import com.gwtext.client.dd.DD;
-
 
18
import com.gwtext.client.dd.DragData;
10
import com.gwtext.client.dd.DragData;
19
import com.gwtext.client.dd.DragDrop;
11
import com.gwtext.client.dd.DragDrop;
20
import com.gwtext.client.dd.DragSource;
-
 
21
import com.gwtext.client.dd.DropTarget;
-
 
22
import com.gwtext.client.dd.DropTargetConfig;
12
import com.gwtext.client.dd.DropTargetConfig;
23
import com.gwtext.client.widgets.BoxComponent;
-
 
24
import com.gwtext.client.widgets.Button;
13
import com.gwtext.client.widgets.Button;
25
import com.gwtext.client.widgets.Component;
14
import com.gwtext.client.widgets.Component;
26
import com.gwtext.client.widgets.Container;
-
 
27
import com.gwtext.client.widgets.Panel;
15
import com.gwtext.client.widgets.Panel;
28
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
16
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
29
import com.gwtext.client.widgets.event.PanelListenerAdapter;
17
import com.gwtext.client.widgets.event.PanelListenerAdapter;
30
import com.gwtext.client.widgets.form.TextField;
18
import com.gwtext.client.widgets.form.TextField;
31
import com.gwtext.client.widgets.grid.GridDragData;
-
 
32
import com.gwtext.client.widgets.grid.GridView;
-
 
33
import com.gwtext.client.widgets.layout.VerticalLayout;
19
import com.gwtext.client.widgets.layout.VerticalLayout;
34
import com.gwtext.client.widgets.menu.BaseItem;
20
import com.gwtext.client.widgets.menu.BaseItem;
35
import com.gwtext.client.widgets.menu.Item;
21
import com.gwtext.client.widgets.menu.Item;
36
import com.gwtext.client.widgets.menu.Menu;
22
import com.gwtext.client.widgets.menu.Menu;
37
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
23
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
38
import com.gwtext.client.widgets.tree.DropNodeCallback;
24
import com.gwtext.client.widgets.tree.DropNodeCallback;
39
import com.gwtext.client.widgets.tree.MultiSelectionModel;
25
import com.gwtext.client.widgets.tree.MultiSelectionModel;
40
import com.gwtext.client.widgets.tree.TreeDragData;
26
import com.gwtext.client.widgets.tree.TreeDragData;
41
import com.gwtext.client.widgets.tree.TreeDropZone;
-
 
42
import com.gwtext.client.widgets.tree.TreeDropZoneConfig;
-
 
43
import com.gwtext.client.widgets.tree.TreeEditor;
27
import com.gwtext.client.widgets.tree.TreeEditor;
44
import com.gwtext.client.widgets.tree.TreeNode;
28
import com.gwtext.client.widgets.tree.TreeNode;
45
import com.gwtext.client.widgets.tree.TreePanel;
29
import com.gwtext.client.widgets.tree.TreePanel;
46
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
30
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
47
import com.gwtext.client.widgets.tree.event.TreePanelListener;
-
 
48
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
31
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
Line 49... Line 32...
49
 
32
 
Line 50... Line 33...
50
public class ArbreMotsClesObservationVue extends Panel implements Rafraichissable, Filtrable {
33
public class ArbreMotsClesObservationVue extends Panel implements Rafraichissable, Filtrable {
Line 149... Line 132...
149
			  this.addListener(new PanelListenerAdapter() {
132
			  this.addListener(new PanelListenerAdapter() {
Line 150... Line 133...
150
 
133
 
151
				// on instancie réellement les composants au moment du rendu pour
134
				// on instancie réellement les composants au moment du rendu pour
152
				// accélérer l'affichage
135
				// accélérer l'affichage
-
 
136
				// et éviter des bugs
153
				// et éviter des bugs
137
				@Override
Line 154... Line 138...
154
				public void onRender(Component component) {
138
				public void onRender(Component component) {
Line 155... Line 139...
155
					
139
					
Line 179... Line 163...
179
					te = new TreeEditor(arbreMotsCles, tfEdit);
163
					te = new TreeEditor(arbreMotsCles, tfEdit);
180
					ajouterMotCle = new Button("Ajouter un projet");
164
					ajouterMotCle = new Button("Ajouter un projet");
181
					arbreMotsCles.add(te);
165
					arbreMotsCles.add(te);
Line 182... Line 166...
182
					
166
					
-
 
167
					arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
183
					arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
168
						@Override
184
						public void onClick(Node node, EventObject e) {
169
						public void onClick(Node node, EventObject e) {
185
							if(!arbreCharge) {
170
							if(!arbreCharge) {
186
								expand();
171
								expand();
187
							}
172
							}
Line -... Line 173...
-
 
173
						}
188
						}
174
 
189
 
175
						@Override
190
						public void onExpand(Node node) {
176
						public void onExpand(Node node) {
191
							if(!arbreCharge) {
177
							if(!arbreCharge) {
192
								obtenirArbreMotsCles();
178
								obtenirArbreMotsCles();
Line 258... Line 244...
258
		 */
244
		 */
259
		private void ajouterListeners() {
245
		private void ajouterListeners() {
260
			arbreMotsCles.addListener(new TreePanelListenerAdapter() {
246
			arbreMotsCles.addListener(new TreePanelListenerAdapter() {
Line 261... Line 247...
261
 
247
 
-
 
248
				// gestion du clic sur un noeud
262
				// gestion du clic sur un noeud
249
				@Override
Line 263... Line 250...
263
				public void onClick(TreeNode node, EventObject e) {
250
				public void onClick(TreeNode node, EventObject e) {
264
 
251
 
265
					e.stopEvent();
252
					e.stopEvent();
Line 269... Line 256...
269
					}
256
					}
270
					gererClicNoeud(node,multi);
257
					gererClicNoeud(node,multi);
271
				}
258
				}
Line 272... Line 259...
272
 
259
 
-
 
260
				// gestion du clic droit sur un noeud
273
				// gestion du clic droit sur un noeud
261
				@Override
Line 274... Line 262...
274
				public void onContextMenu(TreeNode node, EventObject e) {
262
				public void onContextMenu(TreeNode node, EventObject e) {
275
 
263
 
Line 276... Line 264...
276
					e.stopEvent();
264
					e.stopEvent();
Line 277... Line 265...
277
					montrerContextMenuArbre(node, e, getTe());
265
					montrerContextMenuArbre(node, e, getTe());
-
 
266
 
278
 
267
				}
Line 279... Line 268...
279
				}
268
 
280
 
269
				// gestion du double clic sur un noeud
281
				// gestion du double clic sur un noeud
270
				@Override
282
				public void onDblClick(TreeNode node, EventObject e) {
271
				public void onDblClick(TreeNode node, EventObject e) {
283
 
272
 
Line 284... Line 273...
284
					modifNoeud = true;
273
					modifNoeud = true;
-
 
274
					if (!node.getId().equals("racine_obs")) {
285
					if (!node.getId().equals("racine_obs")) {
275
						te.startEdit(node);
Line 286... Line 276...
286
						te.startEdit(node);
276
					}
287
					}
277
				}
288
				}
278
 
Line 319... Line 309...
319
					}
309
					}
Line 320... Line 310...
320
 
310
 
Line 321... Line 311...
321
				}
311
				}
-
 
312
 
322
 
313
				// gestion du déplacement d'un noeud
323
				// gestion du déplacement d'un noeud
314
				@Override
324
				public void onMoveNode(Tree tree, TreeNode node,
315
				public void onMoveNode(Tree tree, TreeNode node,
325
						TreeNode oldParent, TreeNode newParent, int index) {
316
						TreeNode oldParent, TreeNode newParent, int index) {
326
					// on notifie le médiateur et on lui passe l'arbre
317
					// on notifie le médiateur et on lui passe l'arbre
327
					getOMediateur().deplacerMotCleDansArbre(node,
318
					getOMediateur().deplacerMotCleDansArbre(node,
Line -... Line 319...
-
 
319
							getArbreMotsCles().getTree());
328
							getArbreMotsCles().getTree());
320
				}
329
				}
321
				
330
				
322
				@Override
331
				public boolean doBeforeNodeDrop(TreePanel treePanel,
323
				public boolean doBeforeNodeDrop(TreePanel treePanel,
332
						TreeNode target, DragData dragData,
324
						TreeNode target, DragData dragData,
Line 348... Line 340...
348
					
340
					
349
					return false;
341
					return false;
Line -... Line 342...
-
 
342
				}
350
				}
343
 
351
 
344
 
352
 
345
				@Override
Line 361... Line 354...
361
 
354
 
362
			// gestion de la validation
355
			// gestion de la validation
Line 363... Line 356...
363
			ajouterMotCle.addListener(new ButtonListenerAdapter() {
356
			ajouterMotCle.addListener(new ButtonListenerAdapter() {
-
 
357
 
364
 
358
				// lors du clic
Line 365... Line 359...
365
				// lors du clic
359
				@Override
366
				public void onClick(Button button, EventObject e) {
360
				public void onClick(Button button, EventObject e) {
367
					
361
					
Line 493... Line 487...
493
				// à partir de la racine
487
				// à partir de la racine
494
				getArbreMotsCles().getRootNode().cascade(
488
				getArbreMotsCles().getRootNode().cascade(
495
						new NodeTraversalCallback() {
489
						new NodeTraversalCallback() {
Line 496... Line 490...
496
 
490
 
-
 
491
							// pour chaque noeud
497
							// pour chaque noeud
492
							@Override
Line 498... Line 493...
498
							public boolean execute(Node node) {
493
							public boolean execute(Node node) {
499
								
494
								
500
								// on parcourt le tableau des mots clés
495
								// on parcourt le tableau des mots clés
Line 548... Line 543...
548
				rootChild[i].remove();
543
				rootChild[i].remove();
549
			}
544
			}
Line 550... Line 545...
550
			
545
			
Line -... Line 546...
-
 
546
			arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
551
			arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
547
				
552
				
548
				@Override
553
				public void onExpand(Node node) {
549
				public void onExpand(Node node) {
554
					if(!arbreCharge)
550
					if(!arbreCharge)
555
					{
551
					{
Line 567... Line 563...
567
		 * @param nouvelleDonnees
563
		 * @param nouvelleDonnees
568
		 *            les nouvelles données pour l'objet
564
		 *            les nouvelles données pour l'objet
569
		 * @param repandreRafraichissement
565
		 * @param repandreRafraichissement
570
		 *            booleen qui dit si on doit répandre l'évenement
566
		 *            booleen qui dit si on doit répandre l'évenement
571
		 */
567
		 */
-
 
568
		@Override
572
		public void rafraichir(Object nouvelleDonnees,
569
		public void rafraichir(Object nouvelleDonnees,
573
				boolean repandreRafraichissement) {
570
				boolean repandreRafraichissement) {
Line 574... Line 571...
574
			
571
			
Line 620... Line 617...
620
					
617
					
621
				}
618
				}
622
				// si l'arbre n'est pas encore instancié on met les mots clés en
619
				// si l'arbre n'est pas encore instancié on met les mots clés en
623
				// attente
620
				// attente
624
				else {
621
				else {
625
					motsClesEnAttente = (String[]) motsClesIds;
622
					motsClesEnAttente = motsClesIds;
626
				}
623
				}
627
			}
624
			}
Line 628... Line 625...
628
		}
625
		}
Line 677... Line 674...
677
 
674
 
Line 678... Line 675...
678
			arbreMotsCles.setRootNode(root);
675
			arbreMotsCles.setRootNode(root);
Line -... Line 676...
-
 
676
			
679
			
677
			arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
680
			arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
678
				
681
				
679
				@Override
682
				public void onExpand(Node node) {
680
				public void onExpand(Node node) {
683
					if(!arbreCharge)
681
					if(!arbreCharge)
Line 690... Line 688...
690
			}) ;
688
			}) ;
Line 691... Line 689...
691
			
689
			
692
			motsClesEnCours  = "";
690
			motsClesEnCours  = "";
Line -... Line 691...
-
 
691
		}
693
		}
692
 
694
 
693
		@Override
695
		public boolean renvoyerEtatFiltre() {
694
		public boolean renvoyerEtatFiltre() {
696
			// TODO Auto-generated method stub
695
			// TODO Auto-generated method stub
Line -... Line 696...
-
 
696
			return false;
697
			return false;
697
		}
698
		}
698
 
699
 
699
		@Override
700
		public String renvoyerNomFiltre() {
700
		public String renvoyerNomFiltre() {
Line -... Line 701...
-
 
701
			// TODO Auto-generated method stub
701
			// TODO Auto-generated method stub
702
			return null;
Line 702... Line 703...
702
			return null;
703
		}
Line 703... Line 704...
703
		}
704
 
Line 719... Line 720...
719
			String[] valeursFiltres = {"id_mots_cles", val};
720
			String[] valeursFiltres = {"id_mots_cles", val};
Line 720... Line 721...
720
			
721
			
721
			return valeursFiltres;
722
			return valeursFiltres;
Line -... Line 723...
-
 
723
		}
722
		}
724
 
723
 
725
		@Override
Line 724... Line 726...
724
		public void valider() {
726
		public void valider() {
Line 738... Line 740...
738
				mn.addItem(ajoutN);
740
				mn.addItem(ajoutN);
739
				mn.addItem(suppN);
741
				mn.addItem(suppN);
Line 740... Line 742...
740
 
742
 
Line -... Line 743...
-
 
743
				mn.addListener(new MenuListenerAdapter() {
741
				mn.addListener(new MenuListenerAdapter() {
744
 
742
 
745
					@Override
743
					public void onItemClick(BaseItem item, EventObject e) {
746
					public void onItemClick(BaseItem item, EventObject e) {
744
						if (item.equals(suppN)) {
747
						if (item.equals(suppN)) {
745
							supprimerNoeud(n);
748
							supprimerNoeud(n);
Line 751... Line 754...
751
				});
754
				});
Line 752... Line 755...
752
 
755
 
753
				mn.showAt(e.getXY());
756
				mn.showAt(e.getXY());
Line -... Line 757...
-
 
757
		}
754
		}
758
 
755
 
759
		@Override
756
		public void viderFiltre() {
760
		public void viderFiltre() {
757
			arbreMotsCles.getSelectionModel().clearSelections();
761
			arbreMotsCles.getSelectionModel().clearSelections();
758
			motsClesEnCours = "";
762
			motsClesEnCours = "";