Index: tmp/org.txm.ca.rcp/plugin.xml
===================================================================
--- tmp/org.txm.ca.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.ca.rcp/plugin.xml	(revision 1005)
@@ -120,6 +120,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/adapters/CAAdapterFactory.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/adapters/CAAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/adapters/CAAdapterFactory.java	(revision 1005)
@@ -33,7 +33,7 @@
 	 */
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof CA)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof CA)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeIndex.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeIndex.java	(revision 1004)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeIndex.java	(revision 1005)
@@ -79,7 +79,7 @@
 				index = (Index) selection;
 			}
 			else {
-				return super.logCanNotCompute(selection);
+				return super.logCanNotExecuteCommand(selection);
 			}
 		}
 		
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeLexicon.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeLexicon.java	(revision 1004)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeLexicon.java	(revision 1005)
@@ -54,7 +54,7 @@
 //			index = (Index) selection;
 //		}
 		else {
-			super.logCanNotCompute(selection);
+			super.logCanNotExecuteCommand(selection);
 		}
 		
 		open(index);
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/adapters/IndexAdapterFactory.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/adapters/IndexAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/adapters/IndexAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Index)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Index)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/adapters/LexiconAdapterFactory.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/adapters/LexiconAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/adapters/LexiconAdapterFactory.java	(revision 1005)
@@ -25,7 +25,7 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Lexicon)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Lexicon)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.index.rcp/plugin.xml
===================================================================
--- tmp/org.txm.index.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.index.rcp/plugin.xml	(revision 1005)
@@ -172,6 +172,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
       <factory
             adaptableType="org.txm.index.core.functions.Lexicon"
@@ -179,6 +182,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
@@ -315,10 +321,15 @@
             commandId="org.txm.cooccurrence.rcp.handlers.ComputeCooccurrences">
          <activeWhen>
          <and>
+            <or>
                <reference
                      definitionId="IndexEditorActive">
                </reference>
                <reference
+                     definitionId="LexiconEditorActive">
+               </reference>
+            </or>
+               <reference
                      definitionId="SendSelectionContextNotActive">
                </reference>
                </and>
Index: tmp/org.txm.progression.rcp/plugin.xml
===================================================================
--- tmp/org.txm.progression.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.progression.rcp/plugin.xml	(revision 1005)
@@ -127,6 +127,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 1005)
@@ -8,6 +8,7 @@
 import java.util.List;
 import java.util.Properties;
 
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.KeyEvent;
@@ -25,6 +26,7 @@
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.chartsengine.r.core.themes.DefaultTheme;
 import org.txm.chartsengine.rcp.editors.ChartEditor;
+import org.txm.core.messages.TXMCoreMessages;
 import org.txm.core.results.Parameter;
 import org.txm.core.results.TXMResult;
 import org.txm.progression.core.functions.Progression;
@@ -39,7 +41,6 @@
 import org.txm.rcp.swt.widget.structures.StructuralUnitPropertiesComboViewer;
 import org.txm.rcp.swt.widget.structures.StructuralUnitsComboViewer;
 import org.txm.rcp.swt.widget.structures.StructuralUnitsCombosGroup;
-import org.txm.searchengine.cqp.corpus.Corpus;
 import org.txm.searchengine.cqp.corpus.query.Query;
 import org.txm.utils.io.IOUtils;
 import org.txm.utils.logger.Log;
@@ -523,6 +524,9 @@
 		
 		if(count > maxCount)	{
 			Log.info("The query already exists: " + query);
+			MessageDialog d = new MessageDialog(getShell(), TXMCoreMessages.error_error2, null,
+					ProgressionUIMessages.error_thatQueryIsAlreadyRepresentedByACurveInTheGraphic, 0, new String[] { TXMCoreMessages.common_ok}, 0);
+			d.open();
 			return true;
 		}
 		return false;
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/handlers/ComputeProgression.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/handlers/ComputeProgression.java	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/handlers/ComputeProgression.java	(revision 1005)
@@ -83,7 +83,7 @@
 			}
 			// Error
 			else {
-				return this.logCanNotCompute(selection);
+				return this.logCanNotExecuteCommand(selection);
 			}
 		}
 
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/adapters/ProgressionAdapterFactory.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/adapters/ProgressionAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/adapters/ProgressionAdapterFactory.java	(revision 1005)
@@ -2,7 +2,6 @@
 package org.txm.progression.rcp.adapters;
 
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.FrameworkUtil;
 import org.txm.progression.core.functions.Progression;
@@ -25,11 +24,10 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Progression)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Progression)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
-					// TODO Auto-generated method stub
 					return ICON;
 				}
 			};
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/ProgressionUIMessages.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/ProgressionUIMessages.java	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/ProgressionUIMessages.java	(revision 1005)
@@ -27,6 +27,9 @@
 	public static String ProgressionDialog_3;
 	public static String ProgressionDialog_7;
 	
+	
+	public static String error_thatQueryIsAlreadyRepresentedByACurveInTheGraphic;
+	
 	static {
 		// initializes resource bundle
 		Utf8NLS.initializeMessages(BUNDLE_NAME, ProgressionUIMessages.class);
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages.properties	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages.properties	(revision 1005)
@@ -11,3 +11,5 @@
 ProgressionPreferencePage_3 = Default chart type is cumulative
 ProgressionPreferencePage_6 = Repeat the values of the structure properties
 ProgressionPreferencePage_7 = Bande size multiplier
+
+error_thatQueryIsAlreadyRepresentedByACurveInTheGraphic = That query is already represented by a curve in the graphic. Please use another query.
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages_ru.properties	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages_ru.properties	(revision 1005)
@@ -11,3 +11,5 @@
 ProgressionPreferencePage_3 = Кумулятивный граф прогрессии
 ProgressionPreferencePage_6 = Повторять значения с свойств структур
 ProgressionPreferencePage_7 = Масштаб границ структур
+
+error_thatQueryIsAlreadyRepresentedByACurveInTheGraphic = 
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages_fr.properties	(revision 1004)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/messages/messages_fr.properties	(revision 1005)
@@ -11,3 +11,5 @@
 ProgressionPreferencePage_3 = Graphique de progression cumulatif par défault
 ProgressionPreferencePage_6 = Répéter les valeurs de propriétés de structures
 ProgressionPreferencePage_7 = Échelle des limites de structures
+
+error_thatQueryIsAlreadyRepresentedByACurveInTheGraphic = Cette requête est déjà présente dans le graphique.
Index: tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/adapters/TextsBalanceAdapterFactory.java
===================================================================
--- tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/adapters/TextsBalanceAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/adapters/TextsBalanceAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof TextsBalance)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof TextsBalance)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.textsbalance.rcp/plugin.xml
===================================================================
--- tmp/org.txm.textsbalance.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.textsbalance.rcp/plugin.xml	(revision 1005)
@@ -101,6 +101,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
 
Index: tmp/org.txm.concordance.rcp/plugin.xml
===================================================================
--- tmp/org.txm.concordance.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.concordance.rcp/plugin.xml	(revision 1005)
@@ -12,6 +12,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/handlers/ComputeConcordance.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/handlers/ComputeConcordance.java	(revision 1004)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/handlers/ComputeConcordance.java	(revision 1005)
@@ -76,7 +76,7 @@
 			}
 			// Error
 			else {
-				return this.logCanNotCompute(selection);
+				return this.logCanNotExecuteCommand(selection);
 			}
 		}
 		
Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/adapters/ConcordanceAdapterFactory.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/adapters/ConcordanceAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/adapters/ConcordanceAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Concordance)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Concordance)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.referencer.rcp/plugin.xml
===================================================================
--- tmp/org.txm.referencer.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.referencer.rcp/plugin.xml	(revision 1005)
@@ -102,6 +102,9 @@
     <adapter
           type="org.eclipse.ui.model.IWorkbenchAdapter">
     </adapter>
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter2">
+    </adapter>
  </factory>
    </extension>
    <extension
Index: tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/handlers/ComputeReferencer.java
===================================================================
--- tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/handlers/ComputeReferencer.java	(revision 1004)
+++ tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/handlers/ComputeReferencer.java	(revision 1005)
@@ -63,7 +63,7 @@
 		}
 		// Error
 		else	{
-			return super.logCanNotCompute(selection);
+			return super.logCanNotExecuteCommand(selection);
 		}
 		
 		TXMEditor.openEditor(referencer, ReferencerEditor.class.getName());
Index: tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/adapters/ReferencerAdapterFactory.java
===================================================================
--- tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/adapters/ReferencerAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/adapters/ReferencerAdapterFactory.java	(revision 1005)
@@ -24,7 +24,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Referencer)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Referencer)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java	(revision 1004)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java	(revision 1005)
@@ -107,7 +107,9 @@
 		super(corpus);
 		
 		this.name = corpus.getName()+ "_" + structure.getName() + "_" + property.getName(); //$NON-NLS-1$ //$NON-NLS-2$
+		
 		Log.finest(NLS.bind(TXMCoreMessages.NEW_PARTION, this.getCorpus(), this.name)); 
+		
 		long start = System.currentTimeMillis();
 		this.structure = structure;
 		this.property = property;
Index: tmp/org.txm.queryindex.rcp/plugin.xml
===================================================================
--- tmp/org.txm.queryindex.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.queryindex.rcp/plugin.xml	(revision 1005)
@@ -20,6 +20,9 @@
     <adapter
           type="org.eclipse.ui.model.IWorkbenchAdapter">
     </adapter>
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter2">
+    </adapter>
  </factory>
          </extension>
          
Index: tmp/org.txm.lexicaltable.rcp/plugin.xml
===================================================================
--- tmp/org.txm.lexicaltable.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.lexicaltable.rcp/plugin.xml	(revision 1005)
@@ -176,6 +176,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
       <factory
             adaptableType="org.txm.functions.intertextualdistance.InterTextDistance"
@@ -183,6 +186,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/ComputeLexicalTable.java
===================================================================
--- tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/ComputeLexicalTable.java	(revision 1004)
+++ tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/ComputeLexicalTable.java	(revision 1005)
@@ -168,7 +168,7 @@
 		}
 		// Error
 		else	{
-			this.logCanNotCompute(selection);
+			this.logCanNotExecuteCommand(selection);
 		}
 		
 		TXMEditor.openEditor(lexicalTable, LexicalTableEditor.class.getName());
Index: tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/adapters/InterTextDistanceAdapterFactory.java
===================================================================
--- tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/adapters/InterTextDistanceAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/adapters/InterTextDistanceAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof InterTextDistance)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof InterTextDistance)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/adapters/LexicalTableAdapterFactory.java
===================================================================
--- tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/adapters/LexicalTableAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/adapters/LexicalTableAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof LexicalTable)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof LexicalTable)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/handlers/ComputeProperties.java
===================================================================
--- tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/handlers/ComputeProperties.java	(revision 1004)
+++ tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/handlers/ComputeProperties.java	(revision 1005)
@@ -66,7 +66,7 @@
 		}
 		// Error
 		else	{
-			return super.logCanNotCompute(selection);
+			return super.logCanNotExecuteCommand(selection);
 		}
 		
 		TXMEditor.openEditor(information, PropertiesEditor.class.getName());
Index: tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/adapters/PropertiesAdapterFactory.java
===================================================================
--- tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/adapters/PropertiesAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/adapters/PropertiesAdapterFactory.java	(revision 1005)
@@ -25,7 +25,7 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Properties)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Properties)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.properties.rcp/plugin.xml
===================================================================
--- tmp/org.txm.properties.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.properties.rcp/plugin.xml	(revision 1005)
@@ -37,6 +37,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/SendEditionTo.java
===================================================================
--- tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/SendEditionTo.java	(revision 1004)
+++ tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/SendEditionTo.java	(revision 1005)
@@ -48,8 +48,8 @@
 		
 		IEditionEditor editor = (IEditionEditor) this.getActiveEditor(event);
 		String query = ((IEditionEditor)editor).getTextSelection();
-		query = query.replaceAll("\n", "").trim();
-		query = "\"" + Query.addBackSlash(query) + "\"";
+		query = query.replaceAll("\n", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
+		query = "\"" + Query.addBackSlash(query) + "\""; //$NON-NLS-1$ //$NON-NLS-2$
 		return query;
 	}
 	
Index: tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/handlers/ComputeWordCloud.java
===================================================================
--- tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/handlers/ComputeWordCloud.java	(revision 1004)
+++ tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/handlers/ComputeWordCloud.java	(revision 1005)
@@ -101,7 +101,7 @@
 			}
 			// Error
 			else	{
-				return super.logCanNotCompute(selection);
+				return super.logCanNotExecuteCommand(selection);
 			}
 
 		}
Index: tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/adapters/WordCloudAdapterFactory.java
===================================================================
--- tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/adapters/WordCloudAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/adapters/WordCloudAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof WordCloud)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof WordCloud)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.wordcloud.rcp/plugin.xml
===================================================================
--- tmp/org.txm.wordcloud.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.wordcloud.rcp/plugin.xml	(revision 1005)
@@ -114,6 +114,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.partition.rcp/plugin.xml
===================================================================
--- tmp/org.txm.partition.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.partition.rcp/plugin.xml	(revision 1005)
@@ -105,6 +105,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
       <factory
             adaptableType="org.txm.searchengine.cqp.corpus.Partition"
@@ -112,6 +115,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/handlers/ComputePartitionDimensionsBarChart.java
===================================================================
--- tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/handlers/ComputePartitionDimensionsBarChart.java	(revision 1004)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/handlers/ComputePartitionDimensionsBarChart.java	(revision 1005)
@@ -79,7 +79,7 @@
 		}
 		// Error
 		else	{
-			return super.logCanNotCompute(selection);
+			return super.logCanNotExecuteCommand(selection);
 		}
 		
 		// FIXME: Pie chart tests
Index: tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/adapters/PartitionAdapterFactory.java
===================================================================
--- tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/adapters/PartitionAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/adapters/PartitionAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Partition)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Partition)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/adapters/PartitionDimensionsAdapterFactory.java
===================================================================
--- tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/adapters/PartitionDimensionsAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/adapters/PartitionDimensionsAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof PartitionDimensions)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof PartitionDimensions)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToQueryable.java
===================================================================
--- tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToQueryable.java	(revision 1004)
+++ tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToQueryable.java	(revision 1005)
@@ -30,7 +30,6 @@
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.core.results.TXMResult;
@@ -38,7 +37,7 @@
 import org.txm.utils.logger.Log;
 
 /**
- * Base command to send a selection to a command that needs a query to compute the new result.
+ * Base command to send a selection to a command that needs one or more queries to compute the new result.
  * 
  * @author mdecorde
  * @author sjacquot
@@ -68,16 +67,12 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		
-		ISelection isel = HandlerUtil.getCurrentSelection(event);
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
 		
-//		IStructuredSelection selection = (IStructuredSelection) isel;
-//		if (selection != null) {
+		if (selection != null) {
 			
-			String query = this.createQuery(event, isel);
-			String queries = null;
-			if (query == null) {
-				queries = this.createQueries(event, isel);
-			}
+			String query = this.createQuery(event, selection);
+			String queries = this.createQueries(event, selection);
 			
 			if(query.isEmpty() && queries.isEmpty()) {
 				Log.severe("No query was set, command canceled.");
@@ -92,10 +87,10 @@
 			
 			BaseAbstractHandler.executeSendToCommand(event.getCommand().getId(), uuid);
 			
-//		}
-//		else	{
-//			this.logCanNotCompute(selection);
-//		}
+		}
+		else	{
+			this.logCanNotExecuteCommand(selection);
+		}
 		return null;
 	}
 
Index: tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToMatchable.java
===================================================================
--- tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToMatchable.java	(revision 1004)
+++ tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToMatchable.java	(revision 1005)
@@ -79,7 +79,7 @@
 			BaseAbstractHandler.executeSendToCommand(event.getCommand().getId(), uuid);
 		}
 		else	{
-			this.logCanNotCompute(selection);
+			this.logCanNotExecuteCommand(selection);
 		}
 		return null;
 	}
Index: tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/adapters/AHCAdapterFactory.java
===================================================================
--- tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/adapters/AHCAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/adapters/AHCAdapterFactory.java	(revision 1005)
@@ -32,7 +32,7 @@
 	 */
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof AHC)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof AHC)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.ahc.rcp/plugin.xml
===================================================================
--- tmp/org.txm.ahc.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.ahc.rcp/plugin.xml	(revision 1005)
@@ -101,6 +101,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java	(revision 1005)
@@ -50,9 +50,9 @@
 	public static final String EXPORT_ENCODING = "export_encoding"; //$NON-NLS-1$
 
 	/** The Constant EXPORT_COLSEPARATOR. */
-	public static final String EXPORT_COLSEPARATOR = "export_colseparator"; //$NON-NLS-1$
+	public static final String EXPORT_COL_SEPARATOR = "export_colseparator"; //$NON-NLS-1$
 	/** The Constant EXPORT_TXTSEPARATOR. */
-	public static final String EXPORT_TXTSEPARATOR = "export_txtseparator"; //$NON-NLS-1$
+	public static final String EXPORT_TXT_SEPARATOR = "export_txtseparator"; //$NON-NLS-1$
 
 
 	/**
@@ -64,7 +64,7 @@
 	/**
 	 * To enable/disable the results persistence (save after a computing and load at Toolbox start).
 	 */
-	public static final String PERSISTENCE_ENABLED = "persistence_enabled"; //$NON-NLS-1$
+	public static final String AUTO_PERSISTENCE_ENABLED = "auto_persistence_enabled"; //$NON-NLS-1$
 
 	@Override
 	public void initializeDefaultPreferences() {
@@ -89,12 +89,12 @@
 		preferences.put(TBXPreferences.METADATA_COLSEPARATOR, ","); //$NON-NLS-1$
 		preferences.put(TBXPreferences.EMPTY_PROPERTY_VALUE_CODE, "__UNDEF__"); //$NON-NLS-1$
 		
-		preferences.put(EXPORT_COLSEPARATOR, "\t"); //$NON-NLS-1$
+		preferences.put(EXPORT_COL_SEPARATOR, "\t"); //$NON-NLS-1$
 		preferences.put(EXPORT_ENCODING, System.getProperty("file.encoding")); //$NON-NLS-1$
-		preferences.put(EXPORT_TXTSEPARATOR, ""); //$NON-NLS-1$
+		preferences.put(EXPORT_TXT_SEPARATOR, ""); //$NON-NLS-1$
 		preferences.putBoolean(EXPORT_SHOW, false);
 		
 		preferences.putBoolean(SHOW_ALL_RESULT_NODES, false);
-		preferences.putBoolean(PERSISTENCE_ENABLED, true);
+		preferences.putBoolean(AUTO_PERSISTENCE_ENABLED, true);
 	}
 }
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 1005)
@@ -8,6 +8,7 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Set;
@@ -1197,7 +1198,7 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-
+		Collections.sort(resultsNodesQualifiers);
 		return resultsNodesQualifiers;
 	}
 
Index: tmp/org.txm.core/src/java/org/txm/core/results/comparators/Comparators.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/comparators/Comparators.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/results/comparators/Comparators.java	(revision 1005)
@@ -11,6 +11,7 @@
 
 /**
  * Class to manage different comparators for a sorting type.
+ * 
  * @author sjacquot
  *
  */
Index: tmp/org.txm.core/src/java/org/txm/core/results/comparators/MultipleComparators.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/comparators/MultipleComparators.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/results/comparators/MultipleComparators.java	(revision 1005)
@@ -16,9 +16,14 @@
  */
 public class MultipleComparators implements Comparator<TXMResult> {
 	
+	/**
+	 * Comparators to use.
+	 */
 	protected ArrayList<Comparator<TXMResult>> comparators;
 	 
 	/**
+	 * Creates a comparator dedicated to multiple chained sorting.
+	 * The comparison process sequentially calls the specified comparator comparison methods.
 	 * 
 	 * @param comparators
 	 */
Index: tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1005)
@@ -136,10 +136,15 @@
 
 
 	/**
-	 * Persistable state.
+	 * Internal persistable state.
 	 */
 	protected boolean persistable;
 	
+	/**
+	 * User persistable state.
+	 */
+	protected boolean userPersistable;
+	
 
 	/**
 	 * Creates a new TXMResult, child of the specified parent.
@@ -196,6 +201,7 @@
 
 		this.dirty = true;
 		this.persistable = true;
+		this.userPersistable = false;
 		
 
 		// retrieving parent from UUID
@@ -964,6 +970,18 @@
 		return false;
 	}
 
+	/**
+	 * Deletes all non persistent results.
+	 */
+	synchronized public static void deleteAllNonPersistentResults() {
+		ArrayList<TXMResult> results = Toolbox.workspace.getDeepChildren();
+		for (int i = 0; i < results.size(); i++) {
+			if(!results.get(i).mustBePersisted())	{ 
+				Log.finest("TXMResult.deleteAllNonPersistentResults(): Deleting result " + results.get(i).getSimpleName());
+			}
+		}
+	}
+	
 
 	/**
 	 * Gets a child specified by its index in the children list.
@@ -1646,9 +1664,8 @@
 			Log.severe("TXMResult.compute():" + this.getClass().getSimpleName() + ": failed to save parameters for " + this.getName() + ".");
 		}
 
-		// FIXME: file persistence flush tests
-		if (this.persistable && TBXPreferences.getBoolean(TBXPreferences.PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
-			Log.finest("TXMResult.compute(): flushing local preferences node in file for persistence tests.");
+		// file persistence flush
+		if (this.mustBePersisted()) {
 			TXMPreferences.flush(this);
 		}
 
@@ -1670,6 +1687,16 @@
 	 */
 	protected abstract boolean _compute() throws Exception;
 
+	
+	/***
+	 * Checks if the result must be persisted according to the persistence global preference or the user persistable state.
+	 * @return
+	 */
+	public boolean mustBePersisted()	{
+		return (this.persistable && TBXPreferences.getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)
+				|| this.userPersistable);
+	}
+	
 	/**
 	 * 
 	 * @return the array of extensions to show in the FileDialog SWT widget
@@ -1859,4 +1886,28 @@
 	public String getLazyName() {
 		return lazyName;
 	}
+
+	/**
+	 * @return the userPersistable
+	 */
+	public boolean isUserPersistable() {
+		return userPersistable;
+	}
+
+	/**
+	 * @param userPersistable the userPersistable to set
+	 */
+	public void setUserPersistable(boolean userPersistable) {
+		this.userPersistable = userPersistable;
+		Log.finest("TXMResult.setUserPersistable(): " + userPersistable);
+	}
+	
+	/**
+	 * Swaps the user persistable state. 
+	 */
+	public void swapUserPersistableState()	{
+		this.setUserPersistable(!this.userPersistable);
+	}
+	
+
 }
Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages_ru.properties	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages_ru.properties	(revision 1005)
@@ -1,4 +1,8 @@
 
+ApplicationWorkbenchAdvisor_13 = ** Не удалось создать папку TXMHOME : {0}
+ApplicationWorkbenchAdvisor_39 = Не хватает папки в директории установки TXM : {0}
+ApplicationWorkbenchAdvisor_40 = ** Не удалось скопировать файлы из папки TXMINSTALL в TXMHOME: {0}
+
 common_delete          = удалить
 common_description     = Описание
 common_frequency       = Частотность
@@ -13,6 +17,4 @@
 common_structure       = Структура
 common_units           = Единицы
 
-ApplicationWorkbenchAdvisor_13          = ** Не удалось создать папку TXMHOME : {0}
-ApplicationWorkbenchAdvisor_39          = Не хватает папки в директории установки TXM : {0}
-ApplicationWorkbenchAdvisor_40          = ** Не удалось скопировать файлы из папки TXMINSTALL в TXMHOME: {0}
+error_error2 = 
Index: tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java	(revision 1005)
@@ -25,6 +25,7 @@
 	public static String common_mode;
 	public static String common_numberOfLines;
 	public static String common_ok;
+
 	public static String common_pleaseWait;
 	public static String common_properties;
 	public static String common_property;
@@ -37,6 +38,7 @@
 	public static String common_frequency;
 
 	public static String error_error;
+	public static String error_error2;
 	
 	public static String ApplicationWorkbenchAdvisor_13;
 	public static String ApplicationWorkbenchAdvisor_14;
Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties	(revision 1005)
@@ -81,7 +81,6 @@
 
 Error_CONNECTION_FAILED = ** Echec de connexion au moteur de recherche avec les paramètres suivants : 
 
-
 FMAX_1 = Fmax 
 
 FilterManager_0 = ** Erreur du gestionnaire de filtre : initialisation 
@@ -110,7 +109,7 @@
 MemCqiClient_7  = Code CQP inconnu : b1 
 MemCqiClient_9  = b2 
 
-NEW_PARTION = Création d''une nouvelle partition du corpus {0} : {1}
+NEW_PARTION = Création d''une nouvelle partition du corpus {0} : {1}.
 
 NetCqiClient_1  = Dernière erreur Cqi : 
 NetCqiClient_3  = Dernière erreur CQP : 
@@ -297,6 +296,7 @@
 common_structure       = Structure
 common_units           = Unités
 
-error_error = ** Erreur : {0}.
+error_error  = ** Erreur : {0}.
+error_error2 = Erreur
 
 info_deletingPartition = Suppression de la partition {0}.
Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties	(revision 1005)
@@ -115,7 +115,7 @@
 MemCqiClient_7  = Unknown CQP code: b1 
 MemCqiClient_9  = b2 
 
-NEW_PARTION = Creating new partion of corpus {0}: {1}
+NEW_PARTION = Creating new partion of corpus {0}: {1}.
 
 NetCqiClient_1  = getLastCQiError: 
 NetCqiClient_3  = getLastCQPError: 
@@ -309,6 +309,7 @@
 common_structure       = Structure
 common_units           = Units
 
-error_error = ** Error: {0}.
+error_error  = ** Error: {0}.
+error_error2 = Error
 
 info_deletingPartition = Deleting partition {0}.
Index: tmp/org.txm.core/src/java/org/txm/core/engines/EngineType.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/engines/EngineType.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/core/engines/EngineType.java	(revision 1005)
@@ -24,7 +24,7 @@
 	final private String description;
 
 	/**
-	 * 
+	 * Creates a new engine type.
 	 * @param description
 	 */
 	private EngineType(String description) {
Index: tmp/org.txm.core/src/java/org/txm/Toolbox.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1004)
+++ tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1005)
@@ -262,14 +262,14 @@
 			}
 			pluginsPostinstallation();
 		} catch(Exception e) {
-			Log.severe("Error while loading post-installaing plugins.");
+			Log.severe("Error while loading plugins post-installation.");
 			e.printStackTrace();
 		}
 
 
 		// FIXME: tmp persistence tests: Reload saved results
-		if (TBXPreferences.getBoolean(TBXPreferences.PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
-			Log.finest("Toolbox.initialize(): reloading persitent results...");
+//		if (TBXPreferences.getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
+			Log.info("Toolbox.initialize(): reloading persitent results...");
 			ArrayList<String> resultsNodesQualifiers = TXMPreferences.getAllResultsNodesQualifiers();
 			for (String nodeQualifier : resultsNodesQualifiers) {
 				
@@ -291,14 +291,16 @@
 					String className = TXMPreferences.getString("class", nodeQualifier); //$NON-NLS-1$
 					Class<?> cl = bundle.loadClass(className);
 					Constructor<?> cons = cl.getConstructor(String.class);
-					cons.newInstance(nodeQualifier);
+					TXMResult result = (TXMResult) cons.newInstance(nodeQualifier);
+					result.setUserPersistable(true);
+					
 				}
 				catch (Exception e) {
 					// TODO Auto-generated catch block
 					e.printStackTrace();
 				}
 			}
-		}
+//		}
 
 
 
@@ -498,11 +500,13 @@
 			// FIXME: tmp solution before IProject: remove all not persistable result nodes
 			//TXMPreferences.deleteAllNotPersistableResultsNodes();
 			// FIXME: tmp solution before IProject: remove result local nodes if persistence preference is disabled
-			if (!TBXPreferences.getBoolean(TBXPreferences.PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
-				TXMPreferences.deleteAllResultsNodes();
-			}
-
+//			if (!TBXPreferences.getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
+//				TXMPreferences.deleteAllResultsNodes();
+//			}
+			// FIXME: other tmp solution
+			TXMResult.deleteAllNonPersistentResults();
 			
+			
 			if(Toolbox.workspace != null) {
 				Toolbox.workspace.save();
 			}
@@ -518,6 +522,7 @@
 		}
 	}
 
+	
 	/**
 	 * Shut the toolbox workspace down.
 	 */
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java	(revision 1004)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java	(revision 1005)
@@ -53,6 +53,7 @@
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.swt.dialog.LastOpened;
 import org.txm.rcp.utils.JobHandler;
+import org.txm.utils.logger.Log;
 
 /**
  * Exports chart using charts engine export.
@@ -117,13 +118,13 @@
 			try {
 				file.createNewFile();
 			} catch (IOException e1) {
-				System.err.println(NLS.bind(TXMUIMessages.ExportResult_3, file, e1));
+				Log.severe(NLS.bind(TXMUIMessages.ExportResult_3, file, e1));
 			}
 			if (!file.canWrite()) {
-				System.err.println(NLS.bind(TXMUIMessages.ExportResult_5, file));
+				Log.severe(NLS.bind(TXMUIMessages.ExportResult_5, file));
 			}
 			if (!file.isFile()) {
-				System.err.println("Error: " + file + " is not a file"); //$NON-NLS-1$ //$NON-NLS-2$
+				Log.severe("Error: " + file + " is not a file"); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 
 			JobHandler jobhandler = new JobHandler(TXMUIMessages.ExportResult_0) {
@@ -138,7 +139,7 @@
 
 						if (file.exists()) {
 
-							System.out.println(NLS.bind(TXMUIMessages.ExportResult_2, file.getAbsolutePath(), outputFormat.toUpperCase()));
+							Log.info(NLS.bind(TXMUIMessages.ExportResult_2, file.getAbsolutePath(), outputFormat.toUpperCase()));
 
 							// Open internal editor in the UI thread
 							if (TXMPreferences.getBoolean(TBXPreferences.EXPORT_SHOW, TBXPreferences.PREFERENCES_NODE))	{
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditorInput.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditorInput.java	(revision 1004)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditorInput.java	(revision 1005)
@@ -2,7 +2,6 @@
 
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IPersistableElement;
-import org.txm.chartsengine.core.ChartsEngine;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.chartsengine.core.results.ChartResult;
 import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
@@ -29,9 +28,6 @@
 	 */
 	protected Object chartContainer;
 
-	
-	//protected Object chart;
-	
 	/**
 	 * Creates a chart editor input linked to the current SWT charts components provider.
 	 * @param result
@@ -64,19 +60,9 @@
 		super(result);
 		this.swtChartsComponentsProvider = swtComponentsProvider;
 		this.chartContainer = chartContainer;
-		
-//		// check that the charts engine used for the result matches the SWT components provider otherwise fin a suitable components provider
-//		ChartsEngine chartsEngine = ChartsEngine.getChartsEngine(result); 
-//		if(chartsEngine != swtComponentsProvider.getChartsEngine())	{
-//			this.swtChartsComponentsProvider = SWTChartsComponentsProvider.getComponentsProvider(chartsEngine);
-//			System.err.println("ChartEditorInput.ChartEditorInput(): charts engine used to create the chart is not the current one. The SWT components provider has been changed to match it: " + this.swtChartsComponentsProvider + ".");
-//		}
-		
 	}
-
 	
 	
-	
 	@Override
 	public boolean exists() {
 		// TODO Auto-generated method stub
Index: tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java
===================================================================
--- tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java	(revision 1004)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java	(revision 1005)
@@ -19,64 +19,62 @@
 	// auto populate the preference node qualifier from the current bundle id
 	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(ChartsEnginePreferences.class).getSymbolicName();
 
-	public static final String PREFERENCES_PREFIX = "charts_engine_"; //$NON-NLS-1$
-	
 	/**
 	 * The name of the current charts engine.
 	 */
-	public final static String CURRENT_NAME = PREFERENCES_PREFIX +  "current_name"; //$NON-NLS-1$
+	public final static String CURRENT_NAME = "current_name"; //$NON-NLS-1$
 	
 	
 	/**
 	 * Constant for showing title or not in the charts.
 	 */
-	public final static String SHOW_TITLE = PREFERENCES_PREFIX +  "show_title"; //$NON-NLS-1$
+	public final static String SHOW_TITLE = "show_title"; //$NON-NLS-1$
 
 
 	/**
 	 * Constant for showing legend or not in the charts.
 	 */
-	public final static String SHOW_LEGEND = PREFERENCES_PREFIX +  "show_legend"; //$NON-NLS-1$
+	public final static String SHOW_LEGEND = "show_legend"; //$NON-NLS-1$
 
 
 	/**
 	 * Constant for showing grid/lines or not in the charts.
 	 */
-	public final static String SHOW_GRID = PREFERENCES_PREFIX +  "show_grid"; //$NON-NLS-1$
+	public final static String SHOW_GRID = "show_grid"; //$NON-NLS-1$
 
 	
 	/**
 	 * Constant for the color mode (colors, grayscale, monochrome, B&W).
 	 */
-	public final static String RENDERING_COLORS_MODE = PREFERENCES_PREFIX +  "colors_mode"; //$NON-NLS-1$
+	public final static String RENDERING_COLORS_MODE = "colors_mode"; //$NON-NLS-1$
 	
 	
 	/**
 	 * Constant for the color to use when in monochrome mode.
 	 */
-	public final static String MONOCHROME_COLOR = PREFERENCES_PREFIX +  "monochrome_color"; //$NON-NLS-1$
+	public final static String MONOCHROME_COLOR = "monochrome_color"; //$NON-NLS-1$
 	
 	/**
 	 * Constant for the default export format.
 	 */
-	public static final String DEFAULT_EXPORT_FORMAT = PREFERENCES_PREFIX +  "default_export_format"; //$NON-NLS-1$
+	public static final String DEFAULT_EXPORT_FORMAT = "default_export_format"; //$NON-NLS-1$
 	
 	/**
 	 * Constant for the font.
 	 */
-	public final static String FONT = PREFERENCES_PREFIX +  "font"; //$NON-NLS-1$
+	public final static String FONT = "font"; //$NON-NLS-1$
 	
 	/**
 	 * Same style for all lines.
 	 */
-	public static final String MULTIPLE_LINE_STROKES = PREFERENCES_PREFIX + "multiple_line_strokes"; //$NON-NLS-1$
+	public static final String MULTIPLE_LINE_STROKES = "multiple_line_strokes"; //$NON-NLS-1$
 	
 
 	
 	
 	
 	// local result preferences
-	public final static String CHART_TYPE = PREFERENCES_PREFIX +  "chart_type"; //$NON-NLS-1$
+	public final static String CHART_TYPE = "chart_type"; //$NON-NLS-1$
 	
 	
 	
@@ -95,10 +93,7 @@
 		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
 		
 		preferences.put(CURRENT_NAME, "jfreechart_charts_engine"); //$NON-NLS-1$
-		// FIXME: for build tests
-		//preferences.put(CURRENT_NAME, "r_charts_engine"); //$NON-NLS-1$
 		preferences.put(DEFAULT_EXPORT_FORMAT, "svg"); //$NON-NLS-1$
-
 		
 		initializeChartsEngineSharedPreferences(preferences);
 	}
Index: tmp/org.txm.querycooccurrences.rcp/plugin.xml
===================================================================
--- tmp/org.txm.querycooccurrences.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.querycooccurrences.rcp/plugin.xml	(revision 1005)
@@ -9,6 +9,9 @@
          <adapter
             type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
       <factory
             adaptableType="org.txm.functions.coocmatrix.QueryCooccurrence"
@@ -16,6 +19,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/BaseAbstractHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/BaseAbstractHandler.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/BaseAbstractHandler.java	(revision 1005)
@@ -1,6 +1,7 @@
 package org.txm.rcp.handlers;
 
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.commands.AbstractHandler;
@@ -89,19 +90,29 @@
 	public Object getCorporaViewSelectedObject(ExecutionEvent event)	{
 		
 		//FIXME: check this, because it may be too linked to the Corpora view
-		Object o = CorporaView.getSelection();
+		Object o = CorporaView.getFirstSelectedObject();
 		// otherwise use this code
 		// yeah but selection might be tricky
 		//Object o = (IStructuredSelection) HandlerUtil.getCurrentSelection(event).getFirstElement();
 		if (o == null) {
-			Log.severe("BaseAbstractHandler.getSelection(): current selection is null.");
+			Log.severe("BaseAbstractHandler.getCorporaViewSelectedObject(): current selection is null.");
 		}
 		
-		Log.info("BaseAbstractHandler.getSelection(): selected object = " + o);
+		Log.info("BaseAbstractHandler.getCorporaViewSelectedObject(): selected object = " + o);
 		
 		return o;
 	}
 
+	/**
+	 * Gets the current selected objects.
+	 * @param event
+	 * @return
+	 */
+	public List<?> getCorporaViewSelectedObjects(ExecutionEvent event)	{
+		//FIXME: check this, because it may be too linked to the Corpora view
+		return CorporaView.getSelectedObjects();
+	}
+	
 	public static IViewPart getView(ExecutionEvent event, String id) throws PartInitException {
 		IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
 		return page.showView(id);
@@ -143,7 +154,7 @@
 	 * Logs a severe entry.
 	 * @param selection
 	 */
-	protected boolean logCanNotCompute(Object selection)	{
+	protected boolean logCanNotExecuteCommand(Object selection)	{
 		Log.severe("Can not execute command " + this.getClass() + " with the selection: " + selection + ".");
 		return false;
 	}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java	(revision 1005)
@@ -115,9 +115,9 @@
 			}
 
 			final String encoding = TXMPreferences.getString(TBXPreferences.EXPORT_ENCODING, TBXPreferences.PREFERENCES_NODE);
-			String _colseparator = TXMPreferences.getString(TBXPreferences.EXPORT_COLSEPARATOR, TBXPreferences.PREFERENCES_NODE);
+			String _colseparator = TXMPreferences.getString(TBXPreferences.EXPORT_COL_SEPARATOR, TBXPreferences.PREFERENCES_NODE);
 			final String colseparator = _colseparator;
-			String _txtseparator = TXMPreferences.getString(TBXPreferences.EXPORT_TXTSEPARATOR, TBXPreferences.PREFERENCES_NODE);
+			String _txtseparator = TXMPreferences.getString(TBXPreferences.EXPORT_TXT_SEPARATOR, TBXPreferences.PREFERENCES_NODE);
 			final String txtseparator = _txtseparator;
 
 			JobHandler jobhandler = new JobHandler(TXMUIMessages.ExportResult_0) {
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/SetTXMResultPersistentState.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/SetTXMResultPersistentState.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/SetTXMResultPersistentState.java	(revision 1005)
@@ -0,0 +1,94 @@
+// Copyright © 2010-2013 ENS de Lyon.
+// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
+// Lyon 2, University of Franche-Comté, University of Nice
+// Sophia Antipolis, University of Paris 3.
+// 
+// The TXM platform is free software: you can redistribute it
+// and/or modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation,
+// either version 2 of the License, or (at your option) any
+// later version.
+// 
+// The TXM platform is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE. See the GNU General Public License for more
+// details.
+// 
+// You should have received a copy of the GNU General
+// Public License along with the TXM platform. If not, see
+// http://www.gnu.org/licenses.
+// 
+// 
+// 
+// $LastChangedDate:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcp.handlers.results;
+
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.commands.IElementUpdater;
+import org.eclipse.ui.menus.UIElement;
+import org.txm.core.preferences.TXMPreferences;
+import org.txm.core.results.TXMResult;
+import org.txm.rcp.handlers.BaseAbstractHandler;
+import org.txm.rcp.views.corpora.CorporaView;
+
+/**
+ * Swaps the persistence state of the selected TXM result nodes.
+ * 
+ * @author sjacquot
+ * 
+ */
+public class SetTXMResultPersistentState extends BaseAbstractHandler implements IElementUpdater {
+
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// FIXME: multiple selection
+		// FIXME: how to manage the checkbox state? 
+//		List objects = this.getCorporaViewSelectedObjects(event);
+//		if(objects != null)	{
+//			for (int i = 0; i < objects.size(); i++) {
+//				if(objects.get(i) instanceof TXMResult)	{
+//					((TXMResult)objects.get(i)).swapPersistableState();
+//				}
+//			}
+//			//CorporaView.refresh();
+//			return null;
+//		}
+//		else	{
+//			return super.logCanNotExecuteCommand(objects);
+//		}
+		
+		// FIXME: single selection
+		Object object = this.getCorporaViewSelectedObject(event);
+		if(object instanceof TXMResult)	{
+			TXMResult result = ((TXMResult)object);
+			result.swapUserPersistableState();
+			if(result.mustBePersisted())	{
+				TXMPreferences.flush(result);
+			}
+			CorporaView.refresh();
+			return null;
+		}
+		else	{
+			return super.logCanNotExecuteCommand(object);
+		}
+
+	}
+
+	@Override
+	public void updateElement(UIElement element, Map parameters) {
+		Object object = this.getCorporaViewSelectedObject(null);
+		if(object instanceof TXMResult)	{
+			element.setChecked(((TXMResult)object).isUserPersistable());
+		}
+	}
+	
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/SetTXMResultPersistentState.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/CloneTXMResult.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/CloneTXMResult.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/CloneTXMResult.java	(revision 1005)
@@ -27,12 +27,12 @@
 //
 package org.txm.rcp.handlers.results;
 
-import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.txm.core.results.TXMResult;
+import org.txm.rcp.handlers.BaseAbstractHandler;
 import org.txm.rcp.views.corpora.CorporaView;
 
 /**
@@ -41,7 +41,7 @@
  * @author sjacquot
  * 
  */
-public class CloneTXMResult extends AbstractHandler {
+public class CloneTXMResult extends BaseAbstractHandler {
 
 
 	
@@ -60,11 +60,14 @@
 			
 			// FIXME: hierarchy tests
 			//srcNode.addChild(clone);
+			CorporaView.refresh();
+			return null;
 		}
+		else	{
+			return super.logCanNotExecuteCommand(selection);
+		}
+
 		
-		CorporaView.refresh();
-
-		return null;
 	}
 	
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/DeleteObject.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/DeleteObject.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/DeleteObject.java	(revision 1005)
@@ -72,6 +72,7 @@
 public class DeleteObject extends AbstractHandler {
 
 	private static boolean shouldRestartToolbox = false;
+	
 	/* (non-Javadoc)
 	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
 	 */
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScript.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScript.java	(revision 1005)
@@ -190,8 +190,8 @@
 		ExecuteLastGroovyScript.setLastScript(scriptfile, currentRootDir.getName().equals("macro")); // register last groovy script //$NON-NLS-1$
 
 		// get current selection of the corpora view
-		final Object corpusViewSelection = CorporaView.getSelection();
-		final Object corpusViewSelections = CorporaView.getSelections();
+		final Object corpusViewSelection = CorporaView.getFirstSelectedObject();
+		final Object corpusViewSelections = CorporaView.getSelectedObjects();
 
 		final Object selection;
 		final List selections;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyText.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyText.java	(revision 1005)
@@ -113,8 +113,8 @@
 		final String scriptRootDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
 
 		// get current selection of the corpora view
-				final Object corpusViewSelection = CorporaView.getSelection();
-				final Object corpusViewSelections = CorporaView.getSelections();
+				final Object corpusViewSelection = CorporaView.getFirstSelectedObject();
+				final Object corpusViewSelections = CorporaView.getSelectedObjects();
 				final Object selection = null;
 				final List selections = null;
 				
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapterFactory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapterFactory.java	(revision 1005)
@@ -1,8 +1,11 @@
 // Copyright © 2010-2013 ENS de Lyon.
 package org.txm.rcp.adapters;
 
+import java.util.Arrays;
+
 import org.eclipse.core.runtime.IAdapterFactory;
 import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.model.IWorkbenchAdapter2;
 
 
 /**
@@ -14,6 +17,7 @@
  */
 public abstract class TXMResultAdapterFactory implements IAdapterFactory {
 
+	 private static final Class<?>[] ADAPTER_LIST = new Class<?>[] { IWorkbenchAdapter.class, IWorkbenchAdapter2.class};
 
 	/**
 	 * Gets the adapter list.
@@ -22,9 +26,17 @@
 	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
 	 */
 	@Override
-	@SuppressWarnings({"rawtypes" }) //$NON-NLS-1$
+	@SuppressWarnings({"rawtypes"}) //$NON-NLS-1$
 	public Class[] getAdapterList() {
-		return new Class[] { IWorkbenchAdapter.class};
+		return ADAPTER_LIST;
 	}
 
+	/**
+	 * Checks if the factory manage the specified adapter type.
+	 * @param adapterType
+	 * @return
+	 */
+	protected boolean canAdapt(Class adapterType)	{
+		return Arrays.asList(this.getAdapterList()).contains(adapterType);
+	}
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 1005)
@@ -3,7 +3,16 @@
  */
 package org.txm.rcp.adapters;
 
-import org.eclipse.ui.model.IWorkbenchAdapter;
+import java.util.Random;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.model.WorkbenchAdapter;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.results.TXMResult;
 
@@ -14,7 +23,7 @@
  * @author sjacquot
  *
  */
-public abstract class TXMResultAdapter implements IWorkbenchAdapter {
+public abstract class TXMResultAdapter extends WorkbenchAdapter {
 
 	/**
 	 * 
@@ -43,4 +52,41 @@
 		return ((TXMResult) result).getParent();
 	}
 
+	@Override
+	public FontData getFont(Object element) {
+//		PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_ELEMENT);
+//		FontData fontData = Display.getCurrent().getSystemFont().getFontData()[0];
+//		fontData.setStyle(SWT.BOLD);
+//		return fontData;
+		return null;
+	}
+
+	@Override
+    public RGB getForeground(Object element) {
+		if(element instanceof TXMResult && !((TXMResult)element).hasBeenComputedOnce())	{
+	    	Display display = Display.getCurrent();
+	    	Color color = display.getSystemColor(SWT.COLOR_GRAY);
+	    	return color.getRGB();
+		}
+		return null;
+    }
+
+	@Override
+    public RGB getBackground(Object element) {
+		if(element instanceof TXMResult && ((TXMResult)element).isUserPersistable())	{
+	    	Display display = Display.getCurrent();
+	    	Color color = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND);
+
+	    	// FIXME: random color tests
+//	    	Random rnd = new Random();
+//	    	int r = rnd.nextInt(128) + 128; // 128 ... 255
+//	    	int g = rnd.nextInt(128) + 128; // 128 ... 255
+//	    	int b = rnd.nextInt(128) + 128; // 128 ... 255
+//	    	Color blue = new Color(display, r, g, b);
+	    	
+	    	return color.getRGB();
+		}
+		return null;
+    }
+
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 1005)
@@ -8,6 +8,10 @@
 	
 	private static final String BUNDLE_NAME = "org.txm.rcp.messages.messages"; //$NON-NLS-1$
 	
+	public static String preferences_advanced_enableResultsPersistence;
+	public static String preferences_advanced_showAllResultNodesInCorporaView;
+	
+	
 	public static String About_Menu_Label;
 	public static String AdapterFactory_0;
 	public static String AddBase_10;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 1005)
@@ -40,7 +40,6 @@
 ApplicationWorkbenchAdvisor_1           = Initialization of the platform
 ApplicationWorkbenchAdvisor_11          = Loading sample corpora
 ApplicationWorkbenchAdvisor_12          = ** Error: ''TXMHOME'' environment variable is set ({0}), but the directory doesn''t exist:
-
 ApplicationWorkbenchAdvisor_16          = Removing old corpus backup directory {0}.
 ApplicationWorkbenchAdvisor_18          = Corpora backuped: {0}
 ApplicationWorkbenchAdvisor_2           = Loading TXM install preferences
@@ -56,7 +55,6 @@
 ApplicationWorkbenchAdvisor_31          = ** Failed to create TXM default.xml workspace
 ApplicationWorkbenchAdvisor_34          = ** Could not create backup directory :
 ApplicationWorkbenchAdvisor_37          = \ to
-
 ApplicationWorkbenchAdvisor_41          = Failed to set preferences: {0}
 ApplicationWorkbenchAdvisor_43          = Corpora {0} not restored, since this setup provides more recent ones.
 ApplicationWorkbenchAdvisor_43_single   = Corpus {0} not restored, since this setup provides more recent ones.
@@ -650,6 +648,12 @@
 
 SummaryView_0 = No default edition page found for element: 
 
+TXMEditor_0 = Computing 
+TXMEditor_1 = Computing 
+TXMEditor_2 = Computing
+TXMEditor_3 = Parameters
+TXMEditor_7 = Show/Hide command parameters
+
 TablableVector_0 = The two arrays must have the same size.
 
 TableEditor_0 = Can not create a table with the provided information: {0}
@@ -680,11 +684,6 @@
 TxmBrowser_6  = Next page
 TxmBrowser_8  = Next text
 TxmBrowser_9  = Previous text
-TXMEditor_0=Computing 
-TXMEditor_1=Computing 
-TXMEditor_2=Computing
-TXMEditor_3=Parameters
-TXMEditor_7=Show/Hide command parameters
 
 TxtEditor_0 = TextEditor:
 TxtEditor_1 = Encoding found
@@ -702,3 +701,6 @@
 common_refresh                            = Refresh
 
 error_invalidRegularExpression = Invalid regular expression: {0}
+
+preferences_advanced_enableResultsPersistence        = Enable results persistence
+preferences_advanced_showAllResultNodesInCorporaView = Show all result nodes in corpora view
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_ru.properties	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_ru.properties	(revision 1005)
@@ -34,7 +34,6 @@
 ApplicationWorkbenchAdvisor_1           = Инициализация платформы...
 ApplicationWorkbenchAdvisor_11          = Загрузка демонстрационных корпусов
 ApplicationWorkbenchAdvisor_12          = ** Ошибка: переменная среды ''TXMHOME'' задана ({0}), но нет папки: 
-
 ApplicationWorkbenchAdvisor_16          = N/A_Removing old corpus backup directory {0}. 
 ApplicationWorkbenchAdvisor_18          = Corpora backuped: {0} 
 ApplicationWorkbenchAdvisor_2           = Загрузка опций установки TXM из: {0}
@@ -49,7 +48,6 @@
 ApplicationWorkbenchAdvisor_31          = ** Не удалось создать рабочее пространство 'default.xml'
 ApplicationWorkbenchAdvisor_34          = ** Ошибка: не удалсоь создать папку для сохранения корпуса
 ApplicationWorkbenchAdvisor_37          = \ в 
-
 ApplicationWorkbenchAdvisor_41          = ** Не удалось задать опции: {0}
 ApplicationWorkbenchAdvisor_43          = Corpora {0} not restored, since this setup provides more recent ones.
 ApplicationWorkbenchAdvisor_43_single   = Corpus {0} not restored, since this setup provides more recent ones.
@@ -571,3 +569,6 @@
 common_refresh                            = Refresh
 
 error_invalidRegularExpression = Некорректное регулярное выражение: {0}
+
+preferences_advanced_enableResultsPersistence        = 
+preferences_advanced_showAllResultNodesInCorporaView = 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 1005)
@@ -640,3 +640,6 @@
 common_refresh                            = Rafraichir
 
 error_invalidRegularExpression = Expression régulière invalide : {0}
+
+preferences_advanced_enableResultsPersistence        = Activer la perstistance des résultats
+preferences_advanced_showAllResultNodesInCorporaView = Afficher les noeuds de tous les résultats dans la vue corpus
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultLabelProvider.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultLabelProvider.java	(revision 1005)
@@ -1,123 +0,0 @@
-// Copyright © 2010-2013 ENS de Lyon.
-// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
-// Lyon 2, University of Franche-Comté, University of Nice
-// Sophia Antipolis, University of Paris 3.
-// 
-// The TXM platform is free software: you can redistribute it
-// and/or modify it under the terms of the GNU General Public
-// License as published by the Free Software Foundation,
-// either version 2 of the License, or (at your option) any
-// later version.
-// 
-// The TXM platform is distributed in the hope that it will be
-// useful, but WITHOUT ANY WARRANTY; without even the implied
-// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-// PURPOSE. See the GNU General Public License for more
-// details.
-// 
-// You should have received a copy of the GNU General
-// Public License along with the TXM platform. If not, see
-// http://www.gnu.org/licenses.
-// 
-// 
-// 
-// $LastChangedDate:$
-// $LastChangedRevision:$
-// $LastChangedBy:$ 
-//
-package org.txm.rcp.views.corpora;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.txm.core.results.TXMResult;
-
-// TODO: Auto-generated Javadoc
-/**
- * Label provider of the corpus view
- *  
- * @author mdecorde.
- */
-public class TXMResultLabelProvider extends LabelProvider {
-
-	/** The image table. */
-	private Map<ImageDescriptor, Image> imageTable = 
-			new HashMap<ImageDescriptor, Image>();
-
-	/**
-	 * Gets the adapter.
-	 *
-	 * @param element the element
-	 * @return the adapter
-	 */
-	protected final IWorkbenchAdapter getAdapter(Object element) {
-		IWorkbenchAdapter adapter = null;
-		if (element instanceof IAdaptable)
-			adapter = (IWorkbenchAdapter) ((IAdaptable) element)
-					.getAdapter(IWorkbenchAdapter.class);
-		if (adapter == null)
-			adapter = (IWorkbenchAdapter) Platform.getAdapterManager()
-					.loadAdapter(element, IWorkbenchAdapter.class.getName());
-		return adapter;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
-	 */
-	@Override
-	public final Image getImage(Object element) {
-		IWorkbenchAdapter adapter = getAdapter(element);
-		if (adapter == null) {
-			return null;
-		}
-		ImageDescriptor descriptor = adapter.getImageDescriptor(element);
-		if (descriptor == null) {
-			return null;
-		}
-		Image image = imageTable.get(descriptor);
-		if (image == null) {
-			image = descriptor.createImage();
-			imageTable.put(descriptor, image);
-		}
-		
-		return image;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	@Override
-	public final String getText(Object element) {
-		
-		IWorkbenchAdapter adapter = getAdapter(element);
-		if (adapter != null) {
-			return adapter.getLabel(element);
-		}
-		
-		if (element instanceof TXMResult)
-			return ((TXMResult)element).getSimpleName();
-		else 
-			return element.toString();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.BaseLabelProvider#dispose()
-	 */
-	@Override
-	public void dispose() {
-		if (imageTable != null) {
-			for (Iterator<Image> i = imageTable.values().iterator(); i
-					.hasNext();) {
-				i.next().dispose();
-			}
-			imageTable = null;
-		}
-	}
-}
\ No newline at end of file
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultContentProvider.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultContentProvider.java	(revision 1005)
@@ -76,21 +76,10 @@
 	 */
 	@Override
 	public Object[] getChildren(Object element) {
-//		HashMap<Class, Class> managed = CorporaView.getManagedDoubleClickClasses();
 		IWorkbenchAdapter adapter = getAdapter(element);
 		if (adapter != null) {
 			Object[] children = adapter.getChildren(element);
-			//			ArrayList<Object> managedChildrenList = new ArrayList<Object>();
-			//			for (Object child : children) {
-			//				if (managed.containsKey(child.getClass())) {
-			//					managedChildrenList.add(child);
-			//				}
-			//			}
-			//			Object[] managedChildren = managedChildrenList.toArray();
-
-
 			// FIXME: sort here the TXM result according to current sorting preference order, eg. getWeight(), getDate(), getName(), getClass()
-
 			//			Arrays.sort(children, new Comparator<Object>() {
 			//				@Override
 			//				public int compare(Object o1, Object o2) {
@@ -101,8 +90,7 @@
 			//			});
 			return children;
 		}
-
-		if (element instanceof TXMResult) {
+		else if (element instanceof TXMResult) {
 			return ((TXMResult)element).getChildren().toArray();
 		}
 		return new Object[0];
@@ -145,10 +133,12 @@
 	 */
 	@Override
 	public Object getParent(Object element) {
-		IWorkbenchAdapter adapter = getAdapter(element);
-		if (adapter != null) {
-			return adapter.getParent(element);
-		} else if (element instanceof TXMResult) {
+//		IWorkbenchAdapter adapter = getAdapter(element);
+//		if (adapter != null) {
+//			return adapter.getParent(element);
+//		}
+//		else
+			if (element instanceof TXMResult) {
 			return ((TXMResult)element).getParent();
 		}
 		return null;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/___TXMResultLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/___TXMResultLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/___TXMResultLabelProvider.java	(revision 1005)
@@ -0,0 +1,127 @@
+// Copyright © 2010-2013 ENS de Lyon.
+// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
+// Lyon 2, University of Franche-Comté, University of Nice
+// Sophia Antipolis, University of Paris 3.
+// 
+// The TXM platform is free software: you can redistribute it
+// and/or modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation,
+// either version 2 of the License, or (at your option) any
+// later version.
+// 
+// The TXM platform is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE. See the GNU General Public License for more
+// details.
+// 
+// You should have received a copy of the GNU General
+// Public License along with the TXM platform. If not, see
+// http://www.gnu.org/licenses.
+// 
+// 
+// 
+// $LastChangedDate:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcp.views.corpora;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.txm.core.results.TXMResult;
+import org.txm.rcp.adapters.TXMResultAdapter;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Label provider of the corpus view
+ *  
+ * @author mdecorde.
+ */
+@Deprecated
+// SJ: conflict with RCP Adapters mechanism
+// not used anymore, need to check it's really useless
+public class ___TXMResultLabelProvider extends LabelProvider {
+
+	/** The image table. */
+	private Map<ImageDescriptor, Image> imageTable = 
+			new HashMap<ImageDescriptor, Image>();
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param element the element
+	 * @return the adapter
+	 */
+	protected final IWorkbenchAdapter getAdapter(Object element) {
+		IWorkbenchAdapter adapter = null;
+		if (element instanceof IAdaptable) {
+			adapter = (IWorkbenchAdapter) ((IAdaptable) element).getAdapter(TXMResultAdapter.class);
+		}
+		if (adapter == null) {
+			adapter = (IWorkbenchAdapter) Platform.getAdapterManager().loadAdapter(element, IWorkbenchAdapter.class.getName());
+		}
+		return adapter;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+	 */
+	@Override
+	public final Image getImage(Object element) {
+		IWorkbenchAdapter adapter = getAdapter(element);
+		if (adapter == null) {
+			return null;
+		}
+		ImageDescriptor descriptor = adapter.getImageDescriptor(element);
+		if (descriptor == null) {
+			return null;
+		}
+		Image image = imageTable.get(descriptor);
+		if (image == null) {
+			image = descriptor.createImage();
+			imageTable.put(descriptor, image);
+		}
+		
+		return image;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	@Override
+	public final String getText(Object element) {
+		
+		IWorkbenchAdapter adapter = getAdapter(element);
+		if (adapter != null) {
+			return adapter.getLabel(element);
+		}
+		
+		if (element instanceof TXMResult)
+			return ((TXMResult)element).getSimpleName();
+		else 
+			return element.toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.BaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		if (imageTable != null) {
+			for (Iterator<Image> i = imageTable.values().iterator(); i
+					.hasNext();) {
+				i.next().dispose();
+			}
+			imageTable = null;
+		}
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/___TXMResultLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java	(revision 1005)
@@ -74,6 +74,7 @@
 import org.eclipse.ui.commands.ICommandService;
 import org.eclipse.ui.contexts.IContextService;
 import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
 import org.eclipse.ui.part.ViewPart;
 import org.txm.Toolbox;
 import org.txm.core.results.TXMResult;
@@ -175,9 +176,10 @@
 
 			treeViewer.setContentProvider(new TXMResultContentProvider(this));
 			//treeViewer.setLabelProvider(new TextometrieLabelProvider());
-			treeViewer.setLabelProvider(
-					new DecoratingLabelProvider(new TXMResultLabelProvider(),
-							PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+			
+			//treeViewer.setLabelProvider(new DecoratingLabelProvider(new TXMResultLabelProvider(),PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+			treeViewer.setLabelProvider(new DecoratingLabelProvider(new WorkbenchLabelProvider(), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+			
 			Workspace w = Toolbox.workspace;
 			if (w == null) return;
 			Project p = w.getProject("default"); //$NON-NLS-1$
@@ -195,8 +197,7 @@
 	@Override
 	public void createPartControl(Composite parent) {
 		treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(
-				treeViewer.getControl(), TXMUIMessages.CorporaView_0);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(treeViewer.getControl(), TXMUIMessages.CorporaView_0);
 		getSite().setSelectionProvider(treeViewer);
 		treeViewer.setColumnProperties(new String[]{"name"}); // mandatory to enable edit mode -> used to identify columns
 
@@ -253,10 +254,10 @@
 		//		});
 		treeViewer.setContentProvider(new TXMResultContentProvider(this));
 		//treeViewer.setLabelProvider(new TextometrieLabelProvider());
-		treeViewer.setLabelProvider(
-				new DecoratingLabelProvider(new TXMResultLabelProvider(),
-						PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
-
+		//treeViewer.setLabelProvider(new DecoratingLabelProvider(new TXMResultLabelProvider(), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+		
+		treeViewer.setLabelProvider(new DecoratingLabelProvider(new WorkbenchLabelProvider(), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+		
 		// for now the sorter is used to sort the Corpus, Subcorpus and partition objects
 		treeViewer.setSorter(new ViewerSorter() {
 			public int category(Object element) {
@@ -458,24 +459,30 @@
 		treeViewer.getControl().setFocus();
 	}
 
-	public static Object getSelection() {
+	/**
+	 * Gets the first selected object in the tree.
+	 * @return
+	 */
+	public static Object getFirstSelectedObject() {
 		CorporaView corporaView = getInstance();
 		if (corporaView != null) {
 			ISelection selection = corporaView.treeViewer.getSelection();
-			if (selection != null
-					& selection instanceof IStructuredSelection) {
+			if (selection != null & selection instanceof IStructuredSelection) {
 				return ((IStructuredSelection)selection).getFirstElement();
 			}
 		}
 		return null;
 	}
 
-	public static List<?> getSelections() {
+	/**
+	 * Gets the selected objects in the tree.
+	 * @return
+	 */
+	public static List<?> getSelectedObjects() {
 		CorporaView corporaView = getInstance();
 		if (corporaView != null) {
 			ISelection selection = corporaView.treeViewer.getSelection();
-			if (selection != null
-					& selection instanceof IStructuredSelection) {
+			if (selection != null & selection instanceof IStructuredSelection) {
 				return ((IStructuredSelection)selection).toList();
 			}
 		}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java	(revision 1005)
@@ -130,6 +130,7 @@
 		buffer.append("Selected object = " + this.currentResult + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Node visible = " + this.currentResult.isVisible() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Node weight = " + this.currentResult.getWeight() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+		buffer.append("Persistable = " + this.currentResult.isPersistable() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 //		if (this.currentResult instanceof ChartResult) 	{
 //			buffer.append("Chart engine = " + ((ChartResult)this.currentResult).getChartsEngine() + ", chart object = " + ((ChartResult)this.currentResult).getChart()
 //					+ ", chart type = " + ((ChartResult)this.currentResult).getChartType()
@@ -145,7 +146,7 @@
 	@Override
 	public void selectionChanged(SelectionChangedEvent event) {
 		
-		Object selection = CorporaView.getSelection();
+		Object selection = CorporaView.getFirstSelectedObject();
 		
 		if (selection instanceof TXMResult) {
 			this.currentResult = (TXMResult) selection;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancePreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancePreferencePage.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancePreferencePage.java	(revision 1005)
@@ -93,7 +93,7 @@
 		addField(new BooleanFieldEditor(TBXPreferences.ADD_TECH_LOGS, TXMUIMessages.AdvancePreferencePage_13, updateGroup));
 		
 		// Show dialog on severe error
-		addField(new BooleanFieldEditor(RCPPreferences.SHOW_SEVERE_DIALOG, "Show a dialog when a severe error occurs", updateGroup));
+		addField(new BooleanFieldEditor(RCPPreferences.SHOW_SEVERE_DIALOG, "Show a dialog box when a severe error occurs", updateGroup));
 
 		// Log in file
 		addField(new BooleanFieldEditor(TBXPreferences.LOG_IN_FILE, TXMUIMessages.AdvancePreferencePage_14, updateGroup));
@@ -108,12 +108,9 @@
 		
 		// Expert mode
 		addField(new BooleanFieldEditor(TBXPreferences.EXPERT_USER, TXMUIMessages.AdvancePreferencePage_4, getFieldEditorParent()));
-		
-		// Show all result nodes in Corpora view
-		addField(new BooleanFieldEditor(TBXPreferences.SHOW_ALL_RESULT_NODES, "Show all result nodes in Corpora view", getFieldEditorParent()));
 
 		// Auto save each result after computing and auto load them at startup
-		addField(new BooleanFieldEditor(TBXPreferences.PERSISTENCE_ENABLED, "Enable results persistence", getFieldEditorParent()));
+		addField(new BooleanFieldEditor(TBXPreferences.AUTO_PERSISTENCE_ENABLED, TXMUIMessages.preferences_advanced_enableResultsPersistence, getFieldEditorParent()));
 
 	}
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/RCPPreferences.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/RCPPreferences.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/RCPPreferences.java	(revision 1005)
@@ -59,8 +59,8 @@
 		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
 
 		preferences.put(TBXPreferences.EXPORT_ENCODING, System.getProperty("file.encoding")); //$NON-NLS-1$
-		preferences.put(TBXPreferences.EXPORT_COLSEPARATOR, "\t"); //$NON-NLS-1$
-		preferences.put(TBXPreferences.EXPORT_TXTSEPARATOR, ""); //$NON-NLS-1$
+		preferences.put(TBXPreferences.EXPORT_COL_SEPARATOR, "\t"); //$NON-NLS-1$
+		preferences.put(TBXPreferences.EXPORT_TXT_SEPARATOR, ""); //$NON-NLS-1$
 		preferences.put(RCPPreferences.UI_LOCALE, "en"); //$NON-NLS-1$
 		
 		preferences.putBoolean(AUTO_UPDATE_EDITOR, true);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/ExportPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/ExportPreferencePage.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/ExportPreferencePage.java	(revision 1005)
@@ -79,12 +79,12 @@
 		
 		String[][] cols = {{"\t","\t"}, {",", ","}, {";", ";"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
 		String txts[][] = {{"", ""}, {"\"", "\""}, {"'", "'"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		colseparators = new ComboFieldEditor(TBXPreferences.EXPORT_COLSEPARATOR,
+		colseparators = new ComboFieldEditor(TBXPreferences.EXPORT_COL_SEPARATOR,
 				TXMUIMessages.ExportPreferencePage_18, cols, getFieldEditorParent());
 		addField(colseparators);
 		
 		
-		txtseparators = new ComboFieldEditor(TBXPreferences.EXPORT_TXTSEPARATOR,
+		txtseparators = new ComboFieldEditor(TBXPreferences.EXPORT_TXT_SEPARATOR,
 				TXMUIMessages.ExportPreferencePage_19, txts, getFieldEditorParent());
 		addField(txtseparators);
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java	(revision 1005)
@@ -0,0 +1,28 @@
+package org.txm.rcp.preferences;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.txm.core.preferences.TBXPreferences;
+import org.txm.rcp.messages.TXMUIMessages;
+
+/**
+ * Debug preferences page.
+ * 
+ * @author sjacquot
+ *
+ */
+public class DebugPreferencePage extends TXMPreferencePage {
+
+
+	@Override
+	public void createFieldEditors() {
+		// Show all result nodes in Corpora view
+		addField(new BooleanFieldEditor(TBXPreferences.SHOW_ALL_RESULT_NODES, TXMUIMessages.preferences_advanced_showAllResultNodesInCorporaView, getFieldEditorParent()));
+	}
+	
+	
+	@Override
+	public void init(IWorkbench workbench) {
+		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.PREFERENCES_NODE));
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/ITXMPartEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/ITXMPartEditor.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/ITXMPartEditor.java	(revision 1005)
@@ -13,12 +13,6 @@
 	public TXMResult getResultData();
 
 	/**
-	 * Computes and creates or updates the result (from the linked editor input data).
-	 * @param update set if it's an update on an existing result or a creation of a new result 
-	 */
-//	public abstract void computeResult();
-
-	/**
 	 * Synchronizes the editor with the result and refreshes the corpus view. 
 	 */
 	public void refresh();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TestEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TestEditor.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TestEditor.java	(revision 1005)
@@ -4,30 +4,13 @@
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.EditorPart;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.graphics.Rectangle;
 
 
 public class TestEditor extends EditorPart {
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/parameters/CospusStructuresField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/parameters/CospusStructuresField.java	(revision 1004)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/parameters/CospusStructuresField.java	(revision 1005)
@@ -28,7 +28,7 @@
 		String[] values = {};
 		int[] selection = {};
 		
-		Object sel = CorporaView.getSelection();
+		Object sel = CorporaView.getFirstSelectedObject();
 		if ((sel instanceof Corpus)) {
 			Corpus c = (Corpus)sel;
 			List<StructuralUnit> l;
Index: tmp/org.txm.rcp/plugin.xml
===================================================================
--- tmp/org.txm.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.rcp/plugin.xml	(revision 1005)
@@ -319,6 +319,12 @@
             id="org.txm.rcp.preferences.ImportPreferencePage"
             name="%page.name.19">
 	</page>
+      <page
+            category="org.txm.rcp.preferences.AdvancePreferencePage"
+            class="org.txm.rcp.preferences.DebugPreferencePage"
+            id="DebugPreferencePage"
+            name="Debug">
+      </page>
    </extension>
    <extension
          point="org.eclipse.ui.menus">
@@ -2012,6 +2018,25 @@
                   </or>
                </visibleWhen>
             </command>
+            <command
+                  commandId="org.txm.rcp.handlers.results.SetTXMResultPersistentState"
+                  style="toggle">
+               <visibleWhen
+                     checkEnabled="false">
+                  <and>
+                     <reference
+                           definitionId="OneTXMResultSelected">
+                     </reference>
+                     <and>
+                        <not>
+                           <reference
+                                 definitionId="OneTxmObjectSelected">
+                           </reference>
+                        </not>
+                     </and>
+                  </and>
+               </visibleWhen>
+            </command>
             <separator
                   name="org.txm.rcp.corporaview.corpus.manage"
                   visible="true">
@@ -2656,6 +2681,13 @@
             id="org.txm.rcp.handlers.ComputeTXMResult"
             name="%command.name.32">
       </command>
+      <command
+            categoryId="org.txm.rcp.categories.results"
+            defaultHandler="org.txm.rcp.handlers.results.SetTXMResultPersistentState"
+            description="Store a result over TXM sessions"
+            id="org.txm.rcp.handlers.results.SetTXMResultPersistentState"
+            name="Auto-save this result">
+      </command>
    </extension>
    <extension
          id="scripts"
Index: tmp/org.txm.internalview.rcp/src/org/txm/internalview/rcp/adapters/InternalViewAdapterFactory.java
===================================================================
--- tmp/org.txm.internalview.rcp/src/org/txm/internalview/rcp/adapters/InternalViewAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.internalview.rcp/src/org/txm/internalview/rcp/adapters/InternalViewAdapterFactory.java	(revision 1005)
@@ -23,7 +23,7 @@
 	
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof InternalView)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof InternalView)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.internalview.rcp/plugin.xml
===================================================================
--- tmp/org.txm.internalview.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.internalview.rcp/plugin.xml	(revision 1005)
@@ -74,6 +74,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension> <extension
          point="org.eclipse.core.expressions.definitions">
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadVue.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadVue.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadVue.java	(revision 1005)
@@ -30,7 +30,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.LoadVue_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadStructure.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadStructure.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadStructure.java	(revision 1005)
@@ -27,7 +27,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.LoadStructure_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ExportGlozzCorpus.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ExportGlozzCorpus.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ExportGlozzCorpus.java	(revision 1005)
@@ -36,7 +36,7 @@
 			// Open the parameters input dialog box
 			if (!ParametersDialog.open(this)) return null;
 
-			Object first = CorporaView.getSelection();
+			Object first = CorporaView.getFirstSelectedObject();
 			if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 				System.out.println(Messages.ExportGlozzCorpus_0+first);
 				return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditVue.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditVue.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditVue.java	(revision 1005)
@@ -29,7 +29,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println("Selection is not a corpus: "+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditStructure.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditStructure.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditStructure.java	(revision 1005)
@@ -28,7 +28,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.EditStructure_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveStructureAsGlozzModel.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveStructureAsGlozzModel.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveStructureAsGlozzModel.java	(revision 1005)
@@ -18,7 +18,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.SaveStructureAsGlozzModel_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadStructureFromGlozz.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadStructureFromGlozz.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadStructureFromGlozz.java	(revision 1005)
@@ -25,7 +25,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.LoadStructureFromGlozz_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadCorpus.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadCorpus.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/LoadCorpus.java	(revision 1005)
@@ -35,7 +35,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.LoadCorpus_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveVue.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveVue.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveVue.java	(revision 1005)
@@ -25,7 +25,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.SaveVue_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ImportGlozzAnnotations.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ImportGlozzAnnotations.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ImportGlozzAnnotations.java	(revision 1005)
@@ -60,7 +60,7 @@
 			return false;
 		}
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.ImportGlozzAnnotations_1+first);
 			return false;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveStructure.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveStructure.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveStructure.java	(revision 1005)
@@ -24,7 +24,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.SaveStructure_0+first);
 			return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ExportTEICorpus.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ExportTEICorpus.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ExportTEICorpus.java	(revision 1005)
@@ -41,7 +41,7 @@
 			// Open the parameters input dialog box
 			if (!ParametersDialog.open(this)) return null;
 
-			Object first = CorporaView.getSelection();
+			Object first = CorporaView.getFirstSelectedObject();
 			if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 				System.out.println(Messages.ExportTEICorpus_0+first);
 				return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ImportTEIAnnotations.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ImportTEIAnnotations.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/ImportTEIAnnotations.java	(revision 1005)
@@ -44,7 +44,7 @@
 			// Open the parameters input dialog box
 			if (!ParametersDialog.open(this)) return null;
 
-			Object first = CorporaView.getSelection();
+			Object first = CorporaView.getFirstSelectedObject();
 			if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 				System.out.println(Messages.ImportTEIAnnotations_0+first);
 				return null;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveCorpus.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveCorpus.java	(revision 1004)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveCorpus.java	(revision 1005)
@@ -31,7 +31,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object first = CorporaView.getSelection();
+		Object first = CorporaView.getFirstSelectedObject();
 		if (!(first instanceof org.txm.searchengine.cqp.corpus.Corpus)) {
 			System.out.println(Messages.SaveCorpus_0+first);
 			return null;
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/handlers/ComputeSpecifities.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/handlers/ComputeSpecifities.java	(revision 1004)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/handlers/ComputeSpecifities.java	(revision 1005)
@@ -89,7 +89,7 @@
 				}
 	
 				if (lexicalTable == null) {
-					return super.logCanNotCompute(selection);
+					return super.logCanNotExecuteCommand(selection);
 				}
 				specificities = new Specificities(lexicalTable);
 			}
Index: tmp/org.txm.specificities.rcp/plugin.xml
===================================================================
--- tmp/org.txm.specificities.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.specificities.rcp/plugin.xml	(revision 1005)
@@ -137,6 +137,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
       <factory
             adaptableType="org.txm.specificities.core.functions.SpecificitiesSelection"
@@ -144,6 +147,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
Index: tmp/org.txm.cooccurrence.chartsengine/src/org/txm/cooccurrence/handlers/ComputeCooccurrenceGraph.java
===================================================================
--- tmp/org.txm.cooccurrence.chartsengine/src/org/txm/cooccurrence/handlers/ComputeCooccurrenceGraph.java	(revision 1004)
+++ tmp/org.txm.cooccurrence.chartsengine/src/org/txm/cooccurrence/handlers/ComputeCooccurrenceGraph.java	(revision 1005)
@@ -75,7 +75,7 @@
 		}
 		// Error
 		else	{
-			return super.logCanNotCompute(selection);
+			return super.logCanNotExecuteCommand(selection);
 		}
 		
 		ChartEditor.openEditor(coocGraph);
Index: tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java
===================================================================
--- tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java	(revision 1004)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java	(revision 1005)
@@ -125,7 +125,7 @@
 			}
 			// Error
 			else {
-				return this.logCanNotCompute(selection);
+				return this.logCanNotExecuteCommand(selection);
 			}
 		}
 
Index: tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/adapters/CooccurrenceAdapterFactory.java
===================================================================
--- tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/adapters/CooccurrenceAdapterFactory.java	(revision 1004)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/adapters/CooccurrenceAdapterFactory.java	(revision 1005)
@@ -26,7 +26,7 @@
 
 	@Override
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if(adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Cooccurrence)	{
+		if(this.canAdapt(adapterType) && adaptableObject instanceof Cooccurrence)	{
 			return new TXMResultAdapter() {
 				@Override
 				public ImageDescriptor getImageDescriptor(Object object) {
Index: tmp/org.txm.cooccurrence.rcp/plugin.xml
===================================================================
--- tmp/org.txm.cooccurrence.rcp/plugin.xml	(revision 1004)
+++ tmp/org.txm.cooccurrence.rcp/plugin.xml	(revision 1005)
@@ -28,6 +28,9 @@
          <adapter
                type="org.eclipse.ui.model.IWorkbenchAdapter">
          </adapter>
+         <adapter
+               type="org.eclipse.ui.model.IWorkbenchAdapter2">
+         </adapter>
       </factory>
    </extension>
    <extension
@@ -101,6 +104,15 @@
                style="push">
          </command>
       </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.index.rcp.editors.DictionnaryEditor">
+         <command
+               commandId="org.txm.cooccurrence.rcp.handlers.ComputeCooccurrences"
+               icon="icons/cooccurrences.png"
+               label="%command.name.4"
+               style="push">
+         </command>
+      </menuContribution>
    </extension>
    <extension
          point="org.eclipse.ui.editors">
