Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 26 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 26 Rev 27
1
/*
1
/*
2
 * Copyright 2006 Google Inc.
2
 * Copyright 2006 Google Inc.
3
 * 
3
 * 
4
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
4
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5
 * use this file except in compliance with the License. You may obtain a copy of
5
 * use this file except in compliance with the License. You may obtain a copy of
6
 * the License at
6
 * the License at
7
 * 
7
 * 
8
 * http://www.apache.org/licenses/LICENSE-2.0
8
 * http://www.apache.org/licenses/LICENSE-2.0
9
 * 
9
 * 
10
 * Unless required by applicable law or agreed to in writing, software
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
 * License for the specific language governing permissions and limitations under
13
 * License for the specific language governing permissions and limitations under
14
 * the License.
14
 * the License.
15
 */
15
 */
16
package org.tela_botanica.client;
16
package org.tela_botanica.client;
17
 
17
 
18
 
18
 
19
import com.google.gwt.json.client.JSONArray;
19
import com.google.gwt.json.client.JSONArray;
20
import com.google.gwt.json.client.JSONNumber;
20
import com.google.gwt.json.client.JSONNumber;
21
import com.google.gwt.json.client.JSONParser;
21
import com.google.gwt.json.client.JSONParser;
22
import com.google.gwt.json.client.JSONString;
22
import com.google.gwt.json.client.JSONString;
23
import com.google.gwt.json.client.JSONValue;
23
import com.google.gwt.json.client.JSONValue;
24
import com.google.gwt.user.client.HTTPRequest;
24
import com.google.gwt.user.client.HTTPRequest;
25
import com.google.gwt.user.client.ResponseTextHandler;
25
import com.google.gwt.user.client.ResponseTextHandler;
26
import com.google.gwt.user.client.ui.Button;
26
import com.google.gwt.user.client.ui.Button;
27
import com.google.gwt.user.client.ui.ClickListener;
27
import com.google.gwt.user.client.ui.ClickListener;
28
import com.google.gwt.user.client.ui.Composite;
28
import com.google.gwt.user.client.ui.Composite;
29
import com.google.gwt.user.client.ui.DockPanel;
29
import com.google.gwt.user.client.ui.DockPanel;
30
import com.google.gwt.user.client.ui.FlexTable;
30
import com.google.gwt.user.client.ui.FlexTable;
31
import com.google.gwt.user.client.ui.Grid;
31
import com.google.gwt.user.client.ui.Grid;
32
import com.google.gwt.user.client.ui.HTML;
32
import com.google.gwt.user.client.ui.HTML;
33
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
33
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
34
import com.google.gwt.user.client.ui.HasVerticalAlignment;
34
import com.google.gwt.user.client.ui.HasVerticalAlignment;
35
import com.google.gwt.user.client.ui.HorizontalPanel;
35
import com.google.gwt.user.client.ui.HorizontalPanel;
36
import com.google.gwt.user.client.ui.SourcesTableEvents;
36
import com.google.gwt.user.client.ui.SourcesTableEvents;
37
import com.google.gwt.user.client.ui.TableListener;
37
import com.google.gwt.user.client.ui.TableListener;
38
import com.google.gwt.user.client.ui.VerticalPanel;
38
import com.google.gwt.user.client.ui.VerticalPanel;
39
import com.google.gwt.user.client.ui.Widget;
39
import com.google.gwt.user.client.ui.Widget;
40
 
40
 
41
/**
41
/**
42
 * A tree displaying a set of email folders.
42
 * A tree displaying a set of email folders.
43
 */
43
 */
44
public class LocationList extends Composite {
44
public class LocationList extends Composite {
45
	
45
	
46
	
46
	
47
	
47
	
48
	// Barre de navigation
48
	// Barre de navigation
49
 
49
 
50
	private class NavBar extends Composite implements ClickListener {
50
	private class NavBar extends Composite implements ClickListener {
51
 
51
 
52
		public final DockPanel bar = new DockPanel();
52
		public final DockPanel bar = new DockPanel();
53
 
53
 
54
		public final Button gotoFirst = new Button("<<", this);
54
		public final Button gotoFirst = new Button("<<", this);
55
 
55
 
56
		public final Button gotoNext = new Button(">", this);
56
		public final Button gotoNext = new Button(">", this);
57
 
57
 
58
		public final Button gotoPrev = new Button("<", this);
58
		public final Button gotoPrev = new Button("<", this);
59
 
59
 
60
		public final Button gotoEnd = new Button(">>", this);
60
		public final Button gotoEnd = new Button(">>", this);
61
 
61
 
62
		public final HTML status = new HTML();
62
		public final HTML status = new HTML();
63
		
63
		
64
 
64
 
65
		public NavBar() {
65
		public NavBar() {
66
			initWidget(bar);
66
			initWidget(bar);
67
			bar.setStyleName("navbar");
67
			bar.setStyleName("navbar");
68
			status.setStyleName("status");
68
			status.setStyleName("status");
69
			status.setWordWrap(false);
69
			status.setWordWrap(false);
70
			
70
			
71
			HorizontalPanel buttons = new HorizontalPanel();
71
			HorizontalPanel buttons = new HorizontalPanel();
72
			
72
			
73
			buttons.add(status);
73
			buttons.add(status);
74
			buttons.setCellHorizontalAlignment(status,
74
			buttons.setCellHorizontalAlignment(status,
75
					HasHorizontalAlignment.ALIGN_RIGHT);
75
					HasHorizontalAlignment.ALIGN_RIGHT);
76
			buttons.setCellVerticalAlignment(status,
76
			buttons.setCellVerticalAlignment(status,
77
					HasVerticalAlignment.ALIGN_MIDDLE);
77
					HasVerticalAlignment.ALIGN_MIDDLE);
78
			buttons.setCellWidth(status, "100%");
78
			buttons.setCellWidth(status, "100%");
79
 
79
 
80
 
80
 
81
			buttons.add(gotoFirst);
81
			buttons.add(gotoFirst);
82
			buttons.add(gotoPrev);
82
			buttons.add(gotoPrev);
83
			buttons.add(gotoNext);
83
			buttons.add(gotoNext);
84
			buttons.add(gotoEnd);
84
			buttons.add(gotoEnd);
85
			bar.add(buttons, DockPanel.EAST);
85
			bar.add(buttons, DockPanel.EAST);
86
			bar.setCellHorizontalAlignment(buttons, DockPanel.ALIGN_RIGHT);
86
			bar.setCellHorizontalAlignment(buttons, DockPanel.ALIGN_RIGHT);
87
			
87
			
88
			
88
			
89
			bar.setCellHorizontalAlignment(buttons, DockPanel.ALIGN_LEFT);
89
			bar.setCellHorizontalAlignment(buttons, DockPanel.ALIGN_LEFT);
90
 
90
 
91
			bar.setVerticalAlignment(DockPanel.ALIGN_MIDDLE);
91
			bar.setVerticalAlignment(DockPanel.ALIGN_MIDDLE);
92
			
92
			
93
					
93
					
94
			
94
			
95
	
95
	
96
			
96
			
97
		}
97
		}
98
 
98
 
99
		public void onClick(Widget sender) {
99
		public void onClick(Widget sender) {
100
			if (sender == gotoNext) {
100
			if (sender == gotoNext) {
101
				// Move forward a page.
101
				// Move forward a page.
102
				startIndex += VISIBLE_LOCATION_COUNT;
102
				startIndex += VISIBLE_LOCATION_COUNT;
103
				if (startIndex >= count)
103
				if (startIndex >= count)
104
					startIndex -= VISIBLE_LOCATION_COUNT;
104
					startIndex -= VISIBLE_LOCATION_COUNT;
105
			} else {
105
			} else {
106
				if (sender == gotoPrev) {
106
				if (sender == gotoPrev) {
107
					// Move back a page.
107
					// Move back a page.
108
					startIndex -= VISIBLE_LOCATION_COUNT;
108
					startIndex -= VISIBLE_LOCATION_COUNT;
109
					if (startIndex < 0)
109
					if (startIndex < 0)
110
						startIndex = 0;
110
						startIndex = 0;
111
				} else {
111
				} else {
112
					if (sender == gotoEnd) {
112
					if (sender == gotoEnd) {
113
						gotoEnd();
113
						gotoEnd();
114
					} else {
114
					} else {
115
						if (sender == gotoFirst) {
115
						if (sender == gotoFirst) {
116
							startIndex = 0;
116
							startIndex = 0;
117
						}
117
						}
118
					}
118
					}
119
				}
119
				}
120
			}
120
			}
121
			update();
121
			update();
122
		}
122
		}
123
 
123
 
124
	}
124
	}
125
 
125
 
126
 
126
 
127
 
127
 
128
		private static final int VISIBLE_LOCATION_COUNT = 10;
128
		private static final int VISIBLE_LOCATION_COUNT = 10;
129
		private static final String VALUE_UNKNOWN = "Inconnues";
129
		private static final String VALUE_UNKNOWN = "Inconnues";
130
 
130
 
131
		private Grid header = new Grid(1, 2);
131
		private Grid header = new Grid(1, 2);
132
		
132
		
133
		private Grid selector = new Grid(1, 1);
133
		private Grid selector = new Grid(1, 1);
134
 
134
 
135
		private FlexTable table = new FlexTable();
135
		private FlexTable table = new FlexTable();
136
 
136
 
137
		private VerticalPanel outer = new VerticalPanel();
137
		private VerticalPanel outer = new VerticalPanel();
138
		private VerticalPanel inner = new VerticalPanel();
138
		private VerticalPanel inner = new VerticalPanel();
139
 
139
 
140
		private int startIndex = 0;
140
		private int startIndex = 0;
141
 
141
 
142
		private String user;
142
		private String user;
143
 
143
 
144
		private String serviceBaseUrl = null;
144
		private String serviceBaseUrl = null;
145
 
145
 
146
		private String location = "all";
146
		private String location = "all";
147
 
147
 
148
		private NavBar navBar=null;
148
		private NavBar navBar=null;
149
 
149
 
150
		private int count = 0;
150
		private int count = 0;
151
		
151
		
152
		// Tous selectionné 
152
		// Tous selectionn� 
153
		private int  selectedRow = -1;
153
		private int  selectedRow = -1;
154
		
154
		
155
		private Mediator mediator = null;
155
		private Mediator mediator = null;
156
 
156
 
157
		
157
		
158
		public LocationList(Mediator med) {
158
		public LocationList(Mediator med) {
159
			
159
			
160
			mediator=med;
160
			mediator=med;
161
 
161
 
162
			mediator.registerLocationList(this);
162
			mediator.registerLocationList(this);
163
 
163
 
164
			user=mediator.getUser();
164
			user=mediator.getUser();
165
			serviceBaseUrl = mediator.getServiceBaseUrl();
165
			serviceBaseUrl = mediator.getServiceBaseUrl();
166
			
166
			
167
			navBar = new NavBar();
167
			navBar = new NavBar();
168
			
168
			
169
			// Mise en forme du header
169
			// Mise en forme du header
170
 
170
 
171
			header.setCellSpacing(0);
171
			header.setCellSpacing(0);
172
			header.setCellPadding(2);
172
			header.setCellPadding(2);
173
			header.setWidth("100%");
173
			header.setWidth("100%");
174
 
174
 
175
			header.setStyleName("location-ListHeader");
175
			header.setStyleName("location-ListHeader");
176
 
176
 
177
			
177
			
178
			header.setWidget(0, 1,navBar);
178
			header.setWidget(0, 1,navBar);
179
			
179
			
180
 
180
 
181
 
181
 
182
			// Mise en forme de l'entree "Toutes localités"
182
			// Mise en forme de l'entree "Toutes localit�s"
183
 
183
 
184
			selector.setCellSpacing(0);
184
			selector.setCellSpacing(0);
185
			selector.setCellPadding(0);
185
			selector.setCellPadding(0);
186
			selector.setWidth("100%");
186
			selector.setWidth("100%");
187
 
187
 
188
			selector.setHTML(0, 0, "Toutes");
188
			selector.setHTML(0, 0, "Toutes");
189
 
189
 
190
			selector.getCellFormatter().setWidth(0, 0, "100%");
190
			selector.getCellFormatter().setWidth(0, 0, "100%");
191
 
191
 
192
 
192
 
193
			 // Hook up events.
193
			 // Hook up events.
194
			selector.addTableListener(new TableListener () {
194
			selector.addTableListener(new TableListener () {
195
		    	
195
		    	
196
				  public void onCellClicked(SourcesTableEvents sender, int row, int cell) {
196
				  public void onCellClicked(SourcesTableEvents sender, int row, int cell) {
197
					  	styleRow(selectedRow, false);
197
					  	styleRow(selectedRow, false);
198
				        selector.getRowFormatter().addStyleName(0, "location-SelectedRow");
198
				        selector.getRowFormatter().addStyleName(0, "location-SelectedRow");
199
					    mediator.onLocationSelected("all");
199
					    mediator.onLocationSelected("all");
200
					  }
200
					  }
201
 
201
 
202
		    });
202
		    });
203
			
203
			
204
			selector.setStyleName("location-ListElement");
204
			selector.setStyleName("location-ListElement");
205
 
205
 
206
			
206
			
207
			// Mise en forme du contenu 
207
			// Mise en forme du contenu 
208
 
208
 
209
			table.setCellSpacing(0);
209
			table.setCellSpacing(0);
210
			table.setBorderWidth(0);
210
			table.setBorderWidth(0);
211
			table.setCellPadding(2);
211
			table.setCellPadding(2);
212
			table.setWidth("100%");
212
			table.setWidth("100%");
213
 
213
 
214
			table.setStyleName("location-ListElement");
214
			table.setStyleName("location-ListElement");
215
 
215
 
216
			// Mise en forme barre navigation
216
			// Mise en forme barre navigation
217
			
217
			
218
			navBar.setWidth("100%");
218
			navBar.setWidth("100%");
219
			
219
			
220
			outer.add(header);
220
			outer.add(header);
221
			inner.add(selector); // Toutes localités
221
			inner.add(selector); // Toutes localit�s
222
			inner.add(table);
222
			inner.add(table);
223
			inner.setStyleName("location-List");
223
			inner.setStyleName("location-List");
224
			inner.setWidth("100%");
224
			inner.setWidth("100%");
225
			outer.setWidth("100%");
225
			outer.setWidth("100%");
226
			outer.add(inner);
226
			outer.add(inner);
227
			
227
			
228
			 // Hook up events.
228
			 // Hook up events.
229
		    table.addTableListener(new TableListener () {
229
		    table.addTableListener(new TableListener () {
230
		    	
230
		    	
231
				  public void onCellClicked(SourcesTableEvents sender, int row, int cell) {
231
				  public void onCellClicked(SourcesTableEvents sender, int row, int cell) {
232
					  
232
					  
233
					      selectRow(row);
233
					      selectRow(row);
234
					      String loc=table.getText(row,cell);
234
					      String loc=table.getText(row,cell);
235
					      if (loc.compareTo(VALUE_UNKNOWN)!=0) {
235
					      if (loc.compareTo(VALUE_UNKNOWN)!=0) {
236
					    	  location=loc;
236
					    	  location=loc;
237
					    	  mediator.onLocationSelected(table.getText(row,cell));
237
					    	  mediator.onLocationSelected(table.getText(row,cell));
238
					      }
238
					      }
239
					      else {
239
					      else {
240
					    	  location="000null";
240
					    	  location="000null";
241
					    	  mediator.onLocationSelected("000null");
241
					    	  mediator.onLocationSelected("000null");
242
					      }
242
					      }
243
					    
243
					    
244
					  }
244
					  }
245
 
245
 
246
		    });
246
		    });
247
		    
247
		    
248
		  	styleRow(selectedRow, false);
248
		  	styleRow(selectedRow, false);
249
	        selector.getRowFormatter().addStyleName(0, "location-SelectedRow");
249
	        selector.getRowFormatter().addStyleName(0, "location-SelectedRow");
250
		   // mediator.onLocationSelected("all");
250
		   // mediator.onLocationSelected("all");
251
		    		
251
		    		
252
		    
252
		    
253
			//updateCount();
253
			//updateCount();
254
			// update()
254
			// update()
255
			
255
			
256
			initWidget(outer);
256
			initWidget(outer);
257
 
257
 
258
 
258
 
259
  }
259
  }
260
 
260
 
261
		/**
261
		/**
262
		 * Recherche nombre d'enregistrement pour l'utilisateur en cours
262
		 * Recherche nombre d'enregistrement pour l'utilisateur en cours
263
		 * 
263
		 * 
264
		 * 
264
		 * 
265
		 */
265
		 */
266
		
266
		
267
		public void updateCount() {
267
		public void updateCount() {
268
			
268
			
269
			setStatusDisabled();
269
			setStatusDisabled();
270
 
270
 
271
//			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user + "/" + location + "/"  ,
271
//			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user + "/" + location + "/"  ,
272
			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user ,
272
			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user ,
273
					new ResponseTextHandler() {
273
					new ResponseTextHandler() {
274
 
274
 
275
						public void onCompletion(String str) {
275
						public void onCompletion(String str) {
276
							JSONValue jsonValue = JSONParser.parse(str);
276
							JSONValue jsonValue = JSONParser.parse(str);
277
							JSONNumber jsonNumber;
277
							JSONNumber jsonNumber;
278
							if ((jsonNumber = jsonValue.isNumber()) != null) {
278
							if ((jsonNumber = jsonValue.isNumber()) != null) {
279
								count = (int) jsonNumber.getValue();
279
								count = (int) jsonNumber.getValue();
280
								update();
280
								update();
281
							}
281
							}
282
						}
282
						}
283
					});
283
					});
284
 
284
 
285
		}
285
		}
286
 
286
 
287
	
287
	
288
		  private void selectRow(int row) {
288
		  private void selectRow(int row) {
289
			  
289
			  
290
		    styleRow(selectedRow, false);
290
		    styleRow(selectedRow, false);
291
		    styleRow(row, true);
291
		    styleRow(row, true);
292
 
292
 
293
		    selectedRow = row;
293
		    selectedRow = row;
294
		    
294
		    
295
		  }
295
		  }
296
		  
296
		  
297
		  
297
		  
298
		  private void styleRow(int row, boolean selected) {
298
		  private void styleRow(int row, boolean selected) {
299
			    if (row != -1) {
299
			    if (row != -1) {
300
				   selector.getRowFormatter().removeStyleName(0, "location-SelectedRow");
300
				   selector.getRowFormatter().removeStyleName(0, "location-SelectedRow");
301
			      if (selected)
301
			      if (selected)
302
			        table.getRowFormatter().addStyleName(row, "location-SelectedRow");
302
			        table.getRowFormatter().addStyleName(row, "location-SelectedRow");
303
			      else
303
			      else
304
			    	if (row < table.getRowCount()) { 
304
			    	if (row < table.getRowCount()) { 
305
			    		table.getRowFormatter().removeStyleName(row, "location-SelectedRow");
305
			    		table.getRowFormatter().removeStyleName(row, "location-SelectedRow");
306
			    	}
306
			    	}
307
			    }
307
			    }
308
			  }
308
			  }
309
 
309
 
310
		  
310
		  
311
	/**
311
	/**
312
	 * 
312
	 * 
313
	 * Mise a jour de l'affichage, à partir des données d'inventaire deja
313
	 * Mise a jour de l'affichage, � partir des donn�es d'inventaire deja
314
	 * saisies. La valeur de this.startIndex permet de determiner quelles
314
	 * saisies. La valeur de this.startIndex permet de determiner quelles
315
	 * données seront affichées
315
	 * donn�es seront affich�es
316
	 * 
316
	 * 
317
	 */	
317
	 */	
318
 
318
 
319
		public void update() {
319
		public void update() {
320
 
320
 
321
			
321
			
322
			setStatusDisabled();
322
			setStatusDisabled();
323
 
323
 
324
//			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user + "/" + location + "/" +  
324
//			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user + "/" + location + "/" +  
325
			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user + "/" +  
325
			HTTPRequest.asyncGet(serviceBaseUrl + "/InventoryLocationList/" + user + "/" +  
326
					+ startIndex + "/" + VISIBLE_LOCATION_COUNT,
326
					+ startIndex + "/" + VISIBLE_LOCATION_COUNT,
327
 
327
 
328
			new ResponseTextHandler() {
328
			new ResponseTextHandler() {
329
 
329
 
330
				public void onCompletion(String str) {
330
				public void onCompletion(String str) {
331
 
331
 
332
					JSONValue jsonValue = JSONParser.parse(str);
332
					JSONValue jsonValue = JSONParser.parse(str);
333
					JSONArray jsonArray;
333
					JSONArray jsonArray;
334
					JSONArray jsonArrayNested;
334
					JSONArray jsonArrayNested;
335
			
335
			
336
					int row=0;
336
					int row=0;
337
					int i=0;
337
					int i=0;
338
					
338
					
339
					if ((jsonArray = jsonValue.isArray()) != null) {
339
					if ((jsonArray = jsonValue.isArray()) != null) {
340
						int arraySize = jsonArray.size();
340
						int arraySize = jsonArray.size();
341
						for (i = 0; i < arraySize; ++i) {
341
						for (i = 0; i < arraySize; ++i) {
342
							if ((jsonArrayNested = jsonArray.get(i).isArray()) != null) {
342
							if ((jsonArrayNested = jsonArray.get(i).isArray()) != null) {
343
								if (i>=table.getRowCount()) {
343
								if (i>=table.getRowCount()) {
344
									 row = table.insertRow(table.getRowCount());
344
									 row = table.insertRow(table.getRowCount());
345
								}
345
								}
346
								else {
346
								else {
347
									row = i;
347
									row = i;
348
								}
348
								}
349
								// Lieu
349
								// Lieu
350
							    	
350
							    	
351
								String loc=((JSONString)jsonArrayNested.get(0)).stringValue();
351
								String loc=Util.toCelString(((JSONString)jsonArrayNested.get(0)).toString());
352
								
352
								
353
								if (loc.compareTo("000null")!=0) {
353
								if (loc.compareTo("000null")!=0) {
354
									table.setText(row, 0,loc); 
354
									table.setText(row, 0,loc); 
355
								}
355
								}
356
								else {
356
								else {
357
									table.setText(row, 0,VALUE_UNKNOWN);
357
									table.setText(row, 0,VALUE_UNKNOWN);
358
								}
358
								}
359
								
359
								
360
								if (loc.compareTo(location)==0) {
360
								if (loc.compareTo(location)==0) {
361
								  styleRow(row, true);
361
								  styleRow(row, true);
362
								}
362
								}
363
								else {
363
								else {
364
								  styleRow(row, false);
364
								  styleRow(row, false);
365
								}
365
								}
366
 
366
 
367
								table.getFlexCellFormatter().setWidth(row, 0, "100%");
367
								table.getFlexCellFormatter().setWidth(row, 0, "100%");
368
							}
368
							}
369
 
369
 
370
						}
370
						}
371
					}
371
					}
372
					
372
					
373
					if (location.compareTo("all")==0) {
373
					if (location.compareTo("all")==0) {
374
							selector.getRowFormatter().addStyleName(0, "location-SelectedRow");
374
							selector.getRowFormatter().addStyleName(0, "location-SelectedRow");
375
					}
375
					}
376
 
376
 
377
					
377
					
378
					// Suppression fin ancien affichage
378
					// Suppression fin ancien affichage
379
					if (i<table.getRowCount()) {
379
					if (i<table.getRowCount()) {
380
						 for (int j = table.getRowCount() -1 ; j >= i; j--) {
380
						 for (int j = table.getRowCount() -1 ; j >= i; j--) {
381
							 table.removeRow(j);
381
							 table.removeRow(j);
382
						 }
382
						 }
383
					}
383
					}
384
 
384
 
385
					setStatusEnabled();
385
					setStatusEnabled();
386
 
386
 
387
 
387
 
388
				}
388
				}
389
			});
389
			});
390
 
390
 
391
		}
391
		}
392
 
392
 
393
		public void setLocation(String location) {
393
		public void setLocation(String location) {
394
			this.location = location;
394
			this.location = location;
395
		}
395
		}
396
		
396
		
397
		
397
		
398
			
398
			
399
		/*
399
		/*
400
		 * Positionnement index de parcours (this.startIndex) pour affichage de la
400
		 * Positionnement index de parcours (this.startIndex) pour affichage de la
401
		 * dernière page
401
		 * derni�re page
402
		 * 
402
		 * 
403
		 * @param
403
		 * @param
404
		 * @return void
404
		 * @return void
405
		 */
405
		 */
406
 
406
 
407
		private void gotoEnd() {
407
		private void gotoEnd() {
408
 
408
 
409
			if ((count == 0) || (count % VISIBLE_LOCATION_COUNT) > 0) {
409
			if ((count == 0) || (count % VISIBLE_LOCATION_COUNT) > 0) {
410
				startIndex = count - (count % VISIBLE_LOCATION_COUNT);
410
				startIndex = count - (count % VISIBLE_LOCATION_COUNT);
411
			} else {
411
			} else {
412
				startIndex = count - VISIBLE_LOCATION_COUNT;
412
				startIndex = count - VISIBLE_LOCATION_COUNT;
413
			}
413
			}
414
 
414
 
415
		}
415
		}
416
		
416
		
417
		
417
		
418
		/**
418
		/**
419
		 * Affichage message d'attente et désactivation navigation
419
		 * Affichage message d'attente et d�sactivation navigation
420
		 * 
420
		 * 
421
		 * @param
421
		 * @param
422
		 * @return void
422
		 * @return void
423
		 */
423
		 */
424
 
424
 
425
		private void setStatusDisabled() {
425
		private void setStatusDisabled() {
426
 
426
 
427
			navBar.gotoFirst.setEnabled(false);
427
			navBar.gotoFirst.setEnabled(false);
428
			navBar.gotoPrev.setEnabled(false);
428
			navBar.gotoPrev.setEnabled(false);
429
			navBar.gotoNext.setEnabled(false);
429
			navBar.gotoNext.setEnabled(false);
430
			navBar.gotoEnd.setEnabled(false);
430
			navBar.gotoEnd.setEnabled(false);
431
 
431
 
432
			setStatusText("Patientez ...");
432
			setStatusText("Patientez ...");
433
		}
433
		}
434
 
434
 
435
		/**
435
		/**
436
		 * Affichage numero de page et gestion de la navigation
436
		 * Affichage numero de page et gestion de la navigation
437
		 * 
437
		 * 
438
		 */
438
		 */
439
 
439
 
440
		private void setStatusEnabled() {
440
		private void setStatusEnabled() {
441
 
441
 
442
			// Il y a forcemment un disabled avant d'arriver ici
442
			// Il y a forcemment un disabled avant d'arriver ici
443
 
443
 
444
			if (count > 0) {
444
			if (count > 0) {
445
 
445
 
446
				if (startIndex >= VISIBLE_LOCATION_COUNT) { // Au dela de la
446
				if (startIndex >= VISIBLE_LOCATION_COUNT) { // Au dela de la
447
															// premiere page
447
															// premiere page
448
					navBar.gotoPrev.setEnabled(true);
448
					navBar.gotoPrev.setEnabled(true);
449
					navBar.gotoFirst.setEnabled(true);
449
					navBar.gotoFirst.setEnabled(true);
450
					if (startIndex < (count - VISIBLE_LOCATION_COUNT)) { // Pas la
450
					if (startIndex < (count - VISIBLE_LOCATION_COUNT)) { // Pas la
451
																		// derniere
451
																		// derniere
452
																		// page
452
																		// page
453
						navBar.gotoNext.setEnabled(true);
453
						navBar.gotoNext.setEnabled(true);
454
						navBar.gotoEnd.setEnabled(true);
454
						navBar.gotoEnd.setEnabled(true);
455
						setStatusText((startIndex + 1) + " - "
455
						setStatusText((startIndex + 1) + " - "
456
								+ (startIndex + VISIBLE_LOCATION_COUNT) + " sur " + count );
456
								+ (startIndex + VISIBLE_LOCATION_COUNT) + " sur " + count );
457
					} else { // Derniere page
457
					} else { // Derniere page
458
						setStatusText((startIndex + 1) + " - " + count + " sur " + count );
458
						setStatusText((startIndex + 1) + " - " + count + " sur " + count );
459
					}
459
					}
460
				} else { // Premiere page
460
				} else { // Premiere page
461
					if (count > VISIBLE_LOCATION_COUNT) { // Des pages derrieres
461
					if (count > VISIBLE_LOCATION_COUNT) { // Des pages derrieres
462
						navBar.gotoNext.setEnabled(true);
462
						navBar.gotoNext.setEnabled(true);
463
						navBar.gotoEnd.setEnabled(true);
463
						navBar.gotoEnd.setEnabled(true);
464
						setStatusText((startIndex + 1) + " - "
464
						setStatusText((startIndex + 1) + " - "
465
								+ (startIndex + VISIBLE_LOCATION_COUNT) + " sur " + count);
465
								+ (startIndex + VISIBLE_LOCATION_COUNT) + " sur " + count);
466
					} else {
466
					} else {
467
						setStatusText((startIndex + 1) + " - " + count + " sur " + count);
467
						setStatusText((startIndex + 1) + " - " + count + " sur " + count);
468
					}
468
					}
469
				}
469
				}
470
			}
470
			}
471
 
471
 
472
			else { // Pas d'inventaire, pas de navigation
472
			else { // Pas d'inventaire, pas de navigation
473
				setStatusText("0 - 0 sur 0");
473
				setStatusText("0 - 0 sur 0");
474
			}
474
			}
475
		}
475
		}
476
 
476
 
477
 
477
 
478
 
478
 
479
		private void setStatusText(String text) {
479
		private void setStatusText(String text) {
480
			navBar.status.setText(text);
480
			navBar.status.setText(text);
481
		}
481
		}
482
		
482
		
483
		public void setUser(String user) {
483
		public void setUser(String user) {
484
			this.user = user;
484
			this.user = user;
485
		}
485
		}
486
 
486
 
487
}
487
}