Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2615 Rev 2726
Line 1... Line 1...
1
package org.tela_botanica.client.vues.image;
1
package org.tela_botanica.client.vues.image;
Line -... Line 2...
-
 
2
 
2
 
3
import java.util.HashMap;
Line 3... Line 4...
3
import java.util.Iterator;
4
import java.util.Iterator;
4
 
5
 
5
import org.tela_botanica.client.i18n.Msg;
6
import org.tela_botanica.client.i18n.Msg;
6
import org.tela_botanica.client.image.ImageMediateur;
7
import org.tela_botanica.client.image.ImageMediateur;
7
import org.tela_botanica.client.interfaces.ListePaginable;
8
import org.tela_botanica.client.interfaces.ListePaginable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
10
import org.tela_botanica.client.modeles.objets.ListeObservation;
9
import org.tela_botanica.client.modeles.objets.ListeObservation;
11
import org.tela_botanica.client.modeles.objets.Observation;
10
import org.tela_botanica.client.modeles.objets.Observation;
12
import org.tela_botanica.client.modeles.objets.Ontologies;
Line -... Line 13...
-
 
13
import org.tela_botanica.client.util.Util;
11
import org.tela_botanica.client.util.Util;
14
import org.tela_botanica.client.vues.MiniBarrePaginationVue;
12
import org.tela_botanica.client.vues.MiniBarrePaginationVue;
15
 
13
 
16
import com.google.gwt.user.client.Timer;
14
import com.google.gwt.user.client.Window;
17
import com.google.gwt.user.client.Window;
15
import com.gwtext.client.data.Record;
18
import com.gwtext.client.data.Record;
Line 29... Line 32...
29
import com.gwtext.client.widgets.grid.ColumnModel;
32
import com.gwtext.client.widgets.grid.ColumnModel;
30
import com.gwtext.client.widgets.grid.GridDragData;
33
import com.gwtext.client.widgets.grid.GridDragData;
31
import com.gwtext.client.widgets.grid.GridPanel;
34
import com.gwtext.client.widgets.grid.GridPanel;
32
import com.gwtext.client.widgets.grid.Renderer;
35
import com.gwtext.client.widgets.grid.Renderer;
33
import com.gwtext.client.widgets.grid.RowSelectionModel;
36
import com.gwtext.client.widgets.grid.RowSelectionModel;
-
 
37
import com.gwtext.client.widgets.grid.event.GridHeaderListenerAdapter;
34
import com.gwtext.client.widgets.grid.event.GridListenerAdapter;
38
import com.gwtext.client.widgets.grid.event.GridListenerAdapter;
35
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
39
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
36
import com.gwtext.client.widgets.menu.BaseItem;
40
import com.gwtext.client.widgets.menu.BaseItem;
37
import com.gwtext.client.widgets.menu.Item;
41
import com.gwtext.client.widgets.menu.Item;
38
import com.gwtext.client.widgets.menu.Menu;
42
import com.gwtext.client.widgets.menu.Menu;
39
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
43
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
40
import com.gwtext.client.core.EventObject;
44
import com.gwtext.client.core.EventObject;
41
import com.gwtext.client.core.Ext;
45
import com.gwtext.client.core.Ext;
42
import com.gwtext.client.core.ExtElement;
46
import com.gwtext.client.core.ExtElement;
-
 
47
import com.gwtext.client.core.SortDir;
43
import com.gwtext.client.dd.DragData;
48
import com.gwtext.client.dd.DragData;
Line 44... Line 49...
44
 
49
 
45
/**
50
/**
46
 * liste d'observation pour l'association d'images aux observations
51
 * liste d'observation pour l'association d'images aux observations
Line 91... Line 96...
91
	/**
96
	/**
92
	 * Nombre de pages totales
97
	 * Nombre de pages totales
93
	 */
98
	 */
94
	private int pageMax = 1 ;
99
	private int pageMax = 1 ;
Line -... Line 100...
-
 
100
	
-
 
101
	private SortDir directionTri;
-
 
102
 
-
 
103
	private String champTri;
-
 
104
	
-
 
105
	private boolean triActif;
95
	
106
	
96
	/**
107
	/**
97
	 * Constructeur avec arguments
108
	 * Constructeur avec arguments
98
	 * @param im le médiateur à associer à la vue
109
	 * @param im le médiateur à associer à la vue
99
	 */
110
	 */
100
	public MiniListeObservationVue(ImageMediateur im)
111
	public MiniListeObservationVue(ImageMediateur im)
101
	{
112
	{
Line -... Line 113...
-
 
113
		iMediateur = im ;
-
 
114
		
102
		iMediateur = im ;
115
		directionTri = SortDir.ASC;
Line 103... Line 116...
103
		
116
		
Line 104... Line 117...
104
		this.setId("x-view-mini-obs") ;
117
		this.setId("x-view-mini-obs") ;
Line 146... Line 159...
146
			}
159
			}
Line 147... Line 160...
147
			
160
			
Line 148... Line 161...
148
		} ;
161
		} ;
149
		
162
		
150
		// on crée un store simple contenant un petit set de données et deux colonnes
163
		// on crée un store simple contenant un petit set de données et deux colonnes
151
		store = new SimpleStore(new String[]{"transmis","plante","date","lieu","ordre_obs","id_obs"}, getObs());  
164
		store = new SimpleStore(new String[]{"transmis","nomSaisi_observation","date_observation","lieu_observation","ordre_observation","id_obs"}, getObs());  
Line 152... Line 165...
152
		ColumnConfig[] columns = { 
165
		ColumnConfig[] columns = { 
153
		new ColumnConfig("", "transmis", 30, true, new Renderer() {
166
		new ColumnConfig("", "transmis", 30, true, new Renderer() {
Line 164... Line 177...
164
					return "" ;
177
					return "" ;
165
				}
178
				}
166
			}
179
			}
Line 167... Line 180...
167
			
180
			
168
		}),    
181
		}),    
169
		new ColumnConfig(Msg.get("taxon"), "plante", 145, true, colRend), 
182
		new ColumnConfig(Msg.get("taxon"), "nomSaisi_observation", 145, true, colRend), 
170
		new ColumnConfig(Msg.get("date"), "date", 68, true, dateRend),
183
		new ColumnConfig(Msg.get("date"), "date_observation", 68, true, dateRend),
171
		new ColumnConfig(Msg.get("lieu"), "lieu", 145, true, colRend),		
184
		new ColumnConfig(Msg.get("lieu"), "lieu_observation", 145, true, colRend),		
Line 172... Line 185...
172
		new ColumnConfig(Msg.get("numero"), "ordre_obs", 50, true, colRend), } ;
185
		new ColumnConfig(Msg.get("numero"), "ordre_observation", 50, true, colRend), } ;
Line 173... Line 186...
173
		   
186
		   
Line 207... Line 220...
207
		
220
		
Line 208... Line 221...
208
		//this.setAutoExpandColumn("plante");
221
		//this.setAutoExpandColumn("plante");
Line -... Line 222...
-
 
222
		
-
 
223
		setTopToolbar(bt) ;
-
 
224
		
-
 
225
		this.addGridHeaderListener(new GridHeaderListenerAdapter() {		
-
 
226
			@Override
-
 
227
			public void onHeaderClick(GridPanel grid, int colIndex, EventObject e) {
-
 
228
				triActif = true;
-
 
229
				Timer t = new Timer() {
-
 
230
					
-
 
231
					@Override
-
 
232
					public void run() {
-
 
233
						enregistrerEtatTri();
-
 
234
						// Trier ne change pas le nombre de pages, on peut donc se passer d'un appel
-
 
235
						// au comptage (ce serait mieux si ces deux appels étaient combinés)
-
 
236
						obtenirMiniListeObservations();
-
 
237
					}
-
 
238
				};
-
 
239
				// Le changement de tri n'est pas immédiat et si on recharge le liste tout de suite 
-
 
240
				// on a l'ancien tri et pas le nouveau (200 millisecondes suffisent et ne se voient pas)
-
 
241
				// #mondeDeMerde
-
 
242
				t.schedule(200);
209
		
243
			}
Line 210... Line 244...
210
		setTopToolbar(bt) ;
244
		});
211
		
245
		
Line 229... Line 263...
229
		this.addGridListener(new GridListenerAdapter() {
263
		this.addGridListener(new GridListenerAdapter() {
Line 230... Line 264...
230
 
264
 
231
			@Override
265
			@Override
Line 232... Line 266...
232
			public void onContextMenu(EventObject e) {
266
			public void onContextMenu(EventObject e) {
233
				
267
				
234
				// si pas de selection, on selection au moins la ligne sur laquelle on a fait le clic
268
				// si pas de selection, on selectionne au moins la ligne sur laquelle on a fait le clic
235
				if(getSelectionModel().getSelections().length <= 0) {
269
				if(getSelectionModel().getSelections().length <= 0) {
236
					int index = getView().findRowIndex(e);
270
					int index = getView().findRowIndex(e);
237
			  		Record rddrop = getStore().getRecordAt(index) ;
271
			  		Record rddrop = getStore().getRecordAt(index) ;
Line 339... Line 373...
339
					listeObs[i][5] = obs.getId();
373
					listeObs[i][5] = obs.getId();
Line 340... Line 374...
340
				
374
				
341
					i++ ;
375
					i++ ;
Line 342... Line 376...
342
				}
376
				}
-
 
377
	
343
	
378
				store = new SimpleStore(new String[]{"transmis","nomSaisi_observation","date_observation","lieu_observation","ordre_observation","id_obs"}, listeObs);	
344
				store = new SimpleStore(new String[]{"transmis","plante","date","lieu","ordre_obs","id_obs"}, listeObs);  	
379
				store.sort(champTri, directionTri);
345
				store.load();       
380
				store.load();       
346
				this.reconfigure(store, colModel) ;
381
				this.reconfigure(store, colModel) ;
347
			}
382
			}
Line 651... Line 686...
651
		}
686
		}
652
		else {
687
		else {
653
			return false;
688
			return false;
654
		}
689
		}
655
	}
690
	}
-
 
691
	
-
 
692
	private void enregistrerEtatTri() {
-
 
693
		if(triActif) {
-
 
694
			this.directionTri = store.getSortState().getDirection();
-
 
695
			this.champTri = store.getSortState().getField();
-
 
696
		}
-
 
697
		
-
 
698
	}
-
 
699
 
-
 
700
	public String renvoyerTri() {
-
 
701
		String tri = "ordre";
-
 
702
		if(triActif) {
-
 
703
			HashMap<String, String> corr = Ontologies.getCorrespondanceGrilleObservationChampsTri();
-
 
704
			if(corr.containsKey(champTri)) {
-
 
705
				tri = corr.get(champTri);
-
 
706
			}
-
 
707
		}
-
 
708
		return tri;
-
 
709
	}
-
 
710
 
-
 
711
	public String renvoyerDirectionTri() {
-
 
712
		String triDir = "ASC";
-
 
713
		try {
-
 
714
			triDir = (triActif) ? directionTri.getDirection() : "ASC";
-
 
715
		} catch (Exception e) {
-
 
716
			triDir = "ASC";
-
 
717
		}
-
 
718
		return triDir;
-
 
719
	}
656
}
720
}