Index: projets/BCCCC/war/bcccc/30A813512B59F435507D1077DE9B2435.gwt.rpc
===================================================================
--- projets/BCCCC/war/bcccc/30A813512B59F435507D1077DE9B2435.gwt.rpc	(revision 0)
+++ projets/BCCCC/war/bcccc/30A813512B59F435507D1077DE9B2435.gwt.rpc	(revision 8)
@@ -0,0 +1,42 @@
+com.google.gwt.i18n.shared.impl.DateRecord, true, true, true, true, com.google.gwt.i18n.shared.impl.DateRecord/3375188634, 3375188634
+com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true, true, true, true, com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533, 3936916533
+com.google.gwt.user.client.rpc.RpcTokenException, true, true, false, false, com.google.gwt.user.client.rpc.RpcTokenException/2345075298, 2345075298
+com.google.gwt.user.client.rpc.XsrfToken, false, false, true, true, com.google.gwt.user.client.rpc.XsrfToken/4254043109, 4254043109
+com.smartgwt.client.util.LogicalDate, true, true, true, true, com.smartgwt.client.util.LogicalDate/1452805037, 1452805037
+com.smartgwt.client.util.LogicalTime, true, true, true, true, com.smartgwt.client.util.LogicalTime/644891758, 644891758
+java.lang.Boolean, true, true, true, true, java.lang.Boolean/476441737, 476441737
+java.lang.Exception, true, false, true, false, java.lang.Exception/1920171873, 1920171873
+java.lang.IllegalArgumentException, true, true, false, false, java.lang.IllegalArgumentException/1755012560, 1755012560
+java.lang.Long, false, false, true, true, java.lang.Long/4227064769, 4227064769
+java.lang.Number, false, false, true, false, java.lang.Number/300033342, 300033342
+java.lang.NumberFormatException, true, true, false, false, java.lang.NumberFormatException/3305228476, 3305228476
+java.lang.RuntimeException, true, false, true, false, java.lang.RuntimeException/515124647, 515124647
+java.lang.String, true, true, true, true, java.lang.String/2004016611, 2004016611
+[Ljava.lang.String;, true, true, true, true, [Ljava.lang.String;/2600011424, 2600011424
+java.lang.Throwable, true, false, true, false, java.lang.Throwable/2953622131, 2953622131
+java.sql.Date, true, true, true, true, java.sql.Date/730999118, 730999118
+java.sql.Time, true, true, true, true, java.sql.Time/1816797103, 1816797103
+java.sql.Timestamp, true, true, true, true, java.sql.Timestamp/3040052672, 3040052672
+java.util.ArrayList, true, true, true, true, java.util.ArrayList/4159755760, 4159755760
+java.util.Arrays$ArrayList, true, true, true, true, java.util.Arrays$ArrayList/2507071751, 2507071751
+java.util.Collections$EmptyList, true, true, true, true, java.util.Collections$EmptyList/4157118744, 4157118744
+java.util.Collections$SingletonList, true, true, true, true, java.util.Collections$SingletonList/1586180994, 1586180994
+java.util.Date, true, true, true, true, java.util.Date/3385151746, 3385151746
+java.util.HashMap, false, false, true, true, java.util.HashMap/1797211028, 1797211028
+java.util.LinkedHashMap, false, false, true, true, java.util.LinkedHashMap/3008245022, 3008245022
+java.util.LinkedList, true, true, true, true, java.util.LinkedList/3953877921, 3953877921
+java.util.Stack, true, true, true, true, java.util.Stack/1346942793, 1346942793
+java.util.Vector, true, true, true, true, java.util.Vector/3057315478, 3057315478
+org.ccc.bcccc.client.GreetingService, false, false, false, false, _, 1281457674
+org.ccc.bcccc.shared.Data, true, true, true, true, org.ccc.bcccc.shared.Data/299459428, 299459428
+[Lorg.ccc.bcccc.shared.Data;, true, true, true, true, [Lorg.ccc.bcccc.shared.Data;/3541387031, 3541387031
+org.ccc.bcccc.shared.Dispositif, true, true, true, true, org.ccc.bcccc.shared.Dispositif/2259613867, 2259613867
+[Lorg.ccc.bcccc.shared.Dispositif;, true, true, true, true, [Lorg.ccc.bcccc.shared.Dispositif;/2568248444, 2568248444
+org.ccc.bcccc.shared.DocumentUnit, true, true, true, true, org.ccc.bcccc.shared.DocumentUnit/1769601531, 1769601531
+[Lorg.ccc.bcccc.shared.DocumentUnit;, true, true, true, true, [Lorg.ccc.bcccc.shared.DocumentUnit;/1820140400, 1820140400
+org.ccc.bcccc.shared.Publication, true, true, true, true, org.ccc.bcccc.shared.Publication/325472833, 325472833
+[Lorg.ccc.bcccc.shared.Publication;, true, true, true, true, [Lorg.ccc.bcccc.shared.Publication;/1292698735, 1292698735
+org.ccc.bcccc.shared.Report, true, true, true, true, org.ccc.bcccc.shared.Report/1971810881, 1971810881
+[Lorg.ccc.bcccc.shared.Report;, true, true, true, true, [Lorg.ccc.bcccc.shared.Report;/317565048, 317565048
+org.ccc.bcccc.shared.TerrainRecord, true, true, true, true, org.ccc.bcccc.shared.TerrainRecord/1034002427, 1034002427
+org.ccc.bcccc.shared.TerrainRecordAndRights, true, true, false, false, org.ccc.bcccc.shared.TerrainRecordAndRights/771912597, 771912597
Index: projets/BCCCC/war/bcccc/34CC664CABC78DF91255809163C9A03C.gwt.rpc
===================================================================
--- projets/BCCCC/war/bcccc/34CC664CABC78DF91255809163C9A03C.gwt.rpc	(revision 0)
+++ projets/BCCCC/war/bcccc/34CC664CABC78DF91255809163C9A03C.gwt.rpc	(revision 8)
@@ -0,0 +1,40 @@
+com.google.gwt.i18n.shared.impl.DateRecord, true, true, true, true, com.google.gwt.i18n.shared.impl.DateRecord/3375188634, 3375188634
+com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true, true, true, true, com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533, 3936916533
+com.google.gwt.user.client.rpc.RpcTokenException, true, true, false, false, com.google.gwt.user.client.rpc.RpcTokenException/2345075298, 2345075298
+com.google.gwt.user.client.rpc.XsrfToken, false, false, true, true, com.google.gwt.user.client.rpc.XsrfToken/4254043109, 4254043109
+com.smartgwt.client.util.LogicalDate, true, true, true, true, com.smartgwt.client.util.LogicalDate/1452805037, 1452805037
+com.smartgwt.client.util.LogicalTime, true, true, true, true, com.smartgwt.client.util.LogicalTime/644891758, 644891758
+java.lang.Boolean, true, true, true, true, java.lang.Boolean/476441737, 476441737
+java.lang.Exception, true, false, true, false, java.lang.Exception/1920171873, 1920171873
+java.lang.IllegalArgumentException, true, true, false, false, java.lang.IllegalArgumentException/1755012560, 1755012560
+java.lang.Long, false, false, true, true, java.lang.Long/4227064769, 4227064769
+java.lang.Number, false, false, true, false, java.lang.Number/300033342, 300033342
+java.lang.NumberFormatException, true, true, false, false, java.lang.NumberFormatException/3305228476, 3305228476
+java.lang.RuntimeException, true, false, true, false, java.lang.RuntimeException/515124647, 515124647
+java.lang.String, true, true, true, true, java.lang.String/2004016611, 2004016611
+[Ljava.lang.String;, true, true, true, true, [Ljava.lang.String;/2600011424, 2600011424
+java.lang.Throwable, true, false, true, false, java.lang.Throwable/2953622131, 2953622131
+java.sql.Date, true, true, true, true, java.sql.Date/730999118, 730999118
+java.sql.Time, true, true, true, true, java.sql.Time/1816797103, 1816797103
+java.sql.Timestamp, true, true, true, true, java.sql.Timestamp/3040052672, 3040052672
+java.util.ArrayList, true, true, true, true, java.util.ArrayList/4159755760, 4159755760
+java.util.Arrays$ArrayList, true, true, true, true, java.util.Arrays$ArrayList/2507071751, 2507071751
+java.util.Collections$EmptyList, true, true, true, true, java.util.Collections$EmptyList/4157118744, 4157118744
+java.util.Collections$SingletonList, true, true, true, true, java.util.Collections$SingletonList/1586180994, 1586180994
+java.util.Date, true, true, true, true, java.util.Date/3385151746, 3385151746
+java.util.HashMap, false, false, true, true, java.util.HashMap/1797211028, 1797211028
+java.util.LinkedHashMap, false, false, true, true, java.util.LinkedHashMap/3008245022, 3008245022
+java.util.LinkedList, true, true, true, true, java.util.LinkedList/3953877921, 3953877921
+java.util.Stack, true, true, true, true, java.util.Stack/1346942793, 1346942793
+java.util.Vector, true, true, true, true, java.util.Vector/3057315478, 3057315478
+org.ccc.bcccc.client.GreetingService, false, false, false, false, _, 1281457674
+org.ccc.bcccc.shared.Data, true, true, true, true, org.ccc.bcccc.shared.Data/299459428, 299459428
+[Lorg.ccc.bcccc.shared.Data;, true, true, true, true, [Lorg.ccc.bcccc.shared.Data;/3541387031, 3541387031
+org.ccc.bcccc.shared.Dispositif, true, true, true, true, org.ccc.bcccc.shared.Dispositif/2259613867, 2259613867
+[Lorg.ccc.bcccc.shared.Dispositif;, true, true, true, true, [Lorg.ccc.bcccc.shared.Dispositif;/2568248444, 2568248444
+org.ccc.bcccc.shared.DocumentUnit, true, true, true, true, org.ccc.bcccc.shared.DocumentUnit/1769601531, 1769601531
+[Lorg.ccc.bcccc.shared.DocumentUnit;, true, true, true, true, [Lorg.ccc.bcccc.shared.DocumentUnit;/1820140400, 1820140400
+org.ccc.bcccc.shared.Report, true, true, true, true, org.ccc.bcccc.shared.Report/1971810881, 1971810881
+[Lorg.ccc.bcccc.shared.Report;, true, true, true, true, [Lorg.ccc.bcccc.shared.Report;/317565048, 317565048
+org.ccc.bcccc.shared.TerrainRecord, true, true, true, true, org.ccc.bcccc.shared.TerrainRecord/1034002427, 1034002427
+org.ccc.bcccc.shared.TerrainRecordAndRights, true, true, false, false, org.ccc.bcccc.shared.TerrainRecordAndRights/771912597, 771912597
Index: projets/BCCCC/war/bcccc/6E28B583F477797B1DDCF5D1B1766D04.gwt.rpc
===================================================================
--- projets/BCCCC/war/bcccc/6E28B583F477797B1DDCF5D1B1766D04.gwt.rpc	(revision 0)
+++ projets/BCCCC/war/bcccc/6E28B583F477797B1DDCF5D1B1766D04.gwt.rpc	(revision 8)
@@ -0,0 +1,34 @@
+com.google.gwt.i18n.shared.impl.DateRecord, true, true, true, true, com.google.gwt.i18n.shared.impl.DateRecord/3375188634, 3375188634
+com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true, true, true, true, com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533, 3936916533
+com.google.gwt.user.client.rpc.RpcTokenException, true, true, false, false, com.google.gwt.user.client.rpc.RpcTokenException/2345075298, 2345075298
+com.google.gwt.user.client.rpc.XsrfToken, false, false, true, true, com.google.gwt.user.client.rpc.XsrfToken/4254043109, 4254043109
+com.smartgwt.client.util.LogicalDate, true, true, true, true, com.smartgwt.client.util.LogicalDate/1452805037, 1452805037
+com.smartgwt.client.util.LogicalTime, true, true, true, true, com.smartgwt.client.util.LogicalTime/644891758, 644891758
+java.lang.Boolean, true, true, true, true, java.lang.Boolean/476441737, 476441737
+java.lang.Exception, true, false, true, false, java.lang.Exception/1920171873, 1920171873
+java.lang.IllegalArgumentException, true, true, false, false, java.lang.IllegalArgumentException/1755012560, 1755012560
+java.lang.Long, false, false, true, true, java.lang.Long/4227064769, 4227064769
+java.lang.Number, false, false, true, false, java.lang.Number/300033342, 300033342
+java.lang.NumberFormatException, true, true, false, false, java.lang.NumberFormatException/3305228476, 3305228476
+java.lang.RuntimeException, true, false, true, false, java.lang.RuntimeException/515124647, 515124647
+java.lang.String, true, true, true, true, java.lang.String/2004016611, 2004016611
+[Ljava.lang.String;, true, true, true, true, [Ljava.lang.String;/2600011424, 2600011424
+java.lang.Throwable, true, false, true, false, java.lang.Throwable/2953622131, 2953622131
+java.sql.Date, true, true, true, true, java.sql.Date/730999118, 730999118
+java.sql.Time, true, true, true, true, java.sql.Time/1816797103, 1816797103
+java.sql.Timestamp, true, true, true, true, java.sql.Timestamp/3040052672, 3040052672
+java.util.ArrayList, true, true, true, true, java.util.ArrayList/4159755760, 4159755760
+java.util.Arrays$ArrayList, true, true, true, true, java.util.Arrays$ArrayList/2507071751, 2507071751
+java.util.Collections$EmptyList, true, true, true, true, java.util.Collections$EmptyList/4157118744, 4157118744
+java.util.Collections$SingletonList, true, true, true, true, java.util.Collections$SingletonList/1586180994, 1586180994
+java.util.Date, true, true, true, true, java.util.Date/3385151746, 3385151746
+java.util.HashMap, false, false, true, true, java.util.HashMap/1797211028, 1797211028
+java.util.LinkedHashMap, false, false, true, true, java.util.LinkedHashMap/3008245022, 3008245022
+java.util.LinkedList, true, true, true, true, java.util.LinkedList/3953877921, 3953877921
+java.util.Stack, true, true, true, true, java.util.Stack/1346942793, 1346942793
+java.util.Vector, true, true, true, true, java.util.Vector/3057315478, 3057315478
+org.ccc.bcccc.client.GreetingService, false, false, false, false, _, 1281457674
+org.ccc.bcccc.shared.Dispositif, true, true, true, true, org.ccc.bcccc.shared.Dispositif/2259613867, 2259613867
+[Lorg.ccc.bcccc.shared.Dispositif;, true, true, true, true, [Lorg.ccc.bcccc.shared.Dispositif;/2568248444, 2568248444
+org.ccc.bcccc.shared.TerrainRecord, true, true, true, true, org.ccc.bcccc.shared.TerrainRecord/1034002427, 1034002427
+org.ccc.bcccc.shared.TerrainRecordAndRights, true, true, false, false, org.ccc.bcccc.shared.TerrainRecordAndRights/771912597, 771912597
Index: projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/D873D99FFC3C569363D7D9B1FC736C4D.txt
===================================================================
--- projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/D873D99FFC3C569363D7D9B1FC736C4D.txt	(revision 0)
+++ projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/D873D99FFC3C569363D7D9B1FC736C4D.txt	(revision 8)
@@ -0,0 +1,2 @@
+serviceClass: org.ccc.bcccc.client.GreetingService
+path: 6E28B583F477797B1DDCF5D1B1766D04.gwt.rpc

Property changes on: projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/D873D99FFC3C569363D7D9B1FC736C4D.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/1012BB33DCBABE3B9B95455631D3E16B.txt
===================================================================
--- projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/1012BB33DCBABE3B9B95455631D3E16B.txt	(revision 0)
+++ projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/1012BB33DCBABE3B9B95455631D3E16B.txt	(revision 8)
@@ -0,0 +1,2 @@
+serviceClass: org.ccc.bcccc.client.GreetingService
+path: 34CC664CABC78DF91255809163C9A03C.gwt.rpc

Property changes on: projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/1012BB33DCBABE3B9B95455631D3E16B.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/C6A8D8D35AB22FDF4F538374E5E0F8FE.txt
===================================================================
--- projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/C6A8D8D35AB22FDF4F538374E5E0F8FE.txt	(revision 0)
+++ projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/C6A8D8D35AB22FDF4F538374E5E0F8FE.txt	(revision 8)
@@ -0,0 +1,2 @@
+serviceClass: org.ccc.bcccc.client.GreetingService
+path: 30A813512B59F435507D1077DE9B2435.gwt.rpc

Property changes on: projets/BCCCC/war/WEB-INF/deploy/bcccc/rpcPolicyManifest/manifests/C6A8D8D35AB22FDF4F538374E5E0F8FE.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/src/org/ccc/bcccc/server/GreetingServiceImpl.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/server/GreetingServiceImpl.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/server/GreetingServiceImpl.java	(revision 8)
@@ -417,11 +417,11 @@
 	 * @see org.ccc.bcccc.client.GreetingService#logIn(java.lang.String, java.lang.String, java.lang.String)
 	 */
 	@Override
-	public Boolean logIn(String login, String eta, String mdp) {
-		log.info("logIn: "+login+"@"+eta);
-		//if (mdp == null || !mdp.equals("lol")) return false; // TODO: replace with a shibboleth access
-		if (!usersDB.test(login+"@"+eta, mdp)) {
-			log.warning("logIn: wrong password/login: "+login+"@"+eta);
+	public boolean logIn(String login, String mdp) {
+		log.info("logIn: "+login);
+		// TODO: replace with a shibboleth access
+		if (!usersDB.test(login, mdp)) {
+			log.warning("logIn: wrong password/login: "+login);
 			return false;
 		}
 
@@ -443,8 +443,8 @@
 		// if (request.getHeader("Shib-EP-Affiliation").equals("staff")){...}
 
 		String session = this.getThreadLocalRequest().getSession().getId();
-		connectedUsers.put(session, login+"@"+eta);
-		log.info("logIn: ok "+login+"@"+eta);
+		connectedUsers.put(session, login);
+		log.info("logIn: ok "+login);
 		return true;
 	}
 
@@ -487,8 +487,8 @@
 //						log.warning("updateRecord: record needs to be validatd before: "+ID);
 //						return false;
 //					}
-					record.setDetailFields(content.numberOfParticipants, content.place, content.types, content.keywords, content.persons, content.dispositifs, content.documentations, content.supports, content.reports, content.publications);
-					record.setInfoFields(content.name, content.project, content.date, content.short_description, user);
+					record.setDetailFields(content.numberOfParticipants, content.types, content.keywords, content.persons, content.dispositifs, content.documentations, content.supports, content.reports, content.publications);
+					record.setInfoFields(content.name, content.project, content.place, content.date, content.short_description, user);
 					return records.save(record);
 
 				} else {
Index: projets/BCCCC/src/org/ccc/bcccc/server/RecordsDB.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/server/RecordsDB.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/server/RecordsDB.java	(revision 8)
@@ -37,6 +37,7 @@
 import org.ccc.bcccc.shared.Dispositif;
 import org.ccc.bcccc.shared.DocumentUnit;
 import org.ccc.bcccc.shared.K;
+import org.ccc.bcccc.shared.Person;
 import org.ccc.bcccc.shared.Report;
 import org.ccc.bcccc.shared.TerrainRecord;
 import org.w3c.dom.Document;
@@ -204,6 +205,15 @@
 						String type = node.getTextContent();
 						record.types.add(type);
 					}
+					
+					// get persons
+					NodeList persons = rootElement.getElementsByTagName(K.PERSON);
+					for (int i=0; i<persons.getLength(); i++){
+						Element node = (Element)(persons.item(i));
+						String pname = node.getAttribute("name");
+						String role = node.getAttribute("role");
+						record.persons.add(new Person(pname, role));
+					}
 
 					// get keywords
 					NodeList keywords = rootElement.getElementsByTagName(K.KEYWORD);
@@ -219,8 +229,11 @@
 						Element node = (Element)(dispositifs.item(i));
 						String dname = node.getAttribute(K.NAME);
 						String url = node.getAttribute(K.URL);
+						int n = 1;
+						if (node.getAttribute(K.NUMBER) != null && node.getAttribute(K.NUMBER).length() > 0)
+							n = Integer.parseInt(node.getAttribute(K.NUMBER));
 						boolean mobile = Boolean.parseBoolean(node.getAttribute(K.MOBILE));
-						record.dispositifs.add(new Dispositif(dname, url, mobile));
+						record.dispositifs.add(new Dispositif(dname, n, url, mobile));
 					}
 					
 					// get supports
@@ -312,6 +325,13 @@
 				rootElement.appendChild(e);
 			}
 			
+			for (Person v : record.persons) {
+				Element e = doc.createElement(K.PERSON);
+				e.setAttribute("name", v.name);
+				e.setAttribute("role", v.role);
+				rootElement.appendChild(e);
+			}
+			
 			for (String v : record.keywords) {
 				Element e = doc.createElement(K.KEYWORD);
 				e.setTextContent(v);
@@ -322,6 +342,7 @@
 				Element e = doc.createElement(K.DISPOSITIF);
 				e.setAttribute(K.NAME, v.type);
 				e.setAttribute(K.URL, v.url.toString());
+				e.setAttribute(K.NUMBER, Integer.toString(v.numberUsed));
 				e.setAttribute(K.MOBILE, Boolean.toString(v.mobile));
 				rootElement.appendChild(e);
 			}
Index: projets/BCCCC/src/org/ccc/bcccc/shared/Person.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/shared/Person.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/shared/Person.java	(revision 8)
@@ -0,0 +1,33 @@
+package org.ccc.bcccc.shared;
+
+import java.io.Serializable;
+
+
+public class Person implements Serializable, IHTMLprintable, ITerrainField {
+
+	private static final long serialVersionUID = -2728524027663587687L;
+	
+	public String name;
+	public  String role;
+	
+	public static String[] roles = {"collecteur", "responsable", "technicien"};
+	
+	public Person() {
+		// TODO Auto-generated constructor stub
+	}
+	
+	public Person(String name, String role) {
+		this.name = name;
+		this.role = role;
+	}
+
+	@Override
+	public String toCompareString() {
+		return name+role;
+	}
+
+	@Override
+	public String toHTML() {
+		return "<p>"+name+ "("+role+")</p>";
+	}
+}

Property changes on: projets/BCCCC/src/org/ccc/bcccc/shared/Person.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/src/org/ccc/bcccc/shared/K.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/shared/K.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/shared/K.java	(revision 8)
@@ -132,4 +132,8 @@
 
 	public static final String MATCHINGSTRATEGY = "matching";
 
+	public static final String NUMBER = "number";
+
+	public static final String PERSON = "person";
+
 }
Index: projets/BCCCC/src/org/ccc/bcccc/shared/Dispositif.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/shared/Dispositif.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/shared/Dispositif.java	(revision 8)
@@ -34,6 +34,8 @@
 	 */
 	private static final long serialVersionUID = 623201999995138355L;
 
+	public int numberUsed = 1;
+	
 	/** The type. */
 	public String type = "";
 	
@@ -54,8 +56,9 @@
 	 * @param url the url
 	 * @param mobile the mobile
 	 */
-	public Dispositif(String type, String url, Boolean mobile) {
+	public Dispositif(String type, int n, String url, Boolean mobile) {
 		this.type = type;
+		this.numberUsed = n;
 		this.url = url;
 		this.mobile = mobile;
 	}
@@ -64,14 +67,14 @@
 	 * @see java.lang.Object#toString()
 	 */
 	public String toString() {
-		return type +" "+mobile+" "+url;
+		return type +" "+numberUsed+" "+mobile+" "+url;
 	}
 	
 	/* (non-Javadoc)
 	 * @see java.lang.Object#toString()
 	 */
 	public String toHTML() {
-		return "<p>Type : "+type +" "+(mobile?"mobile":"non mobile")+" plus d'information sur le matériel à l'adresse <a href=\""+url+"\">"+url+"</a></p>";
+		return "<p>"+numberUsed+" "+type +" "+(mobile?"mobile":"non mobile")+" plus d'information sur le matériel à l'adresse <a href=\""+url+"\">"+url+"</a></p>";
 	}
 	
 	public String toCompareString() {
Index: projets/BCCCC/src/org/ccc/bcccc/shared/TerrainRecord.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/shared/TerrainRecord.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/shared/TerrainRecord.java	(revision 8)
@@ -75,7 +75,7 @@
 	public List<String> keywords = new ArrayList<String>();
 
 	/** The persons. */
-	public List<String> persons = new ArrayList<String>();
+	public List<Person> persons = new ArrayList<Person>();
 
 	/** The dispositifs. */
 	public List<Dispositif> dispositifs = new ArrayList<Dispositif>();
@@ -107,9 +107,10 @@
 	 * @param user the user
 	 * @return the terrain record
 	 */
-	public TerrainRecord setInfoFields(String name, String project, Date date, String short_description, String user) {
+	public TerrainRecord setInfoFields(String name, String project, String place, Date date, String short_description, String user) {
 		this.name = name;
 		this.project = project;
+		this.place = place;
 		this.date = date;
 		if (date != null)
 			this.year = date.getYear()+1900;
@@ -134,12 +135,11 @@
 	 * @param publications the publications
 	 * @return the terrain record
 	 */
-	public TerrainRecord setDetailFields(int numberOfParticipants, String place, 
-			List<String> types, List<String> keywords, List<String> persons, 
+	public TerrainRecord setDetailFields(int numberOfParticipants, 
+			List<String> types, List<String> keywords, List<Person> persons, 
 			List<Dispositif> dispositifs, List<DocumentUnit> documentations, 
 			List<Data> supports, List<Report> reports, List<Publication> publications) {
 		this.numberOfParticipants = numberOfParticipants;
-		this.place = place;
 		this.types = types;
 		this.keywords = keywords;
 		this.persons = persons;
@@ -164,6 +164,7 @@
 				+ "\tDate="+date+" "+year+"\n"
 				+ "\tPlace="+place+"\n"
 				+ "\tNumberOfParticipants="+numberOfParticipants+"\n"
+				+ "\tPersons"+persons+"\n"
 				+ "\tTypes"+types+"\n"
 				+" \tMakers="+persons+"\n"
 				+ "\tDispositifs="+dispositifs+"\n"
@@ -182,9 +183,9 @@
 				"<li>Nom du projet ayant produit le terrain : "+project+"</li>\n" +
 				"<li>Créateur de la fiche : "+user+"</li>\n" +
 				"<li>Date de prise : "+DateTimeFormat.getFormat(PredefinedFormat.DATE_LONG).format(date)+"</li>\n" +
-				"<li>Lieu de prise : "+place+"</li>\n" +
+				"<li>Lieu de prise : "+place+" (<a target=\"_blank\" href=\"https://www.openstreetmap.org/search?query="+place+"\">View on map</a>)</li>\n" +
 				"<li>Nombre de participants: "+numberOfParticipants+"</li>" +
-				"<p>Persones impliquées dans la réalisation du terrain : "+toPrettyHTMLList(persons)+"</p>\n" +
+				"<p>Persones impliquées dans la réalisation du terrain : "+toPrettyHTMLIHTMLprintableList(persons)+"</p>\n" +
 				"</ul>" +
 				"<h3>Détails</h3>\n" +
 				"<p>Type : "+toPrettyHTMLList(types)+"</p>\n" +
@@ -195,7 +196,7 @@
 	}
 	
 	public String toPrettyHTMLIHTMLprintableList(List<? extends IHTMLprintable> list) {
-		if (list.size() == 0) return "aucun";
+		if (list.size() == 0) return "non renseigné.";
 		StringBuffer buf = new StringBuffer();
 		buf.append("<ul>\n");
 		for (IHTMLprintable o : list) {
@@ -206,7 +207,7 @@
 	}
 	
 	public String toPrettyHTMLList(List<String> list) {
-		if (list.size() == 0) return "NA";
+		if (list.size() == 0) return "non renseigné.";
 		StringBuffer buf = new StringBuffer();
 		buf.append("<ul>\n");
 		for (Object o : list) {
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/DataRecordArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/DataRecordArea.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/DataRecordArea.java	(revision 8)
@@ -1,139 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ccc.bcccc.client.areas.fields.DataRecordField;
-import org.ccc.bcccc.client.panels.EditPanel;
-import org.ccc.bcccc.shared.Data;
-
-import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.events.ClickEvent;
-import com.smartgwt.client.widgets.events.ClickHandler;
-import com.smartgwt.client.widgets.layout.VLayout;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class DataRecordArea.
- */
-public class DataRecordArea extends VLayout {
-	
-	/** The fields. */
-	ArrayList<DataRecordField> fields = new ArrayList<DataRecordField>();
-	
-	/**
-	 * Instantiates a new data record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 */
-	public DataRecordArea(EditPanel panel, String name) {
-		//super(panel, name, true, false, Data.values);
-		//form.setNumCols(7); // show 3 item per line
-		this.setWidth100();
-		
-		Label title = new Label();
-		title.setContents(name);
-		this.addMember(title);
-		
-		Button addButton = new Button("Ajouter une donnée");
-		this.addMember(addButton);
-		addButton.addClickHandler(new ClickHandler() {
-			@Override
-			public void onClick(ClickEvent event) {
-				addAField();
-			}
-		});
-		
-		addAField(); // create at least one entry
-	}
-
-	/** The n. */
-	static int n;
-	
-	/**
-	 * Adds the a field.
-	 */
-	public void addAField() {
-		DataRecordField f = new DataRecordField(this, n);
-		this.addMember(f);
-		fields.add(f);
-		n++;
-		//reloadFields();
-	}
-
-	/**
-	 * Sets the data values.
-	 *
-	 * @param supports the new data values
-	 */
-	public void setValues(List<Data> supports) {
-		
-		while (fields.size() > supports.size() ) {
-			this.removeField(fields.get(0));
-		}
-		
-		int i = 0;
-		for (Data d : supports) {
-			if (fields.size() <= i) addAField();
-
-			DataRecordField f = fields.get(i);
-			f.setDataValue(d);
-			i++;
-		}
-	}
-
-	/**
-	 * Gets the values.
-	 *
-	 * @return the values
-	 */
-	public List<Data> getValues() {
-		List<Data> values = new ArrayList<Data>();
-		for (DataRecordField f : fields) {
-			values.add(f.getValue());
-		}
-		return values;
-	}
-
-	/**
-	 * Removes the field.
-	 *
-	 * @param dataRecordField the data record field
-	 */
-	public void removeField(DataRecordField dataRecordField) {
-		this.removeMember(dataRecordField);
-		fields.remove(dataRecordField);
-		dataRecordField.destroy();
-	}
-
-	/**
-	 * Sets the can edit.
-	 *
-	 * @param editable the new can edit
-	 */
-	public void setCanEdit(boolean editable) {
-		for (DataRecordField f : fields) {
-			f.setDisabled(!editable);
-		}
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNOfParticipantsField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNOfParticipantsField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNOfParticipantsField.java	(revision 8)
@@ -1,97 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import org.ccc.bcccc.client.panels.EditPanel;
-
-import com.smartgwt.client.types.TitleOrientation;
-import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.fields.SpinnerItem;
-import com.smartgwt.client.widgets.layout.HLayout;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class DoubleStringRecordArea.
- */
-public class RecordNOfParticipantsField extends HLayout {
-
-	/** The name. */
-	String name;
-
-	/** The panel. */
-	protected EditPanel panel;
-
-	private SpinnerItem f;
-
-	/**
-	 * Instantiates a new string record field.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 * @param multiple the multiple
-	 * @param freeField the free field
-	 * @param values the values
-	 */
-	public RecordNOfParticipantsField(EditPanel panel, String name) {
-		this.panel = panel;
-		this.name = name;
-
-		DynamicForm form = new DynamicForm();
-		form.setTitleOrientation(TitleOrientation.LEFT);
-		form.setWidth100();
-
-		this.setWidth100();
-		this.addMember(form);
-
-		String lname = name.toLowerCase().replace(" ", "");
-		f = new SpinnerItem(lname);
-		f.setMin(1);
-		f.setMax(10000);
-		f.setTitle(name);
-		
-		form.setItems(f);
-	}
-
-	/**
-	 * Gets the value.
-	 *
-	 * @return the value
-	 */
-	public String getValue() {
-		return f.getValueAsString();
-	}
-
-	/**
-	 * Sets the can edit.
-	 *
-	 * @param v the new can edit
-	 */
-	public void setCanEdit(boolean v) {
-		f.setCanEdit(v);
-	}
-
-	/**
-	 * Sets the value.
-	 *
-	 * @param numberOfParticipants the new value
-	 */
-	public void setValue(int numberOfParticipants) {
-		f.setValue(numberOfParticipants);
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/DateRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/DateRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/DateRecordField.java	(revision 8)
@@ -1,89 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.Date;
-
-import org.ccc.bcccc.client.panels.EditPanel;
-
-import com.smartgwt.client.widgets.form.fields.DateItem;
-import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.PickerIcon;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class DateRecordArea.
- */
-public class DateRecordField extends StringRecordField {
-
-	/** The field. */
-	FormItem field;
-	
-	/**
-	 * Instantiates a new date record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 * @param multiple the multiple
-	 * @param freeField the free field
-	 * @param values the values
-	 */
-	public DateRecordField(EditPanel panel, String name, boolean multiple, boolean freeField,
-			String[] values) {
-		super(panel, name, multiple, freeField, values);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.ccc.bcccc.client.areas.StringRecordField#createField()
-	 */
-	@Override
-	protected FormItem createField() {
-		String lname = name.toLowerCase().replace(" ", "");
-		field = new DateItem(lname+""+no++);
-		return field;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.ccc.bcccc.client.areas.StringRecordField#addDefaultPickers(com.smartgwt.client.widgets.form.fields.FormItem, com.smartgwt.client.widgets.form.fields.PickerIcon)
-	 */
-	protected void addDefaultPickers(FormItem field, PickerIcon editPicker) {
-		
-	}
-
-	/**
-	 * Sets the value.
-	 *
-	 * @param date the new value
-	 */
-	public void setValue(Date date) {
-		if (items.size() > 0 ) {
-			FormItem field = items.get(0);
-			((DateItem)field).setValue(date);
-		}
-	}
-
-	/**
-	 * Gets the date.
-	 *
-	 * @return the date
-	 */
-	public Date getDate() {
-		return ((DateItem)field).getValueAsDate();
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameField.java	(revision 8)
@@ -1,113 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ccc.bcccc.client.panels.EditPanel;
-
-import com.google.gwt.user.client.ui.Label;
-import com.smartgwt.client.types.TitleOrientation;
-import com.smartgwt.client.util.SC;
-import com.smartgwt.client.util.ValueCallback;
-import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.PickerIcon;
-import com.smartgwt.client.widgets.form.fields.PickerIcon.Picker;
-import com.smartgwt.client.widgets.form.fields.SelectItem;
-import com.smartgwt.client.widgets.form.fields.StaticTextItem;
-import com.smartgwt.client.widgets.form.fields.TextItem;
-import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
-import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
-import com.smartgwt.client.widgets.layout.HLayout;
-
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class StringRecordField.
- */
-public class RecordNameField extends HLayout {
-
-	/** The no. */
-	protected static int no = 1;
-	
-	/** The panel. */
-	protected EditPanel panel;
-	
-	/** The form. */
-	DynamicForm form;
-	TextItem field;
-
-	/**
-	 * Instantiates a new string record field.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 * @param multiple the multiple
-	 * @param freeField the free field
-	 * @param values the values
-	 */
-	public RecordNameField(EditPanel panel) {
-		this.panel = panel;
-
-		form = new DynamicForm();
-		form.setTitleOrientation(TitleOrientation.LEFT);
-		form.setWidth100();
-		
-		this.setWidth100();
-		this.addMember(form);
-
-		field = new TextItem("name"+no++);
-		field.setTitle("Nom de la fiche");
-		form.setFields(field);
-	}
-
-	/**
-	 * Gets the value.
-	 *
-	 * @return the value
-	 */
-	public String getValue() {
-		Object v = field.getValue();
-		if (v == null) return "";
-		return field.getValueAsString();
-	}
-
-	
-
-	/**
-	 * Sets the can edit.
-	 *
-	 * @param v the new can edit
-	 */
-	public void setCanEdit(boolean v) {
-		if (form != null)
-			form.setCanEdit(v);
-	}
-
-	/**
-	 * Sets the value.
-	 *
-	 * @param v the new value
-	 */
-	public void setValue(String v) {
-		field.setValue(v);
-	}
-}
\ No newline at end of file
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/PublicationsRecordArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/PublicationsRecordArea.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/PublicationsRecordArea.java	(revision 8)
@@ -1,138 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ccc.bcccc.client.areas.fields.PublicationRecordField;
-import org.ccc.bcccc.client.panels.EditPanel;
-import org.ccc.bcccc.shared.Publication;
-
-import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.VLayout;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class PublicationsRecordArea.
- */
-public class PublicationsRecordArea extends VLayout {
-
-	/** The fields. */
-	ArrayList<PublicationRecordField> fields = new ArrayList<PublicationRecordField>();
-	
-	/**
-	 * Instantiates a new publications record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 */
-	public PublicationsRecordArea(EditPanel panel, String name) {
-		this.setWidth100();
-		
-		Label title = new Label();
-		title.setContents(name);
-		this.addMember(title);
-		
-		Button addButton = new Button("Ajouter une publication");
-		this.addMember(addButton);
-		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
-			
-			@Override
-			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
-				addAField();
-			}
-		});
-		
-		addAField(); // create at least one entry
-	}
-
-	/** The n. */
-	static int n;
-	
-	/** The Constant NITEMPERROW. */
-	public static final int NITEMPERROW = 5;
-	
-	/* (non-Javadoc)
-	 * @see org.ccc.bcccc.client.areas.StringRecordField#addAField()
-	 */
-	public void addAField() {
-		PublicationRecordField f = new PublicationRecordField(this, n);
-		this.addMember(f);
-		fields.add(f);
-		n++;
-	}
-
-	/**
-	 * Sets the publication values.
-	 *
-	 * @param values the new publication values
-	 */
-	public void setValues(List<Publication> values) {
-		
-		while (fields.size() > values.size() ) {
-			this.remove(fields.get(0));
-		}
-		
-		int i = 0;
-		for (Publication d : values) {
-			if (fields.size() <= i) addAField();
-
-			PublicationRecordField f = fields.get(i);
-			f.setValue(d);
-			i++;
-		}
-	}
-
-	/**
-	 * Sets the can edit.
-	 *
-	 * @param v the new can edit
-	 */
-	public void setCanEdit(boolean v) {
-		for (PublicationRecordField form : fields) {
-			form.setCanEdit(v);
-		}
-	}
-
-	/**
-	 * Gets the values.
-	 *
-	 * @return the values
-	 */
-	public List<Publication> getValues() {
-		List<Publication> values = new ArrayList<Publication>();
-		for (PublicationRecordField form : fields) {
-			values.add(form.getValue());
-		}
-		return values;
-	}
-
-	/**
-	 * Removes the.
-	 *
-	 * @param publicationRecordField the dispositifs record field
-	 */
-	public void remove(PublicationRecordField publicationRecordField) {
-		this.removeMember(publicationRecordField);
-		fields.remove(publicationRecordField);
-		publicationRecordField.destroy();
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDescriptionField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDescriptionField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDescriptionField.java	(revision 8)
@@ -1,73 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import org.ccc.bcccc.client.panels.EditPanel;
-
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.RichTextEditor;
-import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.layout.HLayout;
-
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class LongStringRecordArea.
- */
-public class RecordDescriptionField extends HLayout {
-
-	/** The no. */
-	protected static int no = 1;
-	DynamicForm form;
-	RichTextEditor field;
-	
-	/**
-	 * Instantiates a new long string record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 * @param multiple the multiple
-	 * @param freeField the free field
-	 */
-	public RecordDescriptionField(EditPanel panel) {
-		super();
-		
-		this.setWidth100();
-		
-		Label l = new Label();
-		l.setContents("Description courte<br>(20 lignes max)");
-		
-		field = new RichTextEditor();
-		field.setHeight(200);  
-        field.setCanDragResize(true);  
-        field.setShowEdges(true);  
-        field.setWidth("100%");
-		
-        this.addMember(l);
-        this.addMember(field);
-	}
-
-	public String getValue() {
-		return field.getValue();
-	}
-
-	public void setValue(String short_description) {
-		field.setValue(short_description);
-	}
-}
\ No newline at end of file
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/ReportsRecordArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/ReportsRecordArea.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/ReportsRecordArea.java	(revision 8)
@@ -1,135 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ccc.bcccc.client.areas.fields.ReportRecordField;
-import org.ccc.bcccc.client.panels.EditPanel;
-import org.ccc.bcccc.shared.Report;
-
-import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.VLayout;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class ReportsRecordArea.
- */
-public class ReportsRecordArea extends VLayout {
-
-	/** The fields. */
-	ArrayList<ReportRecordField> fields = new ArrayList<ReportRecordField>();
-	
-	/**
-	 * Instantiates a new reports record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 */
-	public ReportsRecordArea(EditPanel panel, String name) {
-		this.setWidth100();
-		
-		Label title = new Label();
-		title.setContents(name);
-		this.addMember(title);
-		
-		Button addButton = new Button("Ajouter un rapport");
-		this.addMember(addButton);
-		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
-			
-			@Override
-			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
-				addAField();
-			}
-		});
-		
-		addAField(); // create at least one entry
-	}
-
-	/** The n. */
-	static int n = 0;
-	
-	/**
-	 * Adds the a field.
-	 */
-	public void addAField() {
-		ReportRecordField f = new ReportRecordField(this, n);
-		this.addMember(f);
-		fields.add(f);
-		n++;
-	}
-
-	/**
-	 * Sets the values.
-	 *
-	 * @param values the new values
-	 */
-	public void setValues(List<Report> values) {
-		
-		while (fields.size() > values.size() ) {
-			this.removeField(fields.get(0));
-		}
-		
-		int i = 0;
-		for (Report d : values) {
-			if (fields.size() <= i) addAField();
-
-			fields.get(i).setValue(d);
-			i++;
-		}
-	}
-
-	/**
-	 * Sets the can edit.
-	 *
-	 * @param v the new can edit
-	 */
-	public void setCanEdit(boolean v) {
-		for(ReportRecordField f: fields) {
-			f.setCanEdit(v);
-		}
-	}
-
-	/**
-	 * Gets the values.
-	 *
-	 * @return the values
-	 */
-	public List<Report> getValues() {
-		List<Report> values = new ArrayList<Report>();
-		for(ReportRecordField f: fields) {
-			values.add(f.getValue());
-		}
-		return values;
-	}
-
-	/**
-	 * Removes the field.
-	 *
-	 * @param f the f
-	 */
-	public void removeField(ReportRecordField f) {
-		this.removeMember(f);
-		fields.remove(f);
-		f.destroy();
-		
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/DispositifsRecordArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/DispositifsRecordArea.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/DispositifsRecordArea.java	(revision 8)
@@ -1,139 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ccc.bcccc.client.areas.fields.DispositifsRecordField;
-import org.ccc.bcccc.client.panels.EditPanel;
-import org.ccc.bcccc.shared.Dispositif;
-
-import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.VLayout;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class DispositifsRecordArea.
- */
-public class DispositifsRecordArea extends VLayout {
-
-	/** The fields. */
-	ArrayList<DispositifsRecordField> fields = new ArrayList<DispositifsRecordField>();
-	
-	
-	/**
-	 * Instantiates a new dispositifs record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 */
-	public DispositifsRecordArea(EditPanel panel, String name) {
-		this.setWidth100();
-		
-		Label title = new Label();
-		title.setContents(name);
-		this.addMember(title);
-		
-		Button addButton = new Button("Ajouter un dispositif (micro, caméra, etc.)");
-		this.addMember(addButton);
-		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
-			
-			@Override
-			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
-				addAField();
-			}
-		});
-		
-		addAField(); // create at least one entry
-	}
-
-	/** The n. */
-	static int n;
-	
-	/** The nitemperrow. */
-	static public int NITEMPERROW = 5;
-
-	/**
-	 * Adds the a field.
-	 */
-	public void addAField() {
-		DispositifsRecordField f = new DispositifsRecordField(this, n);
-		this.addMember(f);
-		fields.add(f);
-		n++;
-	}
-
-	/**
-	 * Sets the values.
-	 *
-	 * @param values the new values
-	 */
-	public void setValues(List<Dispositif> values) {
-		
-		while (fields.size() > values.size() ) {
-			this.remove(fields.get(0));
-		}
-		
-		int i = 0;
-		for (Dispositif d : values) {
-			if (fields.size() <= i) addAField();
-
-			DispositifsRecordField f = fields.get(i);
-			f.setValue(d);
-			i++;
-		}
-	}
-
-	/**
-	 * Sets the can edit.
-	 *
-	 * @param v the new can edit
-	 */
-	public void setCanEdit(boolean v) {
-		for (DispositifsRecordField form : fields) {
-			form.setCanEdit(v);
-		}
-	}
-
-	/**
-	 * Gets the values.
-	 *
-	 * @return the values
-	 */
-	public List<Dispositif> getValues() {
-		List<Dispositif> values = new ArrayList<Dispositif>();
-		for (DispositifsRecordField form : fields) {
-			values.add(form.getValue());
-		}
-		return values;
-	}
-
-	/**
-	 * Removes the.
-	 *
-	 * @param dispositifsRecordField the dispositifs record field
-	 */
-	public void remove(DispositifsRecordField dispositifsRecordField) {
-		this.removeMember(dispositifsRecordField);
-		fields.remove(dispositifsRecordField);
-		dispositifsRecordField.destroy();
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/DocumentsRecordArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/DocumentsRecordArea.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/DocumentsRecordArea.java	(revision 8)
@@ -1,137 +0,0 @@
-/*
- * Authors: Matthieu Decorde
- * 
- * COPYRIGHT 2015 ICAR - CCC
- * 
- * This software is free software: you can redistribute it 
- * and/or modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation,
- * either version 2 of the License, or (at your option) any
- * later version.
- * 
- * This software is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more
- * details.
- * 
- */
-package org.ccc.bcccc.client.areas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ccc.bcccc.client.areas.fields.DocumentRecordField;
-import org.ccc.bcccc.client.panels.EditPanel;
-import org.ccc.bcccc.shared.DocumentUnit;
-
-import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.VLayout;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class DocumentsRecordArea.
- */
-public class DocumentsRecordArea extends VLayout {
-
-	/** The fields. */
-	ArrayList<DocumentRecordField> fields = new ArrayList<DocumentRecordField>();
-	
-	
-	/**
-	 * Instantiates a new documents record area.
-	 *
-	 * @param panel the panel
-	 * @param name the name
-	 */
-	public DocumentsRecordArea(EditPanel panel, String name) {
-		this.setWidth100();
-		
-		Label title = new Label();
-		title.setContents("Documents");
-		this.addMember(title);
-		
-		Button addButton = new Button("Ajouter un document");
-		this.addMember(addButton);
-		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
-			
-			@Override
-			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
-				addAField();
-			}
-		});
-		
-		addAField(); // create at least one entry
-	}
-
-	/** The n. */
-	static int n;
-	
-	/** The nitemperrow. */
-	public static int NITEMPERROW = 5;
-	
-	/* (non-Javadoc)
-	 * @see org.ccc.bcccc.client.areas.StringRecordField#addAField()
-	 */
-	public void addAField() {
-		DocumentRecordField f = new DocumentRecordField(this, n);
-		this.addMember(f);
-		fields.add(f);
-		n++;
-	}
-	
-	/**
-	 * Sets the documentation values.
-	 *
-	 * @param values the new documentation values
-	 */
-	public void setValues(List<DocumentUnit> values) {
-		
-		while (fields.size() > values.size() ) {
-			this.remove(fields.get(0));
-		}
-		
-		int i = 0;
-		for (DocumentUnit d : values) {
-			if (fields.size() <= i) addAField();
-
-			DocumentRecordField f = fields.get(i);
-			f.setValue(d);
-			i++;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.ccc.bcccc.client.areas.StringRecordField#setCanEdit(boolean)
-	 */
-	public void setCanEdit(boolean v) {
-		for (DocumentRecordField item : fields) {
-			item.setCanEdit(v);
-		}
-	}
-
-	/**
-	 * Gets the values.
-	 *
-	 * @return the values
-	 */
-	public List<DocumentUnit> getValues() {
-		List<DocumentUnit> values = new ArrayList<DocumentUnit>();
-		for (DocumentRecordField item : fields) {
-			values.add(item.getValue());
-		}
-		return values;
-	}
-	
-	/**
-	 * Removes the.
-	 *
-	 * @param docRecordField the dispositifs record field
-	 */
-	public void remove(DocumentRecordField docRecordField) {
-		this.removeMember(docRecordField);
-		fields.remove(docRecordField);
-		docRecordField.destroy();
-	}
-}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDataArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDataArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDataArea.java	(revision 8)
@@ -0,0 +1,139 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ccc.bcccc.client.areas.fields.DataRecordField;
+import org.ccc.bcccc.client.panels.EditPanel;
+import org.ccc.bcccc.shared.Data;
+
+import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DataRecordArea.
+ */
+public class RecordDataArea extends VLayout {
+	
+	/** The fields. */
+	ArrayList<DataRecordField> fields = new ArrayList<DataRecordField>();
+	
+	/**
+	 * Instantiates a new data record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 */
+	public RecordDataArea(EditPanel panel, String name) {
+		//super(panel, name, true, false, Data.values);
+		//form.setNumCols(7); // show 3 item per line
+		this.setWidth100();
+		
+		Label title = new Label();
+		title.setContents(name);
+		this.addMember(title);
+		
+		Button addButton = new Button("Ajouter une donnée");
+		this.addMember(addButton);
+		addButton.addClickHandler(new ClickHandler() {
+			@Override
+			public void onClick(ClickEvent event) {
+				addAField();
+			}
+		});
+		
+		addAField(); // create at least one entry
+	}
+
+	/** The n. */
+	static int n;
+	
+	/**
+	 * Adds the a field.
+	 */
+	public void addAField() {
+		DataRecordField f = new DataRecordField(this, n);
+		this.addMember(f);
+		fields.add(f);
+		n++;
+		//reloadFields();
+	}
+
+	/**
+	 * Sets the data values.
+	 *
+	 * @param supports the new data values
+	 */
+	public void setValues(List<Data> supports) {
+		
+		while (fields.size() > supports.size() ) {
+			this.removeField(fields.get(0));
+		}
+		
+		int i = 0;
+		for (Data d : supports) {
+			if (fields.size() <= i) addAField();
+
+			DataRecordField f = fields.get(i);
+			f.setDataValue(d);
+			i++;
+		}
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<Data> getValues() {
+		List<Data> values = new ArrayList<Data>();
+		for (DataRecordField f : fields) {
+			values.add(f.getValue());
+		}
+		return values;
+	}
+
+	/**
+	 * Removes the field.
+	 *
+	 * @param dataRecordField the data record field
+	 */
+	public void removeField(DataRecordField dataRecordField) {
+		this.removeMember(dataRecordField);
+		fields.remove(dataRecordField);
+		dataRecordField.destroy();
+	}
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param editable the new can edit
+	 */
+	public void setCanEdit(boolean editable) {
+		for (DataRecordField f : fields) {
+			f.setDisabled(!editable);
+		}
+	}
+}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordParticipantsNumberArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordParticipantsNumberArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordParticipantsNumberArea.java	(revision 8)
@@ -0,0 +1,97 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import org.ccc.bcccc.client.panels.EditPanel;
+
+import com.smartgwt.client.types.TitleOrientation;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.SpinnerItem;
+import com.smartgwt.client.widgets.layout.HLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DoubleStringRecordArea.
+ */
+public class RecordParticipantsNumberArea extends HLayout {
+
+	/** The name. */
+	String name;
+
+	/** The panel. */
+	protected EditPanel panel;
+
+	private SpinnerItem f;
+
+	/**
+	 * Instantiates a new string record field.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 * @param multiple the multiple
+	 * @param freeField the free field
+	 * @param values the values
+	 */
+	public RecordParticipantsNumberArea(EditPanel panel, String name) {
+		this.panel = panel;
+		this.name = name;
+
+		DynamicForm form = new DynamicForm();
+		form.setTitleOrientation(TitleOrientation.LEFT);
+		form.setWidth100();
+
+		this.setWidth100();
+		this.addMember(form);
+
+		String lname = name.toLowerCase().replace(" ", "");
+		f = new SpinnerItem(lname);
+		f.setMin(1);
+		f.setMax(10000);
+		f.setTitle(name);
+		
+		form.setItems(f);
+	}
+
+	/**
+	 * Gets the value.
+	 *
+	 * @return the value
+	 */
+	public String getValue() {
+		return f.getValueAsString();
+	}
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param v the new can edit
+	 */
+	public void setCanEdit(boolean v) {
+		f.setCanEdit(v);
+	}
+
+	/**
+	 * Sets the value.
+	 *
+	 * @param numberOfParticipants the new value
+	 */
+	public void setValue(int numberOfParticipants) {
+		f.setValue(numberOfParticipants);
+	}
+}

Property changes on: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordParticipantsNumberArea.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDateArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDateArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDateArea.java	(revision 8)
@@ -0,0 +1,89 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.Date;
+
+import org.ccc.bcccc.client.panels.EditPanel;
+
+import com.smartgwt.client.widgets.form.fields.DateItem;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.PickerIcon;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DateRecordArea.
+ */
+public class RecordDateArea extends StringRecordField {
+
+	/** The field. */
+	FormItem field;
+	
+	/**
+	 * Instantiates a new date record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 * @param multiple the multiple
+	 * @param freeField the free field
+	 * @param values the values
+	 */
+	public RecordDateArea(EditPanel panel, String name, boolean multiple, boolean freeField,
+			String[] values) {
+		super(panel, name, multiple, freeField, values);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.ccc.bcccc.client.areas.StringRecordField#createField()
+	 */
+	@Override
+	protected FormItem createField() {
+		String lname = name.toLowerCase().replace(" ", "");
+		field = new DateItem(lname+""+no++);
+		return field;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.ccc.bcccc.client.areas.StringRecordField#addDefaultPickers(com.smartgwt.client.widgets.form.fields.FormItem, com.smartgwt.client.widgets.form.fields.PickerIcon)
+	 */
+	protected void addDefaultPickers(FormItem field, PickerIcon editPicker) {
+		
+	}
+
+	/**
+	 * Sets the value.
+	 *
+	 * @param date the new value
+	 */
+	public void setValue(Date date) {
+		if (items.size() > 0 ) {
+			FormItem field = items.get(0);
+			((DateItem)field).setValue(date);
+		}
+	}
+
+	/**
+	 * Gets the date.
+	 *
+	 * @return the date
+	 */
+	public Date getDate() {
+		return ((DateItem)field).getValueAsDate();
+	}
+}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameArea.java	(revision 8)
@@ -0,0 +1,113 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ccc.bcccc.client.panels.EditPanel;
+
+import com.google.gwt.user.client.ui.Label;
+import com.smartgwt.client.types.TitleOrientation;
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.util.ValueCallback;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.PickerIcon;
+import com.smartgwt.client.widgets.form.fields.PickerIcon.Picker;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
+import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
+import com.smartgwt.client.widgets.layout.HLayout;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class StringRecordField.
+ */
+public class RecordNameArea extends HLayout {
+
+	/** The no. */
+	protected static int no = 1;
+	
+	/** The panel. */
+	protected EditPanel panel;
+	
+	/** The form. */
+	DynamicForm form;
+	TextItem field;
+
+	/**
+	 * Instantiates a new string record field.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 * @param multiple the multiple
+	 * @param freeField the free field
+	 * @param values the values
+	 */
+	public RecordNameArea(EditPanel panel) {
+		this.panel = panel;
+
+		form = new DynamicForm();
+		form.setTitleOrientation(TitleOrientation.LEFT);
+		form.setWidth100();
+		
+		this.setWidth100();
+		this.addMember(form);
+
+		field = new TextItem("name"+no++);
+		field.setTitle("Nom de la fiche");
+		form.setFields(field);
+	}
+
+	/**
+	 * Gets the value.
+	 *
+	 * @return the value
+	 */
+	public String getValue() {
+		Object v = field.getValue();
+		if (v == null) return "";
+		return field.getValueAsString();
+	}
+
+	
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param v the new can edit
+	 */
+	public void setCanEdit(boolean v) {
+		if (form != null)
+			form.setCanEdit(v);
+	}
+
+	/**
+	 * Sets the value.
+	 *
+	 * @param v the new value
+	 */
+	public void setValue(String v) {
+		field.setValue(v);
+	}
+}
\ No newline at end of file

Property changes on: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordNameArea.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDescriptionArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDescriptionArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDescriptionArea.java	(revision 8)
@@ -0,0 +1,77 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import org.ccc.bcccc.client.panels.EditPanel;
+
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.RichTextEditor;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.layout.HLayout;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LongStringRecordArea.
+ */
+public class RecordDescriptionArea extends HLayout {
+
+	/** The no. */
+	protected static int no = 1;
+	DynamicForm form;
+	RichTextEditor field;
+	
+	/**
+	 * Instantiates a new long string record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 * @param multiple the multiple
+	 * @param freeField the free field
+	 */
+	public RecordDescriptionArea(EditPanel panel) {
+		super();
+		
+		this.setWidth100();
+		
+		Label l = new Label();
+		l.setContents("Description courte<br>(20 lignes max)<br>Pour insérer un lien, il faut l'entourer de '[url]'. Par exemple : [url]http://lien.fr[/url]<br> pour une image il faut utiliser [img] et [/img].");
+
+		field = new RichTextEditor();
+		field.setHeight(200);  
+        field.setCanDragResize(true);  
+        field.setShowEdges(true);  
+        field.setWidth("100%");
+		
+        this.addMember(l);
+        this.addMember(field);
+	}
+
+	public String getValue() {
+		String value = field.getValue();
+		value = value.replaceAll("\\[url\\](https?://[^< ]+)\\[/url\\]", "<a target=\"_blank\" href=\"$1\">$1</a>");
+		value = value.replaceAll("\\[img\\](https?://[^< ]+)\\[/img\\]", "<img src=\"$1\"/>");
+		field.setValue(value);
+		return value;
+	}
+
+	public void setValue(String short_description) {
+		field.setValue(short_description);
+	}
+}
\ No newline at end of file
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPlaceArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPlaceArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPlaceArea.java	(revision 8)
@@ -0,0 +1,103 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import org.ccc.bcccc.client.panels.EditPanel;
+
+import com.smartgwt.client.types.TitleOrientation;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.layout.HLayout;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class StringRecordField.
+ */
+public class RecordPlaceArea extends HLayout {
+
+	/** The no. */
+	protected static int no = 1;
+	
+	/** The panel. */
+	protected EditPanel panel;
+	
+	/** The form. */
+	DynamicForm form;
+	
+
+	TextItem field;
+
+	/**
+	 * Instantiates a new string record field.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 * @param multiple the multiple
+	 * @param freeField the free field
+	 * @param values the values
+	 */
+	public RecordPlaceArea(EditPanel panel) {
+		this.panel = panel;
+
+		form = new DynamicForm();
+		form.setTitleOrientation(TitleOrientation.LEFT);
+		form.setWidth100();
+		
+		this.setWidth100();
+		this.addMember(form);
+
+		field = new TextItem("name"+no++);
+		field.setTitle("Lieu de réalisation");
+
+		form.setFields(field);
+	}
+
+	/**
+	 * Gets the value.
+	 *
+	 * @return the value
+	 */
+	public String getValue() {
+		Object v = field.getValue();
+		if (v == null) return "";
+		return field.getValueAsString();
+	}
+
+	
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param v the new can edit
+	 */
+	public void setCanEdit(boolean v) {
+		if (form != null)
+			form.setCanEdit(v);
+	}
+
+	/**
+	 * Sets the value.
+	 *
+	 * @param v the new value
+	 */
+	public void setValue(String v) {
+		field.setValue(v);
+	}
+}
\ No newline at end of file

Property changes on: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPlaceArea.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPersonsArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPersonsArea.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPersonsArea.java	(revision 8)
@@ -23,6 +23,8 @@
 
 import org.ccc.bcccc.client.areas.fields.PersonRecordField;
 import org.ccc.bcccc.client.panels.EditPanel;
+import org.ccc.bcccc.shared.Person;
+import org.ccc.bcccc.shared.Report;
 
 import com.google.gwt.user.client.ui.Label;
 import com.smartgwt.client.types.TitleOrientation;
@@ -47,14 +49,12 @@
  * The Class StringRecordField.
  */
 public class RecordPersonsArea extends VLayout {
-
-
-
+	
 	/** The name. */
 	String name;
 
 	/** The items. */
-	ArrayList<PersonRecordField> items = new ArrayList<PersonRecordField>();
+	ArrayList<PersonRecordField> fields = new ArrayList<PersonRecordField>();
 	
 	/** The panel. */
 	protected EditPanel panel;
@@ -96,11 +96,9 @@
 	 * Adds the a field.
 	 */
 	public void addAField() {
-		
-		//String lname = name.toLowerCase().replace(" ", "");
-		PersonRecordField field = new PersonRecordField(this, name);
+		PersonRecordField field = new PersonRecordField(this);
 		this.addMember(field); // add the new field item
-		
+		fields.add(field);
 	}
 
 	/**
@@ -114,31 +112,6 @@
 	}
 
 	/**
-	 * Gets the value.
-	 *
-	 * @return the value
-	 */
-	public String getValue() {
-		if (items.size() > 0) {
-			return items.get(0).getValue();
-		}
-		return "";
-	}
-
-	/**
-	 * Gets the values as string array.
-	 *
-	 * @return the values as string array
-	 */
-	public ArrayList<String> getValuesAsStringArray() {
-		ArrayList<String> ret = new ArrayList<String>();
-		for (PersonRecordField item : items) {
-			ret.add(item.getValue());
-		}
-		return ret;
-	}
-
-	/**
 	 * Sets the can edit.
 	 *
 	 * @param v the new can edit
@@ -148,21 +121,32 @@
 			form.setCanEdit(v);
 	}
 
-	/**
-	 * Sets the values.
-	 *
-	 * @param values the new values
-	 */
-	public void setValues(List<String> values) {
-		for (int i = 0 ; i < values.size() ; i++) {
-			if (items.size() <= i) addAField();
-			items.get(i).setValue(values.get(i));
-		}
-	}
-
 	public void removeAField(PersonRecordField personRecordField) {
-		items.remove(personRecordField);
+		fields.remove(personRecordField);
 		this.removeMember(personRecordField);
 		personRecordField.destroy();
 	}
+
+	public List<Person> getValues() {
+		ArrayList<Person> persons = new ArrayList<Person>();
+		for (PersonRecordField item : fields) {
+			persons.add(new Person(item.getName(), item.getRole()));
+		}
+		return persons;
+	}
+
+	public void setValues(List<Person> persons) {
+
+		while (fields.size() > persons.size() ) {
+			this.removeAField(fields.get(0));
+		}
+		
+		int i = 0;
+		for (Person d : persons) {
+			if (fields.size() <= i) addAField();
+
+			fields.get(i).setValue(d);
+			i++;
+		}
+	}
 }
\ No newline at end of file
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPublicationsArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPublicationsArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordPublicationsArea.java	(revision 8)
@@ -0,0 +1,138 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ccc.bcccc.client.areas.fields.PublicationRecordField;
+import org.ccc.bcccc.client.panels.EditPanel;
+import org.ccc.bcccc.shared.Publication;
+
+import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class PublicationsRecordArea.
+ */
+public class RecordPublicationsArea extends VLayout {
+
+	/** The fields. */
+	ArrayList<PublicationRecordField> fields = new ArrayList<PublicationRecordField>();
+	
+	/**
+	 * Instantiates a new publications record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 */
+	public RecordPublicationsArea(EditPanel panel, String name) {
+		this.setWidth100();
+		
+		Label title = new Label();
+		title.setContents(name);
+		this.addMember(title);
+		
+		Button addButton = new Button("Ajouter une publication");
+		this.addMember(addButton);
+		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
+			
+			@Override
+			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
+				addAField();
+			}
+		});
+		
+		addAField(); // create at least one entry
+	}
+
+	/** The n. */
+	static int n;
+	
+	/** The Constant NITEMPERROW. */
+	public static final int NITEMPERROW = 5;
+	
+	/* (non-Javadoc)
+	 * @see org.ccc.bcccc.client.areas.StringRecordField#addAField()
+	 */
+	public void addAField() {
+		PublicationRecordField f = new PublicationRecordField(this, n);
+		this.addMember(f);
+		fields.add(f);
+		n++;
+	}
+
+	/**
+	 * Sets the publication values.
+	 *
+	 * @param values the new publication values
+	 */
+	public void setValues(List<Publication> values) {
+		
+		while (fields.size() > values.size() ) {
+			this.remove(fields.get(0));
+		}
+		
+		int i = 0;
+		for (Publication d : values) {
+			if (fields.size() <= i) addAField();
+
+			PublicationRecordField f = fields.get(i);
+			f.setValue(d);
+			i++;
+		}
+	}
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param v the new can edit
+	 */
+	public void setCanEdit(boolean v) {
+		for (PublicationRecordField form : fields) {
+			form.setCanEdit(v);
+		}
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<Publication> getValues() {
+		List<Publication> values = new ArrayList<Publication>();
+		for (PublicationRecordField form : fields) {
+			values.add(form.getValue());
+		}
+		return values;
+	}
+
+	/**
+	 * Removes the.
+	 *
+	 * @param publicationRecordField the dispositifs record field
+	 */
+	public void remove(PublicationRecordField publicationRecordField) {
+		this.removeMember(publicationRecordField);
+		fields.remove(publicationRecordField);
+		publicationRecordField.destroy();
+	}
+}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DocumentRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DocumentRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DocumentRecordField.java	(revision 8)
@@ -18,7 +18,7 @@
  */
 package org.ccc.bcccc.client.areas.fields;
 
-import org.ccc.bcccc.client.areas.DocumentsRecordArea;
+import org.ccc.bcccc.client.areas.RecordDocumentsArea;
 import org.ccc.bcccc.shared.DocumentUnit;
 
 import com.smartgwt.client.widgets.form.DynamicForm;
@@ -38,7 +38,7 @@
 	DocumentUnit r = new DocumentUnit("","","");
 	
 	/** The area. */
-	DocumentsRecordArea area;
+	RecordDocumentsArea area;
 	
 	/** The n. */
 	int n;
@@ -58,7 +58,7 @@
 	 * @param area the area
 	 * @param n the n
 	 */
-	public DocumentRecordField(DocumentsRecordArea area, int n) {
+	public DocumentRecordField(RecordDocumentsArea area, int n) {
 		
 		this.area = area;
 		this.n = n;
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DispositifsRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DispositifsRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DispositifsRecordField.java	(revision 8)
@@ -18,7 +18,7 @@
  */
 package org.ccc.bcccc.client.areas.fields;
 
-import org.ccc.bcccc.client.areas.DispositifsRecordArea;
+import org.ccc.bcccc.client.areas.RecordDispositifsArea;
 import org.ccc.bcccc.shared.Dispositif;
 
 import com.smartgwt.client.util.SC;
@@ -29,6 +29,7 @@
 import com.smartgwt.client.widgets.form.fields.PickerIcon;
 import com.smartgwt.client.widgets.form.fields.PickerIcon.Picker;
 import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.SpinnerItem;
 import com.smartgwt.client.widgets.form.fields.StaticTextItem;
 import com.smartgwt.client.widgets.form.fields.TextItem;
 import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
@@ -43,14 +44,16 @@
 public class DispositifsRecordField extends DynamicForm {
 	
 	/** The r. */
-	Dispositif r = new Dispositif("", "", false);
+	Dispositif r = new Dispositif("", 1, "", false);
 	
 	/** The area. */
-	DispositifsRecordArea area;
+	RecordDispositifsArea area;
 	
 	/** The n. */
 	int n;
 	
+	SpinnerItem numberUsedField;
+	
 	/** The type field. */
 	SelectItem typeField;
 	
@@ -66,12 +69,17 @@
 	 * @param area the area
 	 * @param n the n
 	 */
-	public DispositifsRecordField(DispositifsRecordArea area, int n) {
+	public DispositifsRecordField(RecordDispositifsArea area, int n) {
 		
 		this.area = area;
 		this.n = n;
 		this.setNumCols(7);
 		
+		numberUsedField = new SpinnerItem("dispnumber"+n);
+		numberUsedField.setTitle("quantité utilisée");
+		numberUsedField.setValue(1);
+		numberUsedField.setMin(1);
+				
 		typeField = new SelectItem("dispname"+(n));
 		typeField.setValueMap(Dispositif.types);
 		typeField.setTitle("Type");
@@ -94,7 +102,7 @@
 			}
 		});
 
-		this.setItems(typeField, urlField, mobileItem, removeButton);
+		this.setItems(typeField, numberUsedField, urlField, mobileItem, removeButton);
 
 	}
 	
@@ -107,6 +115,7 @@
 		typeField.setValue(r.type);
 		urlField.setValue(r.url);
 		mobileItem.setValue(r.mobile);
+		numberUsedField.setValue(r.numberUsed);
 	}
 	
 	/**
@@ -122,6 +131,7 @@
 		else r.url = "";
 		
 		r.mobile = mobileItem.getValueAsBoolean();
+		r.numberUsed = Integer.parseInt(numberUsedField.getValueAsString());
 		return r;
 	}
 }
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/TypeRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/TypeRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/TypeRecordField.java	(revision 8)
@@ -14,7 +14,7 @@
 	/** The no. */
 	protected static int no = 1;
 	RecordTypesArea area;
-	final public String[] typesValues = {"privé", "commerce", "école", "etc."};
+	final public String[] typesValues = {"privé", "commerce", "école", "classe", "etc."};
 	SelectItem field;
 	
 	public TypeRecordField(RecordTypesArea area, String name) {
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/PersonRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/PersonRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/PersonRecordField.java	(revision 8)
@@ -1,9 +1,11 @@
 package org.ccc.bcccc.client.areas.fields;
 
 import org.ccc.bcccc.client.areas.RecordPersonsArea;
+import org.ccc.bcccc.shared.Person;
 
 import com.smartgwt.client.widgets.form.DynamicForm;
 import com.smartgwt.client.widgets.form.fields.PickerIcon;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
 import com.smartgwt.client.widgets.form.fields.TextItem;
 import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
 import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
@@ -15,31 +17,46 @@
 	protected static int no = 1;
 	RecordPersonsArea area;
 	
-	TextItem field;
-	public PersonRecordField(RecordPersonsArea area, String name) {
+	TextItem nameField;
+	SelectItem roleField;
+	
+	public PersonRecordField(RecordPersonsArea area) {
 		this.area = area;
 		
-		field = new TextItem("person"+no++);
-		field.setShowTitle(false);
+		nameField = new TextItem("person"+no++);
+		nameField.setTitle("Nom");
 		
+		roleField = new SelectItem("role"+no++);
+		roleField.setTitle("Rôle");
+		roleField.setValueMap(Person.roles);
+		
 		PickerIcon removePicker = new PickerIcon(PickerIcon.CLEAR, new FormItemClickHandler() {  
 			public void onFormItemClick(FormItemIconClickEvent event) {  
 				PersonRecordField.this.area.removeAField(PersonRecordField.this);
 			}  
 		}); 
 
-		field.setIcons(removePicker);
+		nameField.setIcons(removePicker);
 
 		DynamicForm form = new DynamicForm();
-		form.setFields(field);
+		form.setFields(nameField, roleField);
 		this.addMember(form);
 	}
-	public String getValue() {
-		Object v = field.getValue();
+	
+	public String getName() {
+		Object v = nameField.getValue();
 		if (v == null) return "";
 		return v.toString();
 	}
-	public void setValue(String v) {
-		field.setValue(v);
+	
+	public String getRole() {
+		Object v = roleField.getValue();
+		if (v == null) return "";
+		return v.toString();
 	}
+
+	public void setValue(Person d) {
+		nameField.setValue(d.name);
+		roleField.setValue(d.role);
+	}
 }
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DataRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DataRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/DataRecordField.java	(revision 8)
@@ -18,7 +18,7 @@
  */
 package org.ccc.bcccc.client.areas.fields;
 
-import org.ccc.bcccc.client.areas.DataRecordArea;
+import org.ccc.bcccc.client.areas.RecordDataArea;
 import org.ccc.bcccc.shared.Data;
 
 import com.google.gwt.user.client.Window;
@@ -43,7 +43,7 @@
 public class DataRecordField extends DynamicForm {
 	
 	/** The area. */
-	DataRecordArea area;
+	RecordDataArea area;
 	
 	/** The d. */
 	Data d = new Data("", "");
@@ -63,7 +63,7 @@
 	 * @param area the area
 	 * @param n the n
 	 */
-	public DataRecordField(DataRecordArea area, int n) {
+	public DataRecordField(RecordDataArea area, int n) {
 		this.area = area;
 		this.n = n;
 		this.setNumCols(5);
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/PublicationRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/PublicationRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/PublicationRecordField.java	(revision 8)
@@ -18,7 +18,7 @@
  */
 package org.ccc.bcccc.client.areas.fields;
 
-import org.ccc.bcccc.client.areas.PublicationsRecordArea;
+import org.ccc.bcccc.client.areas.RecordPublicationsArea;
 import org.ccc.bcccc.shared.Publication;
 
 import com.smartgwt.client.util.SC;
@@ -45,7 +45,7 @@
 	Publication r = new Publication("", "", "");
 
 	/** The area. */
-	PublicationsRecordArea area;
+	RecordPublicationsArea area;
 
 	/** The n. */
 	int n;
@@ -65,7 +65,7 @@
 	 * @param publicationsRecordArea the area
 	 * @param n the n
 	 */
-	public PublicationRecordField(PublicationsRecordArea publicationsRecordArea, int n) {
+	public PublicationRecordField(RecordPublicationsArea publicationsRecordArea, int n) {
 
 		this.area = publicationsRecordArea;
 		this.n = n;
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/ReportRecordField.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/ReportRecordField.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/fields/ReportRecordField.java	(revision 8)
@@ -18,11 +18,12 @@
  */
 package org.ccc.bcccc.client.areas.fields;
 
-import org.ccc.bcccc.client.areas.ReportsRecordArea;
+import org.ccc.bcccc.client.areas.RecordReportsArea;
 import org.ccc.bcccc.shared.Report;
 
 import com.smartgwt.client.util.SC;
 import com.smartgwt.client.util.ValueCallback;
+import com.smartgwt.client.widgets.RichTextEditor;
 import com.smartgwt.client.widgets.form.DynamicForm;
 import com.smartgwt.client.widgets.form.fields.ButtonItem;
 import com.smartgwt.client.widgets.form.fields.PickerIcon;
@@ -35,18 +36,19 @@
 import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
 import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
 import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
+import com.smartgwt.client.widgets.layout.HLayout;
 
 // TODO: Auto-generated Javadoc
 /**
  * The Class ReportRecordField.
  */
-public class ReportRecordField extends DynamicForm{
+public class ReportRecordField extends HLayout {
 	
 	/** The r. */
 	Report r = new Report("", "", 0);
 	
 	/** The area. */
-	ReportsRecordArea area;
+	RecordReportsArea area;
 	
 	/** The n. */
 	int n;
@@ -55,7 +57,7 @@
 	TextItem userField;
 	
 	/** The comment item. */
-	TextAreaItem commentField;
+	RichTextEditor commentField;
 	
 	/** The note field. */
 	SpinnerItem noteField;
@@ -66,17 +68,22 @@
 	 * @param area the area
 	 * @param n the n
 	 */
-	public ReportRecordField(ReportsRecordArea area, int n) {
+	public ReportRecordField(RecordReportsArea area, int n) {
 
 		this.area = area;
 		this.n = n;
-		this.setNumCols(7);
+		DynamicForm form = new DynamicForm();
+		form.setNumCols(7);
 		
 		userField = new TextItem("reportuser"+(n));
 		userField.setTitle("User");
 				
-		commentField = new TextAreaItem("reportcomment"+(n));
+		commentField = new RichTextEditor();
 		commentField.setTitle("Comment");
+		commentField.setHeight(100);  
+		commentField.setCanDragResize(true);  
+		commentField.setShowEdges(true);  
+       // commentField.setWidth(200);
 		
 		noteField = new SpinnerItem("reportnote"+(n));
 		noteField.setTitle("Note");
@@ -96,7 +103,9 @@
 			}
 		});
 		
-		this.setFields(userField, commentField, noteField, removeButton);
+		form.setFields(userField, noteField, removeButton);
+		this.addMember(commentField);
+		this.addMember(form);
 	}
 	
 	/**
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordReportsArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordReportsArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordReportsArea.java	(revision 8)
@@ -0,0 +1,135 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ccc.bcccc.client.areas.fields.ReportRecordField;
+import org.ccc.bcccc.client.panels.EditPanel;
+import org.ccc.bcccc.shared.Report;
+
+import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ReportsRecordArea.
+ */
+public class RecordReportsArea extends VLayout {
+
+	/** The fields. */
+	ArrayList<ReportRecordField> fields = new ArrayList<ReportRecordField>();
+	
+	/**
+	 * Instantiates a new reports record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 */
+	public RecordReportsArea(EditPanel panel, String name) {
+		this.setWidth100();
+		
+		Label title = new Label();
+		title.setContents(name);
+		this.addMember(title);
+		
+		Button addButton = new Button("Ajouter un rapport");
+		this.addMember(addButton);
+		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
+			
+			@Override
+			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
+				addAField();
+			}
+		});
+		
+		addAField(); // create at least one entry
+	}
+
+	/** The n. */
+	static int n = 0;
+	
+	/**
+	 * Adds the a field.
+	 */
+	public void addAField() {
+		ReportRecordField f = new ReportRecordField(this, n);
+		this.addMember(f);
+		fields.add(f);
+		n++;
+	}
+
+	/**
+	 * Sets the values.
+	 *
+	 * @param values the new values
+	 */
+	public void setValues(List<Report> values) {
+		
+		while (fields.size() > values.size() ) {
+			this.removeField(fields.get(0));
+		}
+		
+		int i = 0;
+		for (Report d : values) {
+			if (fields.size() <= i) addAField();
+
+			fields.get(i).setValue(d);
+			i++;
+		}
+	}
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param v the new can edit
+	 */
+	public void setCanEdit(boolean v) {
+		for(ReportRecordField f: fields) {
+			//f.form.setCanEdit(v);
+		}
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<Report> getValues() {
+		List<Report> values = new ArrayList<Report>();
+		for(ReportRecordField f: fields) {
+			values.add(f.getValue());
+		}
+		return values;
+	}
+
+	/**
+	 * Removes the field.
+	 *
+	 * @param f the f
+	 */
+	public void removeField(ReportRecordField f) {
+		this.removeMember(f);
+		fields.remove(f);
+		f.destroy();
+		
+	}
+}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDispositifsArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDispositifsArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDispositifsArea.java	(revision 8)
@@ -0,0 +1,139 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ccc.bcccc.client.areas.fields.DispositifsRecordField;
+import org.ccc.bcccc.client.panels.EditPanel;
+import org.ccc.bcccc.shared.Dispositif;
+
+import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DispositifsRecordArea.
+ */
+public class RecordDispositifsArea extends VLayout {
+
+	/** The fields. */
+	ArrayList<DispositifsRecordField> fields = new ArrayList<DispositifsRecordField>();
+	
+	
+	/**
+	 * Instantiates a new dispositifs record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 */
+	public RecordDispositifsArea(EditPanel panel, String name) {
+		this.setWidth100();
+		
+		Label title = new Label();
+		title.setContents(name);
+		this.addMember(title);
+		
+		Button addButton = new Button("Ajouter un dispositif (micro, caméra, etc.)");
+		this.addMember(addButton);
+		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
+			
+			@Override
+			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
+				addAField();
+			}
+		});
+		
+		addAField(); // create at least one entry
+	}
+
+	/** The n. */
+	static int n;
+	
+	/** The nitemperrow. */
+	static public int NITEMPERROW = 5;
+
+	/**
+	 * Adds the a field.
+	 */
+	public void addAField() {
+		DispositifsRecordField f = new DispositifsRecordField(this, n);
+		this.addMember(f);
+		fields.add(f);
+		n++;
+	}
+
+	/**
+	 * Sets the values.
+	 *
+	 * @param values the new values
+	 */
+	public void setValues(List<Dispositif> values) {
+		
+		while (fields.size() > values.size() ) {
+			this.remove(fields.get(0));
+		}
+		
+		int i = 0;
+		for (Dispositif d : values) {
+			if (fields.size() <= i) addAField();
+
+			DispositifsRecordField f = fields.get(i);
+			f.setValue(d);
+			i++;
+		}
+	}
+
+	/**
+	 * Sets the can edit.
+	 *
+	 * @param v the new can edit
+	 */
+	public void setCanEdit(boolean v) {
+		for (DispositifsRecordField form : fields) {
+			form.setCanEdit(v);
+		}
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<Dispositif> getValues() {
+		List<Dispositif> values = new ArrayList<Dispositif>();
+		for (DispositifsRecordField form : fields) {
+			values.add(form.getValue());
+		}
+		return values;
+	}
+
+	/**
+	 * Removes the.
+	 *
+	 * @param dispositifsRecordField the dispositifs record field
+	 */
+	public void remove(DispositifsRecordField dispositifsRecordField) {
+		this.removeMember(dispositifsRecordField);
+		fields.remove(dispositifsRecordField);
+		dispositifsRecordField.destroy();
+	}
+}
Index: projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDocumentsArea.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDocumentsArea.java	(revision 0)
+++ projets/BCCCC/src/org/ccc/bcccc/client/areas/RecordDocumentsArea.java	(revision 8)
@@ -0,0 +1,137 @@
+/*
+ * Authors: Matthieu Decorde
+ * 
+ * COPYRIGHT 2015 ICAR - CCC
+ * 
+ * This software is free software: you can redistribute it 
+ * and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation,
+ * either version 2 of the License, or (at your option) any
+ * later version.
+ * 
+ * This software is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ */
+package org.ccc.bcccc.client.areas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ccc.bcccc.client.areas.fields.DocumentRecordField;
+import org.ccc.bcccc.client.panels.EditPanel;
+import org.ccc.bcccc.shared.DocumentUnit;
+
+import com.smartgwt.client.widgets.Button;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DocumentsRecordArea.
+ */
+public class RecordDocumentsArea extends VLayout {
+
+	/** The fields. */
+	ArrayList<DocumentRecordField> fields = new ArrayList<DocumentRecordField>();
+	
+	
+	/**
+	 * Instantiates a new documents record area.
+	 *
+	 * @param panel the panel
+	 * @param name the name
+	 */
+	public RecordDocumentsArea(EditPanel panel, String name) {
+		this.setWidth100();
+		
+		Label title = new Label();
+		title.setContents("Documents");
+		this.addMember(title);
+		
+		Button addButton = new Button("Ajouter un document");
+		this.addMember(addButton);
+		addButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
+			
+			@Override
+			public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
+				addAField();
+			}
+		});
+		
+		addAField(); // create at least one entry
+	}
+
+	/** The n. */
+	static int n;
+	
+	/** The nitemperrow. */
+	public static int NITEMPERROW = 5;
+	
+	/* (non-Javadoc)
+	 * @see org.ccc.bcccc.client.areas.StringRecordField#addAField()
+	 */
+	public void addAField() {
+		DocumentRecordField f = new DocumentRecordField(this, n);
+		this.addMember(f);
+		fields.add(f);
+		n++;
+	}
+	
+	/**
+	 * Sets the documentation values.
+	 *
+	 * @param values the new documentation values
+	 */
+	public void setValues(List<DocumentUnit> values) {
+		
+		while (fields.size() > values.size() ) {
+			this.remove(fields.get(0));
+		}
+		
+		int i = 0;
+		for (DocumentUnit d : values) {
+			if (fields.size() <= i) addAField();
+
+			DocumentRecordField f = fields.get(i);
+			f.setValue(d);
+			i++;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.ccc.bcccc.client.areas.StringRecordField#setCanEdit(boolean)
+	 */
+	public void setCanEdit(boolean v) {
+		for (DocumentRecordField item : fields) {
+			item.setCanEdit(v);
+		}
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<DocumentUnit> getValues() {
+		List<DocumentUnit> values = new ArrayList<DocumentUnit>();
+		for (DocumentRecordField item : fields) {
+			values.add(item.getValue());
+		}
+		return values;
+	}
+	
+	/**
+	 * Removes the.
+	 *
+	 * @param docRecordField the dispositifs record field
+	 */
+	public void remove(DocumentRecordField docRecordField) {
+		this.removeMember(docRecordField);
+		fields.remove(docRecordField);
+		docRecordField.destroy();
+	}
+}
Index: projets/BCCCC/src/org/ccc/bcccc/client/BCCCC.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/BCCCC.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/BCCCC.java	(revision 8)
@@ -35,6 +35,7 @@
 import com.google.gwt.event.logical.shared.ValueChangeHandler;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.RootPanel;
 import com.smartgwt.client.types.Alignment;
@@ -143,7 +144,10 @@
 
 				if (result != null) { // user is logged
 					doLogUser(result);
+					//goToPanel();
 				} 
+				
+				goToPanel(History.getToken());
 			}
 		});
 	}
@@ -152,7 +156,6 @@
 	 * Initialize UI.
 	 */
 	public void init() {
-		History.newItem(""); // reset history
 		homePanel.init();
 		mainLayout.setWidth100();
 		mainLayout.setHeight100();
@@ -265,149 +268,155 @@
 		mainLayout.draw();
 
 		History.addValueChangeHandler(new ValueChangeHandler<String>() {
-
 			@Override
 			public void onValueChange(ValueChangeEvent<String> event) {
+				historyChanged(event);
+			}
+		});
+	}
 
-				continueHistoryChange = true;
-				for (Canvas panel : centerLayout.getMembers()){
-					if (panel == editTerrainRecordPanel && editTerrainRecordPanel.isRecordChanged()) {
-						SC.ask("Attention la fiche n'est pas sauvegardée. Continuer ?", new BooleanCallback() {
-							@Override
-							public void execute(Boolean value) {
-								continueHistoryChange = value;
-							}
-						});
+	protected void historyChanged(ValueChangeEvent<String> event) {
+		continueHistoryChange = true;
+		for (Canvas panel : centerLayout.getMembers()){
+			if (panel == editTerrainRecordPanel && editTerrainRecordPanel.isRecordChanged()) {
+				SC.ask("Attention la fiche n'est pas sauvegardée. Continuer ?", new BooleanCallback() {
+					@Override
+					public void execute(Boolean value) {
+						continueHistoryChange = value;
 					}
-				}
+				});
+			}
+		}
 
-				if (!continueHistoryChange) return;
+		if (!continueHistoryChange) return;
 
-				String hist = event.getValue();
-				clearMainPanel();
-				if (hist.startsWith(K.BROWSE)) {
-					System.out.println("Opening 'browse'");
+		String hist = event.getValue();
+		goToPanel(hist);
+	}
 
-					// load the right record list
-					int idx = hist.indexOf("_") + 1;
-					String show ="";
-					if (idx > 0) {
-						show = hist.substring(idx);
-					}
-					System.out.println("Browsing by "+show);
-					if ("my".equals(show)) {
-						Services.getMain().getMyRecords(new AsyncCallback<ArrayList<TerrainRecord>>() {
-							@Override
-							public void onSuccess(ArrayList<TerrainRecord> result) {
-								if (result != null) {
-									my_records = new ArrayList<TerrainRecord>();
-									my_records = result;
-									records = my_records;
+	private void goToPanel(String hist) {
+		clearMainPanel();
+		if (hist.startsWith(K.BROWSE)) {
+			System.out.println("Opening 'browse'");
 
-									browsePanel.init();
-									centerLayout.addMember(browsePanel);
-								} else {
-									SC.say("Error while records recovery.");
-								}
-							}
+			// load the right record list
+			int idx = hist.indexOf("_") + 1;
+			String show ="";
+			if (idx > 0) {
+				show = hist.substring(idx);
+			}
+			System.out.println("Browsing by "+show);
+			if ("my".equals(show)) {
+				Services.getMain().getMyRecords(new AsyncCallback<ArrayList<TerrainRecord>>() {
+					@Override
+					public void onSuccess(ArrayList<TerrainRecord> result) {
+						if (result != null) {
+							my_records = new ArrayList<TerrainRecord>();
+							my_records = result;
+							records = my_records;
 
-							@Override
-							public void onFailure(Throwable caught) {
-								SC.warn(caught.getMessage());
-							}
-						});
-					} else if ("searched".equals(show)) {
-						System.out.println("Show search result: "+searched_records.size());
-						records = searched_records;
-						browsePanel.init();
-						centerLayout.addMember(browsePanel);
-					} else { // Show all records
-						Services.getMain().getRecords(new AsyncCallback<ArrayList<TerrainRecord>>() {
-							@Override
-							public void onFailure(Throwable caught) {
-								SC.warn(caught.getMessage());
-							}
+							browsePanel.init();
+							centerLayout.addMember(browsePanel);
+						} else {
+							SC.say("Error while records recovery.");
+						}
+					}
 
-							@Override
-							public void onSuccess(ArrayList<TerrainRecord> result) {
-								if (result != null) {
-									all_records = new ArrayList<TerrainRecord>();
-									all_records = result;
-									records = all_records;
-									browsePanel.init();
-									centerLayout.addMember(browsePanel);
-								} else {
-									SC.say("Error while records recovery.");
-								}
-							}
-						});
+					@Override
+					public void onFailure(Throwable caught) {
+						SC.warn(caught.getMessage());
 					}
-				} else if (hist.equals(K.SEARCHCOMPLEX)) {
-					searchPanel.init();
-					centerLayout.addMember(searchPanel);
-				} else if (hist.startsWith(K.NEWRECORD)) {
-					createTerrainRecordPanel.init();
-					centerLayout.addMember(createTerrainRecordPanel);
-				} else if (hist.startsWith(K.EDITRECORD)) {
-					int idx = hist.indexOf("_") + 1;
-					if (idx > 0) { // the URL contains the record ID
-						String id = hist.substring(idx);
-						final long long_id = Long.parseLong(id);
-						Services.getMain().getRecord(long_id, new AsyncCallback<TerrainRecordAndRights>() {
-							@Override
-							public void onFailure(Throwable caught) {
-								SC.warn("Error while fetching record with id="+long_id+": "+caught);
-							}
+				});
+			} else if ("searched".equals(show)) {
+				System.out.println("Show search result: "+searched_records.size());
+				records = searched_records;
+				browsePanel.init();
+				centerLayout.addMember(browsePanel);
+			} else { // Show all records
+				Services.getMain().getRecords(new AsyncCallback<ArrayList<TerrainRecord>>() {
+					@Override
+					public void onFailure(Throwable caught) {
+						SC.warn(caught.getMessage());
+					}
 
-							@Override
-							public void onSuccess(TerrainRecordAndRights result) {
-								if (result != null) {
-									doubleClickedRecord = result.record;
+					@Override
+					public void onSuccess(ArrayList<TerrainRecord> result) {
+						if (result != null) {
+							all_records = new ArrayList<TerrainRecord>();
+							all_records = result;
+							records = all_records;
+							browsePanel.init();
+							centerLayout.addMember(browsePanel);
+						} else {
+							SC.say("Error while records recovery.");
+						}
+					}
+				});
+			}
+		} else if (hist.equals(K.SEARCHCOMPLEX)) {
+			searchPanel.init();
+			centerLayout.addMember(searchPanel);
+		} else if (hist.startsWith(K.NEWRECORD)) {
+			createTerrainRecordPanel.init();
+			centerLayout.addMember(createTerrainRecordPanel);
+		} else if (hist.startsWith(K.EDITRECORD)) {
+			int idx = hist.indexOf("_") + 1;
+			if (idx > 0) { // the URL contains the record ID
+				String id = hist.substring(idx);
+				final long long_id = Long.parseLong(id);
+				Services.getMain().getRecord(long_id, new AsyncCallback<TerrainRecordAndRights>() {
+					@Override
+					public void onFailure(Throwable caught) {
+						SC.warn("Error while fetching record with id="+long_id+": "+caught);
+					}
 
-									editTerrainRecordPanel.init();
-									centerLayout.addMember(editTerrainRecordPanel);
-								} else {
-									SC.warn("No record found with id="+long_id);
-								}
-							}
-						});
-					} else {
-						editTerrainRecordPanel.init();
-						centerLayout.addMember(editTerrainRecordPanel);
+					@Override
+					public void onSuccess(TerrainRecordAndRights result) {
+						if (result != null) {
+							doubleClickedRecord = result.record;
+
+							editTerrainRecordPanel.init();
+							centerLayout.addMember(editTerrainRecordPanel);
+						} else {
+							SC.warn("No record found with id="+long_id);
+						}
 					}
-				}  else if (hist.startsWith(K.VIEWRECORD)) {
-					int idx = hist.indexOf("_") + 1;
-					if (idx > 0) { // the URL contains the record ID
-						String id = hist.substring(idx);
-						final long long_id = Long.parseLong(id);
-						Services.getMain().getRecord(long_id, new AsyncCallback<TerrainRecordAndRights>() {
-							@Override
-							public void onFailure(Throwable caught) {
-								SC.warn("Error while fetching record with id="+long_id+": "+caught);
-							}
+				});
+			} else {
+				editTerrainRecordPanel.init();
+				centerLayout.addMember(editTerrainRecordPanel);
+			}
+		}  else if (hist.startsWith(K.VIEWRECORD)) {
+			int idx = hist.indexOf("_") + 1;
+			if (idx > 0) { // the URL contains the record ID
+				String id = hist.substring(idx);
+				final long long_id = Long.parseLong(id);
+				Services.getMain().getRecord(long_id, new AsyncCallback<TerrainRecordAndRights>() {
+					@Override
+					public void onFailure(Throwable caught) {
+						SC.warn("Error while fetching record with id="+long_id+": "+caught);
+					}
 
-							@Override
-							public void onSuccess(TerrainRecordAndRights result) {
-								if (result != null) {
-									doubleClickedRecord = result.record;
+					@Override
+					public void onSuccess(TerrainRecordAndRights result) {
+						if (result != null) {
+							doubleClickedRecord = result.record;
 
-									viewTerrainRecordPanel.init();
-									centerLayout.addMember(viewTerrainRecordPanel);
-								} else {
-									SC.warn("No record found with id="+long_id);
-								}
-							}
-						});
-					} else {
-						viewTerrainRecordPanel.init();
-						centerLayout.addMember(viewTerrainRecordPanel);
+							viewTerrainRecordPanel.init();
+							centerLayout.addMember(viewTerrainRecordPanel);
+						} else {
+							SC.warn("No record found with id="+long_id);
+						}
 					}
-				} else {
-					homePanel.init();
-					centerLayout.addMember(homePanel);
-				}
+				});
+			} else {
+				viewTerrainRecordPanel.init();
+				centerLayout.addMember(viewTerrainRecordPanel);
 			}
-		});
+		} else {
+			homePanel.init();
+			centerLayout.addMember(homePanel);
+		}
 	}
 
 	/**
@@ -422,7 +431,6 @@
 		createRecordButton.setVisible(true);
 		userNameLabel.setContents(userAndEta);
 
-		History.newItem(K.HOME);
 	}
 
 	/**
Index: projets/BCCCC/src/org/ccc/bcccc/client/LoginWindow.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/LoginWindow.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/LoginWindow.java	(revision 8)
@@ -18,6 +18,9 @@
  */
 package org.ccc.bcccc.client;
 
+import org.ccc.bcccc.shared.K;
+
+import com.google.gwt.user.client.History;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.smartgwt.client.types.VerticalAlignment;
 import com.smartgwt.client.util.SC;
@@ -49,7 +52,7 @@
 	private BCCCC bcccc;
 	
 	/** The login item. */
-	private TextItem loginItem;
+	private TextItem emailItem;
 	
 	/**
 	 * Instantiates a new login window.
@@ -79,10 +82,10 @@
 		form.setPadding(5);  
 		form.setLayoutAlign(VerticalAlignment.BOTTOM);
 		
-		loginItem = new TextItem("login");  
-		loginItem.setRequired(true);
-		loginItem.setTitle("Login"); 
-		loginItem.addKeyPressHandler(new KeyPressHandler() {
+		emailItem = new TextItem("login");  
+		emailItem.setRequired(true);
+		emailItem.setTitle("Login"); 
+		emailItem.addKeyPressHandler(new KeyPressHandler() {
 			@Override
 			public void onKeyPress(KeyPressEvent event) {
 				if (event != null && event.getKeyName() != null) {
@@ -92,21 +95,7 @@
 				}
 			}
 		});
-		
-		TextItem etaItem2 = new TextItem("eta");  
-		etaItem2.setRequired(true);
-		etaItem2.setTitle("Etablissement");  
-		etaItem2.addKeyPressHandler(new KeyPressHandler() {
-			@Override
-			public void onKeyPress(KeyPressEvent event) {
-				if (event != null && event.getKeyName() != null) {
-					if (event.getKeyName().equals("Enter")) {
-						validate();
-					}
-				}
-			}
-		});
-		
+				
 		PasswordItem passItem = new PasswordItem("password"); 
 		passItem.setRequired(true);  
 		passItem.setTitle("mot de passe");
@@ -141,11 +130,10 @@
 			}
 		});
 		
-		form.setFields(loginItem, etaItem2, passItem, validate); 
+		form.setFields(emailItem, passItem, validate); 
 
 		this.addItem(form);  
-		form.setValue("login", "test");
-		form.setValue("eta", "ens-lyon.fr");
+		form.setValue("login", "test@ens-lyon.fr");
 		form.setValue("password", "test");
 	}
 	
@@ -154,7 +142,7 @@
 	 */
 	public void show() {
 		super.show();
-		loginItem.focusInItem();
+		emailItem.focusInItem();
 	}
 	
 	/**
@@ -165,17 +153,8 @@
 	public String getLogin() {
 		return form.getValueAsString("login");
 	}
-	
+		
 	/**
-	 * Gets the eta.
-	 *
-	 * @return the eta
-	 */
-	public String getEta() {
-		return form.getValueAsString("eta");
-	}
-	
-	/**
 	 * Gets the password.
 	 *
 	 * @return the password
@@ -198,9 +177,8 @@
 	 */
 	public void validate() {
 		final String login = this.getLogin();
-		final String eta = this.getEta();
 		final String password = this.getPassword();
-		Services.getMain().logIn(login, eta, password, new AsyncCallback<Boolean>() {
+		Services.getMain().logIn(login, password, new AsyncCallback<Boolean>() {
 			@Override
 			public void onFailure(Throwable caught) {
 				hide();
@@ -211,9 +189,10 @@
 			public void onSuccess(Boolean result) {
 				hide();
 				if (result) {
-					bcccc.doLogUser(login+"@"+eta);
+					bcccc.doLogUser(login);
+					History.newItem(K.HOME);
 				} else {
-					SC.warn("Failed to connect as "+login+"@"+eta);
+					SC.warn("Failed to connect as "+login);
 				}
 			}
 		});
Index: projets/BCCCC/src/org/ccc/bcccc/client/panels/ViewPanel.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/panels/ViewPanel.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/panels/ViewPanel.java	(revision 8)
@@ -79,7 +79,7 @@
 			editImg.setVisible(false);
 			editImg.addClickHandler(new ClickHandler() {  
 				public void onClick(ClickEvent event) {
-					History.newItem(K.EDITRECORD);
+					History.newItem(K.EDITRECORD+"_"+record.record.uniq_id);
 				}
 			}); 
 			this.addMember(editImg);
Index: projets/BCCCC/src/org/ccc/bcccc/client/panels/BrowsePanel.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/panels/BrowsePanel.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/panels/BrowsePanel.java	(revision 8)
@@ -132,7 +132,7 @@
 	        						}
 	        					}
 	                        		                        	
-	                        	History.newItem(K.EDITRECORD);
+	                        	History.newItem(K.EDITRECORD+"_"+UNIQID);
 	                        }  
 	                    });  
 	  
@@ -159,7 +159,7 @@
 	        						}
 	        					}
 	                        		                        	
-	                        	History.newItem(K.VIEWRECORD);  
+	                        	History.newItem(K.VIEWRECORD+"_"+UNIQID);  
 	                        }  
 	                    });  
 	  
@@ -182,7 +182,7 @@
 				@Override
 				public void onRecordDoubleClick(RecordDoubleClickEvent event) {
 					String UNIQID_str = event.getRecord().getAttribute(K.UNIQID);
-					Long UNIQID = Long.parseLong(UNIQID_str);
+					final Long UNIQID = Long.parseLong(UNIQID_str);
 					System.out.println("User double click on record with UNIQID="+UNIQID);
 					BCCCC.doubleClickedRecord = null;
 					for (int i = 0 ; i < BCCCC.records.size() ; i++) {
@@ -204,9 +204,9 @@
 							@Override
 							public void onSuccess(Boolean result) {
 								if (result) {
-									History.newItem(K.EDITRECORD);
+									History.newItem(K.EDITRECORD+"_"+UNIQID);
 								} else {
-									History.newItem(K.VIEWRECORD);
+									History.newItem(K.VIEWRECORD+"_"+UNIQID);
 								}
 							}
 						});
Index: projets/BCCCC/src/org/ccc/bcccc/client/panels/CreatePanel.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/panels/CreatePanel.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/panels/CreatePanel.java	(revision 8)
@@ -57,6 +57,9 @@
 	/** The project vae field. */
 	private TextItem projectVAEField;
 	
+	/** The place vae field. */
+	private TextItem placeVAEField;
+	
 	/** The date vae field. */
 	private DateItem dateVAEField;
 	
@@ -91,6 +94,10 @@
 			contentVAEField.setTitle("Short description");
 			contentVAEField.setRequired(true);
 			
+			placeVAEField = new TextItem(K.PLACE);  
+			placeVAEField.setTitle("Lieu");  
+			placeVAEField.setRequired(true);
+			
 			dateVAEField = new DateItem(K.DATE);  
 			dateVAEField.setTitle("Date");  
 			dateVAEField.setUseTextField(false);
@@ -112,7 +119,8 @@
 					Date date = (Date)createForm.getValue(K.DATE);
 					record.record.setInfoFields(
 							createForm.getValueAsString(K.ID), 
-							createForm.getValueAsString(K.PROJECT), 
+							createForm.getValueAsString(K.PROJECT),
+							createForm.getValueAsString(K.PLACE), 
 							date, 
 							createForm.getValueAsString(K.DESC),
 							"???");
@@ -137,7 +145,7 @@
 			});
 
 			createForm.setItems(idVAEField, contentVAEField, 
-					projectVAEField, dateVAEField, saveVAEButton);
+					projectVAEField, placeVAEField, dateVAEField, saveVAEButton);
 
 		}
 	}
Index: projets/BCCCC/src/org/ccc/bcccc/client/panels/EditPanel.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/panels/EditPanel.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/panels/EditPanel.java	(revision 8)
@@ -22,18 +22,19 @@
 
 import org.ccc.bcccc.client.BCCCC;
 import org.ccc.bcccc.client.Services;
-import org.ccc.bcccc.client.areas.DataRecordArea;
-import org.ccc.bcccc.client.areas.DateRecordField;
-import org.ccc.bcccc.client.areas.DispositifsRecordArea;
-import org.ccc.bcccc.client.areas.DocumentsRecordArea;
-import org.ccc.bcccc.client.areas.PublicationsRecordArea;
-import org.ccc.bcccc.client.areas.RecordDescriptionField;
-import org.ccc.bcccc.client.areas.RecordNOfParticipantsField;
-import org.ccc.bcccc.client.areas.RecordNameField;
+import org.ccc.bcccc.client.areas.RecordDataArea;
+import org.ccc.bcccc.client.areas.RecordDateArea;
+import org.ccc.bcccc.client.areas.RecordDispositifsArea;
+import org.ccc.bcccc.client.areas.RecordDocumentsArea;
+import org.ccc.bcccc.client.areas.RecordPlaceArea;
+import org.ccc.bcccc.client.areas.RecordPublicationsArea;
+import org.ccc.bcccc.client.areas.RecordDescriptionArea;
+import org.ccc.bcccc.client.areas.RecordParticipantsNumberArea;
+import org.ccc.bcccc.client.areas.RecordNameArea;
 import org.ccc.bcccc.client.areas.RecordPersonsArea;
 import org.ccc.bcccc.client.areas.RecordProjectField;
 import org.ccc.bcccc.client.areas.RecordTypesArea;
-import org.ccc.bcccc.client.areas.ReportsRecordArea;
+import org.ccc.bcccc.client.areas.RecordReportsArea;
 import org.ccc.bcccc.shared.K;
 import org.ccc.bcccc.shared.TerrainRecordAndRights;
 
@@ -78,19 +79,22 @@
 	private ButtonItem validateVAEButton;
 
 	/** The name field. */
-	private RecordNameField nameField;
+	private RecordNameArea nameField;
 
 	/** The project field. */
 	private RecordProjectField projectField;
 
 	/** The description field. */
-	private RecordDescriptionField descriptionField;
+	private RecordDescriptionArea descriptionField;
 
 	/** The date field. */
-	private DateRecordField dateField;
+	private RecordPlaceArea placeField;
+	
+	/** The date field. */
+	private RecordDateArea dateField;
 
 	/** The number of participants field. */
-	private RecordNOfParticipantsField numberOfParticipantsField;
+	private RecordParticipantsNumberArea numberOfParticipantsField;
 
 	/** The participants field. */
 	private RecordPersonsArea personsField;
@@ -99,19 +103,19 @@
 	private RecordTypesArea typesField;
 
 	/** The dispositifs field. */
-	private DispositifsRecordArea dispositifsField;
+	private RecordDispositifsArea dispositifsField;
 
 	/** The data field. */
-	private DataRecordArea dataField;
+	private RecordDataArea dataField;
 
 	/** The documentation field. */
-	private DocumentsRecordArea documentationField;
+	private RecordDocumentsArea documentationField;
 
 	/** The report field. */
-	private ReportsRecordArea reportField;
+	private RecordReportsArea reportField;
 
 	/** The publication field. */
-	private PublicationsRecordArea publicationField;
+	private RecordPublicationsArea publicationField;
 
 	private ButtonItem viewVAEButton;
 
@@ -136,15 +140,15 @@
 
 					record.record.setInfoFields(nameField.getValue(), 
 							projectField.getValue(), 
+							placeField.getValue(),
 							dateField.getDate(), 
 							descriptionField.getValue(),
 							"???");
 
 					record.record.setDetailFields(Integer.parseInt(numberOfParticipantsField.getValue()), 
-							viewAndEditForm.getValueAsString(K.PLACE), 
 							typesField.getValuesAsStringArray(), 
 							new ArrayList<String>(),
-							personsField.getValuesAsStringArray(),
+							personsField.getValues(),
 							dispositifsField.getValues(),
 							documentationField.getValues(), 
 							dataField.getValues(),
@@ -229,7 +233,7 @@
 			viewVAEButton.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
 				@Override
 				public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
-					History.newItem(K.VIEWRECORD);  
+					History.newItem(K.VIEWRECORD+"_"+record.record.uniq_id);  
 				}
 			});
 			viewAndEditForm.setNumCols(4);
@@ -238,20 +242,21 @@
 			viewAndEditForm.setTitleOrientation(TitleOrientation.LEFT);
 			viewAndEditForm.setMargin(10);
 
-			nameField = new RecordNameField(this);
+			nameField = new RecordNameArea(this);
 			projectField = new RecordProjectField(this);	
-			descriptionField = new RecordDescriptionField(this);
-			dateField = new DateRecordField(this, "Date", false, true, null);
-			numberOfParticipantsField = new RecordNOfParticipantsField(this, "Nombre de participants");
+			descriptionField = new RecordDescriptionArea(this);
+			placeField = new RecordPlaceArea(this);
+			dateField = new RecordDateArea(this, "Date", false, true, null);
+			numberOfParticipantsField = new RecordParticipantsNumberArea(this, "Nombre de participants");
 
 			personsField = new RecordPersonsArea(this);
 			typesField = new RecordTypesArea(this);
 
-			dispositifsField = new DispositifsRecordArea(this, "Dispositifs utilisés");
-			dataField = new DataRecordArea(this,  "Données produites");
-			documentationField = new DocumentsRecordArea(this, "Documentation");
-			reportField = new ReportsRecordArea(this,  "Rapports");
-			publicationField = new PublicationsRecordArea(this, "Publications produites");
+			dispositifsField = new RecordDispositifsArea(this, "Dispositifs utilisés");
+			dataField = new RecordDataArea(this,  "Données produites");
+			documentationField = new RecordDocumentsArea(this, "Documentation");
+			reportField = new RecordReportsArea(this,  "Rapports");
+			publicationField = new RecordPublicationsArea(this, "Publications produites");
 		}
 
 		if (BCCCC.doubleClickedRecord != null) { // load record informations
@@ -288,9 +293,11 @@
 					projectField.setValue(record.record.project);
 					descriptionField.setValue(record.record.short_description);
 
+					placeField.setValue(record.record.place);
 					dateField.setValue(record.record.date);
 					numberOfParticipantsField.setValue(record.record.numberOfParticipants);
 
+					personsField.setValues(record.record.persons);
 					typesField.setValues(record.record.types);
 					dispositifsField.setValues(record.record.dispositifs);
 					dataField.setValues(record.record.supports);
@@ -302,6 +309,7 @@
 					addMember(nameField);
 					addMember(projectField);
 					addMember(descriptionField);
+					addMember(placeField);
 					addMember(dateField);
 					addMember(numberOfParticipantsField);
 
Index: projets/BCCCC/src/org/ccc/bcccc/client/GreetingServiceAsync.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/GreetingServiceAsync.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/GreetingServiceAsync.java	(revision 8)
@@ -51,10 +51,9 @@
 	 *
 	 * @param login the login
 	 * @param eta the eta
-	 * @param mdp the mdp
 	 * @param callback the callback
 	 */
-	void logIn(String login, String eta, String mdp, AsyncCallback<Boolean> callback);
+	void logIn(String login, String eta, AsyncCallback<Boolean> callback);
 	
 	/**
 	 * Log out.
Index: projets/BCCCC/src/org/ccc/bcccc/client/GreetingService.java
===================================================================
--- projets/BCCCC/src/org/ccc/bcccc/client/GreetingService.java	(revision 7)
+++ projets/BCCCC/src/org/ccc/bcccc/client/GreetingService.java	(revision 8)
@@ -27,15 +27,14 @@
 import com.google.gwt.user.client.rpc.RemoteService;
 import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
 
-// TODO: Auto-generated Javadoc
 /**
- * The client-side stub for the RPC service.
+ * All the RPC services.
  */
 @RemoteServiceRelativePath("greet")
 public interface GreetingService extends RemoteService {
 	
 	/**
-	 * Hello.
+	 * Starts the user session
 	 *
 	 * @return the string
 	 * @throws IllegalArgumentException the illegal argument exception
@@ -43,14 +42,13 @@
 	String hello() throws IllegalArgumentException;
 	
 	/**
-	 * Log in.
-	 *
-	 * @param login the login
-	 * @param eta the eta
-	 * @param mdp the mdp
-	 * @return the boolean
+	 * Log user to the site and enable him to create records
+	 * 
+	 * @param login email
+	 * @param password
+	 * @return
 	 */
-	Boolean logIn(String login, String eta, String mdp);
+	boolean logIn(String login, String password);
 	
 	/**
 	 * Log out.
