Index: TXM/trunk/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java
===================================================================
--- TXM/trunk/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java	(revision 3388)
+++ TXM/trunk/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java	(revision 3389)
@@ -15,6 +15,7 @@
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.swt.widgets.ToolItem;
 import org.txm.ca.core.functions.CA;
 import org.txm.ca.core.preferences.CAPreferences;
@@ -101,6 +102,12 @@
 	 */
 	@Parameter(key = TXMPreferences.V_MAX)
 	protected Spinner vMaxSpinner;
+
+	@Parameter(key = CAPreferences.ROW_SUP_NAMES)
+	private Text supRowNamesText;
+
+	@Parameter(key = CAPreferences.COL_SUP_NAMES)
+	private Text supColNamesText;
 	
 	/**
 	 *
@@ -357,6 +364,16 @@
 			}
 		}
 		
+//		Label l = new Label(this.getExtendedParametersGroup(), SWT.NONE);
+//		l.setText("Supplementary row names:");
+//		
+//		supRowNamesText = new Text(this.getExtendedParametersGroup(), SWT.BORDER);
+//		
+//		l = new Label(this.getExtendedParametersGroup(), SWT.NONE);
+//		l.setText("Supplementary col names:");
+//		
+//		supColNamesText = new Text(this.getExtendedParametersGroup(), SWT.BORDER);
+		
 		this.chartToolBar.pack();
 	}
 	
Index: TXM/trunk/org.txm.whatsnew.rcp/plugin.xml
===================================================================
--- TXM/trunk/org.txm.whatsnew.rcp/plugin.xml	(revision 3388)
+++ TXM/trunk/org.txm.whatsnew.rcp/plugin.xml	(revision 3389)
@@ -35,7 +35,7 @@
             category="org.txm.rcp.preferences.UserPreferencePage"
             class="org.txm.whatsnew.rcp.NewsPreferencesPage"
             id="org.txm.whatsnew.rcp.NewsPreferencesPage"
-            name="New setups">
+            name="New version">
       </page>
    </extension>
    <extension
Index: TXM/trunk/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java
===================================================================
--- TXM/trunk/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 3388)
+++ TXM/trunk/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 3389)
@@ -1494,7 +1494,7 @@
 				if (queryWidgetInitBackground != null) queryWidget.setBackground(queryWidgetInitBackground);
 			}
 			
-			if (update) {
+			if (!update) {
 				resetColumnWidths();
 			}
 		}
@@ -2322,8 +2322,10 @@
 	 */
 	public int resetRightTableColumnWidths() {
 		
-		float W = 1f + queryLabel.getSize().x / (float) queryLabel.getText().length();
+		//float W = 1f + queryLabel.getSize().x / (float) queryLabel.getText().length(); // does nto work until the label is drawn
+		float W = queryLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).x / (float) queryLabel.getText().length();
 		
+		
 		int n = 0;
 		TableColumn[] columns = viewerRight.getTable().getColumns();
 		for (int i = 0; i < columns.length; i++) {
@@ -2331,11 +2333,15 @@
 			if (column.getWidth() == 0) continue; // skip closed columns
 			
 			int max = column.getText().length();
+			//System.out.println("initial max of '"+column.getText()+"' = "+max);
 			if (max == 0) continue; // skip no-title columns
 			
 			n = 0;
 			for (TableItem item : viewerRight.getTable().getItems()) {
-				if (max < item.getText(i).length()) max = item.getText(i).length();
+				if (max < item.getText(i).length()) {
+					max = item.getText(i).length();
+					//System.out.println("update max with '"+item.getText(i)+"' at "+i+" = "+max);
+				}
 				if (n++ > 100) break; // stop testing after 100 lines
 			}
 			
@@ -2345,7 +2351,7 @@
 			
 			int s = 15 + (int) (max * W);
 			column.setWidth(s);
-//			System.out.println(column.getText()+"SIZE="+s);
+			//System.out.println(column.getText()+"SIZE="+s);
 		}
 		
 		viewerRight.getTable().layout(true, true);
@@ -2365,7 +2371,6 @@
 	public int resetColumnWidths() {
 		if (!concordance.hasBeenComputedOnce()) return 0;
 		
-		
 		resetLeftTableColumnWidths();
 		int c = resetRightTableColumnWidths();
 		getResultArea().layout(true, true);
Index: TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/FactoMineRCA.java
===================================================================
--- TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/FactoMineRCA.java	(revision 3388)
+++ TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/FactoMineRCA.java	(revision 3389)
@@ -30,6 +30,7 @@
 import java.io.File;
 import java.util.Arrays;
 
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.osgi.util.NLS;
 import org.rosuda.REngine.REXP;
 import org.rosuda.REngine.REXPMismatchException;
@@ -112,7 +113,7 @@
 	}
 	
 	@Override
-	public void compute() throws StatException {
+	public void compute(String pRowSupNames, String pColSupNames) throws StatException {
 		
 		// reset cache
 		rowscoords = null;
@@ -136,7 +137,25 @@
 		try {
 			// rw.callFunctionAndAffect("FactoMineR:CA", new String[] { table.getSymbol() }, symbol); //$NON-NLS-1$
 			// rw.eval(symbol+" <- FactoMineR::CA("+table.getSymbol()+", graph=FALSE)"); //$NON-NLS-1$ //$NON-NLS-2$
-			rw.eval(symbol + " <- FactoMineR::CA(" + table.getSymbol() + "[,colSums(" + table.getSymbol() + ") != 0], graph=FALSE)"); //$NON-NLS-1$ //$NON-NLS-2$
+			StringBuilder script = new StringBuilder();
+			script.append(symbol + " <- FactoMineR::CA(" + table.getSymbol() + "[,colSums(" + table.getSymbol() + ") != 0]");
+			if (pRowSupNames != null && pRowSupNames.length() > 0) {
+				String[] split = pRowSupNames.split(",");
+				for (int i = 0 ; i < split.length ; i++) {
+					split[i] = split[i].replace("\"", "\\\"");
+				}
+				script.append(",row.sup=Filter(Negate(is.null), which(rownames("+table.getSymbol()+") == c(\""+StringUtils.join(split, "\", \"")+"\")))");
+				 //which(rownames(children) == c("money", "fear"))
+			}
+			if (pColSupNames != null && pColSupNames.length() > 0) {
+				String[] split = pColSupNames.split(",");
+				for (int i = 0 ; i < split.length ; i++) {
+					split[i] = split[i].replace("\"", "\\\"");
+				}
+				script.append(",col.sup=Filter(Negate(is.null), which(colnames("+table.getSymbol()+") == c(\""+StringUtils.join(split, "\", \"")+"\")))");
+			}
+			script.append(", graph=FALSE)");
+			rw.eval(script.toString()); //$NON-NLS-1$ //$NON-NLS-2$
 			
 		}
 		catch (RWorkspaceException e) {
Index: TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/ICA.java
===================================================================
--- TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/ICA.java	(revision 3388)
+++ TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/ICA.java	(revision 3389)
@@ -40,7 +40,7 @@
  */
 public interface ICA {
 	
-	public void compute() throws StatException;
+	public void compute(String pRowSupNames, String pColsSupNames) throws StatException;
 	
 	/**
 	 * Gets the col contrib.
Index: TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/CA.java
===================================================================
--- TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/CA.java	(revision 3388)
+++ TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/statsengine/r/functions/CA.java	(revision 3389)
@@ -508,7 +508,7 @@
 	}
 	
 	@Override
-	public void compute() throws StatException {
+	public void compute(String pRowSupNames, String pColsSupNames) throws StatException {
 		
 		if (!rw.containsVariable(table.getSymbol())) {
 			throw new StatException(CACoreMessages.error_lexicalTableNotFoundInWorkspace);
Index: TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java
===================================================================
--- TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java	(revision 3388)
+++ TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java	(revision 3389)
@@ -127,9 +127,20 @@
 	@Parameter(key = CAPreferences.SHOW_POINT_SHAPES, type = Parameter.RENDERING)
 	protected boolean showPointShapes;
 	
+	/**
+	 * Supplementary/illustrative row names
+	 */
+	@Parameter(key = CAPreferences.ROW_SUP_NAMES)
+	protected String pRowSupNames;
 	
+	/**
+	 * Supplementary/illustrative row names
+	 */
+	@Parameter(key = CAPreferences.COL_SUP_NAMES)
+	protected String pColSupNames;
 	
 	
+	
 	/**
 	 * Creates a new empty CA.
 	 *
@@ -211,7 +222,7 @@
 				this.r_ca = new org.txm.ca.core.statsengine.r.functions.CA(this.getLexicalTable().getData());
 			}
 			
-			this.r_ca.compute();
+			this.r_ca.compute(pRowSupNames, pColSupNames);
 			
 			return true;
 		}
@@ -391,7 +402,7 @@
 	public String[] getColNames() throws StatException {
 		
 		if (colnames == null) {
-			colnames = this.getCA().getColNames().asStringsArray();
+			colnames = r_ca.getColNames().asStringsArray();
 		}
 		return colnames;
 	}
@@ -690,7 +701,8 @@
 	public String[] getRowNames() throws Exception {
 		
 		if (rownames == null) {
-			rownames = this.getLexicalTable().getRowNames().asStringsArray();
+			//rownames = this.getLexicalTable().getRowNames().asStringsArray();
+			rownames = r_ca.getRowNames().asStringsArray();
 		}
 		return rownames;
 	}
Index: TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java
===================================================================
--- TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java	(revision 3388)
+++ TXM/trunk/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java	(revision 3389)
@@ -40,6 +40,8 @@
 	public static final String SHOW_INDIVIDUALS = "chart_show_individuals"; //$NON-NLS-1$
 	public static final String SHOW_VARIABLES = "chart_show_variables"; //$NON-NLS-1$
 	public static final String SHOW_POINT_SHAPES = "chart_show_point_shapes"; //$NON-NLS-1$
+	public static final String ROW_SUP_NAMES = "row_sup_names";
+	public static final String COL_SUP_NAMES = "col_sup_names";
 	
 	
 	/**
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 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 3389)
@@ -125,7 +125,7 @@
 
 andFrom = and from
 
-annotateTheCorpus = Annotate the corpus
+lemmatizeTheCorpus=Lemmatize the corpus
 
 areYouSureYouWantToDeleteP0Colon = Are you sure you want to delete files {0}
 
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 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 3389)
@@ -106,7 +106,7 @@
 
 andFrom = et de
 
-annotateTheCorpus = Annoter le corpus
+lemmatizeTheCorpus = Lemmatiser
 
 areYouSureYouWantToDeleteP0Colon = Êtes vous sûr de vouloir supprimer les fichiers {0}
 
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 3389)
@@ -92,7 +92,7 @@
 	
 	public static String andFrom;
 	
-	public static String annotateTheCorpus;
+	public static String lemmatizeTheCorpus;
 	
 	public static String areYouSureYouWantToDeleteP0Colon;
 	
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/EditionSection.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/EditionSection.java	(revision 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/EditionSection.java	(revision 3389)
@@ -134,6 +134,7 @@
 			buildFacsEditionCheckButton.setSelection(false);
 			TableWrapData gdata22 = getButtonLayoutData();
 			gdata22.colspan = 4; // one line
+			gdata22.indent = 20;
 			buildFacsEditionCheckButton.setLayoutData(gdata22);
 			buildFacsEditionCheckButton.addSelectionListener(new SelectionListener() {
 				
@@ -148,7 +149,7 @@
 			// image directory
 			tmpLabel = toolkit.createLabel(sectionClient, "Images directory: ");
 			TableWrapData gdata = getLabelGridData();
-			gdata.indent = 20;
+			gdata.indent = 40;
 			tmpLabel.setLayoutData(gdata);
 			imageDirectoryText = toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
 			gdata = getTextGridData();
@@ -182,8 +183,10 @@
 				public void widgetDefaultSelected(SelectionEvent e) {}
 			});
 			
-			tmpLabel = toolkit.createLabel(sectionClient, "Default edition: ");
-			tmpLabel.setLayoutData(getLabelGridData());
+			tmpLabel = toolkit.createLabel(sectionClient, "Default edition ");
+			gdata = getLabelGridData();
+			gdata.indent = 20;
+			tmpLabel.setLayoutData(gdata);
 			
 			defaultEditions = toolkit.createText(sectionClient, "", SWT.BORDER);
 			gdata = getTextGridData();
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/CommandsSection.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/CommandsSection.java	(revision 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/CommandsSection.java	(revision 3389)
@@ -106,7 +106,7 @@
 			structLimitsText.setText(concPrefs.get("context_limits"));
 		}
 		else {
-			structLimitsText.setText("");
+			structLimitsText.setText("text"); // TODO use the concordance preferences instead ofhardcoding 'text'
 		}
 		if (concPrefs.get("view_reference_pattern") != null) {
 			String gsonString = concPrefs.get("view_reference_pattern");
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/LangSection.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/LangSection.java	(revision 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/LangSection.java	(revision 3389)
@@ -71,38 +71,14 @@
 		sectionClient.setLayout(slayout);
 		this.section.setClient(sectionClient);
 		
-		btnSelectAnnotate = toolkit.createButton(sectionClient, TXMUIMessages.annotateTheCorpus, SWT.CHECK);
-		toolkit.createLabel(sectionClient, ""); //$NON-NLS-1$
-		
-		
-		
-		EnginesManager<? extends Engine> ema = Toolbox.getEngineManager(EngineType.ANNOTATION);
-		ArrayList<String> engines = new ArrayList<>();
-		for (String engine : ema.getEngines().keySet()) {
-			AnnotationEngine e = (AnnotationEngine) ema.getEngine(engine);
-			if (e.isAutomatic()) {
-				engines.add(engine);
-			}
-		}
-		if (engines.size() > 1) {
-			
-			Label tmp = toolkit.createLabel(sectionClient, "Annotation engine"); //$NON-NLS-1$
-			TableWrapData gdata = getTextGridData();
-			gdata.indent = 20;
-			tmp.setLayoutData(gdata);
-			
-			annotateEngineCombo = new Combo(sectionClient, SWT.BORDER);
-			gdata = getTextGridData();
-			annotateEngineCombo.setLayoutData(gdata);
-			annotateEngineCombo.setToolTipText("Annotation engines");
-			annotateEngineCombo.setItems(engines.toArray(new String[engines.size()]));
-			annotateEngineCombo.setText(annotateEngineCombo.getItem(0));
-		}
-		
+		Label l = toolkit.createLabel(sectionClient, "Corpus language"); //$NON-NLS-1$
+		TableWrapData gdata = getTextGridData();
+		gdata.colspan = 2;
+		l.setLayoutData(gdata);
 		// if widget selected change the radio buttons value
 		
 		btnGuessLang = toolkit.createButton(sectionClient, TXMUIMessages.guessColon, SWT.RADIO);
-		TableWrapData gdata = getTextGridData();
+		gdata = getTextGridData();
 		gdata.indent = 20;
 		btnGuessLang.setLayoutData(gdata);
 		toolkit.createLabel(sectionClient, ""); //$NON-NLS-1$
@@ -156,6 +132,33 @@
 		if (langToSelectIndex >= 0) {
 			langcombo.select(langToSelectIndex);
 		}
+		
+		btnSelectAnnotate = toolkit.createButton(sectionClient, TXMUIMessages.lemmatizeTheCorpus, SWT.CHECK);
+		toolkit.createLabel(sectionClient, ""); //$NON-NLS-1$
+		
+		EnginesManager<? extends Engine> ema = Toolbox.getEngineManager(EngineType.ANNOTATION);
+		ArrayList<String> engines = new ArrayList<>();
+		for (String engine : ema.getEngines().keySet()) {
+			AnnotationEngine e = (AnnotationEngine) ema.getEngine(engine);
+			if (e.isAutomatic()) {
+				engines.add(engine);
+			}
+		}
+		if (engines.size() > 1) {
+			
+			Label tmp = toolkit.createLabel(sectionClient, "Annotation engine"); //$NON-NLS-1$
+			gdata = getTextGridData();
+			gdata.indent = 20;
+			tmp.setLayoutData(gdata);
+			
+			annotateEngineCombo = new Combo(sectionClient, SWT.BORDER);
+			gdata = getTextGridData();
+			annotateEngineCombo.setLayoutData(gdata);
+			annotateEngineCombo.setToolTipText("Annotation engines");
+			annotateEngineCombo.setItems(engines.toArray(new String[engines.size()]));
+			annotateEngineCombo.setText(annotateEngineCombo.getItem(0));
+		}
+		
 	}
 	
 	@Override
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 3388)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 3389)
@@ -528,9 +528,6 @@
 			
 			this.setDirty(this.dirty);
 			
-			// this.parent.setRedraw(true);
-			
-			
 		}
 		catch (Throwable e) {
 			Log.severe(TXMCoreMessages.bind("TXMEditor.createPartControl(): can not create the editor for result {0}.", this.getResult())); //$NON-NLS-1$
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/preferences/URSPreferencePage.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/preferences/URSPreferencePage.java	(revision 3388)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/preferences/URSPreferencePage.java	(revision 3389)
@@ -47,7 +47,7 @@
 		addField(prefix_autocompletion_field);
 		
 		save_timer_field = new IntegerFieldEditor(
-				URSPreferences.SAVE_TIMER, "Save timer duration (0 desactivate the timer)",
+				URSPreferences.SAVE_TIMER, "Delay between saves/Délai entre les sauvegardes (0 desactivate the timer)",
 				getFieldEditorParent());
 		addField(save_timer_field);
 		
