Index: TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/preferences/KRAnnotationPreferences.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/preferences/KRAnnotationPreferences.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/preferences/KRAnnotationPreferences.java	(revision 3404)
@@ -37,6 +37,6 @@
 		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.putBoolean(UPDATE_EDITION, true);
 		preferences.putBoolean(UPDATE_INDEXES, true);
-		preferences.putBoolean(PRESERVE_ANNOTATIONS, true);
+		preferences.putBoolean(PRESERVE_ANNOTATIONS, false);
 	}
 }
Index: TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/storage/temporary/TemporaryAnnotationManager.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/storage/temporary/TemporaryAnnotationManager.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/storage/temporary/TemporaryAnnotationManager.java	(revision 3404)
@@ -52,10 +52,10 @@
 		properties.put("javax.persistence.jdbc.username", "SA");
 		properties.put(PersistenceUnitProperties.DDL_GENERATION_MODE, "database");
 		if (KRAnnotationPreferences.getInstance().getBoolean(KRAnnotationPreferences.PRESERVE_ANNOTATIONS)) {
-			properties.put(PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables"); // drop-and-create-tables to reset all
+			properties.put(PersistenceUnitProperties.DDL_GENERATION, "create-or-extend-tables"); // create&update table if needed, drop-and-create-tables to reset all
 		}
 		else {
-			properties.put(PersistenceUnitProperties.DDL_GENERATION, "create-or-extend-tables"); // create&update table if needed, drop-and-create-tables to reset all
+			properties.put(PersistenceUnitProperties.DDL_GENERATION, "drop-and-create-tables"); // drop-and-create-tables to reset all
 		}
 		
 		if (Log.getLevel().intValue() < Level.INFO.intValue()) {
Index: TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/repository/SQLKnowledgeRepository.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/repository/SQLKnowledgeRepository.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/repository/SQLKnowledgeRepository.java	(revision 3404)
@@ -148,7 +148,7 @@
 			return true;
 		}
 		catch (Exception e) {
-			System.out.println("Fail to get SQL connection with " + accessProperties + ", error=" + e);
+			Log.warning(NLS.bind("Fail to get SQL connection with the {0} properties, error={1}", accessProperties, e));
 		}
 		isConnected = false;
 		return false;
Index: TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationManager.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationManager.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationManager.java	(revision 3404)
@@ -58,7 +58,7 @@
 		
 		if (monitor != null) {
 			monitor.beginTask(KRAnnotationCoreMessages.savingAnnotations, annots.size());
-			monitor.setTaskName("writing annotations in XML-TXM files");
+			monitor.setTaskName("Writing annotations in XML-TXM files");
 		}
 		
 		AnnotationWriter writer = new AnnotationWriter(corpus);
Index: TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationInjector.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationInjector.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationInjector.java	(revision 3404)
@@ -13,6 +13,7 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 
+import org.eclipse.osgi.util.NLS;
 import org.txm.Toolbox;
 import org.txm.importer.StaxIdentityParser;
 import org.txm.importer.ValidateXml;
@@ -331,15 +332,16 @@
 								toDelete = true;
 								// currentEndAnnotations.remove(a); // MAYBE NOT TO
 								// DO THIS HERE ?
-								if (debug)
-									System.out.println(" force delete start annotation " + a);
+								if (debug) {
+									Log.finer(" force delete start annotation " + a);
+								}
 							}
 							else { // update existing annotation, no need to store
 									 // the end of annotation
 								writeStartAnnotation(a);
 								toDelete = true;
 								if (debug) {
-									System.out.println(" update annotation " + a);
+									Log.finer(" update annotation " + a);
 								}
 								currentEndAnnotations = annotationsToAddByEndPos.get(a.getEnd());// EL
 								// NO
@@ -349,7 +351,7 @@
 								// System.out.println(" shall we need to change annotation attribute : "+a.getValue()+
 								// " | currentEndAnnotations : "+currentEndAnnotations);
 								if (currentEndAnnotations == null) {
-									System.out.println("WARNING ERROR null pointer for end position of annotation " + a);
+									Log.warning(NLS.bind("Error: null pointer for end position of annotation {0}.", a));
 								}
 								else {
 									currentEndAnnotations.remove(a);
@@ -369,7 +371,7 @@
 							if (a.getEnd() >= end) { // must write a
 								if (!"#del".equals(a.getValue())) {
 									if (debug) {
-										System.out.println(" writing of start annotation " + a);
+										Log.finer(NLS.bind(" writing of start annotation {0}.", a));
 									}
 									writeStartAnnotation(a);
 									
@@ -377,13 +379,13 @@
 								else {
 									toDelete = true;
 									if (debug) {
-										System.out.println(" no writing of start annotation " + a);
+										Log.finer(NLS.bind(" no writing of start annotation {0}.", a));
 									}
 									currentEndAnnotations = annotationsToAddByEndPos.get(a.getEnd());
 									// System.out.println(" shall we need to change annotation attribute : "+a.getValue()+
 									// " | currentEndAnnotations : "+currentEndAnnotations);
 									if (currentEndAnnotations == null) {
-										System.out.println("WARNING ERROR null pointer for end position of annotation " + a);
+										Log.warning(NLS.bind("Error: null pointer for end position of annotation {0}.", a));
 									}
 									else {
 										currentEndAnnotations.remove(a);
@@ -469,7 +471,7 @@
 					// System.out.println("=============== End annot : "+a);
 					if (!"#del".equals(a.getValue())) {
 						if (debug) {
-							System.out.println(" force write end annotation " + a);
+							Log.finer(" force write end annotation " + a);
 						}
 						writeEndAnnotation(a);
 					} /*
@@ -511,7 +513,7 @@
 						// {
 						toDelete = true;
 						if (debug) {
-							System.out.println(" force delete end annotation " + a);
+							Log.finer(" force delete end annotation " + a);
 						}
 					}
 					
Index: TXM/trunk/org.txm.core/src/java/org/txm/metadatas/Metadatas.java
===================================================================
--- TXM/trunk/org.txm.core/src/java/org/txm/metadatas/Metadatas.java	(revision 3403)
+++ TXM/trunk/org.txm.core/src/java/org/txm/metadatas/Metadatas.java	(revision 3404)
@@ -228,7 +228,7 @@
 		for (int i = 1; i < headers.size(); i++) {
 			if (headers.get(i).length() == 0) {
 				//headers.set(i, "noname");
-				System.out.println("Warning: the " + (i + 1) + "th column name is empty");
+				Log.finer("Warning: the " + (i + 1) + "th column name is empty and will be ignored.");
 				continue;
 			}
 			// if(!headers[i].equals("id"))// the first
@@ -265,7 +265,7 @@
 			}
 			// write the other attributes
 			for (int j : indexes) {
-				if (headers.get(j).equals("id")) {
+				if (headers.get(j).equals("id") || headers.get(j).length() == 0) {
 					continue;
 				}
 				writer.writeStartElement("entry");
Index: TXM/trunk/org.txm.core/res/org/txm/js/collapsible.js
===================================================================
--- TXM/trunk/org.txm.core/res/org/txm/js/collapsible.js	(revision 3403)
+++ TXM/trunk/org.txm.core/res/org/txm/js/collapsible.js	(revision 3404)
@@ -10,6 +10,6 @@
 	node.textContent="➕"
     } else {
       content.style.display = "block";
-node.textContent="➖"
+      node.textContent="➖"
     }
 }
\ No newline at end of file
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenBrowser.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenBrowser.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenBrowser.java	(revision 3404)
@@ -48,14 +48,11 @@
 import org.txm.rcp.editors.TXMBrowserEditor;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.swt.dialog.LastOpened;
-import org.txm.rcp.utils.URLUtils;
 import org.txm.utils.logger.Log;
 
-// TODO: Auto-generated Javadoc
 /**
  * Open the internal browser of TXM with a file @ author mdecorde.
  */
-@SuppressWarnings("restriction")
 public class OpenBrowser extends AbstractHandler {
 	
 	/** The Constant ID. */
@@ -186,7 +183,7 @@
 			} else {
 				url = new URL(filepath);
 				
-				url = URLUtils.encodeURL(url);
+				//url = URLUtils.encodeURL(url);
 			}
 			
 			
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 3404)
@@ -312,7 +312,7 @@
 		}
 		else {
 			return (NLS.bind(TXMUIMessages.prettyVersionP0P1,
-					version.getMajor() + "." + version.getMinor() + "." + version.getMicro(), "update " + txm_date + " - installer " + build_date));
+					version.getMajor() + "." + version.getMinor() + "." + version.getMicro(), "install " + build_date + " - update " + txm_date));
 		}
 	}
 	
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/ImportWizard.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/ImportWizard.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/ImportWizard.java	(revision 3404)
@@ -6,10 +6,7 @@
 import java.util.Locale;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.osgi.util.NLS;
@@ -18,17 +15,12 @@
 import org.txm.Toolbox;
 import org.txm.core.engines.Engine;
 import org.txm.core.engines.EngineType;
-import org.txm.core.preferences.TBXPreferences;
-import org.txm.core.results.TXMResult;
 import org.txm.objects.BaseOldParameters;
-import org.txm.objects.EditionDefinition;
 import org.txm.objects.Project;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.utils.LogMonitor;
 import org.txm.utils.io.FileCopy;
 import org.txm.utils.logger.Log;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
 
 public class ImportWizard extends Wizard implements INewWizard {
 	
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/SourceDirectoryPage.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/SourceDirectoryPage.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/SourceDirectoryPage.java	(revision 3404)
@@ -9,18 +9,13 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 import org.txm.Toolbox;
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/utils/URLUtils.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/utils/URLUtils.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/utils/URLUtils.java	(revision 3404)
@@ -3,10 +3,12 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLEncoder;
+
 import org.apache.commons.lang.StringUtils;
 
 public class URLUtils {
 	
+	@SuppressWarnings("deprecation")
 	public static String encodeURL(String url) {
 		StringBuilder buffer = new StringBuilder();
 		int begin = url.indexOf(":/");
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 3404)
@@ -18,7 +18,7 @@
 
 SourceDirectoryPage_1 = Sources
 
-SourceDirectoryPage_10 = Nom du corpus
+SourceDirectoryPage_10 = Identifiant du corpus
 
 SourceDirectoryPage_11 = Le corpus ''{0}'' sera remplacé.
 
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 3404)
@@ -24,7 +24,7 @@
 
 SourceDirectoryPage_0  = Select source directory
 SourceDirectoryPage_1  = Sources
-SourceDirectoryPage_10 = Corpus name
+SourceDirectoryPage_10 = Corpus identifier
 SourceDirectoryPage_11 = The ''{0}'' corpus will be replaced.
 SourceDirectoryPage_12 = The ''{0}'' corpus import will be resumed or restarted.
 SourceDirectoryPage_13 = The ''{0}'' corpus will be created.
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/InfosSection.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/InfosSection.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/InfosSection.java	(revision 3404)
@@ -2,10 +2,7 @@
 
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.events.ExpansionAdapter;
@@ -14,12 +11,9 @@
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.txm.objects.CorpusBuild;
 import org.txm.objects.Project;
 import org.txm.rcp.editors.imports.ImportFormEditor;
 import org.txm.rcp.messages.TXMUIMessages;
-import org.txm.utils.logger.Log;
-import org.w3c.dom.Element;
 
 public class InfosSection extends ImportEditorSection {
 	
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java	(revision 3404)
@@ -275,8 +275,8 @@
 			Class<? extends ImportEditorSection> clazz = ImportModuleCustomization.getAdditionalSection(importName);
 			
 			try {
-				Constructor<? extends ImportEditorSection> c = clazz.getConstructor(FormToolkit.class, ScrolledForm.class, Composite.class, int.class);
-				additionalSection = c.newInstance(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE);
+				Constructor<? extends ImportEditorSection> c = clazz.getConstructor(ImportFormEditor.class, FormToolkit.class, ScrolledForm.class, Composite.class, int.class);
+				additionalSection = c.newInstance(editor, toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE);
 				return additionalSection.getSectionSize();
 			}
 			catch (Exception e) {
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMBrowserEditor.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMBrowserEditor.java	(revision 3403)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMBrowserEditor.java	(revision 3404)
@@ -40,7 +40,6 @@
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.internal.browser.BrowserViewer;
 import org.eclipse.ui.internal.browser.WebBrowserEditor;
-import org.eclipse.ui.part.Page;
 import org.txm.rcp.messages.TXMUIMessages;
 
 /**
@@ -50,16 +49,13 @@
  * 
  * @author mdecorde.
  */
-@SuppressWarnings("restriction")
 public class TXMBrowserEditor extends WebBrowserEditor {
 	
 	/** The Constant ID. */
 	public final static String ID = TXMBrowserEditor.class.getName(); //$NON-NLS-1$
 
-	private ProgressListener progresslistener;
-	
 	/**
-	 * Instantiates a new txm browser.
+	 * Instantiates a new TXM browser.
 	 */
 	public TXMBrowserEditor() {
 		
Index: TXM/trunk/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/dialogs/ExportCorpusDialog.java
===================================================================
--- TXM/trunk/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/dialogs/ExportCorpusDialog.java	(revision 3403)
+++ TXM/trunk/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/dialogs/ExportCorpusDialog.java	(revision 3404)
@@ -148,14 +148,14 @@
 			public void widgetDefaultSelected(SelectionEvent e) {}
 		});
 		
-		new Label(comp, SWT.NONE).setText("Corpus name");
+		new Label(comp, SWT.NONE).setText("Corpus identifier");
 		renameField = new Text(comp, SWT.BORDER);
 		GridData gdata2 = GridDataFactory.fillDefaults().create();
 		gdata2.widthHint = 50;
 		gdata2.horizontalSpan = 2;
 		renameField.setLayoutData(gdata2);
 		renameField.setText(corpus.getProject().getName());
-		renameField.setToolTipText("To rename the corpus");
+		renameField.setToolTipText("Change this identifier to rename the corpus");
 		
 		new Label(comp, SWT.NONE).setText("Corpus version");
 		versionField = new Combo(comp, SWT.SINGLE | SWT.READ_ONLY);
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/URSAnnotationReIndexer.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/URSAnnotationReIndexer.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/URSAnnotationReIndexer.java	(revision 3404)
@@ -8,6 +8,7 @@
 import java.util.Comparator;
 import java.util.List;
 
+import org.eclipse.osgi.util.NLS;
 import org.txm.Toolbox;
 import org.txm.searchengine.cqp.AbstractCqiClient;
 import org.txm.searchengine.cqp.CQPSearchEngine;
@@ -65,11 +66,11 @@
 		for (int i = 0; i < corpusSize; i++) {
 			int idx = text.indexOf(strs[i], isearch);
 			if (idx < 0) {
-				System.out.println("Error: cannot find word='" + strs[i] + "' (word with position in CQP corpus=" + positions[i] + ") in text with current carret=" + isearch + ". Aborting.");
+				Log.finer("Error: cannot find word='" + strs[i] + "' (word with position in CQP corpus=" + positions[i] + ") in text with current carret=" + isearch + ". Aborting.");
 				
-				System.out.println("Current text slice is (-20, +20 characters): ");
-				System.out.println("* before: " + text.substring(Math.max(0, isearch - 20), Math.min(isearch + 20, isearch)));
-				System.out.println("* after: " + text.substring(isearch, Math.min(isearch + 20, text.length() - 1)));
+				Log.finer("Current text slice is (-20, +20 characters): ");
+				Log.finer("* before: " + text.substring(Math.max(0, isearch - 20), Math.min(isearch + 20, isearch)));
+				Log.finer("* after: " + text.substring(isearch, Math.min(isearch + 20, text.length() - 1)));
 				
 				return false;
 			}
@@ -77,12 +78,12 @@
 			isearch = idx + strs[i].length();
 		}
 		
-		if (debug) System.out.println(Arrays.toString(positions));
-		if (debug) System.out.println(Arrays.toString(positionsCorrespondances));
+		if (debug) Log.finer(Arrays.toString(positions));
+		if (debug) Log.finer(Arrays.toString(positionsCorrespondances));
 		
 		isearch = 0;
 		ArrayList<Unite> unites = analecCorpus.getToutesUnites();
-		if (debug) System.out.println("units not-sorted: ");
+		if (debug) Log.finer("units not-sorted: ");
 		if (debug) printUnits(unites);
 		Collections.sort(unites, new Comparator<Unite>() {
 			
@@ -93,12 +94,12 @@
 				else return d;
 			}
 		});
-		if (debug) System.out.println("units sorted: ");
+		if (debug) Log.finer("units sorted: ");
 		if (debug) printUnits(unites);
 		
 		int iunite = 0;
 		for (Unite unite : unites) {
-			if (debug) System.out.println("Updating ");
+			if (debug) Log.finer("Updating ");
 			if (debug) printUnite(unite);
 			int start = unite.getDeb();
 			int end = unite.getFin();
@@ -108,7 +109,7 @@
 			int i = 0; // or not : unites are sorted by start position, we don't need to browse all words \o/
 			for (; i < positionsCorrespondances.length; i++) {
 				if (startFound && endFound) break; // no need to go further
-				if (debug) System.out.println("i=" + i + " positionsCorrespondances[i]=" + positionsCorrespondances[i]);
+				if (debug) Log.finer("i=" + i + " positionsCorrespondances[i]=" + positionsCorrespondances[i]);
 				if (!startFound && start < positionsCorrespondances[i]) {
 					unite.setDeb(i - 1);
 					startFound = true;
@@ -130,9 +131,9 @@
 			
 			if (!(startFound && endFound)) {
 				String s = "Error: cannot find words positions for unite of type=" + unite.getType() + " and unit carret positions=[" + start + ", " + end + "]. Aborting";
-				System.out.println(s);
+				Log.finer(s);
 				
-				System.out.println("5 last found units are: ");
+				Log.finer("5 last found units are: ");
 				for (int j = 4; j >= 0; j--) {
 					if (iunite - j >= 0) {
 						printUnite(unites.get(iunite - j));
@@ -143,7 +144,7 @@
 			// if (i > 0) i--; // restart at previous word
 			iunite++;
 		}
-		if (debug) System.out.println("units updated: ");
+		if (debug) Log.finer("units updated: ");
 		if (debug) printUnits(unites);
 		return true;
 	}
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/DOMURSAnnotationsImporter.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/DOMURSAnnotationsImporter.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/DOMURSAnnotationsImporter.java	(revision 3404)
@@ -7,10 +7,12 @@
 import javax.xml.stream.XMLInputFactory;
 
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.osgi.util.NLS;
 import org.txm.importer.PersonalNamespaceContext;
 import org.txm.searchengine.cqp.AbstractCqiClient;
 import org.txm.searchengine.cqp.CQPSearchEngine;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 import org.txm.utils.xml.DomUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -30,6 +32,7 @@
 	protected static PersonalNamespaceContext Nscontext = new PersonalNamespaceContext();
 
 	public DOMURSAnnotationsImporter(IProgressMonitor monitor, File outputDirectory, MainCorpus mainCorpus, Corpus analecCorpus, Vue analecVue) {
+		
 		this.annotationsDirectory = outputDirectory;
 		this.mainCorpus = mainCorpus;
 		this.analecCorpus = analecCorpus;
@@ -38,6 +41,7 @@
 	}
 
 	public boolean process() throws Exception {
+		
 		if (!annotationsDirectory.exists()) return false;
 		if (!annotationsDirectory.isDirectory()) return false;
 
@@ -48,21 +52,17 @@
 			}
 		});
 
-		if (ursFiles == null) {
-			System.out.println("No XML files found in "+annotationsDirectory);
+		if (ursFiles == null || ursFiles.length == 0) {
+			Log.warning("No XML files found in "+annotationsDirectory);
 			return false;
 		}
-		if (ursFiles.length == 0) {
-			System.out.println("No XML files found in "+annotationsDirectory);
-			return false;
-		}
 
 		factory = XMLInputFactory.newInstance();
 
 		for (File xmlAnalec : ursFiles) {
+			
 			String textid = xmlAnalec.getName().substring(0, xmlAnalec.getName().length() - 8);
-			System.out.println("Processing text: "+textid);
-
+			Log.info("Processing text: "+textid);
 			processText(textid, xmlAnalec);
 		}
 
@@ -157,7 +157,7 @@
 			String id = fsElement.getAttribute("id");
 
 			if (elementProperties.containsKey(id)) {
-				System.out.println("Warning: duplicated fsElement id: "+id);
+				Log.warning(NLS.bind("Warning: duplicated fsElement id: {0}.", id));
 			} else {
 				HashMap<String, String> properties = new HashMap<String, String>();
 				elementProperties.put(id, properties);
@@ -166,7 +166,7 @@
 					Element fElement = (Element)fElements.item(iChild2);
 					String name = fElement.getAttribute("name");
 					if (properties.containsKey(name)) {
-						System.out.println("Warning: duplicated fElement name: "+name+" in "+id+" fsElement.");
+						Log.warning(NLS.bind("Warning: duplicated fElement name: {0} in {1} fsElement.", name, id));
 					} else {
 						properties.put(name, fElement.getTextContent().trim());
 					}
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/URSAnnotationsImporter.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/URSAnnotationsImporter.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/URSAnnotationsImporter.java	(revision 3404)
@@ -16,6 +16,7 @@
 import javax.xml.stream.XMLStreamReader;
 
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.osgi.util.NLS;
 import org.txm.annotation.urs.URSCorpora;
 import org.txm.importer.PersonalNamespaceContext;
 import org.txm.searchengine.cqp.AbstractCqiClient;
@@ -24,6 +25,7 @@
 import org.txm.searchengine.cqp.corpus.Subcorpus;
 import org.txm.searchengine.cqp.corpus.query.CQLQuery;
 import org.txm.utils.ConsoleProgressBar;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.donnees.Structure;
@@ -61,21 +63,22 @@
 	}
 	
 	public boolean process() throws Exception {
+		
 		if (!annotationsDirectory.exists()) {
-			System.out.println("Error: annotationsDirectory does not exist: " + annotationsDirectory.getAbsolutePath());
+			Log.warning(NLS.bind("Error: annotationsDirectory does not exist: {0}.", annotationsDirectory.getAbsolutePath()));
 			return false;
 		}
 		if (!annotationsDirectory.isDirectory()) {
-			System.out.println("Error: annotationsDirectory is not a directory: " + annotationsDirectory.getAbsolutePath());
+			Log.warning(NLS.bind("Error: annotationsDirectory is not a directory: {0}.", annotationsDirectory.getAbsolutePath()));
 			return false;
 		}
 		if (!aamFile.exists()) {
-			System.out.println("Warning: aamFile does not exist: " + aamFile.getAbsolutePath());
+			Log.warning(NLS.bind("Warning: aamFile does not exist: {0}.", aamFile.getAbsolutePath()));
 		}
 		else {
 			
 			if (!FichiersGlozz.importerModeleGlozz(analecCorpus, aamFile)) {
-				System.out.println("Error while importing Glozz model: " + aamFile);
+				Log.warning(NLS.bind("Error while importing Glozz model: {0}", aamFile));
 				return false;
 			}
 		}
@@ -87,14 +90,10 @@
 			}
 		});
 		
-		if (ursFiles == null) {
-			System.out.println("No XML files found in " + annotationsDirectory);
+		if (ursFiles == null || ursFiles.length == 0) {
+			Log.warning(NLS.bind("No XML files found in {0}.", annotationsDirectory));
 			return false;
 		}
-		if (ursFiles.length == 0) {
-			System.out.println("No XML files found in " + annotationsDirectory);
-			return false;
-		}
 		Arrays.sort(ursFiles);
 		
 		factory = XMLInputFactory.newInstance();
@@ -102,31 +101,31 @@
 		
 		List<Integer> all_result_summary = Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0);
 		
-		if (monitor != null) monitor.subTask("Processing " + ursFiles.length + " texts...");
+		if (monitor != null) monitor.subTask(NLS.bind("Processing {0} text(s)...", ursFiles.length));
 		for (File xmlTXMFile : ursFiles) {
 			String textid = xmlTXMFile.getName().substring(0, xmlTXMFile.getName().length() - 8);
-			System.out.println("Processing text: " + textid);
+			Log.warning(NLS.bind("Processing text: {0}.", textid));
 			if (cqpTextIds.contains(textid)) {
-				if (monitor != null) monitor.subTask("Processing " + textid + " text...");
+				if (monitor != null) monitor.subTask(NLS.bind("Processing the {0} text...", textid));
 				// N unit, N unit error, N unit no match error, N unit too much match error, N Relation, N Relation error, N Schema, N Schema error
 				List<Integer> result_summary = processText(textid, xmlTXMFile);
 				
-				System.out.println(textid + " import report: ");
-				System.out.println(" N Units added: " + result_summary.get(0));
-				System.out.println(" N Units error: " + result_summary.get(1));
-				System.out.println(" N Units no match error: " + result_summary.get(2));
-				System.out.println(" N Units too much match error: " + result_summary.get(3));
-				System.out.println(" N Relations added: " + result_summary.get(4));
-				System.out.println(" N Relations error: " + result_summary.get(5));
-				System.out.println(" N Schemas added: " + result_summary.get(6));
-				System.out.println(" N Schemas error: " + result_summary.get(7));
+				Log.info(textid + " import report: ");
+				Log.info(" N Units added: " + result_summary.get(0));
+				Log.info(" N Units error: " + result_summary.get(1));
+				Log.info(" N Units no match error: " + result_summary.get(2));
+				Log.info(" N Units too much match error: " + result_summary.get(3));
+				Log.info(" N Relations added: " + result_summary.get(4));
+				Log.info(" N Relations error: " + result_summary.get(5));
+				Log.info(" N Schemas added: " + result_summary.get(6));
+				Log.info(" N Schemas error: " + result_summary.get(7));
 				
-				for (int i = 0; i < all_result_summary.size(); i++)
+				for (int i = 0; i < all_result_summary.size(); i++) {
 					all_result_summary.set(i, all_result_summary.get(i) + result_summary.get(i));
-				
+				}
 			}
 			else {
-				System.out.println("Warning: cannot found text with ID=" + textid + " in current CQP corpus.");
+				Log.warning(NLS.bind("Warning: cannot found text with ID={0} in current CQP corpus.", textid));
 			}
 			
 			if (monitor != null && monitor.isCanceled()) {
@@ -139,15 +138,15 @@
 			vue.retablirVueParDefaut();
 		}
 		
-		System.out.println("Final import report: ");
-		System.out.println(" N Units added: " + all_result_summary.get(0));
-		System.out.println(" N Units error: " + all_result_summary.get(1));
-		System.out.println(" N Units no match error: " + all_result_summary.get(2));
-		System.out.println(" N Units too much match error: " + all_result_summary.get(3));
-		System.out.println(" N Relations added: " + all_result_summary.get(4));
-		System.out.println(" N Relations error: " + all_result_summary.get(5));
-		System.out.println(" N Schemas added: " + all_result_summary.get(6));
-		System.out.println(" N Schemas error: " + all_result_summary.get(7));
+		Log.info("Final import report: ");
+		Log.info(" N Units added: " + all_result_summary.get(0));
+		Log.info(" N Units error: " + all_result_summary.get(1));
+		Log.info(" N Units no match error: " + all_result_summary.get(2));
+		Log.info(" N Units too much match error: " + all_result_summary.get(3));
+		Log.info(" N Relations added: " + all_result_summary.get(4));
+		Log.info(" N Relations error: " + all_result_summary.get(5));
+		Log.info(" N Schemas added: " + all_result_summary.get(6));
+		Log.info(" N Schemas error: " + all_result_summary.get(7));
 		
 		return true;
 	}
@@ -237,22 +236,22 @@
 				if (start < 0) {
 					nUnitsError++;
 					if (start == -1) {
-						System.out.println("WARNING: no position found word id = " + deb);
+						Log.warning(NLS.bind("WARNING: no position found word id = {0}.", deb));
 						nUnitsNoMatchError++;
 					}
 					else {
-						System.out.println("WARNING: too many positions found for word id = " + deb);
+						Log.warning(NLS.bind("WARNING: too many positions found for word id = {0}.", deb));
 						nUnitsTooMuchMatchError++;
 					}
 				}
 				else if (end < 0) {
 					nUnitsError++;
 					if (end == -1) {
-						System.out.println("WARNING: no position found word id = " + fin);
+						Log.warning(NLS.bind("WARNING: no position found word id = {0}.", fin));
 						nUnitsNoMatchError++;
 					}
 					else {
-						System.out.println("WARNING: too many positions found for word id = " + fin);
+						Log.warning(NLS.bind("WARNING: too many positions found for word id = {0}.", fin));
 						nUnitsTooMuchMatchError++;
 					}
 				}
@@ -273,7 +272,7 @@
 				}
 			}
 			else {
-				System.out.println("Warning no properties found for element id=" + id + " and ana=" + ana);
+				Log.warning(NLS.bind("Warning no properties found for element id={0} and ana={1}.", id, ana));
 			}
 		}
 		cpb.done();
@@ -312,7 +311,7 @@
 						nRelationsAdded++;
 					}
 					else {
-						System.out.println("ERROR: relation element not found " + Arrays.toString(wordsref));
+						Log.warning(NLS.bind("ERROR: relation element not found {0}.", Arrays.toString(wordsref)));
 						nRelationsError++;
 					}
 				}
@@ -321,7 +320,7 @@
 				}
 			}
 			else {
-				System.out.println("Warning no properties found for element id=" + id);
+				Log.warning(NLS.bind("Warning no properties found for element id={0}", id));
 			}
 		}
 		cpb.done();
@@ -347,7 +346,7 @@
 							schema.ajouter(unite);
 						}
 						else {
-							System.out.println("Warning: missing unit id: " + unitid);
+							Log.warning(NLS.bind("Warning: missing unit id: {0}.", unitid));
 							nSchemaError++;
 						}
 					}
@@ -363,11 +362,11 @@
 					nSchemaAdded++;
 				}
 				catch (Exception e) {
-					System.out.println("Error while creating schema with id=" + id);
+					Log.warning(NLS.bind("Error while creating schema with id={0}", id));
 				}
 			}
 			else {
-				System.out.println("Warning no properties found for element id=" + id);
+				Log.warning(NLS.bind("Warning no properties found for element id={0}.", id));
 			}
 		}
 		cpb.done();
@@ -392,7 +391,7 @@
 		int processMode = 0; // 0 nothing, 1 elements 2 properties
 		
 		if (!goToStandOff(parser)) {
-			System.out.println("Error: cannot find the 'standOff' element in " + xmlTXMFile);
+			Log.warning(NLS.bind("Error: cannot find the 'standOff' element in {0}.", xmlTXMFile));
 			return false;
 		}
 		String localname = null;
@@ -408,7 +407,7 @@
 							processMode = 1;
 						}
 						else {
-							System.out.println("Warning found " + localname + " without 'type' and 'n' attribute");
+							Log.warning(NLS.bind("Warning found {0} without 'type' and 'n' attribute", localname));
 							processMode = 0;
 						}
 					}
@@ -442,7 +441,7 @@
 					else if (processMode == 2) {
 						if (localname.equals("fs")) {
 							currentAna = parser.getAttributeValue(null, "id");
-							if (elementProperties.get(currentAna) != null) System.out.println("WARNING: duplicated element properties: " + currentAna);
+							if (elementProperties.get(currentAna) != null) Log.warning(NLS.bind("WARNING: duplicated element properties: {0}.", currentAna));
 							elementProperties.put(currentAna, new HashMap<String, String>());
 						}
 						else if (localname.equals("f")) {
@@ -517,7 +516,7 @@
 	private void registerUnite(String id, String ana, String type, String from, String to) {
 		String[] data = { ana.substring(1), type, from.substring(5), to.substring(5) };
 		if (unites.containsKey(id)) {
-			System.out.println("Warning: duplicated Unite id: " + id);
+			Log.warning(NLS.bind("Warning: duplicated Unite id: {0}.", id));
 		}
 		else {
 			unites.put(id, data);
@@ -529,7 +528,7 @@
 	private void registerRelation(String id, String ana, String type, String target) {
 		String[] data = { ana.substring(1), type, target };
 		if (relations.containsKey(id)) {
-			System.out.println("Warning: duplicated Relation id: " + id);
+			Log.warning(NLS.bind("Warning: duplicated Relation id: {0}.", id));
 		}
 		else {
 			relations.put(id, data);
@@ -542,7 +541,7 @@
 		String[] data = { ana.substring(1), type, target };
 		// System.out.println("R schema: "+id+" : "+Arrays.toString(data));
 		if (schemas.containsKey(id)) {
-			System.out.println("Warning: duplicated Schema id: " + id);
+			Log.warning(NLS.bind("Warning: duplicated Schema id: {0}.", id));
 		}
 		else {
 			schemas.put(id, data);
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveCorpus.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveCorpus.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveCorpus.java	(revision 3404)
@@ -16,6 +16,7 @@
 import org.txm.rcp.TXMWindows;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersJava;
@@ -35,7 +36,7 @@
 
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.SaveCorpus_0, first));
+			Log.warning(NLS.bind(Messages.SaveCorpus_0, first));
 			return null;
 		}
 		final MainCorpus mainCorpus = ((org.txm.searchengine.cqp.corpus.CQPCorpus)first).getMainCorpus();
@@ -48,9 +49,9 @@
 		File binaryCorpusDirectory = mainCorpus.getProjectDirectory();
 		File fichierCorpus = new File(binaryCorpusDirectory, "/analec/"+mainCorpus.getID()+".ec"); //$NON-NLS-1$ //$NON-NLS-2$
 		Corpus corpus = URSCorpora.getCorpus(mainCorpus);
-		System.out.println(NLS.bind(Messages.SaveCorpus_3, fichierCorpus));
+		Log.info(NLS.bind(Messages.SaveCorpus_3, fichierCorpus));
 		if (!URSCorpora.saveCorpus(mainCorpus)) {
-			System.out.println(Messages.SaveCorpus_5);
+			Log.warning(Messages.SaveCorpus_5);
 			return false;
 		}
 
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadVue.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadVue.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadVue.java	(revision 3404)
@@ -14,6 +14,7 @@
 import org.txm.annotation.urs.Messages;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersJava;
@@ -34,7 +35,7 @@
 		
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.LoadVue_0, first));
+			Log.warning(NLS.bind(Messages.LoadVue_0, first));
 			return null;
 		}
 		
@@ -45,14 +46,14 @@
 	}
 	
 	public boolean load(MainCorpus mainCorpus) {
-		System.out.println(NLS.bind(Messages.LoadVue_1, mainCorpus.getName()));
+		Log.info(NLS.bind(Messages.LoadVue_1, mainCorpus.getName()));
 		Vue vue = URSCorpora.getVue(mainCorpus);
 		if (!FichiersJava.ouvrirVue(vue)) {
-			System.out.println(Messages.LoadVue_2);
+			Log.warning(Messages.LoadVue_2);
 			return false;
 		}
 		
-		System.out.println(Messages.LoadVue_3);
+		Log.info(Messages.LoadVue_3);
 		return true;
 	}
 }
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadStructure.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadStructure.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadStructure.java	(revision 3404)
@@ -11,6 +11,7 @@
 import org.txm.annotation.urs.Messages;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.donnees.VisuStructure;
@@ -31,7 +32,7 @@
 		
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.LoadStructure_0, first));
+			Log.warning(NLS.bind(Messages.LoadStructure_0, first));
 			return null;
 		}
 		
@@ -47,12 +48,12 @@
 	}
 	
 	public static boolean load(Corpus corpus) {
-		System.out.println(NLS.bind(Messages.LoadStructure_1, corpus));
+		Log.info(NLS.bind(Messages.LoadStructure_1, corpus));
 		if (!FichiersJava.ouvrirStructure(corpus)) {
-			System.out.println(Messages.LoadStructure_2);
+			Log.warning(Messages.LoadStructure_2);
 			return false;
 		}
-		System.out.println(Messages.LoadStructure_3);
+		Log.info(Messages.LoadStructure_3);
 		return true;
 	}
 }
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/OpenDemocratTools.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/OpenDemocratTools.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/OpenDemocratTools.java	(revision 3404)
@@ -8,6 +8,7 @@
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
@@ -59,7 +60,7 @@
 			}
 			return false;
 		} catch (PartInitException e1) {
-			System.out.println("Part initialisation error: "+e1.getLocalizedMessage());
+			Log.warning(NLS.bind("Part initialisation error: {0}.", e1.getLocalizedMessage()));
 			Log.printStackTrace(e1);
 		}
 		return false;
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/RestoreAnnotations.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/RestoreAnnotations.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/RestoreAnnotations.java	(revision 3404)
@@ -39,7 +39,7 @@
 
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.SaveCorpus_0, first));
+			Log.warning(NLS.bind(Messages.SaveCorpus_0, first));
 			return null;
 		}
 		final MainCorpus mainCorpus = ((org.txm.searchengine.cqp.corpus.CQPCorpus)first).getMainCorpus();
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveStructureAsGlozzModel.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveStructureAsGlozzModel.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveStructureAsGlozzModel.java	(revision 3404)
@@ -8,6 +8,7 @@
 import org.txm.annotation.urs.Messages;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersGlozz;
@@ -22,7 +23,7 @@
 
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.SaveStructureAsGlozzModel_0, first));
+			Log.warning(NLS.bind(Messages.SaveStructureAsGlozzModel_0, first));
 			return null;
 		}
 		
@@ -35,14 +36,14 @@
 //			return null;
 //		}
 		
-		System.out.println(NLS.bind(Messages.SaveStructureAsGlozzModel_1, corpus));
+		Log.info(NLS.bind(Messages.SaveStructureAsGlozzModel_1, corpus));
 
 		if (!FichiersGlozz.exporterModeleGlozz(corpus.getStructure())) {
-			System.out.println(Messages.SaveStructureAsGlozzModel_2);
+			Log.warning(Messages.SaveStructureAsGlozzModel_2);
 			return null;
 		}
 
-		System.out.println(Messages.SaveStructureAsGlozzModel_3);
+		Log.info(Messages.SaveStructureAsGlozzModel_3);
 		return null;
 	}
 }
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadStructureFromGlozz.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadStructureFromGlozz.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/LoadStructureFromGlozz.java	(revision 3404)
@@ -12,6 +12,7 @@
 import org.txm.rcp.swt.widget.parameters.ParametersDialog;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersGlozz;
@@ -29,7 +30,7 @@
 		
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.LoadStructureFromGlozz_0, first));
+			Log.warning(NLS.bind(Messages.LoadStructureFromGlozz_0, first));
 			return null;
 		}
 		
@@ -43,7 +44,7 @@
 
 		if (!ParametersDialog.open(this)) return null;
 
-		System.out.println(NLS.bind(Messages.LoadStructureFromGlozz_1, mainCorpus));
+		Log.info(NLS.bind(Messages.LoadStructureFromGlozz_1, mainCorpus));
 		
 		// END OF PARAMETERS
 		load(aamfile, corpus);
@@ -52,17 +53,17 @@
 	
 	public static boolean load(File aamfile, Corpus corpus) {
 		if (!(aamfile.exists() && aamfile.exists() && aamfile.exists())) {
-			System.out.println(Messages.LoadStructureFromGlozz_2);
+			Log.warning(Messages.LoadStructureFromGlozz_2);
 			return false;
 		}
 		
 		File fichierModele = aamfile;
 		if (!FichiersGlozz.importerModeleGlozz(corpus, fichierModele)) {
-			System.out.println(Messages.LoadStructureFromGlozz_3);
+			Log.warning(Messages.LoadStructureFromGlozz_3);
 			return false;
 		}
 		
-		System.out.println(Messages.LoadStructureFromGlozz_4);
+		Log.info(Messages.LoadStructureFromGlozz_4);
 		return true;
 	}
 }
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveVue.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveVue.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveVue.java	(revision 3404)
@@ -10,6 +10,7 @@
 import org.txm.annotation.urs.Messages;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersJava;
@@ -29,7 +30,7 @@
 
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.SaveVue_0, first));
+			Log.warning(NLS.bind(Messages.SaveVue_0, first));
 			return null;
 		}
 		
@@ -38,10 +39,10 @@
 
 		File binaryCorpusDirectory = mainCorpus.getProjectDirectory();
 		File fichierVue = new File(binaryCorpusDirectory, "/analec/"+mainCorpus.getID()+".ecv"); //$NON-NLS-1$ //$NON-NLS-2$
-		System.out.println(NLS.bind(Messages.SaveVue_3, corpus, fichierVue));
+		Log.info(NLS.bind(Messages.SaveVue_3, corpus, fichierVue));
 
 		if (!FichiersJava.enregistrerCorpus(corpus, fichierVue)) {
-			System.out.println(Messages.SaveVue_5);
+			Log.warning(Messages.SaveVue_5);
 			return null;
 		}
 
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveStructure.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveStructure.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/SaveStructure.java	(revision 3404)
@@ -10,6 +10,7 @@
 import org.txm.annotation.urs.Messages;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersJava;
@@ -17,7 +18,7 @@
 public class SaveStructure  extends AbstractHandler {
 
 	/** The ID. */
-	public static String ID = "org.txm.annotation.urs.commands.LoadAnnotationStructure"; //$NON-NLS-1$
+	public static String ID = SaveStructure.class.getSimpleName();
 	/** The selection. */
 
 	/* (non-Javadoc)
@@ -28,7 +29,7 @@
 
 		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.CQPCorpus)) {
-			System.out.println(NLS.bind(Messages.SaveStructure_0, first));
+			Log.warning(NLS.bind(Messages.SaveStructure_0, first));
 			return null;
 		}
 		
@@ -41,10 +42,10 @@
 
 		File binaryCorpusDirectory = mainCorpus.getProjectDirectory();
 		File fichierStructure = new File(binaryCorpusDirectory, "/analec/"+mainCorpus.getID()+".ecs"); //$NON-NLS-1$ //$NON-NLS-2$
-		System.out.println(NLS.bind(Messages.SaveStructure_3, corpus, fichierStructure));
+		Log.info(NLS.bind(Messages.SaveStructure_3, corpus, fichierStructure));
 
 		if (!FichiersJava.enregistrerStructure(corpus, fichierStructure)) {
-			System.out.println(Messages.SaveStructure_5);
+			Log.warning(Messages.SaveStructure_5);
 			return false;
 		}
 
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/UnitConcordanceToolbar.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/UnitConcordanceToolbar.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/UnitConcordanceToolbar.java	(revision 3404)
@@ -594,7 +594,7 @@
 			
 		}
 		else {
-			System.out.println("Creation aborted."); //$NON-NLS-1$
+			Log.info("Creation aborted.");
 		}
 	}
 	
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/UnitToolbar.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/UnitToolbar.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/UnitToolbar.java	(revision 3404)
@@ -141,7 +141,7 @@
 			maxCorpusPosition = maincorpus.getSize();
 		}
 		catch (Exception e) {
-			System.out.println(NLS.bind(Messages.UnitToolbar_3, maincorpus, e.getLocalizedMessage()));
+			Log.warning(NLS.bind(Messages.UnitToolbar_3, maincorpus, e.getLocalizedMessage()));
 			Log.printStackTrace(e);
 		}
 		analecCorpus.addEventListener(this);
@@ -320,7 +320,7 @@
 			
 			@Override
 			public void mouseDoubleClick(MouseEvent e) {
-				if (debug) System.out.println("DOUBLE CLICK"); //$NON-NLS-1$
+				if (debug) Log.finer("DOUBLE CLICK"); //$NON-NLS-1$
 				dblClick = true;
 				
 				EditionPanel panel = editor.getEditionPanel(0);
@@ -344,7 +344,7 @@
 			
 			@Override
 			public void mouseDown(MouseEvent e) {
-				if (debug) System.out.println("MOUSE DOWN"); //$NON-NLS-1$
+				if (debug) Log.finer("MOUSE DOWN"); //$NON-NLS-1$
 				dblClick = false;
 				t = e.time;
 				x = e.x;
@@ -357,7 +357,7 @@
 					dblClick = false;
 					return; // stop right now ! :-o
 				}
-				if (debug) System.out.println("MOUSE UP"); //$NON-NLS-1$
+				if (debug) Log.finer("MOUSE UP"); //$NON-NLS-1$
 				EditionPanel panel = editor.getEditionPanel(0);
 				if (panel == null) return;
 				
@@ -374,7 +374,7 @@
 				// filter click that are not a left simple click (no drag)
 				// System.out.println("click count="+e.count+" button="+e.button+" time="+e.time+" diff="+(e.time-t)+" dist="+(Math.abs(e.x - x) + Math.abs(e.y - y)));
 				if (e.count > 1) {
-					if (debug) System.out.println(" DOUBLE CLICK"); //$NON-NLS-1$
+					if (debug) Log.finer(" DOUBLE CLICK"); //$NON-NLS-1$
 					// System.out.println("not a simple click");
 					return;
 				}
@@ -388,7 +388,7 @@
 					String[] ids = panel.getWordSelection(); // may be null
 					
 					if (fixingAnnotationLimits == 3) { // fixing limit with a mouse drag an drop
-						if (debug) System.out.println(" EDITING ANNOTATION POSITION mode=" + fixingAnnotationLimits); //$NON-NLS-1$
+						if (debug) Log.finer(" EDITING ANNOTATION POSITION mode=" + fixingAnnotationLimits); //$NON-NLS-1$
 						onFixingAnnotationLimits(ids);
 						return;
 					}
@@ -402,12 +402,12 @@
 				}
 				
 				if (e.button != 1) {
-					if (debug) System.out.println(" NO LEFT"); //$NON-NLS-1$
+					if (debug) Log.finer(" NO LEFT"); //$NON-NLS-1$
 					// System.out.println("not a left click");
 					return;
 				}
 				if ((e.time - t) > 200) {
-					if (debug) System.out.println(" LONG"); //$NON-NLS-1$
+					if (debug) Log.finer(" LONG"); //$NON-NLS-1$
 					// System.out.println("not a short click");
 					return;
 				}
@@ -415,13 +415,13 @@
 				String[] ids = panel.getWordSelection(); // may be null
 				
 				if (fixingAnnotationLimits > 0) {
-					if (debug) System.out.println(" EDITING ANNOTATION POSITION mode=" + fixingAnnotationLimits); //$NON-NLS-1$
+					if (debug) Log.finer(" EDITING ANNOTATION POSITION mode=" + fixingAnnotationLimits); //$NON-NLS-1$
 					onFixingAnnotationLimits(ids);
 					return;
 				}
 				
 				if (ids == null) { // clear selection
-					if (debug) System.out.println(" NO WORD SELECTION"); //$NON-NLS-1$
+					if (debug) Log.finer(" NO WORD SELECTION"); //$NON-NLS-1$
 					navigationField.setSelectionIndex(0); // clear selection
 					
 					return;
@@ -430,7 +430,7 @@
 				org.txm.searchengine.cqp.corpus.CQPCorpus c = UnitToolbar.this.editor.getCorpus();
 				
 				try {
-					if (debug) System.out.println(" HIGHLIGHTING ANNOT IF ANY AT " + ids[0]); //$NON-NLS-1$
+					if (debug) Log.finer(" HIGHLIGHTING ANNOT IF ANY AT " + ids[0]); //$NON-NLS-1$
 					if (tryHighlightingUnitsWord(ids[0], c)) {
 						editor.updateWordStyles();
 					}
@@ -474,7 +474,7 @@
 	protected void onFixingAnnotationLimits(String[] ids) {
 		
 		if (ids == null || ids.length == 0) {
-			System.out.println(Messages.UnitToolbar_27);
+			Log.info(Messages.UnitToolbar_27);
 			return;
 		}
 		
@@ -487,7 +487,7 @@
 				uniteFixed = updateUniteLimits(unite, ids, fixingAnnotationLimits);
 			}
 			catch (CqiClientException e1) {
-				System.out.println(NLS.bind(Messages.UnitToolbar_28, ids[0]));
+				Log.warning(NLS.bind(Messages.UnitToolbar_28, ids[0]));
 				Log.printStackTrace(e1);
 			}
 			
@@ -747,7 +747,7 @@
 		// System.out.println("HU: start="+start+" end="+end+" -> "+(end-start+1));
 		int len = end - start + 1;
 		if (len < 0) {
-			System.out.println("Error: can not highlight unit=" + unite + ": start > end."); //$NON-NLS-1$ //$NON-NLS-2$
+			Log.warning("Error: can not highlight unit=" + unite + ": start > end."); //$NON-NLS-1$ //$NON-NLS-2$
 			return false;
 		}
 		int positions[] = new int[len]; // build the positions array for CQP
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/SchemaToolbar.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/SchemaToolbar.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/SchemaToolbar.java	(revision 3404)
@@ -6,6 +6,7 @@
 import java.util.List;
 
 import org.eclipse.jface.util.Util;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.ProgressEvent;
 import org.eclipse.swt.browser.ProgressListener;
@@ -260,7 +261,7 @@
 
 			@Override
 			public void mouseDoubleClick(MouseEvent e) {
-				if (debug) System.out.println("DOUBLE CLICK"); //$NON-NLS-1$
+				if (debug) Log.finer("DOUBLE CLICK"); //$NON-NLS-1$
 				dblClick= true;
 
 				EditionPanel panel = editor.getEditionPanel(0);
@@ -283,7 +284,7 @@
 
 			@Override
 			public void mouseDown(MouseEvent e) {
-				if (debug) System.out.println("MOUSE DOWN"); //$NON-NLS-1$
+				if (debug) Log.finer("MOUSE DOWN"); //$NON-NLS-1$
 				dblClick = false;
 				t = e.time;
 				x = e.x;
@@ -296,7 +297,7 @@
 					dblClick = false;
 					return; // stop right now ! :-o
 				}
-				if (debug) System.out.println("MOUSE UP"); //$NON-NLS-1$
+				if (debug) Log.finer("MOUSE UP"); //$NON-NLS-1$
 				EditionPanel panel = editor.getEditionPanel(0);
 				if (panel == null) return;
 
@@ -310,13 +311,13 @@
 				// filter click that are not a left simple click (no drag)
 				//System.out.println("click count="+e.count+" button="+e.button+" time="+e.time+" diff="+(e.time-t)+" dist="+(Math.abs(e.x - x) + Math.abs(e.y - y)));
 				if (e.count > 1) {
-					if (debug) System.out.println(" DOUBLE CLICK"); //$NON-NLS-1$
+					if (debug) Log.finer(" DOUBLE CLICK"); //$NON-NLS-1$
 					//System.out.println("not a simple click");
 					return;
 				}
 
 				if (Math.abs(e.x - x) + Math.abs(e.y - y) > 7) {
-					if (debug) System.out.println(" DRAG"); //$NON-NLS-1$
+					if (debug) Log.finer(" DRAG"); //$NON-NLS-1$
 
 					String[] ids = panel.getWordSelection(); // may be null
 					if (ids != null && ids.length > 0 && typeCombo.getItemCount() > 1  && typeCombo.getEnabled() ) {
@@ -337,12 +338,12 @@
 					return;
 				}
 				if (e.button != 1) {
-					if (debug) System.out.println(" NO LEFT"); //$NON-NLS-1$
+					if (debug) Log.finer(" NO LEFT"); //$NON-NLS-1$
 					//System.out.println("not a left click");
 					return;
 				}
 				if ((e.time-t) > 150) {
-					if (debug) System.out.println(" LONG"); //$NON-NLS-1$
+					if (debug) Log.finer(" LONG"); //$NON-NLS-1$
 					//System.out.println("not a short click");
 					return;
 				}
@@ -350,7 +351,7 @@
 				String[] ids = panel.getWordSelection(); // may be null
 
 				if (ids == null) { // clear selection
-					if (debug)  System.out.println(" NO WORD SELECTION"); //$NON-NLS-1$
+					if (debug)  Log.finer(" NO WORD SELECTION"); //$NON-NLS-1$
 					//					navigationField.setSelectionIndex(0); // clear selection
 					//					onIdentifiantComboSelected(null);
 					return;
@@ -359,7 +360,7 @@
 				org.txm.searchengine.cqp.corpus.CQPCorpus c = SchemaToolbar.this.editor.getCorpus();
 
 				try {
-					if (debug)  System.out.println(" HIGHLIGHTING ANNOT IF ANY AT "+ids[0]); //$NON-NLS-1$
+					if (debug)  Log.finer(" HIGHLIGHTING ANNOT IF ANY AT "+ids[0]); //$NON-NLS-1$
 					tryHighlightingWord(ids[0],c );
 				} catch (Exception ex) {
 					ex.printStackTrace();
@@ -642,7 +643,7 @@
 	}
 
 	protected void onIdentifiantComboSelected(SelectionEvent e) {
-		Log.finer("Identifiants SelectionListener: "+navigationField.getSelectionIndex());
+		// Log.finer("Identifiants SelectionListener: "+navigationField.getSelectionIndex());
 		int iSchema = navigationField.getSelectionIndex();
 		if (iSchema <= 0) {
 			if (previousSelectedSchemaIDS != null) {
@@ -668,7 +669,7 @@
 	}
 
 	protected void onTypeComboSelected(SelectionEvent e) {
-		Log.finer("Types SelectionListener: "+typeCombo.getSelectionIndex());
+		// Log.finer("Types SelectionListener: "+typeCombo.getSelectionIndex());
 		reloadIdentifiants();
 		if (typeCombo.getSelectionIndex() > 0) {
 			//String type = unitesAVoir[typeCombo.getSelectionIndex()-1];
@@ -694,7 +695,7 @@
 	 * @param unite the unite to select, may be null
 	 */
 	public void reloadIdentifiants() {
-		Log.finer("Reloading identifiants combo values.");
+		// Log.finer("Reloading identifiants combo values.");
 		String type0 = typeCombo.getText();
 		schemas = vue.getSchemasAVoir(type0);
 		String[] identifiants = vue.getIdSchemas(type0, schemas);
@@ -708,7 +709,7 @@
 	 * @param unite the unite to select, may be null
 	 */
 	public void reloadIdentifiantsUnites() {
-		Log.finer("Reloading unites combo values.");
+		// Log.finer("Reloading unites combo values.");
 		int iSchema = navigationField.getSelectionIndex();
 		if (iSchema <= 0) {
 			subNavigationField.setIdentifiants(new String[0], null, null);
@@ -765,6 +766,7 @@
 	}
 
 	public void setEnable(boolean enable) {
+		
 		l.setEnabled(enable);
 		typeCombo.setEnabled(enable);
 		//		createButton.setEnabled(enable);
@@ -775,6 +777,7 @@
 
 	@Override
 	public void traiterEvent(Message e) {
+		
 		if (annotationArea.isDisposed()) return;
 
 		if (e.getType().equals(TypeMessage.MODIF_STRUCTURE)) {
@@ -798,6 +801,7 @@
 	}
 
 	protected void tryHighlightingWord(String id, org.txm.searchengine.cqp.corpus.CQPCorpus c) throws CqiClientException {
+		
 		EditionPanel panel = editor.getEditionPanel(0);
 		if (panel == null) return;
 		if (id != null) {
@@ -806,7 +810,7 @@
 		QueryResult r = c.query(new CQLQuery("[_.text_id=\""+panel.getEdition().getText().getName()+"\" & id=\""+id+"\"]"), "TMP", false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		List<Match> matches = r.getMatches();
 		if (matches.size() == 0) {
-			System.out.println("Error no word found for id="+id);
+			Log.warning(NLS.bind("Error no word found for id={0}.", id));
 			return;
 		}
 		int start = matches.get(0).getStart();
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/URSAnnotationToolbar.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/URSAnnotationToolbar.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/toolbar/URSAnnotationToolbar.java	(revision 3404)
@@ -5,6 +5,7 @@
 import java.util.TimerTask;
 
 import org.apache.commons.lang.StringUtils;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.ProgressListener;
 import org.eclipse.swt.events.KeyListener;
@@ -256,7 +257,7 @@
 		//
 		// }
 		if (matches.size() == 0) {
-			System.out.println("Error: no match for query=" + query);
+			Log.warning(NLS.bind("Error: no match for query={0}", query));
 			return null;
 		}
 		else {
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/InstallURSFiles.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/InstallURSFiles.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/InstallURSFiles.java	(revision 3404)
@@ -4,6 +4,7 @@
 import java.util.Calendar;
 import java.util.Date;
 
+import org.eclipse.osgi.util.NLS;
 import org.osgi.framework.Version;
 import org.txm.PostTXMHOMEInstallationStep;
 import org.txm.Toolbox;
@@ -52,7 +53,7 @@
 		if (URSMacroDirectory.exists()) {
 			long time = URSMacroDirectory.lastModified();
 			File backDirectory = new File(macroDirectory, "urs-"+Toolbox.dateformat.format(new Date(time)));
-			System.out.println("Making a copy of previous URS macros directory: "+URSMacroDirectory+" to "+backDirectory);
+			Log.warning(NLS.bind("Making a copy of the {0} previous URS macros directory to {1}.", URSMacroDirectory, backDirectory));
 			
 			URSMacroDirectory.renameTo(backDirectory);
 			DeleteDir.deleteDirectory(URSMacroDirectory);
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/widgets/NavigationField.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/widgets/NavigationField.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/widgets/NavigationField.java	(revision 3404)
@@ -24,6 +24,7 @@
 import org.txm.annotation.urs.toolbar.UnitToolbar;
 import org.txm.annotation.urs.view.ElementSearchView;
 import org.txm.rcp.IImageKeys;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.elements.Unite;
 
@@ -140,19 +141,17 @@
 						try {
 							Integer i = Integer.parseInt(id);
 							if (identifiants.length < i) {
-								System.out.println(NLS.bind(Messages.NavigationField_2, identifiantCombo.getText()));
+								Log.warning(NLS.bind(Messages.NavigationField_2, identifiantCombo.getText()));
 								return;
 							}
 							setSelectionIndex(i);
 							//notifySelectionChanged(null);
 							toolbar.getEditor().updateWordStyles();
 						} catch(Exception ex) {
-							System.out.println(NLS.bind(Messages.NavigationField_2, identifiantCombo.getText()));
+							Log.warning(NLS.bind(Messages.NavigationField_2, identifiantCombo.getText()));
 						}
 					}
 				}
-				
-				
 			}
 
 			@Override
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/view/ElementPropertiesView.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/view/ElementPropertiesView.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/view/ElementPropertiesView.java	(revision 3404)
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
@@ -108,13 +109,13 @@
 					view.fields.getParent().layout(); // sometimes the part layout is broken
 			}
 			if (view == null) {
-				System.out.println("Error ElementPropertiesView view not found: "+ElementPropertiesView.ID);
+				Log.warning(NLS.bind("Error ElementPropertiesView view not found: {0}.", ElementPropertiesView.ID));
 				return null;
 			}
 			view.getSite().getPage().activate(view);
 			return view;
 		} catch (PartInitException e1) {
-			System.out.println("Part initialisation error: "+e1.getLocalizedMessage());
+			Log.warning(NLS.bind("Part initialisation error: {0}", e1.getLocalizedMessage()));
 			Log.printStackTrace(e1);
 		}
 		return null;
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/view/ElementSearchView.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/view/ElementSearchView.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/view/ElementSearchView.java	(revision 3404)
@@ -14,6 +14,7 @@
 import org.eclipse.jface.bindings.keys.KeyStroke;
 import org.eclipse.jface.fieldassist.ComboContentAdapter;
 import org.eclipse.jface.fieldassist.TXMAutoCompleteField;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.KeyListener;
@@ -168,14 +169,14 @@
 					view.fields.getParent().layout(); // sometimes the part layout is broken
 			}
 			if (view == null) {
-				System.out.println("Error ElementPropertiesView view not found: " + ElementSearchView.ID);
+				Log.warning(NLS.bind("Error ElementPropertiesView view not found: {0}.", ElementSearchView.ID));
 				return null;
 			}
 			view.getSite().getPage().activate(view);
 			return view;
 		}
 		catch (PartInitException e1) {
-			System.out.println("Part initialisation error: " + e1.getLocalizedMessage());
+			Log.warning(NLS.bind("Part initialisation error: {0}.", e1.getLocalizedMessage()));
 			Log.printStackTrace(e1);
 		}
 		return null;
@@ -288,7 +289,7 @@
 					updateCurrentLabel();
 				}
 				catch (Exception err) {
-					System.out.println("Could not set current match: " + err.getLocalizedMessage());
+					Log.warning(NLS.bind("Could not set current match: {0}.", err.getLocalizedMessage()));
 				}
 			}
 			
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/ExportToGlozzMacro.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/ExportToGlozzMacro.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/ExportToGlozzMacro.java	(revision 3404)
@@ -15,6 +15,7 @@
 import org.txm.searchengine.cqp.corpus.Property;
 import org.txm.searchengine.cqp.serverException.CqiServerError;
 import org.txm.utils.io.IOUtils;
+import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.donnees.Structure;
@@ -47,10 +48,10 @@
 		// export the annotation structure as a glozz model
 		Corpus analecCorpus = URSCorpora.getCorpus(corpus);
 		if (analecCorpus == null) {
-			System.out.println("No Analec corpus associated with $corpus");
+			Log.warning("No Analec corpus associated with $corpus");
 			return;
 		}
-		System.out.println("Writing annotation structure...");
+		Log.info("Writing annotation structure...");
 		PrintWriter model = null;
 		File fichierModel = new File(filename + ".aam");
 		try {
@@ -60,11 +61,11 @@
 			gp.ecrireModel();
 		}
 		catch (Exception ex) {
-			System.out.println("Erreur d'écriture de fichier: " + ex);
+			Log.warning(NLS.bind("Erreur d'écriture de fichier: {0}.", ex));
 		}
 		finally {
 			if (model != null) model.close();
-			System.out.println(NLS.bind("Annotations structure written to ''{0}''.", fichierModel));
+			Log.info(NLS.bind("Annotations structure written to ''{0}''.", fichierModel));
 		}
 		
 		int size = corpus.getSize(); // you may also use:
@@ -116,7 +117,7 @@
 			positions.add(new int[] { start, end });
 		}
 		pns.get(pnCount - 1)[1] = end;
-		System.out.println(pnCount + " paragraph(s) found.");
+		Log.info(NLS.bind("{0} paragraph(s) found.", pnCount));
 		
 		// CORPUS ANALEC (GET THE ANNOTATIONS)
 		
@@ -131,16 +132,16 @@
 		
 		// export to file (corpus)
 		
-		System.out.println("Writing corpus...");
+		Log.info("Writing corpus...");
 		String corpusFilename = filename + ".ac";
 		File corpusFile = new File(corpusFilename);
 		PrintWriter corpusFileWriter = IOUtils.getWriter(corpusFile);
 		corpusFileWriter.write(rawText);
 		corpusFileWriter.close();
-		System.out.println("Corpus written to `" + corpusFilename + "'.");
+		Log.info(NLS.bind("Corpus written to ''{0}''.", corpusFilename));
 		
 		// export to file (annotations)
-		System.out.println("Writing annotations...");
+		Log.info("Writing annotations...");
 		String annotFilename = filename + ".aa";
 		File annotFile = new File(annotFilename);
 		PrintWriter annotFileWriter = IOUtils.getWriter(annotFile);
@@ -184,9 +185,8 @@
 		}
 		annotFileWriter.println("</annotations>");
 		annotFileWriter.close();
-		System.out.println(unitCount + " unit(s) found.");
+		Log.info(NLS.bind("{0} unit(s) found.", unitCount));
 		
-		System.out.println("Annotations written to `" + annotFile + "'.");
+		Log.info(NLS.bind("Annotations written to the''{0}''.", annotFile));
 	}
-	
 }
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/URSAnnotationTEIExporter.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/URSAnnotationTEIExporter.java	(revision 3403)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/URSAnnotationTEIExporter.java	(revision 3404)
@@ -15,6 +15,7 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.osgi.util.NLS;
 import org.txm.importer.PersonalNamespaceContext;
 import org.txm.importer.StaxIdentityParser;
 import org.txm.scripts.importer.StaxStackWriter;
@@ -25,6 +26,7 @@
 import org.txm.utils.BundleUtils;
 import org.txm.utils.DeleteDir;
 import org.txm.utils.io.FileCopy;
+import org.txm.utils.logger.Log;
 import org.txm.utils.zip.Zip;
 
 import visuAnalec.donnees.Corpus;
@@ -82,7 +84,7 @@
 	public boolean process(boolean standoff, boolean createArchive) throws Exception {
 		
 		if (!standoff) {
-			System.out.println("Inligned annotations not implemented yet. Aborting");
+			Log.warning("Inligned annotations not implemented yet. Aborting");
 			return false;
 		}
 
@@ -164,27 +166,28 @@
 			File zipArchive = new File(outputDirectory+".urs");
 			Zip.compress(outputDirectory, zipArchive);
 			DeleteDir.deleteDirectory(outputDirectory);
-			System.out.println("Done: "+zipArchive);
+			Log.info(NLS.bind("Done: {0}.", zipArchive));
 		} else {
-			System.out.println("Done: "+outputDirectory);
+			Log.info(NLS.bind("Done: {0}.", outputDirectory));
 		}
 
 		return true;
 	}
 
 	protected boolean processText(boolean standoff, File xmltxmFile, File xmltxmAnalecFile, String textid, int from, int to) throws Exception {
-		System.out.println("Processing text: "+textid);
+		
+		Log.info(NLS.bind("Processing text: {0}", textid));
 
 		// 1) copy the XML-TXM file
 		File xmltxmFileFromBin = new File(mainCorpus.getProjectDirectory(), "txm/"+mainCorpus.getName().toUpperCase()+"/"+textid+".xml");
 		if (!xmltxmFileFromBin.exists()) {
-			System.out.println("Error: could not find the XML-TXM reference file: "+xmltxmFileFromBin);
+			Log.warning(NLS.bind("Error: could not find the XML-TXM reference file: {0}.", xmltxmFileFromBin));
 			return false;
 		}
 
 		if (copyXMLTXMFiles) {
 			if (!FileCopy.copy(xmltxmFileFromBin, xmltxmFile)) {
-				System.out.println("Error: could not copy the XML-TXM reference file: "+xmltxmFileFromBin);
+				Log.warning(NLS.bind("Error: could not copy the XML-TXM reference file: {0}.", xmltxmFileFromBin));
 				return false;
 			}
 		}
@@ -311,7 +314,7 @@
 			else writer.close();
 		} catch(Exception e) {
 			writer.close();
-			System.out.println("Error: "+e.getLocalizedMessage());
+			Log.warning(NLS.bind("Error: {0}.", e.getLocalizedMessage()));
 			e.printStackTrace();
 			return false;
 		}
Index: TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/concordance/KRAnnotation.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/concordance/KRAnnotation.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/concordance/KRAnnotation.java	(revision 3404)
@@ -74,7 +74,6 @@
 import org.txm.rcp.swt.provider.SimpleLabelProvider;
 import org.txm.rcp.utils.JobHandler;
 import org.txm.rcp.views.corpora.CorporaView;
-import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
 import org.txm.searchengine.cqp.corpus.CQPCorpus;
 import org.txm.utils.AsciiUtils;
 import org.txm.utils.logger.Log;
Index: TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/commands/SaveAnnotations.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/commands/SaveAnnotations.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/commands/SaveAnnotations.java	(revision 3404)
@@ -1,7 +1,5 @@
 package org.txm.annotation.kr.rcp.commands;
 
-import java.util.Set;
-
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -16,8 +14,6 @@
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.txm.annotation.kr.core.AnnotationManager;
 import org.txm.annotation.kr.core.KRAnnotationEngine;
-import org.txm.core.results.TXMResult;
-import org.txm.rcp.editors.ITXMResultEditor;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.utils.JobHandler;
 import org.txm.rcp.utils.SWTEditorsUtils;
Index: TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/commands/InitializeKnowledgeRepository.java
===================================================================
--- TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/commands/InitializeKnowledgeRepository.java	(revision 3403)
+++ TXM/trunk/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/commands/InitializeKnowledgeRepository.java	(revision 3404)
@@ -74,7 +74,7 @@
 				}
 				
 				if (!kr.checkConnection()) {
-					System.out.println("Error during connection to '"+kr_name+"'. Please check login, password and Internet connection.");
+					Log.warning(NLS.bind("Error during connection to the ''{0}'' KR. Please check login, password and Internet connection.", kr_name));
 				} else {
 					ret.add(kr);
 				}
Index: TXM/trunk/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java
===================================================================
--- TXM/trunk/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java	(revision 3403)
+++ TXM/trunk/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java	(revision 3404)
@@ -42,6 +42,7 @@
 	
 	public ReadODS(File tableFile, String sheetname) throws Exception {
 		
+		Logger.getLogger(OdfXMLFactory.class.getName()).setLevel(Level.WARNING);
 		spreadsheet = SpreadsheetDocument.loadDocument(tableFile);
 		
 		// the first access to the document causes a very long process
@@ -138,6 +139,9 @@
 	}
 	
 	public static ArrayList<HashMap<String, String>> toHashMap(File inputFile, String sheetname) throws Exception {
+		
+		Logger.getLogger(OdfXMLFactory.class.getName()).setLevel(Level.WARNING);
+		
 		SpreadsheetDocument spreadsheet = SpreadsheetDocument.loadDocument(inputFile);
 		
 		// the first access to the document causes a very long process
@@ -193,6 +197,8 @@
 	 */
 	public static ArrayList<ArrayList<String>> toTable(File inputFile, String sheetname) throws Exception {
 		
+		Logger.getLogger(OdfXMLFactory.class.getName()).setLevel(Level.WARNING);
+		
 		SpreadsheetDocument spreadsheet = SpreadsheetDocument.loadDocument(inputFile);
 		
 		// the first access to the document causes a very long process
Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/pager.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/pager.groovy	(revision 3403)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/pager.groovy	(revision 3404)
@@ -315,19 +315,29 @@
 							if (parser.getAttributeValue(null,"id") != null) {
 								pagedWriter.writeElement("h3", parser.getAttributeValue(null,"id"))
 							}
+							
 							if (enableCollapsibles && parser.getAttributeCount() > 2) {
-								pagedWriter.writeStartElement("button", ["class":"collapsible", "onclick":"onCollapsibleClicked(this)"])
+								pagedWriter.writeStartElement("button");
+								pagedWriter.writeAttribute("class", "collapsible");
+								pagedWriter.writeAttribute("onclick", "onCollapsibleClicked(this)");
 								pagedWriter.writeCharacters("➕");
 								pagedWriter.writeEndElement()
+								pagedWriter.writeCharacters("\n")
 							}
 							pagedWriter.writeStartElement("table");
-							if (enableCollapsibles && parser.getAttributeCount() > 2) pagedWriter.writeAttribute("class", "collapsiblecontent")
 							for (int i = 0 ; i < parser.getAttributeCount() ; i++) {
 								pagedWriter.writeStartElement("tr");
 								pagedWriter.writeElement("td", parser.getAttributeLocalName(i));
 								pagedWriter.writeElement("td", parser.getAttributeValue(i).toString());
 								pagedWriter.writeEndElement();
 							}
+							if (enableCollapsibles && parser.getAttributeCount() > 2) {
+								pagedWriter.writeAttribute("class", "transcription-table collapsiblecontent")
+								pagedWriter.writeAttribute("style", "display:none;")
+							} else {
+								pagedWriter.writeAttribute("class", "transcription-table");
+							}
+							
 							pagedWriter.writeEndElement() // table
 							pagedWriter.writeEmptyElement("br")
 							pagedWriter.writeCharacters("");
Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/pager.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/pager.groovy	(revision 3403)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/pager.groovy	(revision 3404)
@@ -324,6 +324,7 @@
 							writer.writeStartElement("table");
 							if (enableCollapsibles && parser.getAttributeCount() > 2) {
 								writer.writeAttribute("class", "transcription-table collapsiblecontent")
+								writer.writeAttribute("style", "display:none;")
 							} else {
 								writer.writeAttribute("class", "transcription-table");
 							}
@@ -509,6 +510,7 @@
 								writer.writeStartElement("div");
 								if (enableCollapsibles && metadataGroups.keySet().size() > 2) {
 									writer.writeAttribute("class", "section-all-metadata collapsiblecontent")
+									writer.writeAttribute("style", "display:none;")
 								} else {
 									writer.writeAttribute("class", "section-all-metadata");
 								}
@@ -528,7 +530,7 @@
 												writer.writeEndElement() // p
 												writer.writeCharacters("\n")
 											}
-											writer.writeEndElement(); // p
+											writer.writeEndElement(); // div
 										} else { // 'metadata' and other groups
 											writer.writeStartElement("ul")
 											writer.writeAttribute("class", "section-"+groupName);
@@ -543,7 +545,7 @@
 										}
 									}
 								}
-								writer.writeEndElement(); // p
+								writer.writeEndElement(); // div
 								writer.writeCharacters("\n")
 								writer.writeEmptyElement("hr")
 							}
Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/TranscriberTokenizer.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/TranscriberTokenizer.groovy	(revision 3403)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/TranscriberTokenizer.groovy	(revision 3404)
@@ -178,7 +178,7 @@
 			for (def word : words) {
 				wordcount++;
 				writer.writeStartElement(word_element_to_create);
-				writeWordAttributes();// id
+				writeWordAttributes(false);// id
 				writer.writeCharacters(word);
 				writer.writeEndElement();
 				writer.writeCharacters("\n");
@@ -192,8 +192,8 @@
 	/* (non-Javadoc)
 	 * @see filters.Tokeniser.SimpleTokenizerXml#writeWordAttributes()
 	 */
-	protected writeWordAttributes() {
-		super.writeWordAttributes()
+	protected writeWordAttributes(boolean fromParser) {
+		super.writeWordAttributes(fromParser)
 		
 		if (!retokenizedWordProperties.containsKey("audio")) writer.writeAttribute("audio", audio);
 		if (!retokenizedWordProperties.containsKey("event")) writer.writeAttribute("event", event);
Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy	(revision 3403)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy	(revision 3404)
@@ -374,16 +374,22 @@
 									pagedWriter.writeElement("h3", attributes["id"])
 								}
 							
-								if (enableCollapsibles && attributes.keySet().size() > 2) {
-									pagedWriter.writeStartElement("button", ["class":"collapsible", "onclick":"onCollapsibleClicked(this)"])
-									pagedWriter.writeCharacters("➕");
-									pagedWriter.writeEndElement()
-									
-									pagedWriter.writeStartElement("div", ["class":"collapsiblecontent"])
-								}
+							if (enableCollapsibles && parser.getAttributeCount() > 2) {
+								pagedWriter.writeStartElement("button");
+								pagedWriter.writeAttribute("class", "collapsible");
+								pagedWriter.writeAttribute("onclick", "onCollapsibleClicked(this)");
+								pagedWriter.writeCharacters("➕");
+								pagedWriter.writeEndElement()
+								pagedWriter.writeCharacters("\n")
+							}
+							pagedWriter.writeStartElement("table");
+							if (enableCollapsibles && parser.getAttributeCount() > 2) {
+								pagedWriter.writeAttribute("class", "collapsiblecontent")
+								pagedWriter.writeAttribute("style", "display:none;")
+							} else {
+								pagedWriter.writeAttribute("class", "metadata");
+							}
 							
-								pagedWriter.writeStartElement("table", ["class":"metadata"]);
-							
 								for (String k : attributes.keySet()) {
 									if (k == "id") continue;
 									if (k == "rend") continue;
@@ -395,9 +401,7 @@
 									pagedWriter.writeEndElement() //tr
 								}
 								pagedWriter.writeEndElement() // table
-								if (enableCollapsibles && attributes.keySet().size() > 2) {
-									pagedWriter.writeEndElement() // div@class=collapsiblecontent
-								}
+								
 								pagedWriter.writeEndElement() // p
 								pagedWriter.writeCharacters("\n")
 								break;
Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/BuildAFMetadataMacro.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/BuildAFMetadataMacro.groovy	(revision 3403)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/BuildAFMetadataMacro.groovy	(revision 3404)
@@ -79,6 +79,9 @@
 	
 	lineRules.put("Type de notice", "Notice sujet");
 	
+	dateColumnsSelection.add("Date de diffusion");
+	datePattern = "dd/MM/yyyy"
+	
 	columnsToCopy.put("Identifiant de la notice", ["id"] as String[])
 	
 	dateColumnsSelection.add("Date de diffusion");
Index: TXM/trunk/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java
===================================================================
--- TXM/trunk/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 3403)
+++ TXM/trunk/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 3404)
@@ -276,6 +276,7 @@
 	public Object evaluate(String code) {
 		
 		if (Log.getLevel().intValue() <= Level.FINEST.intValue()) System.out.println(code);
+		
 		try {
 			if (getBrowser() == null) return null;
 			return getBrowser().evaluate(code);
@@ -295,7 +296,6 @@
 			return getBrowser().execute(code);
 		}
 		catch (Exception e) {
-			String error = e.getMessage();
 			Log.severe("Browser execute error: " + e);
 			Log.printStackTrace(e);
 		}
@@ -812,7 +812,11 @@
 	public void setURL(String url) {
 		
 		if (!this.browser.isDisposed()) {
-			super.setURL(URLUtils.encodeURL(url));
+			if ("webkit".equals(this.browser.getBrowserType())) {
+				super.setURL(URLUtils.encodeURL(url));
+			} else {
+				super.setURL(url);
+			}
 		}
 	}
 	
@@ -1147,21 +1151,22 @@
 	// this.currentEdition = edition;
 	// }
 	
-	static String SCRIPT01 = "var html = \"\";" + //$NON-NLS-1$
+	static String SCRIPT01 = 
+			"var html = \"\";" + //$NON-NLS-1$
 			"if (typeof window.getSelection != \"undefined\") {" + // modern Web browsers //$NON-NLS-1$
-			"var sel = window.getSelection();" + //$NON-NLS-1$
-			"if (sel.rangeCount) {" + //$NON-NLS-1$
-			"var container = document.createElement(\"div\");" + //$NON-NLS-1$
-			"for (var i = 0, len = sel.rangeCount; i < len; ++i) {" + //$NON-NLS-1$
-			"container.appendChild(sel.getRangeAt(i).cloneContents());" + //$NON-NLS-1$
-			"}" + //$NON-NLS-1$
-			"html = container.innerHTML;" + //$NON-NLS-1$
-			"}" + //$NON-NLS-1$
+				"var sel = window.getSelection();" + //$NON-NLS-1$
+				"if (sel.rangeCount) {" + //$NON-NLS-1$
+					"var container = document.createElement(\"div\");" + //$NON-NLS-1$
+					"for (var i = 0, len = sel.rangeCount; i < len; ++i) {" + //$NON-NLS-1$
+						"container.appendChild(sel.getRangeAt(i).cloneContents());" + //$NON-NLS-1$
+					"}" + //$NON-NLS-1$
+					"html = container.innerHTML;" + //$NON-NLS-1$
+				"}" + //$NON-NLS-1$
 			"} else if (typeof document.selection != \"undefined\") {" + // for IE < 11 //$NON-NLS-1$
-			"if (document.selection.type == \"Text\") {" + //$NON-NLS-1$
-			"html = document.selection.createRange().htmlText;" + //$NON-NLS-1$
+				"if (document.selection.type == \"Text\") {" + //$NON-NLS-1$
+					"html = document.selection.createRange().htmlText;" + //$NON-NLS-1$
+				"}" + //$NON-NLS-1$
 			"}" + //$NON-NLS-1$
-			"}" + //$NON-NLS-1$
 			"return html"; //$NON-NLS-1$
 	
 	public String getTextSelectionDOM() {
@@ -1429,13 +1434,13 @@
 					
 					@Override
 					public boolean isEmpty() {
-						
+						if (EditionPanel.this.isDisposed()) return true;
 						return EditionPanel.this.getTextSelection().length() == 0;
 					}
 					
 					@Override
 					public String getText() {
-						
+						if (EditionPanel.this.isDisposed()) return null;
 						return EditionPanel.this.getTextSelection();
 					}
 					
