Index: /applications/editors/josm/plugins/opendata/modules/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/build.xml	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/modules/build.xml	(revision 28091)
@@ -8,4 +8,5 @@
 	        <ant antfile="build.xml" target="@{target}" dir="fr.cg41"/>
 	        <ant antfile="build.xml" target="@{target}" dir="fr.datagouvfr"/>
+            <ant antfile="build.xml" target="@{target}" dir="fr.lemans"/>
 	        <ant antfile="build.xml" target="@{target}" dir="fr.paris"/>
 	        <ant antfile="build.xml" target="@{target}" dir="fr.sncf"/>
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansModule.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansModule.java	(revision 28091)
@@ -19,4 +19,9 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleInformation;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.CantonsSartheHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.CirconscriptionsLegislativesHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.CodesPostauxHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.CommunesHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.ConseilsQuartiersHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.PointsApportVolontaireHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets.ServicesCommunautairesMunicipauxHandler;
 
@@ -27,4 +32,9 @@
 		handlers.add(new ServicesCommunautairesMunicipauxHandler());
 		handlers.add(new CantonsSartheHandler());
+		handlers.add(new CommunesHandler());
+		handlers.add(new CodesPostauxHandler());
+		handlers.add(new CirconscriptionsLegislativesHandler());
+		handlers.add(new ConseilsQuartiersHandler());
+		handlers.add(new PointsApportVolontaireHandler());
     }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CantonsSartheHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CantonsSartheHandler.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CantonsSartheHandler.java	(revision 28091)
@@ -24,10 +24,10 @@
 		super("F7D936DF-550EA533-37695DD8-29CFF55B");
 		setName("Cantons de la Sarthe");
-		setCsvKmzShpUuid("62DF4EEF-550EA533-7E7BB44A-45C66201", "62DFCA8F-550EA533-7E7BB44A-7D1AA2D4", "62E017CA-550EA533-7E7BB44A-23772121");
+		setKmzShpUuid("62DFCA8F-550EA533-7E7BB44A-7D1AA2D4", "62E017CA-550EA533-7E7BB44A-23772121");
 	}
 
 	@Override
 	public boolean acceptsFilename(String filename) {
-		return acceptsCsvKmzShpFilename(filename, "CANTONS_72") || acceptsZipFilename(filename, "Les cantons de la Sarthe .*");
+		return acceptsKmzShpFilename(filename, "CANTONS_72") || acceptsZipFilename(filename, "Les cantons de la Sarthe .*");
 	}
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CirconscriptionsLegislativesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CirconscriptionsLegislativesHandler.java	(revision 28091)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CirconscriptionsLegislativesHandler.java	(revision 28091)
@@ -0,0 +1,37 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    This program 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 3 of the License, or
+//    (at your option) any later version.
+//
+//    This program 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.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+
+public class CirconscriptionsLegislativesHandler extends LeMansDataSetHandler {
+
+	public CirconscriptionsLegislativesHandler() {
+		super("F7D06B39-550EA533-37695DD8-95CA6762");
+		setName("Circonscriptions législatives");
+		setKmzShpUuid("64468222-550EA533-7E7BB44A-39A6B127", "6447510C-550EA533-7E7BB44A-9971DB1A");
+	}
+
+	@Override
+	public boolean acceptsFilename(String filename) {
+		return acceptsKmzShpFilename(filename, "CIRCONSCRIPTIONS") || acceptsZipFilename(filename, "Les circonscriptions .*");
+	}
+
+	@Override
+	public void updateDataSet(DataSet ds) {
+		// TODO
+	}
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CodesPostauxHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CodesPostauxHandler.java	(revision 28091)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CodesPostauxHandler.java	(revision 28091)
@@ -0,0 +1,37 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    This program 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 3 of the License, or
+//    (at your option) any later version.
+//
+//    This program 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.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+
+public class CodesPostauxHandler extends LeMansDataSetHandler {
+
+	public CodesPostauxHandler() {
+		super("F758F369-550EA533-37695DD8-84EB87F5");
+		setName("Codes postaux");
+		setKmzShpUuid("6449CF5B-550EA533-7E7BB44A-2DB0261B", "644A524A-550EA533-7E7BB44A-9B34A76A");
+	}
+
+	@Override
+	public boolean acceptsFilename(String filename) {
+		return acceptsKmzShpFilename(filename, "CODES_POSTAUX") || acceptsZipFilename(filename, "Les codes postaux .*");
+	}
+
+	@Override
+	public void updateDataSet(DataSet ds) {
+		// TODO
+	}
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CommunesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CommunesHandler.java	(revision 28091)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CommunesHandler.java	(revision 28091)
@@ -0,0 +1,48 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    This program 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 3 of the License, or
+//    (at your option) any later version.
+//
+//    This program 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.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+public class CommunesHandler extends LeMansDataSetHandler {
+
+	public CommunesHandler() {
+		super("F7B756B1-550EA533-37695DD8-FE094AE7");
+		setName("Communes");
+		setKmzShpUuid("64527774-550EA533-7E7BB44A-FD17EEF0", "6452D942-550EA533-7E7BB44A-C184920B");
+	}
+
+	@Override
+	public boolean acceptsFilename(String filename) {
+		return acceptsKmzShpFilename(filename, "LIMITES_DE_COMMUNES") || acceptsZipFilename(filename, "Les limites de communes .*");
+	}
+
+	@Override
+	public void updateDataSet(DataSet ds) {
+		for (OsmPrimitive p : ds.allPrimitives()) {
+			if (p.hasKey("CODCOM")) {
+				p.put("type", "boundary");
+				p.put("boundary", "administrative");
+				p.put("admin_level", "8");
+				replace(p, "COMMUNE", "name");
+				p.remove("COMMUNE_2");
+				replace(p, "ID", "ref:INSEE");
+				p.remove("CODCOM");
+			}
+		}
+	}
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ConseilsQuartiersHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ConseilsQuartiersHandler.java	(revision 28091)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ConseilsQuartiersHandler.java	(revision 28091)
@@ -0,0 +1,37 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    This program 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 3 of the License, or
+//    (at your option) any later version.
+//
+//    This program 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.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+
+public class ConseilsQuartiersHandler extends LeMansDataSetHandler {
+
+	public ConseilsQuartiersHandler() {
+		super("F7713FAB-550EA533-37695DD8-A9755461");
+		setName("Conseils de quartiers");
+		setKmzShpUuid("644BD601-550EA533-7E7BB44A-0B649A3D", "644C87D8-550EA533-7E7BB44A-6284E60D");
+	}
+
+	@Override
+	public boolean acceptsFilename(String filename) {
+		return acceptsKmzShpFilename(filename, "CONSEILS_DE_QUARTIER") || acceptsZipFilename(filename, "Les conseils de quartiers .*");
+	}
+
+	@Override
+	public void updateDataSet(DataSet ds) {
+		// TODO
+	}
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java	(revision 28091)
@@ -30,5 +30,4 @@
 	private String uuid;
 	
-	private String csvUuid;
 	private String kmzUuid;
 	private String shpUuid;
@@ -61,7 +60,6 @@
 		this.uuid = uuid;
 	}
-	
-	protected final void setCsvKmzShpUuid(String csvUuid, String kmzUuid, String shpUuid) {
-		this.csvUuid = csvUuid;
+		
+	protected final void setKmzShpUuid(String kmzUuid, String shpUuid) {
 		this.kmzUuid = kmzUuid;
 		this.shpUuid = shpUuid;
@@ -107,5 +105,4 @@
 		List<Pair<String, URL>> result = new ArrayList<Pair<String,URL>>();
 		try {
-			//if (csvUuid != null && !csvUuid.isEmpty()) result.add(new Pair<String, URL>("CSV", new URL(PORTAL + "download.do?uuid=" + csvUuid)));
 			if (kmzUuid != null && !kmzUuid.isEmpty()) result.add(new Pair<String, URL>("KMZ", new URL(PORTAL + "download.do?uuid=" + kmzUuid)));
 			if (shpUuid != null && !shpUuid.isEmpty()) result.add(new Pair<String, URL>("SHP", new URL(PORTAL + "download.do?uuid=" + shpUuid)));
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/PointsApportVolontaireHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/PointsApportVolontaireHandler.java	(revision 28091)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/PointsApportVolontaireHandler.java	(revision 28091)
@@ -0,0 +1,37 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    This program 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 3 of the License, or
+//    (at your option) any later version.
+//
+//    This program 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.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.datasets;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+
+public class PointsApportVolontaireHandler extends LeMansDataSetHandler {
+
+	public PointsApportVolontaireHandler() {
+		super("F8213494-550EA533-37695DD8-28F0B08D");
+		setName("Points d'apport volontaire");
+		setKmzShpUuid("66972849-550EA533-7E7BB44A-7AB7F366", "66977265-550EA533-7E7BB44A-1859F0AC");
+	}
+
+	@Override
+	public boolean acceptsFilename(String filename) {
+		return acceptsKmzShpFilename(filename, "Points d'Apports Volontaires") || acceptsZipFilename(filename, "Les points dapport volontaire .*");
+	}
+
+	@Override
+	public void updateDataSet(DataSet ds) {
+		// TODO
+	}
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ServicesCommunautairesMunicipauxHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ServicesCommunautairesMunicipauxHandler.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ServicesCommunautairesMunicipauxHandler.java	(revision 28091)
@@ -24,10 +24,10 @@
 		super("F7F65F15-550EA533-37695DD8-F7A74F05");
 		setName("Services communautaires et municipaux");
-		setCsvKmzShpUuid("66C8C51F-550EA533-7E7BB44A-B9216F89", "66C925DA-550EA533-7E7BB44A-BCF0B629", "66C972AD-550EA533-7E7BB44A-E842FFAD");
+		setKmzShpUuid("66C925DA-550EA533-7E7BB44A-BCF0B629", "66C972AD-550EA533-7E7BB44A-E842FFAD");
 	}
 
 	@Override
 	public boolean acceptsFilename(String filename) {
-		return acceptsCsvKmzShpFilename(filename, "SERVICES_VDM_LMM") || acceptsZipFilename(filename, "Les services de le Mans Métropole et de la Ville du Mans .*");
+		return acceptsKmzShpFilename(filename, "SERVICES_VDM_LMM") || acceptsZipFilename(filename, "Les services de le Mans Métropole et de la Ville du Mans .*");
 	}
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 28091)
@@ -28,4 +28,5 @@
 import java.util.Map;
 
+import javax.swing.ImageIcon;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
@@ -59,4 +60,5 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleHandler;
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleInformation;
+import org.openstreetmap.josm.plugins.opendata.core.util.OdUtils;
 import org.openstreetmap.josm.tools.Pair;
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 28091)
@@ -85,4 +85,5 @@
 
 	public static final String ICON_AGREEMENT_24 = "agreement24.png";
+	public static final String ICON_EMPTY_24 = "empty24.png";
 
     /**
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java	(revision 28091)
@@ -154,4 +154,8 @@
 	}
 
+	protected final boolean acceptsKmzShpFilename(String filename, String ... expected) {
+		return acceptsFilename(filename, expected, KMZ_EXT, SHP_EXT);
+	}
+
 	protected final boolean acceptsKmzTabFilename(String filename, String ... expected) {
 		return acceptsFilename(filename, expected, KMZ_EXT, TAB_EXT);
@@ -169,9 +173,5 @@
 		return acceptsFilename(filename, expected, CSV_EXT, KMZ_EXT, TAB_EXT);
 	}
-	
-	protected final boolean acceptsCsvKmzShpFilename(String filename, String ... expected) {
-		return acceptsFilename(filename, expected, CSV_EXT, KMZ_EXT, SHP_EXT);
-	}
-	
+		
 	protected final boolean acceptsCsvXlsFilename(String filename, String ... expected) {
 		return acceptsFilename(filename, expected, CSV_EXT, XLS_EXT);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 28090)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 28091)
@@ -40,4 +40,5 @@
 import org.openstreetmap.josm.plugins.opendata.OdPlugin;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
+import org.openstreetmap.josm.plugins.opendata.core.util.OdUtils;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.LanguageInfo;
@@ -359,5 +360,5 @@
     public ImageIcon getScaledIcon() {
         if (icon == null)
-            return null;
+            return OdUtils.getImageIcon(ICON_EMPTY_24);
         return new ImageIcon(icon.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH));
     }
