Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 778)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 779)
@@ -960,6 +960,7 @@
 		queryWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
 		queryWidget.addKeyListener(new ComputeKeyListener(this));
 
+		// hide the parameters panel
 		getTopToolbar().setVisible(TXMEditor.COMPUTING_PARAMETERS_GROUP_ID, false); // the settings are not necessary to compute the concordance
 		
 		// | Properties: word/pos [Edit] |
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 778)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 779)
@@ -78,7 +78,7 @@
 	public final static String TOP_TOOLBAR_ID = "TXMEditorTopToolBar"; //$NON-NLS-1$
 	public final static String BOTTOM_TOOLBAR_ID = "TXMEditorBottomToolBar"; //$NON-NLS-1$
 	public final static String COMPUTING_PARAMETERS_GROUP_ID = "Parameters";
-	
+
 	/**
 	 * The editor main tool bar, positioned at the top of the editor.
 	 */
@@ -116,7 +116,7 @@
 	 */
 	protected Composite bottomToolBarContainer;
 
-	
+
 	/**
 	 * To keep track of the parameters used for the last computing and updates only the widgets if a parameter has changed. 
 	 */
@@ -128,10 +128,11 @@
 	private GLComposite bottomSubWidgetsComposite;
 	private GLComposite minimalParametersComposite;
 	private GLComposite firstLineComposite;
-	
+	private boolean createPartControlDoneSucessfully = true; // for now... muahahaha
 
-	
-	
+
+
+
 	@Override
 	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
 		this.setSite(site);
@@ -149,7 +150,7 @@
 	public GLComposite getMinimalParametersComposite() {
 		return minimalParametersComposite;
 	}
-	
+
 	/**
 	 * Creates the default toolbar (empty) and default result area (empty).
 	 * 
@@ -167,12 +168,12 @@
 			this.firstLineComposite = new GLComposite(parent, SWT.NONE);
 			this.firstLineComposite.getLayout().numColumns = 2;
 			this.firstLineComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
-			
+
 			this.minimalParametersComposite = new GLComposite(firstLineComposite, SWT.NONE);
 			this.minimalParametersComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
 			this.minimalParametersComposite.getLayout().horizontalSpacing = 5;
 
-			
+
 			// create the top tool bar
 			this.topToolBarContainer = new Composite(firstLineComposite, SWT.NONE);
 			this.topToolBarContainer.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
@@ -186,11 +187,11 @@
 			if (parent.getLayout() instanceof GridLayout)	{
 				this.parametersGroupsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
 			}
-			
+
 			this.topToolBar = new TXMEditorToolBar(this, this.topToolBarContainer, this.parametersGroupsComposite, SWT.FLAT | SWT.RIGHT, TOP_TOOLBAR_ID);
 			// FIXME: debug tests for see why there is an empty area at bottom of the toolbar
 			//this.topToolBar.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
-			
+
 			// computing parameters components
 			boolean showComputingParameters = false;
 			// only show the area if the result can not compute and is dirty
@@ -206,48 +207,58 @@
 			// display main area
 			this.resultArea = new Composite(parent, SWT.NONE);
 			this.resultArea.setLayoutData(new GridData(GridData.FILL_BOTH));
-			
+
 			// create the bottom tool bar
 			this.bottomToolBarContainer = new Composite(parent, SWT.NONE);
 			this.bottomToolBarContainer.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
 			rl = new RowLayout(SWT.HORIZONTAL);
 			rl.marginTop = rl.marginHeight = rl.marginWidth = rl.marginBottom = 0;
-			rl.center = true;
+			//rl.center = true;
+			//rl.justify = true;
 			this.bottomToolBarContainer.setLayout(rl);
-			
+
 			this.bottomSubWidgetsComposite = new GLComposite(parent, SWT.NONE);
 			if (parent.getLayout() instanceof GridLayout)	{
 				this.bottomSubWidgetsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
 			}
-			
+
 			this.bottomToolBar = new TXMEditorToolBar(this, this.bottomToolBarContainer, this.bottomSubWidgetsComposite, SWT.FLAT, "bottom");
-			
+
 			this._createPartControl(parent); // child editor create its parameters and display widgets
-			
-			
+
+
 			// remove empty toolbar
 			//TODO SJ: Hack? MD: yeah -> need to find a way to not display the bottom toolbar on Windows instead
 			if (this.bottomToolBar.getItems().length == 0) {
 				this.bottomToolBar.dispose();
 			}
-			
-			// uninstall parameers group if not used
+
+			// remove empty toolbar
+			//TODO SJ: Hack? MD: yeah -> need to find a way to not display the bottom toolbar on Windows instead
+			if (this.topToolBar.getItems().length == 0) {
+				this.topToolBar.dispose();
+			}
+
+			// uninstall parameters group if not used
 			if (computingParametersGroup.getChildren().length == 0) {
 				this.topToolBar.unInstallGroup(COMPUTING_PARAMETERS_GROUP_ID);
 			}
 		}
-		catch(Exception e) {
+		catch(Throwable e) {
 			System.err.println("TXMEditor.createPartControl(): can not create the editor.");
 			e.printStackTrace();
+			createPartControlDoneSucessfully  = false;
 		}
 	}
 
 	/**
-	 * Subclasses manual creation.
+	 * Subclasses manual creation method called after TXMEditor.createPartControl is called.
+	 * 
+	 * Use this method to set your own widgets in the minimal parameters area, the top toolbar, parameters group, the result area and the bottom toolbar
 	 * @param parent
 	 */
 	public abstract void _createPartControl(Composite parent);
-	
+
 	/**
 	 * Use this method to add widget next to the default Top toolbar
 	 * 
@@ -346,9 +357,10 @@
 		// TODO Auto-generated method stub
 	}
 
+	@SuppressWarnings("unchecked")
 	@Override
 	public TXMResultEditorInput<T> getEditorInput() {
-		return (TXMResultEditorInput) super.getEditorInput();
+		return (TXMResultEditorInput<T>) super.getEditorInput();
 	}
 
 	/**
@@ -428,7 +440,7 @@
 	 */
 	public JobHandler compute(final boolean update)	{
 
-		
+
 		StatusLine.setMessage("Computing " + this.getResult().getName());
 
 		JobHandler job = new JobHandler("Computing " + this.getResult().getName()) {
@@ -451,7 +463,7 @@
 								// FIXME: DEbug
 								System.err.println("TXMEditor.compute(): auto updating result from editor.");
 								autoUpdateResultFromEditorParameters(); // auto updating result from Parameter annotations in result <=> editor
-								
+
 								// Stores the last parameters before the computing to later auto-update the Widgets only if some parameters have changed 
 								setLastComputingParameters(TXMEditor.this.getResult().getLastParameters());
 							}
@@ -461,7 +473,7 @@
 
 					// computing result
 					monitor.beginTask("Computing", 100);
-					
+
 					if (!TXMEditor.this.getResult().compute(monitor)) {
 						Log.info("TXMEditor.compute(): computing failed.");
 					}
@@ -470,25 +482,25 @@
 
 					// FIXME: old version
 					// opening an editor if not exists
-//					if (currentEditor == null && editorId != null)	{
-//						this.syncExec(new Runnable() {
-//							@Override
-//							public void run() {
-//								try {
-//
-//									Log.info("TXMEditor.compute(): opening editor with id: " + editorId);
-//
-//									IWorkbenchWindow window = TXMWindows.getActiveWindow();
-//									IWorkbenchPage page = window.getActivePage();
-//									currentEditor = (TXMEditor) page.openEditor(editorInput, editorId, true, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
-//								}
-//								catch (Exception e) {
-//									System.err.println("TXMEditor.compute(): could not open editor: " + e.getLocalizedMessage());
-//									Log.printStackTrace(e);
-//								}
-//							}
-//						});
-//					}
+					//					if (currentEditor == null && editorId != null)	{
+					//						this.syncExec(new Runnable() {
+					//							@Override
+					//							public void run() {
+					//								try {
+					//
+					//									Log.info("TXMEditor.compute(): opening editor with id: " + editorId);
+					//
+					//									IWorkbenchWindow window = TXMWindows.getActiveWindow();
+					//									IWorkbenchPage page = window.getActivePage();
+					//									currentEditor = (TXMEditor) page.openEditor(editorInput, editorId, true, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
+					//								}
+					//								catch (Exception e) {
+					//									System.err.println("TXMEditor.compute(): could not open editor: " + e.getLocalizedMessage());
+					//									Log.printStackTrace(e);
+					//								}
+					//							}
+					//						});
+					//					}
 
 					// refreshing the UI
 					this.syncExec(new Runnable() {
@@ -497,9 +509,9 @@
 							refresh(update);
 						}
 					});
-					
-					
-					
+
+
+
 				}
 				// for user direct canceling
 				catch (ThreadDeath td) {
@@ -561,40 +573,42 @@
 		}
 		return editor;
 	}
-	
-	
+
+
 	/**
 	 * Synchronizes the editor with the result and refreshes the corpus view.
 	 * Also fires a dirty property change.
 	 * @param update
 	 */
 	public final void refresh(boolean update)	{
+		if (!createPartControlDoneSucessfully) return; // no refresh
+
 		// FIXME: result should never be null?
 		if (this.getResult() != null) {
-			
+
 			this.setPartName(this.getResult().getName());
 			this.firePropertyChange(TXMEditor.PROP_DIRTY);
-			
+
 			//MD commented 'if (!update) {...}'
 			// SJ need to check all works, it also was dedicated to not refresh the Editor from result after a computing, it's not needed since the computing has been done
 			// from fields themselves
 			//if (!update) {
-				// FIXME: debug
-				System.err.println("TXMEditor.refresh(): auto updating editor from result.");
-				this.autoUpdateEditorFieldsFromResult(update); // auto update from Parameter annotations
-	
-				// FIXME: debug
-				System.err.println("TXMEditor.refresh(): updating subclass editor (" + getClass().getSimpleName() + ") from result.");
-				this.updateEditorFromResult(update); // subclasses manual settings
+			// FIXME: debug
+			System.err.println("TXMEditor.refresh(): auto updating editor from result.");
+			this.autoUpdateEditorFieldsFromResult(update); // auto update from Parameter annotations
+
+			// FIXME: debug
+			System.err.println("TXMEditor.refresh(): updating subclass editor (" + getClass().getSimpleName() + ") from result.");
+			this.updateEditorFromResult(update); // subclasses manual settings
 			//}
-				
+
 			// Hide the computing parameter area if the editor wasn't open and the result is computed
 			if (!update) {
 				if (!this.getResult().isDirty() && !this.topToolBar.isDisposed()) {
 					this.topToolBar.setComputingParametersVisible(false);
 				}
 			}
-				
+
 			topToolBar.redraw();
 			CorporaView.refreshObject(this);
 			TXMResultDebugView.refreshView();
@@ -708,16 +722,16 @@
 				else	{
 					f.set(this, value);
 				}
-				
+
 				// FIXME: debug
 				if(object != null)	{
 					String message = "TXMEditor.autoUpdateEditorFieldsFromResult(): setting editor parameter " + parameter.key() + " = " + value;
 					if(value != null) {
-						 message += " (" + value.getClass() + " to object " + object + ")";
+						message += " (" + value.getClass() + " to object " + object + ")";
 					}
 					System.err.println(message);
 				}
-				
+
 				// FIXME: need to extend this list of managed Widgets
 			}
 			catch (Exception e) {
@@ -725,16 +739,16 @@
 				e.printStackTrace();
 			}
 		}
-		
+
 		// FIXME: Updating the compute button enabled/disabled state
 		// the code below doesn't work as expected for text fields (as query field or other)
-//		try {
-//			this.topToolBar.getItem(0).setEnabled(this.getResult().canCompute());
-//		}
-//		catch (Exception e) {
-//			// TODO Auto-generated catch block
-//			e.printStackTrace();
-//		}
+		//		try {
+		//			this.topToolBar.getItem(0).setEnabled(this.getResult().canCompute());
+		//		}
+		//		catch (Exception e) {
+		//			// TODO Auto-generated catch block
+		//			e.printStackTrace();
+		//		}
 	}
 
 
@@ -772,9 +786,9 @@
 					value = ((Button)object).getSelection(); 
 				}
 				else if(object instanceof Viewer)	{
-					
+
 					IStructuredSelection selection = ((IStructuredSelection)((Viewer)object).getSelection());
-					
+
 					// Multi-selection
 					if(SWT.MULTI == (((Viewer)object).getControl().getStyle() & SWT.MULTI))	{
 						value = selection.toList();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java	(revision 778)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java	(revision 779)
@@ -13,7 +13,9 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.ToolBar;
 import org.eclipse.swt.widgets.ToolItem;
 import org.eclipse.ui.menus.IMenuService;
@@ -133,13 +135,22 @@
 	/**
 	 * Adds the specified control to this toolbar.
 	 * Convenience method to add non-ToolItem controls to the toolbar using the SWT.SEPARATOR trick, plus packing and setting the right width.
+	 * 
+	 * Warning: the item size is not synchronized with the control size
 	 * @param control
 	 */
-	public void addControl(Control control)	{
-		ToolItem itemSeparator = new ToolItem(this, SWT.SEPARATOR);
+	public void addControl(final Control control)	{
+		final ToolItem itemSeparator = new ToolItem(this, SWT.SEPARATOR);
 		control.pack();
 		itemSeparator.setWidth(control.getBounds().width);
-		itemSeparator.setControl(control);	
+		itemSeparator.setControl(control);
+		control.addListener(SWT.RESIZE, new Listener() {
+			
+			@Override
+			public void handleEvent(Event event) {
+				itemSeparator.setWidth(control.getBounds().width);
+			}
+		});
 	}
 
 	/**
Index: tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java
===================================================================
--- tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java	(revision 778)
+++ tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java	(revision 779)
@@ -130,7 +130,9 @@
 //	@Parameter(key=LexicalTablePreferences.V_MAX)
 	protected Spinner vMax;
 
+	private Label infoLine;
 
+
 	
 	
 	
@@ -387,6 +389,7 @@
 			// Register the context menu
 			TXMEditor.initContextMenu(this.viewer.getTable(), this.getSite(), this.viewer); // $NON-NLS-1$
 
+			infoLine = new Label(getBottomToolbar().getParent(), SWT.NONE);
 		}
 		catch (CqiClientException e) {
 			// TODO Auto-generated catch block
@@ -409,6 +412,12 @@
 		}
 	}
 
+	public void setContentDescription(String desc) {
+		infoLine.setText(desc);
+		infoLine.update();
+		infoLine.getParent().layout();
+	}
+	
 	/**
 	 * Refreshes the description area.
 	 */
