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 613)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 614)
@@ -10,6 +10,7 @@
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Set;
 
@@ -891,8 +892,27 @@
 		return getKeys(DefaultScope.INSTANCE, nodeQualifier);
 	}
 
+	public static HashMap<String, Object> getKeysAndValuesAsMap(IScopeContext scope, String nodeQualifier)	{
+		
+		HashMap<String, Object> str = new HashMap<String, Object>();
+		
+		IEclipsePreferences preferences = scope.getNode(nodeQualifier);
+		
+		try {
+			String[] keys = preferences.keys();
+			Arrays.sort(keys);
+			for(int i = 0; i < keys.length; i++) {
+				str.put(keys[i],preferences.get(keys[i], ""));
+			}
+		}
+		catch(BackingStoreException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		return str;
+	}
 	
-	
 	public static String getKeysAndValues(IScopeContext scope, String nodeQualifier)	{
 		
 		StringBuilder str = new StringBuilder();
@@ -914,7 +934,6 @@
 		}
 		
 		return str.toString();
-		
 	}
 	
 	
Index: tmp/org.txm.core/src/java/org/txm/core/results/Parameter.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/Parameter.java	(revision 613)
+++ tmp/org.txm.core/src/java/org/txm/core/results/Parameter.java	(revision 614)
@@ -41,5 +41,4 @@
 	 * @return
 	 */
 	public int type() default Parameter.COMPUTING;
-	
 }
\ No newline at end of file
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 613)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 614)
@@ -237,11 +237,29 @@
 		
 	}
 	
-	
-	// FIXME: not used?
 	public HashMap<String, Object> getLastParameters() {
 		return lastParameters;
 	}
+	
+	// FIXME: not used?
+	public String htmlDumpLastParameters() {
+		StringBuilder builder = new StringBuilder();
+		builder.append("<h4>Last compute parameters</h4>");
+		
+		if (lastParameters.keySet().size() == 0) {
+			builder.append("<p>not computed yet.</p>");
+		} else {
+			builder.append("<ul>\n");
+			for (String k : lastParameters.keySet()) {
+				builder.append("<li>"+k+" = "+lastParameters.get(k)+"</li>\n");
+			}
+			builder.append("<ul>\n");
+		}
+		
+		
+		
+		return builder.toString();
+	}
 
 
 
@@ -315,27 +333,65 @@
 
 		return str.toString();
 	}
+	
+	/**
+	 * Dumps the command and default preferences of the result preferences node qualifier.
+	 * @return
+	 */
+	public String htmlDumpPreferences()	{
 
+		StringBuilder str = new StringBuilder();
+
+		str.append("<h4>"+this.getClass().getSimpleName()+" command preferences</h4>\n"); //$NON-NLS-1$
+		str.append("<ul>\n"); //$NON-NLS-1$
+		HashMap<String, Object> map = TXMPreferences.getKeysAndValuesAsMap(TXMPreferences.scope, this.preferencesNodeQualifier);
+		for (String k : map.keySet()) {
+			str.append("<li>"+k+" = "+map.get(k)+"</li>\n");
+		}
+		str.append("</ul>\n"); //$NON-NLS-1$
+		
+		str.append("\n<h4>"+this.getClass().getSimpleName()+" command default preferences</h4>\n"); //$NON-NLS-1$
+		str.append("<ul>\n"); //$NON-NLS-1$
+		map = TXMPreferences.getKeysAndValuesAsMap(DefaultScope.INSTANCE, this.preferencesNodeQualifier);
+		for (String k : map.keySet()) {
+			str.append("<li>"+k+" = "+map.get(k)+"</li>\n");
+		}
+		str.append("</ul>\n"); //$NON-NLS-1$
+		
+		return str.toString();
+	}
+	
 	/**
 	 * Dumps the result computing parameters (Parameter annotation).
 	 * @return
 	 */
 	public String dumpParameters()	{
-		return this.dumpParameters(Parameter.COMPUTING);
+		return this.dumpParameters(null, false);
 	}
-
 	
 	/**
+	 * Dumps the result computing parameters (Parameter annotation).
+	 * @return
+	 */
+	public String htmlDumpParameters()	{
+		return this.dumpParameters(null, true);
+	}
+
+	/**
 	 * Dumps the result parameters (Parameter annotation) of the specified type.
 	 * @param parametersType
 	 * @return
 	 */
-	public String dumpParameters(int parametersType)	{
+	public String dumpParameters(Integer parametersType, boolean html)	{
 
 		StringBuilder str = new StringBuilder();
-
-		str.append("Parameters (type = " + parametersType + " / " + Parameter.types[parametersType] + ")\n"); //$NON-NLS-1$
-
+		if (html) str.append("<h4>");
+		str.append("Current parameters");
+		if (parametersType != null) {
+			str.append(" (type = " + parametersType + " / " + Parameter.types[parametersType] + ")\n"); //$NON-NLS-1$
+		}
+		if (html) str.append("</h4>");
+		
 		List<Field> fields = new ArrayList<Field>();
 		Class<?> clazz = this.getClass();
 		while (clazz != Object.class) {
@@ -343,33 +399,39 @@
 			clazz = clazz.getSuperclass();
 		}
 
+		if (html) str.append("<ul>");
 		for (Field f : fields) {
 			Parameter parameter = f.getAnnotation(Parameter.class);
-			if (parameter == null || parameter.type() != parametersType) {
+			if (parameter == null) {
 				continue;
 			}
+			if (parametersType != null && parameter.type() != parametersType) {
+				continue;
+			}
 			f.setAccessible(true);
 
+			String key = parameter.key();
+			if (key == null) continue;
+			
 			String name;
-			if(!parameter.key().isEmpty())	{
+			if(!key.isEmpty())	{
 				name = parameter.key();
 			}
 			else	{
 				name = f.getName();
 			}
-
+			int type = parameter.type();
 			try {
-				str.append(name + " = " + f.get(this) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+				if (html) str.append("<li>");
+				str.append(name + "("+Parameter.types[type]+") = " + f.get(this) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+				if (html) str.append("</li>");
 			}
-			catch (IllegalArgumentException e) {
+			catch (Exception e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
-			catch (IllegalAccessException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
 		}
+		if (html) str.append("</ul>");
 		return str.toString();
 	}
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/cmdparameters/ParametersView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/cmdparameters/ParametersView.java	(revision 613)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/cmdparameters/ParametersView.java	(revision 614)
@@ -27,10 +27,8 @@
 //
 package org.txm.rcp.views.cmdparameters;
 
-import java.util.Arrays;
-
-import org.apache.commons.lang.ArrayUtils;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.IPartListener;
@@ -50,7 +48,7 @@
  */
 public class ParametersView extends ViewPart implements IPartListener {
 
-	Label currentEditorLabel;
+	Browser currentEditorLabel;
 
 	/** The ID. */
 	public static String ID = ParametersView.class.getName(); //$NON-NLS-1$
@@ -89,27 +87,32 @@
 		if (editor instanceof TXMEditorPart) {
 			TXMEditorPart reditor = (TXMEditorPart)editor;
 			StringBuffer buffer = new StringBuffer();
+			
 			TXMResult result = reditor.getResultData();
-			buffer.append("Result: " + result.toString() + "\n");
-			buffer.append("UUID: " + result.getUUID() + "\n");
-			buffer.append("Simple name: " + result.getSimpleName() + "\n");
-			buffer.append("Name: " + result.getName() + "\n");
-			buffer.append("Valid filename: " + result.getValidFileName() + "\n");
-			buffer.append("Details: " + result.getDetails() + "\n\n");
-			
+			buffer.append("<h4>"+result.getClass().getSimpleName()+" details</h4>");
+			buffer.append("<p><ul>");
+			buffer.append("<li>Result: <br/>" + result.toString() + "</li>\n");
+			buffer.append("<li>UUID: <br/>" + result.getUUID() + "</li>\n");
+			buffer.append("<li>Simple name: <br/>" + result.getSimpleName() + "</li>\n");
+			buffer.append("<li>Name: <br/>" + result.getName() + "</li>\n");
+			buffer.append("<li>Valid filename: <br/>" + result.getValidFileName() + "</li>\n");
+			buffer.append("<li>Compute details: <br/>" + result.getDetails() + "</li>\n\n");
+			buffer.append("</ul></p>");
 
 			try {
 				// Command preferences
-				buffer.append(result.dumpPreferences());
-				buffer.append("\n");
+				buffer.append(result.htmlDumpPreferences());
 				
 				// Object parameters
-				buffer.append(result.dumpParameters());
+				buffer.append(result.htmlDumpParameters());
 				
+				// Object parameters
+				buffer.append(result.htmlDumpLastParameters());
 				
 			}
-			catch(Exception e) {
-				System.out.println("Error: "+e.getLocalizedMessage());
+			catch (Exception e) {
+				System.out.println("Error: "+e);
+				e.printStackTrace();
 			}
 			
 			
@@ -147,7 +150,7 @@
 	@Override
 	public void createPartControl(Composite parent) {
 		System.out.println("createPartControl: "+parent);
-		currentEditorLabel = new Label(parent, SWT.NONE);
+		currentEditorLabel = new Browser(parent, SWT.NONE);
 		updateEditorParameters();
 	}
 
Index: tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/results/ChartResult.java
===================================================================
--- tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/results/ChartResult.java	(revision 613)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/results/ChartResult.java	(revision 614)
@@ -188,12 +188,6 @@
 		return false;
 	}
 	
-	
-	@Override
-	public String dumpParameters() {
-		return super.dumpParameters() + "\n" + this.dumpParameters(Parameter.RENDERING);
-	}
-	
 	/**
 	 * Updates the parameters used for last rendering.
 	 * 
