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 532)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/handlers/ComputeProgression.java	(revision 533)
@@ -85,7 +85,7 @@
 			return false;
 		}
 
-		Object selection = this.getSelection();
+		Object selection = this.getSelection(event);
 		Progression progression = null;
 		
 		
Index: tmp/org.txm.concordance.rcp/plugin.xml
===================================================================
--- tmp/org.txm.concordance.rcp/plugin.xml	(revision 532)
+++ tmp/org.txm.concordance.rcp/plugin.xml	(revision 533)
@@ -99,6 +99,11 @@
             defaultHandler="org.txm.concordance.rcp.handlers.ComputeConcordance"
             id="org.txm.concordance.rcp.handlers.ComputeConcordance"
             name="%command.name">
+         <commandParameter
+               id="org.txm.core.results.TXMParameters"
+               name="TXM Parameter"
+               optional="true">
+         </commandParameter>
       </command>
       <command
             defaultHandler="org.txm.concordance.rcp.handlers.DeleteLines"
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 532)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/handlers/ComputeConcordance.java	(revision 533)
@@ -27,6 +27,8 @@
 //
 package org.txm.concordance.rcp.handlers;
 
+import java.util.Map;
+
 import javax.inject.Inject;
 
 import org.eclipse.core.commands.ExecutionEvent;
@@ -37,7 +39,8 @@
 import org.txm.concordance.core.functions.Concordance;
 import org.txm.concordance.rcp.editors.ConcordanceEditor;
 import org.txm.concordance.rcp.messages.Messages;
-import org.txm.rcp.RCPMessages;
+import org.txm.core.results.TXMParameters;
+import org.txm.core.results.TXMResult;
 import org.txm.rcp.StatusLine;
 import org.txm.rcp.TXMWindows;
 import org.txm.rcp.editors.TXMResultEditorInput;
@@ -62,7 +65,23 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		
-		Object selection = this.getSelection();
+		// if a TXMParameters is linked to the command call, uses its parent to create the concordance
+		TXMParameters parameters = null;
+		Map cmdparameters = event.getParameters();
+		System.out.println(cmdparameters);
+		if (cmdparameters.containsKey(TXMParameters.class.getName())) {
+			Object iparam = cmdparameters.get(TXMParameters.class.getName());
+			if (iparam instanceof TXMParameters) {
+				parameters = (TXMParameters)iparam;
+			}
+		}
+		Object selection = null;
+		if (parameters == null) { // no parameters provided
+			selection = this.getSelection(event);
+		} else {
+			selection = parameters;
+		}
+		
 		if (!openEditor(selection)) {
 			System.out.println(Messages.ComputeConcordance_1);
 		}
@@ -84,6 +103,21 @@
 			concordance = new Concordance(corpus);
 		} else if (o instanceof Concordance) {
 			concordance = (Concordance)o;
+//		} else if (o instanceof TXMResult) { // called from CorporaView
+//			TXMResult result = (TXMResult)o;
+//			TXMParameters parameters = result.getTXMParameters();
+//			Object p = parameters.get("corpus");
+//			if (p == null) {
+//				System.out.println("Error: no 'corpus' parameter provided");
+//				return false;
+//			}
+//			if (!(p instanceof Corpus)) {
+//				System.out.println("Error: 'corpus' parameter is not a Corpus");
+//				return false;
+//			}
+//			Corpus corpus = (Corpus) p;
+//			concordance = new Concordance(corpus);
+//			concordance.setParameters(parameters);
 		} else {
 			System.out.println("Could not call ComputeConcordance with: "+o);
 			return false;
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/handlers/ComputeCA.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/handlers/ComputeCA.java	(revision 532)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/handlers/ComputeCA.java	(revision 533)
@@ -87,7 +87,7 @@
 		}
 
 		final IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
-		final Object selection = this.getSelection();
+		final Object selection = this.getSelection(event);
 
 		try {
 			// final Property property = d.getProperty();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/AdapterFactory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/AdapterFactory.java	(revision 532)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/AdapterFactory.java	(revision 533)
@@ -39,6 +39,8 @@
 import org.eclipse.ui.model.IWorkbenchAdapter;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.txm.core.results.TXMResult;
+import org.txm.objects.SavedQuery;
+import org.txm.objects.Text;
 //import org.txm.functions.queryindex.QueryIndex;
 import org.txm.rcp.adapters.TXMResultAdapter;
 import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
@@ -55,11 +57,11 @@
  * @author jmague
  */
 public class AdapterFactory implements IAdapterFactory {
-	
+
 	private static boolean firstCorpusDiag = true;
-	
+
 	private HashMap<Class, IWorkbenchAdapter> externalAdapters = new HashMap<Class, IWorkbenchAdapter>();
-	
+
 	/** The corpus manager adapter. */
 	private IWorkbenchAdapter corpusManagerAdapter = new IWorkbenchAdapter() {
 
@@ -74,7 +76,7 @@
 						return o1.getName().compareTo(o2.getName());
 					}
 				});
-				
+
 				// check if each corpus has a Base
 				if (firstCorpusDiag) {	
 					firstCorpusDiag = false;
@@ -117,16 +119,12 @@
 			//List<Subcorpus> subcorpora = ((Corpus) corpus).getSubcorpora();
 			ArrayList<TXMResult> results = ((Corpus) corpus).getResults(true);
 			for (int i = 0; i < results.size(); i++) {
-				Object result = results.get(i);
-				
-//				// remove "id" Lexicon from displayed results
-//				if (result instanceof Lexicon) {
-//					Lexicon lex = (Lexicon) result;
-//					if (lex.getProperty().getName().equals("id")) { //$NON-NLS-1$
-//						results.remove(result);
-//						i--;
-//					}
-//				}
+				Object element = results.get(i);
+
+				if (element instanceof Text || element instanceof SavedQuery) {
+					results.remove(i);
+					i--;
+				}
 			}
 			List<Object> children = new ArrayList<Object>();
 			//children.addAll(subcorpora);
@@ -184,157 +182,157 @@
 			return ((Partition) partition).getCorpus();
 		}
 	};
-		
-//	/** The partition adapter. */
-//	private IWorkbenchAdapter queryIndexAdapter = new IWorkbenchAdapter() {
-//		@Override
-//		public Object[] getChildren(Object obj) {
-//			return new Object[0];
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.QUERYINDEX);
-//		}
-//
-//		@Override
-//		public String getLabel(Object qindex) {
-//			return "" + ((QueryIndex) qindex).getName(); //$NON-NLS-1$
-//		}
-//
-//		@Override
-//		public Object getParent(Object qindex) {
-//			return ((QueryIndex) qindex).getParent();
-//		}
-//	};
 
-//	/** The lexical table adapter. */
-//	private IWorkbenchAdapter lexicalTableAdapter = new IWorkbenchAdapter() {
-//		@Override
-//		public Object[] getChildren(Object lexicaltable) {
-//			// List<Object> children = ((LexicalTable)
-//			// lexicaltable).getResults();
-//			// System.out.println("PARTITION RESULTS "+children);
-//			return ((LexicalTable)lexicaltable).getResults().toArray();
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.LEXICALTABLE);
-//		}
-//
-//		@Override
-//		public String getLabel(Object lexicaltable) {
-//			return "" + ((LexicalTable) lexicaltable).getProperty(); //$NON-NLS-1$
-//		}
-//
-//		@Override
-//		public Object getParent(Object lexicaltable) {
-//			return ((LexicalTable) lexicaltable).getPartition();
-//		}
-//	};
+	//	/** The partition adapter. */
+	//	private IWorkbenchAdapter queryIndexAdapter = new IWorkbenchAdapter() {
+	//		@Override
+	//		public Object[] getChildren(Object obj) {
+	//			return new Object[0];
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.QUERYINDEX);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object qindex) {
+	//			return "" + ((QueryIndex) qindex).getName(); //$NON-NLS-1$
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object qindex) {
+	//			return ((QueryIndex) qindex).getParent();
+	//		}
+	//	};
 
-//	/** The Progression adapter. */
-//	private IWorkbenchAdapter ProgressionAdapter = new IWorkbenchAdapter() {
-//		@Override
-//		public Object[] getChildren(Object progression) {
-//			return new Object[0];
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.ACTION_PROGRESSION);
-//		}
-//
-//		@Override
-//		public String getLabel(Object progression) {
-//			return ((Progression) progression).getDetails(); 
-//		}
-//
-//		@Override
-//		public Object getParent(Object progression) {
-//			return ((Progression) progression).getCorpus();
-//		}
-//	};
-	
-//	/** The CAH adapter. */
-//	private IWorkbenchAdapter CAHAdapter = new IWorkbenchAdapter() {
-//		@Override
-//		public Object[] getChildren(Object cah) {
-//			return new Object[0];
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.ACTION_CAH);
-//		}
-//
-//		@Override
-//		public String getLabel(Object cah) {
-//			return "" + ((CAH) cah).getName(); //$NON-NLS-1$
-//		}
-//
-//		@Override
-//		public Object getParent(Object cah) {
-//			return ((CAH) cah).getParent();
-//		}
-//	};
-//
-//	/** The Cooccurrence adapter. */
-//	private IWorkbenchAdapter CooccurrenceAdapter = new IWorkbenchAdapter() {
-//
-//		@Override
-//		public Object[] getChildren(Object cooccurrence) {
-//			return new Object[0];
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.ACTION_COOCCURRENCE);
-//		}
-//
-//		@Override
-//		public String getLabel(Object cooccurrence) {
-//			return ((Cooccurrence) cooccurrence).getName(); 
-//		}
-//
-//		@Override
-//		public Object getParent(Object cooccurrence) {
-//			return ((Cooccurrence) cooccurrence).getCorpus();
-//		}
-//	};
+	//	/** The lexical table adapter. */
+	//	private IWorkbenchAdapter lexicalTableAdapter = new IWorkbenchAdapter() {
+	//		@Override
+	//		public Object[] getChildren(Object lexicaltable) {
+	//			// List<Object> children = ((LexicalTable)
+	//			// lexicaltable).getResults();
+	//			// System.out.println("PARTITION RESULTS "+children);
+	//			return ((LexicalTable)lexicaltable).getResults().toArray();
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.LEXICALTABLE);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object lexicaltable) {
+	//			return "" + ((LexicalTable) lexicaltable).getProperty(); //$NON-NLS-1$
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object lexicaltable) {
+	//			return ((LexicalTable) lexicaltable).getPartition();
+	//		}
+	//	};
 
-//	/** The specificities result adapter. */
-//	private IWorkbenchAdapter specificitiesResultAdapter = new IWorkbenchAdapter() {
-//
-//		@Override
-//		public Object[] getChildren(Object o) {
-//			return new Object[0];
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.ACTION_SPECIFICITIES);
-//		}
-//
-//		@Override
-//		public String getLabel(Object o) {
-//			return ((SpecificitesResult) o).getName();
-//		}
-//
-//		@Override
-//		public Object getParent(Object o) {
-//			return ((SpecificitesResult) o).getParent();
-//		}
-//
-//	};
+	//	/** The Progression adapter. */
+	//	private IWorkbenchAdapter ProgressionAdapter = new IWorkbenchAdapter() {
+	//		@Override
+	//		public Object[] getChildren(Object progression) {
+	//			return new Object[0];
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.ACTION_PROGRESSION);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object progression) {
+	//			return ((Progression) progression).getDetails(); 
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object progression) {
+	//			return ((Progression) progression).getCorpus();
+	//		}
+	//	};
 
+	//	/** The CAH adapter. */
+	//	private IWorkbenchAdapter CAHAdapter = new IWorkbenchAdapter() {
+	//		@Override
+	//		public Object[] getChildren(Object cah) {
+	//			return new Object[0];
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.ACTION_CAH);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object cah) {
+	//			return "" + ((CAH) cah).getName(); //$NON-NLS-1$
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object cah) {
+	//			return ((CAH) cah).getParent();
+	//		}
+	//	};
+	//
+	//	/** The Cooccurrence adapter. */
+	//	private IWorkbenchAdapter CooccurrenceAdapter = new IWorkbenchAdapter() {
+	//
+	//		@Override
+	//		public Object[] getChildren(Object cooccurrence) {
+	//			return new Object[0];
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.ACTION_COOCCURRENCE);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object cooccurrence) {
+	//			return ((Cooccurrence) cooccurrence).getName(); 
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object cooccurrence) {
+	//			return ((Cooccurrence) cooccurrence).getCorpus();
+	//		}
+	//	};
+
+	//	/** The specificities result adapter. */
+	//	private IWorkbenchAdapter specificitiesResultAdapter = new IWorkbenchAdapter() {
+	//
+	//		@Override
+	//		public Object[] getChildren(Object o) {
+	//			return new Object[0];
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.ACTION_SPECIFICITIES);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object o) {
+	//			return ((SpecificitesResult) o).getName();
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object o) {
+	//			return ((SpecificitesResult) o).getParent();
+	//		}
+	//
+	//	};
+
 	/** The Lexicon adapter. */
 	private IWorkbenchAdapter LexiconAdapter = new TXMResultAdapter() {
 		@Override
@@ -343,30 +341,30 @@
 		}
 	};
 
-//	/** The Index adapter. */
-//	private IWorkbenchAdapter IndexAdapter = new IWorkbenchAdapter() {
-//
-//		@Override
-//		public Object[] getChildren(Object o) {
-//			return ((Index)o).getResults().toArray();
-//		}
-//
-//		@Override
-//		public ImageDescriptor getImageDescriptor(Object object) {
-//			return AbstractUIPlugin.imageDescriptorFromPlugin(
-//					Application.PLUGIN_ID, IImageKeys.ACTION_INDEX);
-//		}
-//
-//		@Override
-//		public String getLabel(Object o) {
-//			return ((Index) o).getName();
-//		}
-//
-//		@Override
-//		public Object getParent(Object o) {
-//			return ((Index) o).getParent();
-//		}
-//	};
+	//	/** The Index adapter. */
+	//	private IWorkbenchAdapter IndexAdapter = new IWorkbenchAdapter() {
+	//
+	//		@Override
+	//		public Object[] getChildren(Object o) {
+	//			return ((Index)o).getResults().toArray();
+	//		}
+	//
+	//		@Override
+	//		public ImageDescriptor getImageDescriptor(Object object) {
+	//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+	//					Application.PLUGIN_ID, IImageKeys.ACTION_INDEX);
+	//		}
+	//
+	//		@Override
+	//		public String getLabel(Object o) {
+	//			return ((Index) o).getName();
+	//		}
+	//
+	//		@Override
+	//		public Object getParent(Object o) {
+	//			return ((Index) o).getParent();
+	//		}
+	//	};
 
 	/**
 	 * Gets the adapter.
@@ -388,36 +386,36 @@
 		if (adapterType == IWorkbenchAdapter.class
 				&& adaptableObject instanceof Partition)
 			return partitionAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof SpecificitesResult)
-//			return specificitiesResultAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof Concordance)
-//			return concordanceAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof Referencer)
-//			return referencerAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof Lexicon)
-//			return LexiconAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof Index)
-//			return IndexAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof Progression)
-//			return ProgressionAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof Cooccurrence)
-//			return CooccurrenceAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof LexicalTable)
-//			return lexicalTableAdapter;
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof CAH)
-//			return CAHAdapter;	
-//		if (adapterType == IWorkbenchAdapter.class
-//				&& adaptableObject instanceof InterTextDistance)
-//			return interTextDistAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof SpecificitesResult)
+		//			return specificitiesResultAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof Concordance)
+		//			return concordanceAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof Referencer)
+		//			return referencerAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof Lexicon)
+		//			return LexiconAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof Index)
+		//			return IndexAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof Progression)
+		//			return ProgressionAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof Cooccurrence)
+		//			return CooccurrenceAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof LexicalTable)
+		//			return lexicalTableAdapter;
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof CAH)
+		//			return CAHAdapter;	
+		//		if (adapterType == IWorkbenchAdapter.class
+		//				&& adaptableObject instanceof InterTextDistance)
+		//			return interTextDistAdapter;
 
 		//check adapters from plugins
 		if (externalAdapters.containsKey(adaptableObject.getClass())) {
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 532)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/TXMResultContentProvider.java	(revision 533)
@@ -163,7 +163,7 @@
 	@Override
 	public boolean hasChildren(Object element) {
 		if (element instanceof TXMResult) {
-			return ((TXMResult)element).hasResults();
+			return getChildren(element).length > 0;
 		} else {
 			int n = getChildren(element).length;
 			return n > 0;
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 532)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java	(revision 533)
@@ -182,14 +182,14 @@
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(
 				treeViewer.getControl(), RCPMessages.CorporaView_0);
 		getSite().setSelectionProvider(treeViewer);
-		treeViewer.addFilter(new ViewerFilter() {
-			@Override
-			public boolean select(Viewer viewer, Object parentElement, Object element) {
-				if (element instanceof Text) return false;
-				if (element instanceof SavedQuery) return false;
-				return true;
-			}
-		});
+//		treeViewer.addFilter(new ViewerFilter() {
+//			@Override
+//			public boolean select(Viewer viewer, Object parentElement, Object element) {
+//				if (element instanceof Text) return false;
+//				if (element instanceof SavedQuery) return false;
+//				return true;
+//			}
+//		});
 		treeViewer.setContentProvider(new TXMResultContentProvider(this));
 		//treeViewer.setLabelProvider(new TextometrieLabelProvider());
 		treeViewer.setLabelProvider(
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java	(revision 532)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java	(revision 533)
@@ -310,7 +310,7 @@
 							System.out.println(title);
 							Log.info("Start computing Index...");
 
-							//result.compute(monitor);
+							result.compute(true, monitor);
 						} else {
 							return Status.CANCEL_STATUS;
 						}
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 532)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/handlers/ComputePartitionDimensionsBarChart.java	(revision 533)
@@ -68,7 +68,7 @@
 		}
 
 		
-		Object selection = this.getSelection();
+		Object selection = this.getSelection(event);
 		PartitionDimensions partitionDimensions = null;
 		
 		
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 532)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeLexicon.java	(revision 533)
@@ -39,7 +39,7 @@
 			return false;
 		}
 		
-		Object selection = this.getSelection();
+		Object selection = this.getSelection(event);
 		
 		TXMResultEditorInput editorInput;
 		// New lexicon from corpus
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 532)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/ComputeIndex.java	(revision 533)
@@ -65,7 +65,7 @@
 		}
 
 		TXMResultEditorInput editorInput = null;
-		Object selection = this.getSelection();
+		Object selection = this.getSelection(event);
 		
 		// New editor from corpus
 		Index index = null;
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 532)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java	(revision 533)
@@ -79,7 +79,7 @@
 			return null;
 		}
 		
-		Object selection = this.getSelection();
+		Object selection = this.getSelection(event);
 		TXMResultEditorInput editorInput = null;
 		
 		// new editor from concordance
Index: tmp/org.txm.index.core/src/org/txm/index/core/functions/Index.java
===================================================================
--- tmp/org.txm.index.core/src/org/txm/index/core/functions/Index.java	(revision 532)
+++ tmp/org.txm.index.core/src/org/txm/index/core/functions/Index.java	(revision 533)
@@ -57,7 +57,6 @@
 import org.txm.searchengine.cqp.corpus.Property;
 import org.txm.searchengine.cqp.corpus.QueryResult;
 import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
-import org.txm.searchengine.cqp.corpus.WordProperty;
 import org.txm.searchengine.cqp.corpus.query.Match;
 import org.txm.searchengine.cqp.corpus.query.Query;
 import org.txm.searchengine.cqp.serverException.CqiServerError;
@@ -141,7 +140,48 @@
 	public boolean getLexiconMode() {
 		return this.lexiconMode;
 	}
+	
 	/**
+	 * Create a CQL query using an Index lines
+	 *
+	 * @param selection the selection
+	 * @return the query
+	 */
+	public static String createQuery(List<Line> lines) {
+		String query = ""; //$NON-NLS-1$
+		if (lines.size() == 0) return query;
+		
+		Line line = lines.get(0);
+		int nbToken = line.getUnitsProperties().get(0).size();
+		int nbProps = line.getProperties().size();
+		int nbLines = lines.size();
+		List<Property> props = line.getProperties();
+		for (int t = 0; t < nbToken; t++) {
+			query += "["; //$NON-NLS-1$
+			for (int p = 0; p < nbProps; p++) {
+				if (props.get(p) instanceof StructuralUnitProperty) {
+					query += "_."+((StructuralUnitProperty)props.get(p)).getFullName() + "=\""; //$NON-NLS-1$ //$NON-NLS-2$
+				} else {
+					query += props.get(p) + "=\""; //$NON-NLS-1$
+				}
+				for (int l = 0; l < nbLines; l++) {
+					line = lines.get(l);
+					List<List<String>> values = line.getUnitsProperties();
+					String s = values.get(p).get(t);
+					s = Query.addBackSlash(s);
+					query += s + "|"; //$NON-NLS-1$
+				}
+				query = query.substring(0, query.length() - 1);
+				query += "\" & "; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 3);
+			query += "] "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 1);
+		return query;
+	}
+	
+	/**
 	 * This method alter the index first column frequencies using a table stored in the R workspace
 	 * 
 	 * @param referenceCorpus the R table variable name
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java	(revision 532)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java	(revision 533)
@@ -44,6 +44,8 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.txm.objects.Base;
 import org.txm.objects.BaseParameters;
+import org.txm.objects.SavedQuery;
+import org.txm.objects.Text;
 import org.txm.objects.TxmObject;
 import org.txm.searchengine.cqp.AbstractCqiClient;
 import org.txm.searchengine.cqp.CQPEngine;
@@ -81,7 +83,6 @@
 		super(cqpId);
 		this.motherMainCorpus = this;
 		this.name = cqpId;
-		
 	}
 
 	/**
@@ -161,6 +162,20 @@
 		}
 		return this.size;
 	}
+	
+	@Override
+	public List<? extends TxmObject> getChildren() {
+		List<? extends TxmObject> ret = super.getChildren();
+		for (int i = 0 ; i < ret.size() ; i++) {
+			Object element = ret.get(i);
+			
+			if (element instanceof Text || element instanceof SavedQuery) {
+				ret.remove(i);
+				i--;
+			}
+		}
+		return ret;
+	}
 
 	/**
 	 * Gets the properties available in this corpus.
Index: tmp/org.txm.core/src/java/org/txm/objects/Corpus.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Corpus.java	(revision 532)
+++ tmp/org.txm.core/src/java/org/txm/objects/Corpus.java	(revision 533)
@@ -39,7 +39,6 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.txm.Toolbox;
 import org.txm.core.messages.TXMCoreMessages;
-import org.txm.core.preferences.TBXPreferences;
 import org.txm.metadatas.DateMetadata;
 import org.txm.metadatas.Metadata;
 import org.txm.metadatas.MetadataGroup;
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 532)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java	(revision 533)
@@ -70,7 +70,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
-		Object selection = this.getSelection();
+		Object selection = this.getSelection(event);
 
 		if(!(selection instanceof ChartResult))	{
 			return null;
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/SWTChartsComponentsProvider.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/SWTChartsComponentsProvider.java	(revision 532)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/SWTChartsComponentsProvider.java	(revision 533)
@@ -211,8 +211,7 @@
 	public boolean updateChart(ChartEditorPart editor)	{
 		try {
 			return editor.getResultData().compute(true);
-		}
-		catch(Exception e) {
+		} catch(Exception e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
Index: tmp/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java
===================================================================
--- tmp/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java	(revision 532)
+++ tmp/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java	(revision 533)
@@ -266,8 +266,6 @@
 				for(long j = 0; j < 100000000L; j++)	{
 					;
 				}
-
-				
 			}
 		}
 		return npositions > 0;
Index: tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java
===================================================================
--- tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java	(revision 532)
+++ tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java	(revision 533)
@@ -136,7 +136,7 @@
 			this.parameters.put(ConcordancePreferences.LEFT_VIEW_PROPERTIES, this.getStringParameterValue(ConcordancePreferences.LEFT_VIEW_PROPERTIES));
 			this.parameters.put(ConcordancePreferences.KEYWORD_VIEW_PROPERTIES, this.getStringParameterValue(ConcordancePreferences.KEYWORD_VIEW_PROPERTIES));
 			this.parameters.put(ConcordancePreferences.RIGHT_VIEW_PROPERTIES, this.getStringParameterValue(ConcordancePreferences.RIGHT_VIEW_PROPERTIES));
-			
+
 			this.parameters.put(ConcordancePreferences.LEFT_CONTEXT_SIZE, this.getIntParameterValue(ConcordancePreferences.LEFT_CONTEXT_SIZE));
 			this.parameters.put(ConcordancePreferences.RIGHT_CONTEXT_SIZE, this.getIntParameterValue(ConcordancePreferences.RIGHT_CONTEXT_SIZE));
 
@@ -148,7 +148,7 @@
 				this.parameters.put(ConcordancePreferences.VIEW_REFERENCEPATTERN, "text_id");
 				this.parameters.put(ConcordancePreferences.ANALYSIS_REFERENCEPATTERN, "text_id");
 			}
-			
+
 			this.setParameters(this.parameters);
 		} catch (CqiClientException e) {
 			// TODO Auto-generated catch block
@@ -1050,7 +1050,7 @@
 	}
 
 	@Override
-	public boolean setParameters(TXMParameters parameters) throws CqiClientException {
+	public boolean setParameters(TXMParameters parameters) {
 		this.parameters = parameters;
 
 		Object p = parameters.get(ConcordancePreferences.QUERY);
@@ -1143,42 +1143,53 @@
 		return true;
 	}
 
-	private static ReferencePattern stringToReferencePattern(Corpus corpus, String v) throws CqiClientException {
-		
-		ReferencePattern props = new ReferencePattern();
-		if (v == null) return props;
-		if (v.length() == 0) return props;
-		
-		String[] split = v.split("\t");
-		for (String s : split) {
-			if (s.contains("_")) {
-				String[] split2 = s.split("_", 2);
-				StructuralUnit su = corpus.getStructuralUnit(split2[0]);
-				if (su != null) {
-					Property prop = su.getProperty(split2[1]);
+	private static ReferencePattern stringToReferencePattern(Corpus corpus, String v) {
+		try {
+			ReferencePattern props = new ReferencePattern();
+			if (v == null) return props;
+			if (v.length() == 0) return props;
+
+			String[] split = v.split("\t");
+			for (String s : split) {
+				if (s.contains("_")) {
+					String[] split2 = s.split("_", 2);
+					StructuralUnit su = corpus.getStructuralUnit(split2[0]);
+					if (su != null) {
+						Property prop = su.getProperty(split2[1]);
+						if (prop != null) {
+							props.addProperty(prop);
+						}
+					}
+				} else {
+					Property prop = corpus.getProperty(s);
 					if (prop != null) {
 						props.addProperty(prop);
 					}
 				}
-			} else {
-				Property prop = corpus.getProperty(s);
-				if (prop != null) {
-					props.addProperty(prop);
-				}
 			}
+			return props;
+		} catch (Exception e) {
+			System.out.println("Error: "+v+" property not found in "+corpus);
+			return null;
 		}
-		return props;
 	}
 
-	private static List<Property> stringToProperties(Corpus corpus, String v) throws CqiClientException {
-		
+	private static List<Property> stringToProperties(Corpus corpus, String v)  {
+
 		ArrayList<Property> props = new ArrayList<Property>();
 		if (v == null) return props;
 		if (v.length() == 0) return props;
-		
+
 		String[] split = v.split("\t");
 		for (String s : split) {
-			Property prop = corpus.getProperty(s);
+			Property prop;
+			try {
+				prop = corpus.getProperty(s);
+			} catch (CqiClientException e) {
+				System.out.println("Error: "+v+" property not found in "+corpus);
+				Log.printStackTrace(e);
+				return null;
+			}
 			if (prop != null) {
 				props.add(prop);
 			}
