Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMResultEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMResultEditorInput.java	(revision 375)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMResultEditorInput.java	(revision 376)
@@ -1,5 +1,8 @@
 package org.txm.rcp.editors;
 
+import java.util.HashMap;
+import java.util.Properties;
+
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
@@ -27,6 +30,11 @@
 	
 	
 	
+	//FIXME: parameters tests
+	protected Properties params;
+	protected ITXMResult source;
+	
+	
 	/**
 	 * Creates an editor input with no linked TXM result.
 	 */
@@ -42,9 +50,15 @@
 	public TXMResultEditorInput(ITXMResult result) {
 		this.result = result;
 		this.alwaysRecreateEditor = false;
+		
 	}
 
-
+	//FIXME: parameters tests
+	public TXMResultEditorInput(ITXMResult source, HashMap<String, Object> parameters) {
+		this.source = source;
+		this.params = params;
+	}
+	
 	/**
 	 * Gets the TXM result associated with the editor input.
 	 * @return the linked result
@@ -92,6 +106,20 @@
 		return "";
 	}
 
+	/**
+	 * Deletes the linked TXM result.
+	 * @return
+	 */
+	public boolean deleteResult()	{
+		try {
+			return this.result.delete();
+		}
+		catch(Exception e) {
+			return false;
+		}
+	}
+
+	
 	@Override
 	public boolean exists() {
 		// TODO Auto-generated method stub
@@ -127,5 +155,21 @@
 		return false;
 	}
 
+
+	/**
+	 * @return the params
+	 */
+	public Properties getParams() {
+		return params;
+	}
+
+
+	/**
+	 * @return the source
+	 */
+	public ITXMResult getSource() {
+		return source;
+	}
+
 	
 }
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 375)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java	(revision 376)
@@ -15,12 +15,21 @@
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.ToolItem;
 import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.EditorPart;
+import org.txm.chartsengine.rcp.editors.ChartEditorInput;
+import org.txm.chartsengine.rcp.editors.ChartEditorPart;
+import org.txm.cooccurrence.rcp.editors.CooccurrencesEditor;
 import org.txm.core.results.ITXMResult;
 import org.txm.rcp.IImageKeys;
+import org.txm.rcp.Messages;
+import org.txm.rcp.StatusLine;
+import org.txm.rcp.TXMWindows;
 import org.txm.rcp.views.corpora.CorporaView;
 
 /**
@@ -29,7 +38,7 @@
  * @author sjacquot
  *
  */
-public class TXMEditorPart extends EditorPart {
+public abstract class TXMEditorPart extends EditorPart {
 
 	
 	
@@ -87,7 +96,6 @@
 		this.setVisible(this.commandParametersComposite, (this.getEditorInput().getResult() == null));
 		
 		this.commandParametersGroup.pack();
-		
 	}
 
 
@@ -152,6 +160,8 @@
 		return group;
 	}
 	
+
+	
 	/**
 	 * Sets the visibility state of the specified composite.
 	 * The mechanism is based on GridData.exclude to hide the composite therefore the composite must have a GridData as layout data.
@@ -238,7 +248,7 @@
     }
 	
 	/**
-	 * Returns the result object associated with the editor.
+	 * Returns the result object associated with the editor through its editor input.
 	 * @return
 	 */
 	public ITXMResult getResultData()	{
@@ -246,7 +256,13 @@
 	}
 
 
+	/**
+	 * 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(boolean update);
 	
+	
 	/**
 	 * Synchronizes the editor with the result and refreshes the corpus view. 
 	 */
@@ -268,4 +284,72 @@
 		}
 	}
 	
+	/**
+	 * Deletes the linked TXM result.
+	 * @return
+	 */
+	public boolean deleteResult()	{
+		try {
+			return this.getEditorInput().deleteResult();
+		}
+		catch(Exception e) {
+			return false;
+		}
+	}
+
+	/**
+	 * Closes the editor from the UI thread and deletes or not the linked result.
+	 */
+	public void close(final boolean deleteResult)	{
+		final EditorPart self = this;
+		getSite().getShell().getDisplay().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				getSite().getPage().closeEditor(self, false);
+				if(deleteResult)	{
+					deleteResult();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Closes the editor from the UI thread.
+	 */
+	public void close()	{
+		close(false);
+	}
+	
+	/**
+	 * 
+	 * @param editorInput
+	 * @param editorPartId
+	 * @param activate
+	 * @param matchFlags
+	 * @return
+	 */
+	public static TXMEditorPart openEditor(TXMResultEditorInput editorInput, String editorPartId, boolean activate, int matchFlags)	{
+		TXMEditorPart editor = null;
+		try {
+			IWorkbenchWindow window =TXMWindows.getActiveWindow();
+			IWorkbenchPage page = window.getActivePage();
+			editor = (CooccurrencesEditor) page.openEditor(editorInput, editorPartId, activate, matchFlags);
+		}
+		catch (Exception e) {
+			org.txm.rcp.utils.Logger.printStackTrace(e);
+		}
+		return editor;
+	}
+	
+	/**
+	 * 
+	 * @param editorInput
+	 * @param editorPartId
+	 * @return
+	 */
+	public static TXMEditorPart openEditor(TXMResultEditorInput editorInput, String editorPartId)	{
+		return openEditor(editorInput, editorPartId, true, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
+	}
+	
+	
 }
