Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1008 Rev 1085
Line 1... Line 1...
1
package org.tela_botanica.client.image;
1
package org.tela_botanica.client.image;
Line 2... Line -...
2
 
-
 
3
 
-
 
4
import java.util.Iterator;
-
 
5
import java.util.List;
-
 
6
 
2
 
7
import org.tela_botanica.client.CarnetEnLigneMediateur;
3
import org.tela_botanica.client.CarnetEnLigneMediateur;
8
import org.tela_botanica.client.interfaces.IdVue;
4
import org.tela_botanica.client.interfaces.IdVue;
9
import org.tela_botanica.client.interfaces.ListePaginable;
5
import org.tela_botanica.client.interfaces.ListePaginable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.interfaces.VueListable;
7
import org.tela_botanica.client.interfaces.VueListable;
12
import org.tela_botanica.client.modeles.Configuration;
8
import org.tela_botanica.client.modeles.Configuration;
13
import org.tela_botanica.client.modeles.ListeObservation;
-
 
14
import org.tela_botanica.client.observation.ObservationMediateur;
9
import org.tela_botanica.client.modeles.ListeObservation;
15
import org.tela_botanica.client.vues.ArbreMotsClesVue;
10
import org.tela_botanica.client.vues.FenetreGestionMotsCles;
16
import org.tela_botanica.client.vues.image.BarreOutilsVue;
11
import org.tela_botanica.client.vues.image.BarreOutilsVue;
17
import org.tela_botanica.client.vues.image.GalerieImageVue;
12
import org.tela_botanica.client.vues.image.GalerieImageVue;
18
import org.tela_botanica.client.vues.image.ListeImageVue;
13
import org.tela_botanica.client.vues.image.ListeImageVue;
19
import org.tela_botanica.client.vues.image.MenuImageVue;
14
import org.tela_botanica.client.vues.image.MenuImageVue;
Line 27... Line 22...
27
import com.google.gwt.core.client.JavaScriptObject;
22
import com.google.gwt.core.client.JavaScriptObject;
28
import com.google.gwt.user.client.DOM;
23
import com.google.gwt.user.client.DOM;
29
import com.google.gwt.user.client.Element;
24
import com.google.gwt.user.client.Element;
30
import com.google.gwt.user.client.Event;
25
import com.google.gwt.user.client.Event;
31
import com.google.gwt.user.client.Window;
26
import com.google.gwt.user.client.Window;
32
import com.google.gwt.user.client.ui.HTML;
-
 
33
import com.gwtext.client.core.EventObject;
27
import com.gwtext.client.core.EventObject;
34
import com.gwtext.client.core.Ext;
28
import com.gwtext.client.core.Ext;
35
import com.gwtext.client.core.ExtElement;
29
import com.gwtext.client.core.ExtElement;
36
import com.gwtext.client.core.RegionPosition;
30
import com.gwtext.client.core.RegionPosition;
37
import com.gwtext.client.data.Record;
31
import com.gwtext.client.data.Record;
Line 39... Line 33...
39
import com.gwtext.client.data.Tree;
33
import com.gwtext.client.data.Tree;
40
import com.gwtext.client.dd.DragData;
34
import com.gwtext.client.dd.DragData;
41
import com.gwtext.client.dd.DragSource;
35
import com.gwtext.client.dd.DragSource;
42
import com.gwtext.client.widgets.BoxComponent;
36
import com.gwtext.client.widgets.BoxComponent;
43
import com.gwtext.client.widgets.Component;
37
import com.gwtext.client.widgets.Component;
44
import com.gwtext.client.widgets.Container;
-
 
45
import com.gwtext.client.widgets.DataView;
38
import com.gwtext.client.widgets.DataView;
46
import com.gwtext.client.widgets.Panel;
39
import com.gwtext.client.widgets.Panel;
47
import com.gwtext.client.widgets.TabPanel;
40
import com.gwtext.client.widgets.TabPanel;
48
import com.gwtext.client.widgets.MessageBox.AlertCallback;
-
 
49
import com.gwtext.client.widgets.event.ComponentListenerAdapter;
-
 
50
import com.gwtext.client.widgets.event.ContainerListener;
-
 
51
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
41
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
52
import com.gwtext.client.widgets.event.PanelListener;
-
 
53
import com.gwtext.client.widgets.event.PanelListenerAdapter;
42
import com.gwtext.client.widgets.event.PanelListenerAdapter;
54
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
43
import com.gwtext.client.widgets.event.WindowListenerAdapter;
55
import com.gwtext.client.widgets.grid.GridDragData;
44
import com.gwtext.client.widgets.grid.GridDragData;
56
import com.gwtext.client.widgets.layout.BorderLayout;
45
import com.gwtext.client.widgets.layout.BorderLayout;
57
import com.gwtext.client.widgets.layout.BorderLayoutData;
46
import com.gwtext.client.widgets.layout.BorderLayoutData;
58
import com.gwtext.client.widgets.layout.FitLayout;
-
 
59
import com.gwtext.client.widgets.menu.BaseItem;
47
import com.gwtext.client.widgets.menu.BaseItem;
60
import com.gwtext.client.widgets.menu.Item;
48
import com.gwtext.client.widgets.menu.Item;
61
import com.gwtext.client.widgets.menu.Menu;
49
import com.gwtext.client.widgets.menu.Menu;
62
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
50
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
63
import com.gwtext.client.widgets.tree.TreeEditor;
51
import com.gwtext.client.widgets.tree.TreeEditor;
Line 167... Line 155...
167
	 * Filtre pour les commentaires
155
	 * Filtre pour les commentaires
168
	 */
156
	 */
169
	private BarreRechercheFiltreVue filtreCommentaires = null;
157
	private BarreRechercheFiltreVue filtreCommentaires = null;
Line 170... Line 158...
170
	
158
	
-
 
159
	/**
-
 
160
	 * Fenetre modale de gestion des mots clés
-
 
161
	 */
-
 
162
	private FenetreGestionMotsCles fnMc = null;
-
 
163
	
171
	/**
164
	/**
172
	 * Boolean indiquand si le médiateur a seulement été crée ou bien si tous
165
	 * Boolean indiquand si le médiateur a seulement été crée ou bien si tous
173
	 * les composants ont été crées
166
	 * les composants ont été crées
174
	 */
167
	 */
Line 341... Line 334...
341
					metadonneesIptcExif.doLayout();
334
					metadonneesIptcExif.doLayout();
342
				}
335
				}
343
			}
336
			}
344
		});
337
		});
Line -... Line 338...
-
 
338
		
-
 
339
		creerPanneauGestionMotsCles();
345
		
340
		
346
		// filtres.setCollapsed(false) ;
341
		// filtres.setCollapsed(false) ;
Line 347... Line 342...
347
		thisMediateur = this ;
342
		thisMediateur = this ;
Line 631... Line 626...
631
	 *            l'identifiant de l'image
626
	 *            l'identifiant de l'image
632
	 */
627
	 */
633
	public void obtenirMotsClesId(Rafraichissable r, String id) {
628
	public void obtenirMotsClesId(Rafraichissable r, String id) {
634
		getIModele().obtenirMotsClesId(r, id);
629
		getIModele().obtenirMotsClesId(r, id);
635
	}
630
	}
-
 
631
 
-
 
632
	public void obtenirMotsClesTexte(Rafraichissable r, String id) {
-
 
633
		String[] texteMotsCles = getTexteMotsCles(getIModele().getMotsClesId(id));
-
 
634
		r.rafraichir(texteMotsCles, false);
-
 
635
	}
Line -... Line 636...
-
 
636
	
636
	
637
	//TODO: devrait être dans le modèle
Line 637... Line 638...
637
	public String[] obtenirTexteMotsCles(String idsMotsCles[]) {
638
	public String[] getTexteMotsCles(String idsMotsCles[]) {
Line 638... Line 639...
638
		
639
		
639
		String[] tableauMotsClesTexte = new String[idsMotsCles.length];
640
		String[] tableauMotsClesTexte = new String[idsMotsCles.length];
Line 679... Line 680...
679
	 *            le nouvel arbre des mots clés
680
	 *            le nouvel arbre des mots clés
680
	 */
681
	 */
681
	public void rafraichirArbreMotsCles(Tree arbreMC) {
682
	public void rafraichirArbreMotsCles(Tree arbreMC) {
682
		metadonneesIptcExif.getPanneauMotsCles().rafraichir(arbreMC, false);
683
		metadonneesIptcExif.getPanneauMotsCles().rafraichir(arbreMC, false);
683
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);
684
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);
-
 
685
		if(fnMc != null) {
-
 
686
			fnMc.rafraichir(arbreMC, false);
-
 
687
		}
684
	}
688
	}
Line 685... Line 689...
685
 
689
 
686
	/**
690
	/**
687
	 * envoie au modèle une demande pour lancer le formulaire ou l'application
691
	 * envoie au modèle une demande pour lancer le formulaire ou l'application
Line 722... Line 726...
722
			if(getMetadonneesIptcExif().getMiniListeObservation().getMode())
726
			if(getMetadonneesIptcExif().getMiniListeObservation().getMode())
723
			{
727
			{
724
				obtenirObservationsAssociees() ;
728
				obtenirObservationsAssociees() ;
725
			}
729
			}
726
			obtenirMetadonnees(metadonneesIptcExif, imgNum);
730
			obtenirMetadonnees(metadonneesIptcExif, imgNum);
-
 
731
			obtenirMotsClesId(fnMc, imgNum);
727
			obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum);
732
			obtenirMotsClesTexte(metadonneesIptcExif.getPanneauMotsCles(), imgNum);
728
			obtenirNote(metadonneesIptcExif.getNoteVue(), imgNum);
733
			obtenirNote(metadonneesIptcExif.getNoteVue(), imgNum);
729
		}
734
		}
Line 730... Line 735...
730
 
735
 
Line 1047... Line 1052...
1047
		mn.addListener(new MenuListenerAdapter() {
1052
		mn.addListener(new MenuListenerAdapter() {
Line 1048... Line 1053...
1048
 
1053
 
1049
			public void onItemClick(BaseItem item, EventObject e) {
1054
			public void onItemClick(BaseItem item, EventObject e) {
1050
				if (item.equals(suppN)) {
1055
				if (item.equals(suppN)) {
1051
					if(Window.confirm("Êtes vous sur de vouloir supprimer ce mot clé ?")) {
-
 
1052
						getMetadonneesIptcExif().getPanneauMotsCles()
1056
					if(Window.confirm("Êtes vous sur de vouloir supprimer ce mot clé ?")) {
1053
								.supprimerNoeud(n);
1057
						fnMc.supprimerNoeud(n);
1054
					}
1058
					}
1055
				}
1059
				}
1056
				if (item.equals(ajoutN)) {
1060
				if (item.equals(ajoutN)) {
1057
					getMetadonneesIptcExif().getPanneauMotsCles().ajouterNoeud(
1061
					fnMc.ajouterNoeud(
1058
							n);
1062
							n);
1059
				}
1063
				}
1060
			}
1064
			}
Line 1090... Line 1094...
1090
	 *            l'arbre des mots clés à mettre à jour
1094
	 *            l'arbre des mots clés à mettre à jour
1091
	 */
1095
	 */
1092
	public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) {
1096
	public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) {
Line 1093... Line 1097...
1093
 
1097
 
-
 
1098
		String[] ids = getGalerieImage().getIdSelectionnees();
1094
		String[] ids = getGalerieImage().getIdSelectionnees();
1099
		if(ids.length > 0) {
-
 
1100
			getIModele().mettreAjourMotsCles(ids, motsClesEnCours, arbreMC);
-
 
1101
			obtenirMotsClesTexte(metadonneesIptcExif.getPanneauMotsCles(), ids[ids.length - 1]);
Line 1095... Line 1102...
1095
		getIModele().mettreAjourMotsCles(ids, motsClesEnCours, arbreMC);
1102
		}
Line 1096... Line 1103...
1096
 
1103
 
1097
	}
1104
	}
Line 1105... Line 1112...
1105
	 * @param arbreMC
1112
	 * @param arbreMC
1106
	 *            le nouvel arbre de mots clés à mettre à jour
1113
	 *            le nouvel arbre de mots clés à mettre à jour
1107
	 */
1114
	 */
1108
	public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) {
1115
	public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) {
1109
		getIModele().ajouterMotCleDansArbre(n, arbreMC);
1116
		getIModele().ajouterMotCleDansArbre(n, arbreMC);
1110
		filtres.getMotsClesFiltre().rafraichir(n, false);
1117
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);	
1111
 
-
 
-
 
1118
		mettreAJourListeMotsClesAffiches();
1112
	}
1119
	}
Line 1113... Line 1120...
1113
 
1120
 
1114
	/**
1121
	/**
1115
	 * Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre
1122
	 * Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre
Line 1119... Line 1126...
1119
	 *            le noeud à supprimer
1126
	 *            le noeud à supprimer
1120
	 * @param arbreMC
1127
	 * @param arbreMC
1121
	 *            le nouvel arbre de mots clés à mettre à jour
1128
	 *            le nouvel arbre de mots clés à mettre à jour
1122
	 */
1129
	 */
1123
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1130
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1124
 
-
 
1125
		getIModele().supprimerMotCleDansArbre(n, arbreMC);
1131
		getIModele().supprimerMotCleDansArbre(n, arbreMC);
1126
		filtres.getMotsClesFiltre().rafraichir(n.getId(), false);
1132
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);
1127
 
-
 
-
 
1133
		mettreAJourListeMotsClesAffiches();
1128
	}
1134
	}
Line 1129... Line 1135...
1129
 
1135
 
1130
	/**
1136
	/**
1131
	 * Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots
1137
	 * Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots
Line 1135... Line 1141...
1135
	 *            le noeud à modifier
1141
	 *            le noeud à modifier
1136
	 * @param arbreMC
1142
	 * @param arbreMC
1137
	 *            le nouvel arbre de mots clés à mettre à jour
1143
	 *            le nouvel arbre de mots clés à mettre à jour
1138
	 */
1144
	 */
1139
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
1145
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
1140
 
-
 
1141
		getIModele().modifierMotCleDansArbre(n, arbreMC);
1146
		getIModele().modifierMotCleDansArbre(n, arbreMC);
-
 
1147
		getIModele().mettreAjourMotsClesId(n.getText(), n.getId());
1142
		filtres.getMotsClesFiltre().rafraichir(n, false);
1148
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);
1143
 
-
 
-
 
1149
		mettreAJourListeMotsClesAffiches();
1144
	}
1150
	}
Line 1145... Line 1151...
1145
 
1151
 
1146
	/**
1152
	/**
1147
	 * Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans
1153
	 * Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans
Line 1151... Line 1157...
1151
	 *            le noeud à déplacer
1157
	 *            le noeud à déplacer
1152
	 * @param arbreMC
1158
	 * @param arbreMC
1153
	 *            le nouvel arbre de mots clés à mettre à jour
1159
	 *            le nouvel arbre de mots clés à mettre à jour
1154
	 */
1160
	 */
1155
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1161
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1156
 
-
 
1157
		getIModele().deplacerMotCleDansArbre(n, arbreMC);
1162
		getIModele().deplacerMotCleDansArbre(n, arbreMC);
1158
		filtres.getMotsClesFiltre().rafraichir(n, false);
1163
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);
-
 
1164
		mettreAJourListeMotsClesAffiches();
-
 
1165
	}
-
 
1166
	
-
 
1167
	public void mettreAJourListeMotsClesAffiches() {
-
 
1168
		String[] ids = getGalerieImage().getIdSelectionnees();
-
 
1169
		if(ids.length > 0) {
-
 
1170
			obtenirMotsClesTexte(metadonneesIptcExif.getPanneauMotsCles(), ids[ids.length - 1]);
-
 
1171
		}
1159
	}
1172
	}
Line 1160... Line 1173...
1160
 
1173
 
1161
	/**
1174
	/**
1162
	 * initialise les mots clés cochés par rapport aux images sélectionnées
1175
	 * initialise les mots clés cochés par rapport aux images sélectionnées
1163
	 */
1176
	 */
1164
	public void initialiserMotsCleCoches() {
-
 
1165
 
1177
	public void initialiserMotsCleCoches() {
1166
		obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(),
-
 
1167
				getGalerieImage().getIdSelectionnees()[0]);
1178
		obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(),getGalerieImage().getIdSelectionnees()[0]);
Line 1168... Line 1179...
1168
	}
1179
	}
1169
 
1180
 
1170
	/**
1181
	/**
Line 1645... Line 1656...
1645
					setIdentifiant(cMediateur.getUtilisateur().getIdentifiant());
1656
					setIdentifiant(cMediateur.getUtilisateur().getIdentifiant());
1646
					getIModele().initialiserArbreMotsCles();
1657
					getIModele().initialiserArbreMotsCles();
1647
					filtres.getArbreDateRecherche().initialiser();
1658
					filtres.getArbreDateRecherche().initialiser();
1648
					obtenirPhotoGalerie(getGalerieImage());
1659
					obtenirPhotoGalerie(getGalerieImage());
1649
					panneauPrincipalImage.purgeListeners() ;
1660
					panneauPrincipalImage.purgeListeners() ;
1650
				}
1661
				}	
1651
				
-
 
1652
			}) ;
1662
			}) ;
1653
		}
1663
		}
1654
	}
1664
	}
Line 1655... Line 1665...
1655
	
1665
	
Line 1739... Line 1749...
1739
	}
1749
	}
Line 1740... Line 1750...
1740
 
1750
 
1741
	public void obtenirDatesImages(Rafraichissable r) {
1751
	public void obtenirDatesImages(Rafraichissable r) {
1742
		iModele.obtenirDatesImages(r);	
1752
		iModele.obtenirDatesImages(r);	
-
 
1753
	}
-
 
1754
	
-
 
1755
	public void creerPanneauGestionMotsCles() {
-
 
1756
		fnMc = new FenetreGestionMotsCles() {
-
 
1757
			
-
 
1758
			@Override
-
 
1759
			protected void surSuppressionMotCle(TreeNode node, Tree arbre) {
-
 
1760
				supprimerMotCleDansArbre(node, arbre);
-
 
1761
			}
-
 
1762
			
-
 
1763
			@Override
-
 
1764
			protected void surDeplacementMotCle(TreeNode node, Tree arbre) {
-
 
1765
				deplacerMotCleDansArbre(node, arbre);
-
 
1766
			}
-
 
1767
			
-
 
1768
			@Override
-
 
1769
			protected void surClicValider(String chaineMotsCles, Tree arbre) {
-
 
1770
				mettreAjourMotsCles(chaineMotsCles, arbre);
-
 
1771
			}
-
 
1772
			
-
 
1773
			@Override
-
 
1774
			protected void surChangementTexte(TreeNode node, Tree arbre) {
-
 
1775
				modifierMotCleDansArbre(node, arbre);
-
 
1776
			}
-
 
1777
			
-
 
1778
			@Override
-
 
1779
			protected void surAjoutMotCle(TreeNode node, Tree arbre) {
-
 
1780
				ajouterMotCleDansArbre(node, arbre);
-
 
1781
			}
-
 
1782
			
-
 
1783
			@Override
-
 
1784
			protected void surAffichageMenuContextuel(TreeNode node, EventObject e,
-
 
1785
					TreeEditor te) {
-
 
1786
				montrerContextMenuArbre(node, e, te);
-
 
1787
			}
-
 
1788
			
-
 
1789
			@Override
-
 
1790
			protected void demanderArbreMotsCles(Rafraichissable r) {
-
 
1791
				ImageMediateur.this.obtenirArbreMotsCles(r);
-
 
1792
			}
-
 
1793
		};
-
 
1794
		
-
 
1795
		fnMc.setModal(true);
-
 
1796
		fnMc.setHeight(400);
-
 
1797
		fnMc.setWidth(200);
-
 
1798
		fnMc.addListener(new WindowListenerAdapter() {
-
 
1799
 
-
 
1800
			public void onClose(Panel panel) {
-
 
1801
				
-
 
1802
			}
-
 
1803
 
-
 
1804
		});
-
 
1805
		
-
 
1806
		//fnMc.activerBoutonValider(selection);
-
 
1807
	}
-
 
1808
 
-
 
1809
	public void afficherFenetreGestionMotsCles() {
-
 
1810
		fnMc.show();
Line 1743... Line 1811...
1743
	}
1811
	}