Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java	(revision 717)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java	(revision 718)
@@ -27,7 +27,6 @@
 //
 package org.txm.searchengine.cqp.corpus;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -38,7 +37,7 @@
 import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
 import org.txm.searchengine.cqp.corpus.query.Query;
 import org.txm.utils.logger.Log;
-// TODO: Auto-generated Javadoc
+
 /**
  * A Property on the structural units the corpus. Represents a
  * <strong>type</strong>, not a the value for a specific unit.
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/WordProperty.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/WordProperty.java	(revision 717)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/WordProperty.java	(revision 718)
@@ -33,7 +33,7 @@
 	public static List<Property> fromStringToList(Corpus corpus, String s) {
 		ArrayList<Property> properties = new ArrayList<Property>();
 		if (s == null) return properties;
-		
+
 		String[] split = s.split("\t");
 		for (String s2 : split) {
 			try {
@@ -50,10 +50,16 @@
 	}
 
 	public static String fromListToPreferenceString(List<Property> pProperties) {
+		if (pProperties == null){
+			return "";
+		}
+
 		ArrayList<String> names = new ArrayList<String>();
+
 		for (Property p : pProperties) {
 			names.add(p.getName());
 		}
+		
 		return StringUtils.join(names, "\t");
 	}
 }

Property changes on: tmp/org.txm.core
___________________________________________________________________
Added: svn:ignore
   + javadoc


Index: tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java
===================================================================
--- tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java	(revision 717)
+++ tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java	(revision 718)
@@ -1597,6 +1597,10 @@
 	@Override
 	public boolean saveParameters() {
 
+		if (pQuery != null) {
+			this.saveParameter(ConcordancePreferences.QUERY, pQuery.getQueryString());
+		}
+		
 		this.saveParameter(ConcordancePreferences.KEYWORD_VIEW_PROPERTIES, WordProperty.fromListToPreferenceString(this.pViewKeywordProperties));
 
 		this.saveParameter(ConcordancePreferences.LEFT_VIEW_PROPERTIES, WordProperty.fromListToPreferenceString(this.pViewLeftProperties));
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 717)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 718)
@@ -582,15 +582,14 @@
 			this.setPartName(this.getResult().getName());
 			firePropertyChange(TXMEditor.PROP_DIRTY);
 			
-			if(!update)	{
+			//MD remove 'if (!update) {...}'
 				// FIXME: debug
 				System.err.println("TXMEditor.refresh(): auto updating editor from result.");
-				this.autoUpdateEditorFieldsFromResult(); // auto update from Parameter annotations
+				this.autoUpdateEditorFieldsFromResult(update); // auto update from Parameter annotations
 	
 				// FIXME: debug
-				System.err.println("TXMEditor.refresh(): manually updating editor from result.");
+				System.err.println("TXMEditor.refresh(): subclass editor updating editor from result.");
 				this.updateEditorFromResult(update); // subclasses manual settings
-			}
 			
 			//this.__updateEditorFromResult(update); // essentially for ChartEditor
 			
@@ -604,6 +603,7 @@
 
 	/**
 	 * Synchronizes the result with editor parameters.
+	 * <p>
 	 * It should be called or called itself in the UI thread when accessing Widget parameters.
 	 */
 	public abstract void updateResultFromEditor();
@@ -611,6 +611,8 @@
 	/**
 	 * Synchronizes the editor with the result. 
 	 * Dedicated to dynamically change the editor components from the stored result.
+	 * <p>
+	 * Use this method if you need to save parameter with Type not managed by the autoUpdateEditorFieldsFromResult method
 	 */
 	public abstract void updateEditorFromResult(boolean update);
 
@@ -618,9 +620,15 @@
 
 	/**
 	 * Updates the editor fields from result and declared parameters annotations.
-	 * Manages these widgets at this moment: ToolItem, FloatSpinner, Spinner, Text, Button, Viewer, PropertiesSelector, NewNavigationWidget.
+	 * <p>
+	 * Manages these widgets at this moment: 
+	 * ToolItem+Boolean, 
+	 * FloatSpinner+Float, 
+	 * Spinner+Integer, 
+	 * Text+String, 
+	 * Button+Boolean, Viewer+any, PropertiesSelector+<P extends Property>, NewNavigationWidget+Integer.
 	 */
-	public void autoUpdateEditorFieldsFromResult()	{
+	public void autoUpdateEditorFieldsFromResult(boolean update)	{
 
 		List<Field> fields = this.getAllParameterFields();
 
@@ -654,7 +662,11 @@
 						// FIXME: fire a new selection changed event leading to a cyclic recursion...
 						// FIXME: became useless? since there is now a test above on  !this.getResult().hasParameterChanged(parameter.key(), this.lastComputingParameters) 
 						((Viewer)object).setData("ignore", true); //$NON-NLS-1$
-						((Viewer)object).setSelection(new StructuredSelection(value), true);
+						if (value instanceof StructuredSelection) { // no need to create a new StructuredSelection
+							((Viewer)object).setSelection((StructuredSelection)value, true);
+						} else {
+							((Viewer)object).setSelection(new StructuredSelection(value), true);
+						}
 						((Viewer)object).setData("ignore", false); //$NON-NLS-1$
 					}
 				}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/PropertiesSelector.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/PropertiesSelector.java	(revision 717)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/PropertiesSelector.java	(revision 718)
@@ -77,7 +77,7 @@
 	
 	/** The prop separator. */
 	String propSeparator = " ; "; //$NON-NLS-1$
-
+	
 	/**
 	 * Instantiates a new properties selector.
 	 *
Index: tmp/org.txm.jodconverter.core/resources/documents/test.odg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.csv
===================================================================
--- tmp/org.txm.jodconverter.core/resources/documents/test.csv	(revision 717)
+++ tmp/org.txm.jodconverter.core/resources/documents/test.csv	(revision 718)
@@ -1 +0,0 @@
-"Test spreadsheet"
Index: tmp/org.txm.jodconverter.core/resources/documents/test.rtf
===================================================================
--- tmp/org.txm.jodconverter.core/resources/documents/test.rtf	(revision 717)
+++ tmp/org.txm.jodconverter.core/resources/documents/test.rtf	(revision 718)
@@ -1,16 +0,0 @@
-{\rtf1\ansi\deff0\adeflang1025
-{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\fnil\fprq2\fcharset0 DejaVu Sans;}}
-{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
-{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af3\langfe255\hich\f0\fs24\lang2057\loch\f0\fs24\lang2057\snext1 Normal;}
-{\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs28\lang255\ltrch\dbch\langfe255\hich\f2\fs28\lang2057\loch\f2\fs28\lang2057\sbasedon1\snext3 Heading;}
-{\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af3\langfe255\hich\f0\fs24\lang2057\loch\f0\fs24\lang2057\sbasedon1\snext3 Body Text;}
-{\s4\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af3\langfe255\hich\f0\fs24\lang2057\loch\f0\fs24\lang2057\sbasedon3\snext4 List;}
-{\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ai\ltrch\dbch\af3\langfe255\hich\f0\fs24\lang2057\i\loch\f0\fs24\lang2057\i\sbasedon1\snext5 caption;}
-{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af3\langfe255\hich\f0\fs24\lang2057\loch\f0\fs24\lang2057\sbasedon1\snext6 Index;}
-}
-{\info{\author Mirko Nasato}{\creatim\yr2008\mo7\dy12\hr15\min3}{\author Mirko Nasato}{\revtim\yr2008\mo7\dy12\hr15\min3}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709
-{\*\pgdsctbl
-{\pgdsc0\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}}
-\paperh16837\paperw11905\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
-\pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang255\ltrch\dbch\af3\langfe255\hich\f0\fs24\lang2057\loch\f0\fs24\lang2057 {\rtlch \ltrch\loch\f0\fs24\lang2057\i0\b0 Test document}
-\par }
\ No newline at end of file
Index: tmp/org.txm.jodconverter.core/resources/documents/test.sxc
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.txt
===================================================================
--- tmp/org.txm.jodconverter.core/resources/documents/test.txt	(revision 717)
+++ tmp/org.txm.jodconverter.core/resources/documents/test.txt	(revision 718)
@@ -1 +0,0 @@
-﻿Test document
Index: tmp/org.txm.jodconverter.core/resources/documents/test.sxw
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.odp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.ppt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.sxi
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.html
===================================================================
--- tmp/org.txm.jodconverter.core/resources/documents/test.html	(revision 717)
+++ tmp/org.txm.jodconverter.core/resources/documents/test.html	(revision 718)
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
-	<TITLE></TITLE>
-	<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.4  (Linux)">
-	<META NAME="AUTHOR" CONTENT="Mirko Nasato">
-	<META NAME="CREATED" CONTENT="20080712;15031700">
-	<META NAME="CHANGEDBY" CONTENT="Mirko Nasato">
-	<META NAME="CHANGED" CONTENT="20080712;15034700">
-	<STYLE TYPE="text/css">
-	<!--
-		@page { margin: 2cm }
-		P { margin-bottom: 0.21cm }
-		P.western { so-language: en-GB }
-	-->
-	</STYLE>
-</HEAD>
-<BODY LANG="en-GB" DIR="LTR">
-<P CLASS="western" STYLE="margin-bottom: 0cm">Test document</P>
-</BODY>
-</HTML>
\ No newline at end of file
Index: tmp/org.txm.jodconverter.core/resources/documents/test.doc
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.ods
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.odt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tmp/org.txm.jodconverter.core/resources/documents/test.xls
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.jodconverter.core/resources/documents
___________________________________________________________________
Added: svn:ignore
   + **


Index: tmp/org.txm.cooccurrence.core/src/org/txm/cooccurrence/core/functions/Cooccurrence.java
===================================================================
--- tmp/org.txm.cooccurrence.core/src/org/txm/cooccurrence/core/functions/Cooccurrence.java	(revision 717)
+++ tmp/org.txm.cooccurrence.core/src/org/txm/cooccurrence/core/functions/Cooccurrence.java	(revision 718)
@@ -44,6 +44,7 @@
 import org.rosuda.REngine.REXPMismatchException;
 import org.txm.concordance.core.functions.Concordance;
 import org.txm.concordance.core.functions.Line;
+import org.txm.concordance.core.preferences.ConcordancePreferences;
 import org.txm.cooccurrence.core.functions.comparators.CLineComparator;
 import org.txm.cooccurrence.core.messages.CooccurrenceCoreMessages;
 import org.txm.cooccurrence.core.preferences.CooccurrencePreferences;
@@ -1544,14 +1545,19 @@
 
 	@Override
 	public boolean saveParameters() {
-		// TODO Auto-generated method stub
-		System.err.println("Cooccurrence.saveParameters(): not yet implemented.");
+		this.saveParameter(CooccurrencePreferences.PROPERTIES, WordProperty.fromListToPreferenceString(this.pProperties));
+
+		if (pQuery != null) {
+			this.saveParameter(CooccurrencePreferences.QUERY, pQuery.getQueryString());
+		}
+
+		if (pStructuralUnitLimit != null) {
+			this.saveParameter(CooccurrencePreferences.STRUCTURE_LIMIT, this.pStructuralUnitLimit.getName());
+		}
+
 		return true;
 	}
-
 	
-	
-	
 	public void setQuery(Query query) {
 		this.pQuery = query;
 	}
