Index: tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartCreator.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartCreator.java	(revision 573)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartCreator.java	(revision 574)
@@ -22,13 +22,6 @@
 
 	
 	
-	/**
-	 * 
-	 */
-	public JFCChartCreator() {
-	}
-	
-
 	@Override
 	public void updateChart(ChartResult result) {
 		this.updateChart(result, true);
@@ -46,37 +39,43 @@
 
 		// Java object
 		if(result.getChart() instanceof JFreeChart)	{
-			JFreeChart cchart = (JFreeChart) result.getChart();
+			JFreeChart chart = (JFreeChart) result.getChart();
 			
 			// freeze rendering
-			cchart.setNotify(false);
+			chart.setNotify(false);
 
 			
-			if(cchart.getTitle() != null)	{
-				cchart.getTitle().setVisible(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_TITLE));
+			// title visibility
+			if(chart.getTitle() != null && result.renderingParameterHasChanged(ChartsEnginePreferences.SHOW_TITLE))	{
+				chart.getTitle().setVisible(result.isTitleVisible());
 			}
-			if(cchart.getLegend() != null)	{
-				cchart.getLegend().setVisible(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_LEGEND));
+			// legend visibility
+			if(chart.getLegend() != null && result.renderingParameterHasChanged(ChartsEnginePreferences.SHOW_LEGEND))	{
+				chart.getLegend().setVisible(result.isLegendVisible());
 			}
 			
-			// CategoryPlot
-			if(cchart.getPlot() instanceof CategoryPlot)	{
-				CategoryPlot plot = (CategoryPlot) cchart.getPlot();
-				plot.setDomainGridlinesVisible(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID));
-				plot.setRangeGridlinesVisible(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID));
+			// grid visibility
+			if(result.renderingParameterHasChanged(ChartsEnginePreferences.SHOW_GRID))	{
+				// CategoryPlot
+				if(chart.getPlot() instanceof CategoryPlot)	{
+					CategoryPlot plot = (CategoryPlot) chart.getPlot();
+					plot.setDomainGridlinesVisible(result.isGridVisible());
+					plot.setRangeGridlinesVisible(result.isGridVisible());
+				}
+				// XYPlot
+				else if(chart.getPlot() instanceof XYPlot)	{
+					XYPlot plot = (XYPlot) chart.getPlot();
+					plot.setRangeGridlinesVisible(result.isGridVisible());
+					plot.setDomainGridlinesVisible(result.isGridVisible());
+				}
 			}
-			// XYPlot
-			else if(cchart.getPlot() instanceof XYPlot)	{
-				XYPlot plot = (XYPlot) cchart.getPlot();
-				plot.setRangeGridlinesVisible(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID));
-				plot.setDomainGridlinesVisible(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID));
-			}
-
+			
+			
 			if(applyTheme)	{
-				this.getChartsEngine().getJFCTheme().applyThemeToChart(cchart, result, true);
+				this.getChartsEngine().getJFCTheme().applyThemeToChart(result, true);
 			}
 
-			cchart.setNotify(true);
+			chart.setNotify(true);
 		}
 		// File
 		else if(result.getChart() instanceof File)	{
Index: tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/base/JFCTheme.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/base/JFCTheme.java	(revision 573)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/base/JFCTheme.java	(revision 574)
@@ -35,9 +35,9 @@
 import org.jfree.chart.title.LegendTitle;
 import org.txm.chartsengine.core.ChartsEngine;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
+import org.txm.chartsengine.core.results.ChartResult;
 import org.txm.chartsengine.jfreechart.core.JFCChartsEngine;
 import org.txm.chartsengine.jfreechart.core.renderers.XYCardinalSplineRenderer;
-import org.txm.core.preferences.TXMPreferences;
 import org.txm.core.results.TXMResult;
 
 public class JFCTheme extends StandardChartTheme {
@@ -130,7 +130,7 @@
 	 * @param preferencesNode
 	 * @param applySeriesStrokes
 	 */
-	public void applyThemeToChart(JFreeChart chart, TXMResult result, boolean applySeriesStrokes)	{
+	public void applyThemeToChart(ChartResult result, boolean applySeriesStrokes)	{
 		// FIXME
 	}
 
@@ -142,16 +142,16 @@
 	 * @param result
 	 * @param preferencesNode
 	 */
-	public void applyThemeToChart(JFreeChart chart, TXMResult result)	{
-		this.applyThemeToChart(chart, result, false);
+	public void applyThemeToChart(ChartResult result)	{
+		this.applyThemeToChart(result, false);
 	}
 
 	/**
 	 * Creates fonts from the charts engine preferences current font.
 	 */
-	protected void createFonts(TXMResult result)	{
+	protected void createFonts(ChartResult result)	{
 
-		Font baseFont = ChartsEngine.createFont(result.getStringParameterValue(ChartsEnginePreferences.FONT));
+		Font baseFont = ChartsEngine.createFont(result.getFont());
 		
 		// Titles
 	    this.setExtraLargeFont(baseFont.deriveFont(Font.BOLD, baseFont.getSize() + 5));
Index: tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/highcharts/defaulttheme/HighchartsDefaultTheme.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/highcharts/defaulttheme/HighchartsDefaultTheme.java	(revision 573)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/highcharts/defaulttheme/HighchartsDefaultTheme.java	(revision 574)
@@ -33,6 +33,7 @@
 import org.jfree.util.ShapeUtilities;
 import org.txm.chartsengine.core.ChartsEngine;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
+import org.txm.chartsengine.core.results.ChartResult;
 import org.txm.chartsengine.jfreechart.core.JFCChartsEngine;
 import org.txm.chartsengine.jfreechart.core.renderers.XYCardinalSplineRenderer;
 import org.txm.chartsengine.jfreechart.core.renderers.interfaces.IRendererWithItemSelection;
@@ -47,8 +48,6 @@
 import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.renderers.ItemSelectionXYLineAndShapeRenderer;
 import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.renderers.ItemSelectionXYSplineRenderer;
 import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.renderers.ItemSelectionXYStepRenderer;
-import org.txm.core.preferences.TXMPreferences;
-import org.txm.core.results.TXMResult;
 
 /**
  * Highcharts GWT library default rendering theme.
@@ -144,16 +143,17 @@
 	 * (The theme can not be used with ChartFactory.setChartTheme() because of additional plot, renderer and chart settings according to the type of chart.)
 	 * @param chart
 	 */
-    public void applyThemeToChart(JFreeChart chart, TXMResult result, boolean applySeriesStrokes)	{
+    public void applyThemeToChart(ChartResult result, boolean applySeriesStrokes)	{
 
     	this.createFonts(result);
 
+    	JFreeChart chart = (JFreeChart) result.getChart();
     	
     	super.apply(chart);
 
 
     	
-    	int itemsColorsRenderingMode = result.getIntParameterValue(ChartsEnginePreferences.RENDERING_COLORS_MODE);
+    	int itemsColorsRenderingMode = result.getRenderingColorsMode();
     	
     	// FIXME : UI settings
 //		UIManager.put("ToolTip.background", Color.gray);
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 573)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java	(revision 574)
@@ -72,6 +72,11 @@
 	public final static String RESULT_DATA_TYPE = PREFERENCES_PREFIX +  "result_data_type"; //$NON-NLS-1$
 	
 	
+	/**
+	 * Default font string representation.
+	 */
+	public final static String DEFAULT_FONT = "1|Lucida Sans Unicode|11.0|0|WINDOWS|1|-16|0|0|0|400|0|0|0|0|3|2|1|34|Lucida Sans Unicode;"; //$NON-NLS-1$  
+	
 
 	@Override
 	public void initializeDefaultPreferences() {
@@ -96,8 +101,8 @@
 		preferences.putInt(RENDERING_COLORS_MODE, ChartsEngine.RENDERING_COLORS_MODE);
 		preferences.put(MONOCHROME_COLOR, "0,220,20"); //$NON-NLS-1$
 
-		// FIXME: maybe need need to check here the target OS and set a default unicode installed font
-		preferences.put(FONT, "1|Lucida Sans Unicode|11.0|0|WINDOWS|1|-16|0|0|0|400|0|0|0|0|3|2|1|34|Lucida Sans Unicode;"); //$NON-NLS-1$
+		// FIXME: maybe need need to check here the target OS and set a default Unicode installed font
+		preferences.put(FONT, DEFAULT_FONT);
 		
 	}
 	
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 573)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/results/ChartResult.java	(revision 574)
@@ -4,11 +4,15 @@
 package org.txm.chartsengine.core.results;
 
 import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.txm.chartsengine.core.ChartCreator;
 import org.txm.chartsengine.core.ChartsEngine;
+import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.core.results.Parameter;
 import org.txm.core.results.TXMResult;
 import org.txm.utils.logger.Log;
@@ -42,7 +46,7 @@
 
 	
 	/**
-	 * If true, the view will be reset when the chart will be updated.
+	 * If true, the view (zoom, pan, etc.) will be reset when the chart will be updated.
 	 */
 	protected boolean needsToResetView;
 	
@@ -50,11 +54,43 @@
 	 * If true, the items selection will cleared when the chart will be updated.
 	 */
 	protected boolean needsToClearItemsSelection;
+
 	
 	
 	
 	
 	/**
+	 * To show/hide title.
+	 */
+	@Parameter(key=ChartsEnginePreferences.SHOW_TITLE, type=Parameter.RENDERING)
+	protected boolean titleVisible;
+	
+	/**
+	 * To show/hide legend.
+	 */
+	@Parameter(key=ChartsEnginePreferences.SHOW_LEGEND, type=Parameter.RENDERING)
+	protected boolean legendVisible;
+
+	/**
+	 * To show/hide grid.
+	 */
+	@Parameter(key=ChartsEnginePreferences.SHOW_GRID, type=Parameter.RENDERING)
+	protected boolean gridVisible;
+
+	/**
+	 * Rendering colors mode
+	 */
+	@Parameter(key=ChartsEnginePreferences.RENDERING_COLORS_MODE, type=Parameter.RENDERING)
+	protected int renderingColorsMode;
+	
+	/**
+	 * Font.
+	 */
+	@Parameter(key=ChartsEnginePreferences.FONT, type=Parameter.RENDERING)
+	protected String font;
+
+	
+	/**
 	 * 
 	 * @param parent
 	 */
@@ -63,8 +99,85 @@
 		this.chartDirty = true;
 		this.needsToResetView = false;
 		this.needsToClearItemsSelection = false;
+		try {
+			this.loadInternalParameters();
+		}
+		catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
 	}
 	
+	
+	/**
+	 * Loads internal parameters from local node or default preferences.
+	 * @return
+	 * @throws Exception
+	 */
+	public boolean loadInternalParameters() throws Exception {
+		this.titleVisible = this.getBooleanParameterValue(ChartsEnginePreferences.SHOW_TITLE);
+		this.legendVisible = this.getBooleanParameterValue(ChartsEnginePreferences.SHOW_LEGEND);
+		this.gridVisible = this.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID);
+		this.renderingColorsMode = this.getIntParameterValue(ChartsEnginePreferences.RENDERING_COLORS_MODE);
+		this.font = this.getStringParameterValue(ChartsEnginePreferences.FONT);
+
+		return super.loadParameters();
+	}
+	
+	
+	
+	/**
+	 * Checks if a parameter value has changed since last rendering. 
+	 * @param key
+	 * @return
+	 */
+	public boolean renderingParameterHasChanged(String key) {
+		if ("".equals(key)) {
+			return false;
+		}
+		Object lastValue = this.lastRenderingParameters.get(key);
+		Object newValue = this.getRenderingParameter(key);
+		if (lastValue == null && newValue != null) {
+			return true;
+		}
+		else {
+			return !lastValue.equals(newValue);
+		}
+	}
+
+
+	/**
+	 * 
+	 * @param key
+	 * @return
+	 */
+	protected Object getRenderingParameter(String key) {
+		List<Field> fields = new ArrayList<Field>();
+		Class<?> clazz = this.getClass();
+		while (clazz != Object.class) {
+			fields.addAll(Arrays.asList(clazz.getDeclaredFields()));
+			clazz = clazz.getSuperclass();
+		}
+
+		for (Field f : fields) {
+			Parameter parameter = f.getAnnotation(Parameter.class);
+			if (parameter == null || parameter.type() != Parameter.RENDERING) {
+				continue;
+			}
+			f.setAccessible(true);
+			if (parameter.key().equals(key)) {
+				try {
+					return f.get(this);
+				}
+				catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return null;
+	}
+	
+	
 	@Override
 	public boolean compute(boolean update, IProgressMonitor monitor) throws Exception {
 
@@ -81,6 +194,12 @@
 		}
 	}
 	
+	/**
+	 * 
+	 * @param update
+	 * @return
+	 * @throws Exception
+	 */
 	protected boolean renderChart(boolean update) throws Exception {
 
 		this.subTask("Rendering chart.");
@@ -118,7 +237,13 @@
 				// FIXME: debug
 				System.err.println("ChartResult.renderChart(): creating chart.");
 				
-				this.chart =  chartCreator.createChart(this);				
+				this.chart = chartCreator.createChart(this);
+
+				// FIXME: debug
+				System.err.println("ChartResult.renderChart(): updating chart.");
+				
+				// FIXME: the update must be done here (BEFORE the call of this.updateLastRenderingParameters()) rather than in the SWTChartComponentsProvider => the problem is that for File based Engine, the file may be created twice, need to check this
+				chartCreator.updateChart(this);
 			}
 			
 			this.updateLastRenderingParameters();
@@ -142,11 +267,19 @@
 	protected void updateLastRenderingParameters() throws Exception {
 		Field[] fields = this.getClass().getDeclaredFields();
 		for (Field f : fields) {
-			String name = f.getName();
 			Parameter parameter = f.getAnnotation(Parameter.class);
 			if (parameter == null || parameter.type() != Parameter.RENDERING) {
 				continue;
 			}
+			
+			String name;
+			if(!"".equals(parameter.key()))	{
+				name = parameter.key();
+			}
+			else	{
+				name = f.getName();
+			}
+			
 			f.setAccessible(true);
 			this.lastRenderingParameters.put(name, f.get(this));
 		}
@@ -158,11 +291,19 @@
 
 		Field[] fields = clazz.getDeclaredFields();
 		for (Field f : fields) {
-			String name = f.getName();
-			Parameter annotation = f.getAnnotation(Parameter.class);
-			if (annotation == null || annotation.type() != Parameter.RENDERING) {
+			Parameter parameter = f.getAnnotation(Parameter.class);
+			if (parameter == null || parameter.type() != Parameter.RENDERING) {
 				continue;
 			}
+			
+			String name;
+			if(!"".equals(parameter.key()))	{
+				name = parameter.key();
+			}
+			else	{
+				name = f.getName();
+			}
+			
 			f.setAccessible(true); // not to set accessible to test the field values
 			Object previousValue = this.lastRenderingParameters.get(name);
 			Object newValue = f.get(this);
@@ -178,12 +319,12 @@
 	/**
 	 * Updates the chart dirty state by comparing an old parameter with a new one.
 	 * 
-	 * @param previousValue may be null
+	 * @param lastValue may be null
 	 * @param newValue may be null
 	 */
-	protected void updateChartDirty(Object previousValue, Object newValue) {
-		if (previousValue == null || !previousValue.equals(newValue)) {
-			Log.info("Setting chart dirty to true: old = "+ previousValue + " / new = " + newValue);
+	protected void updateChartDirty(Object lastValue, Object newValue) {
+		if (lastValue == null || !lastValue.equals(newValue)) {
+			Log.info("Setting chart dirty to true: old = "+ lastValue + " / new = " + newValue);
 			this.chartDirty = true;
 		}
 	}
@@ -282,8 +423,83 @@
 	public void setNeedsToClearItemsSelection(boolean needsToClearItemsSelection) {
 		this.needsToClearItemsSelection = needsToClearItemsSelection;
 	}
+
+	/**
+	 * @return the titleVisible
+	 */
+	public boolean isTitleVisible() {
+		return titleVisible;
+	}
+
+	/**
+	 * @param titleVisible the titleVisible to set
+	 */
+	public void setTitleVisible(boolean titleVisible) {
+		this.titleVisible = titleVisible;
+	}
+
+	/**
+	 * @return the legendVisible
+	 */
+	public boolean isLegendVisible() {
+		return legendVisible;
+	}
+
+	/**
+	 * @param legendVisible the legendVisible to set
+	 */
+	public void setLegendVisible(boolean legendVisible) {
+		this.legendVisible = legendVisible;
+	}
+
+	/**
+	 * @return the gridVisible
+	 */
+	public boolean isGridVisible() {
+		return gridVisible;
+	}
+
+	/**
+	 * @param gridVisible the gridVisible to set
+	 */
+	public void setGridVisible(boolean gridVisible) {
+		this.gridVisible = gridVisible;
+	}
+
+
+	/**
+	 * @return the renderingColorsMode
+	 */
+	public int getRenderingColorsMode() {
+		return renderingColorsMode;
+	}
+
+
+	/**
+	 * @param renderingColorsMode the renderingColorsMode to set
+	 */
+	public void setRenderingColorsMode(int renderingColorsMode) {
+		this.renderingColorsMode = renderingColorsMode;
+	}
+
+
+	/**
+	 * @return the font
+	 */
+	public String getFont() {
+		return font;
+	}
+
+
+	/**
+	 * @param font the font to set
+	 */
+	public void setFont(String font) {
+		this.font = font;
+	}
+
+
 	
-	
 
 	// FIXME
 //	public Object createChart(IProgressMonitor monitor, String chartType)	{
Index: tmp/org.txm.specificities.core/src/org/txm/specificities/core/chartsengine/r/RSpecificitiesBarChartCreator.java
===================================================================
--- tmp/org.txm.specificities.core/src/org/txm/specificities/core/chartsengine/r/RSpecificitiesBarChartCreator.java	(revision 573)
+++ tmp/org.txm.specificities.core/src/org/txm/specificities/core/chartsengine/r/RSpecificitiesBarChartCreator.java	(revision 574)
@@ -35,7 +35,7 @@
 			boolean drawBars = specificitiesSelection.isDrawingBars();
 			boolean drawLines = specificitiesSelection.isDrawingLines();
 			float banality = specificitiesSelection.getBanality();
-			int renderingColorMode = result.getIntParameterValue(ChartsEnginePreferences.RENDERING_COLORS_MODE);
+			int renderingColorMode = result.getRenderingColorsMode();
 			
 			//boolean grayscale = (renderingColorMode == ChartsEngine.RENDERING_GRAYSCALE_MODE);
 			
Index: tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/swt/JFCComposite.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/swt/JFCComposite.java	(revision 573)
+++ tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/swt/JFCComposite.java	(revision 574)
@@ -268,7 +268,7 @@
 		this.getChartPanel().setChart((JFreeChart) data);
 
 		// FIXME: for updating chart. The problem here is the theme is applied twice? one time at the creation and onn time at the update?
-		((JFCChartsEngine) this.chartEditor.getChartsEngine()).getJFCTheme().applyThemeToChart((JFreeChart) data, this.chartEditor.getResultData());
+		((JFCChartsEngine) this.chartEditor.getChartsEngine()).getJFCTheme().applyThemeToChart(this.chartEditor.getResultData());
 		
 		// FIXME: tests, restore the zoom from local node
 		//this.zoom(x, y, zoomIn);
Index: tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/JFCSWTChartsComponentsProvider.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/JFCSWTChartsComponentsProvider.java	(revision 573)
+++ tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/JFCSWTChartsComponentsProvider.java	(revision 574)
@@ -79,7 +79,7 @@
 			}
 			
 			// update for shared preferences, show title, show legend, colors rendering mode, etc.
-			chartsEngine.updateChart(chart, chartEditorInput.getResult());
+//			chartsEngine.updateChart(chart, chartEditorInput.getResult());
 
 			// sets and updates the local preferences node qualifier from the result data
 			chartEditorInput.syncLocalPreferencesNode();
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 573)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java	(revision 574)
@@ -236,7 +236,7 @@
 				StatusLine.setMessage(mess);
 				// FIXME: Debug:
 				// FIXME: à repasser dans TXMResult.toString();
-				System.err.println("CorporaView.createPartControl(...).new SelectionListener() {...}.widgetSelected(): ********************************************************************************");
+				System.out.println("CorporaView.createPartControl(...).new SelectionListener() {...}.widgetSelected(): ********************************************************************************");
 				System.err.println("CorporaView.createPartControl(...).new SelectionListener() {...}.widgetSelected(): selected object = " + selectedItem + ", visible = " + ((TXMResult)selectedItem).isVisible());
 				if (selectedItem instanceof ChartResult) 	{
 					System.err.println("CorporaView.createPartControl(...).new SelectionListener() {...}.widgetSelected(): chart object = " + ((ChartResult)selectedItem).getChart());
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 573)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 574)
@@ -92,10 +92,9 @@
 	 */
 	protected HashMap<String, Object> lastComputingParameters = new HashMap<String, Object>();
 
-	public HashMap<String, Object> getLastComputingParameters() {
-		return lastComputingParameters;
-	}
-
+	
+	
+	
 	/**
 	 * Creates a new TXMResult, child of the specified parent.
 	 * 
@@ -175,6 +174,13 @@
 		}
 	}
 
+	// FIXME: not used?
+	public HashMap<String, Object> getLastComputingParameters() {
+		return lastComputingParameters;
+	}
+
+
+	
 	/**
 	 * Gets a current parameter specified by its annotation "key" attribute.
 	 * @param key
@@ -204,17 +210,17 @@
 	 * @param key
 	 * @return
 	 */
-	protected boolean parameterHasChanged(String key) {
+	public boolean parameterHasChanged(String key) {
 		if ("".equals(key)) {
 			return false;
 		}
-		Object o = lastComputingParameters.get(key);
+		Object lastValue = lastComputingParameters.get(key);
 		Object newValue = getParameter(key);
-		if (o == null && newValue != null) {
+		if (lastValue == null && newValue != null) {
 			return true;
 		}
 		else {
-			return !o.equals(newValue);
+			return !lastValue.equals(newValue);
 		}
 	}
 
@@ -223,12 +229,12 @@
 	/**
 	 * Updates the dirty state by comparing an old parameter with a new one.
 	 * 
-	 * @param previousValue may be null
+	 * @param lastValue may be null
 	 * @param newValue may be null
 	 */
-	protected void updateDirty(Object previousValue, Object newValue) {
-		if (previousValue == null || !previousValue.equals(newValue)) {
-			Log.info("Setting dirty to true: old = "+ previousValue + " / new = " + newValue);
+	protected void updateDirty(Object lastValue, Object newValue) {
+		if (lastValue == null || !lastValue.equals(newValue)) {
+			Log.info("Setting dirty to true: old = "+ lastValue + " / new = " + newValue);
 			this.setDirty();
 		}
 	}
@@ -264,7 +270,6 @@
 			else	{
 				name = f.getName();
 			}
-
 			
 			f.setAccessible(true); // not to set accessible to test the field values
 			Object previousValue = this.lastComputingParameters.get(name);
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 573)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/SWTChartsComponentsProvider.java	(revision 574)
@@ -535,30 +535,7 @@
 	}
 	
 
-	/**
-	 * Creates a composite panel used to extend the default tool bar.
-	 * @param toolBar
-	 * @return
-	 */
-	// FIXME: became useless ?
-	public static Composite createToolBarParametersPanel(ToolBar toolBar)	{
-
-		Composite parametersPanel = new Composite(toolBar, SWT.NONE);
-
-		RowLayout layout = new RowLayout();
-		layout.wrap = true;
-		layout.center = true;
-		layout.marginTop = 0;
-		layout.marginBottom = 0;
-		layout.marginHeight = 0;
-		parametersPanel.setLayout(layout);
-
-		return parametersPanel;
-	}
-
 	
-
-	
 	/**
 	 * Export the current view of chart editor in the specified file.
 	 * @param chartEditor
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/AdvancedChartEditorToolBar.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/AdvancedChartEditorToolBar.java	(revision 573)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/AdvancedChartEditorToolBar.java	(revision 574)
@@ -65,7 +65,7 @@
 		showTitle.setToolTipText(SWTComponentsProviderMessages.SWTChartsComponentProvider_SHOW_HIDE_TITLE);
 
 		if(!TXMPreferences.isEmpty(chartEditorPart.getPreferencesNodeQualifier(), ChartsEnginePreferences.SHOW_TITLE))	{
-			showTitle.setSelection(TXMPreferences.getBoolean(ChartsEnginePreferences.SHOW_TITLE, chartEditorPart.getResultData(), chartEditorPart.getPreferencesNodeQualifier()));
+			showTitle.setSelection(chartEditorPart.getResultData().isTitleVisible());
 		}
 		// disable if not managed
 		else	{
@@ -80,7 +80,7 @@
 		showLegend.setToolTipText(SWTComponentsProviderMessages.SWTChartsComponentProvider_SHOW_HIDE_LEGEND);
 
 		if(!TXMPreferences.isEmpty(chartEditorPart.getPreferencesNodeQualifier(), ChartsEnginePreferences.SHOW_LEGEND))	{
-			showLegend.setSelection(chartEditorPart.getBooleanParameterValue(ChartsEnginePreferences.SHOW_LEGEND));
+			showLegend.setSelection(chartEditorPart.getResultData().isLegendVisible());
 		}
 		// disable if not managed
 		else	{
@@ -95,7 +95,7 @@
 		showGrid.setToolTipText(SWTComponentsProviderMessages.SWTChartsComponentProvider_SHOW_HIDE_GRID);
 		
 		if(!TXMPreferences.isEmpty(chartEditorPart.getPreferencesNodeQualifier(), ChartsEnginePreferences.SHOW_GRID))	{
-			showGrid.setSelection(chartEditorPart.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID));
+			showGrid.setSelection(chartEditorPart.getResultData().isGridVisible());
 		}
 		// disable if not managed
 		else	{
@@ -120,7 +120,7 @@
 		renderingComboItem.setWidth(renderingModeCombo.getBounds().width);
 		
 		if(!TXMPreferences.isEmpty(chartEditorPart.getPreferencesNodeQualifier(), ChartsEnginePreferences.RENDERING_COLORS_MODE))	{
-			renderingModeCombo.select(chartEditorPart.getIntParameterValue(ChartsEnginePreferences.RENDERING_COLORS_MODE));
+			renderingModeCombo.select(chartEditorPart.getResultData().getRenderingColorsMode());
 		}
 		// disable if not managed
 		else	{
@@ -129,7 +129,7 @@
 		
 		
 		// Font selection
-		final Font currentFont = ChartsEngine.createFont(chartEditorPart.getStringParameterValue(ChartsEnginePreferences.FONT));
+		final Font currentFont = ChartsEngine.createFont(chartEditorPart.getResultData().getFont());
 		
 		final Combo fontCombo = new Combo(this, SWT.READ_ONLY);
 		String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
@@ -217,21 +217,20 @@
 				
 				boolean update = true;
 				
-				// Accessing the source must be done outside the Job
 				if(e.getSource() == showTitle)	{
-					TXMPreferences.putLocal(chartEditorPart.getResultData(), ChartsEnginePreferences.SHOW_TITLE, showTitle.getSelection());
+					chartEditorPart.getResultData().setTitleVisible(showTitle.getSelection());
 				}
 				else if(e.getSource() == showLegend)	{
-					TXMPreferences.putLocal(chartEditorPart.getResultData(), ChartsEnginePreferences.SHOW_LEGEND, showLegend.getSelection());
+					chartEditorPart.getResultData().setLegendVisible(showLegend.getSelection());
 				}
 				else if(e.getSource() == showGrid)	{
-					TXMPreferences.putLocal(chartEditorPart.getResultData(), ChartsEnginePreferences.SHOW_GRID, showGrid.getSelection());
+					chartEditorPart.getResultData().setGridVisible(showGrid.getSelection());
 				}
 				else if(e.getSource() == renderingModeCombo)	{
-					TXMPreferences.putLocal(chartEditorPart.getResultData(), ChartsEnginePreferences.RENDERING_COLORS_MODE, renderingModeCombo.getSelectionIndex());
+					chartEditorPart.getResultData().setRenderingColorsMode(renderingModeCombo.getSelectionIndex());
 				}
 				else if(e.getSource() == fontCombo || e.getSource() == fontSizeCombo)	{
-					TXMPreferences.putLocal(chartEditorPart.getResultData(), ChartsEnginePreferences.FONT, "1|" + fontCombo.getItem(fontCombo.getSelectionIndex()) + "|" + fontSizeCombo.getItem(fontSizeCombo.getSelectionIndex()) + "|0");
+					chartEditorPart.getResultData().setFont("1|" + fontCombo.getItem(fontCombo.getSelectionIndex()) + "|" + fontSizeCombo.getItem(fontSizeCombo.getSelectionIndex()) + "|0");
 				}
 				else if(e.getSource() == chartTypeCombo)	{
 					chartEditorPart.getResultData().setChartType(chartTypeCombo.getItem(chartTypeCombo.getSelectionIndex()));
Index: tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/jfreechart/JFCPartitionDimensionsBarChartCreator.java
===================================================================
--- tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/jfreechart/JFCPartitionDimensionsBarChartCreator.java	(revision 573)
+++ tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/jfreechart/JFCPartitionDimensionsBarChartCreator.java	(revision 574)
@@ -19,6 +19,7 @@
 import org.txm.partition.core.chartsengine.base.Utils;
 import org.txm.partition.core.functions.PartitionDimensions;
 import org.txm.partition.core.messages.PartitionCoreMessages;
+import org.txm.partition.core.preferences.PartitionDimensionsPreferences;
 import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
 import org.txm.searchengine.cqp.corpus.Part;
 
@@ -63,32 +64,39 @@
 		boolean sortPartsBySize = partitionDimensions.isSortingBySize();
 		boolean displayPartsCountInTitle = partitionDimensions.isDisplayingPartCountInTitle();
 		
-		// Fill the data set
-		XYSeriesCollection dataset = (XYSeriesCollection) chart.getXYPlot().getDataset();
-		dataset.removeAllSeries();
 		
-		XYSeries series = new XYSeries(PartitionCoreMessages.CHARTSENGINE_PARTITION_DIMENSIONS_CATEGORY);
-		dataset.addSeries(series);
-
-		List<Part> parts = partitionDimensions.getParts(sortPartsBySize);
-        String[] xAxisSymbols = new String[parts.size()];
-
-
-		try {
-			for (int i = 0 ; i < parts.size() ; i++) {
-				series.add(i, parts.get(i).getSize());
-
-				// Add X axis symbol
-				xAxisSymbols[i] = parts.get(i).getName();
+		if(result.renderingParameterHasChanged(PartitionDimensionsPreferences.CHART_DIMENSIONS_SORT_BY_SIZE))	{
+			// Fill the data set
+			XYSeriesCollection dataset = (XYSeriesCollection) chart.getXYPlot().getDataset();
+			dataset.removeAllSeries();
+			
+			XYSeries series = new XYSeries(PartitionCoreMessages.CHARTSENGINE_PARTITION_DIMENSIONS_CATEGORY);
+			dataset.addSeries(series);
+	
+			List<Part> parts = partitionDimensions.getParts(sortPartsBySize);
+	        String[] xAxisSymbols = new String[parts.size()];
+	
+	
+			try {
+				for (int i = 0 ; i < parts.size() ; i++) {
+					series.add(i, parts.get(i).getSize());
+	
+					// Add X axis symbol
+					xAxisSymbols[i] = parts.get(i).getName();
+				}
 			}
+			catch(CqiClientException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+	
+			chart.getXYPlot().setDomainAxis(new SymbolAxisBetweenTicks(chart.getXYPlot().getDomainAxis().getLabel(), xAxisSymbols));
 		}
-		catch(CqiClientException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		chart.getXYPlot().setDomainAxis(new SymbolAxisBetweenTicks(chart.getXYPlot().getDomainAxis().getLabel(), xAxisSymbols));
 		
+		
+		
+		
+		
 		// Create chart title
 		chart.setTitle(Utils.createPartitionDimensionsChartTitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle));
 		
Index: tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/r/RPartitionDimensionsBarChartCreator.java
===================================================================
--- tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/r/RPartitionDimensionsBarChartCreator.java	(revision 573)
+++ tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/r/RPartitionDimensionsBarChartCreator.java	(revision 574)
@@ -63,7 +63,7 @@
 			}
 
 			// colors
-			this.getChartsEngine().setColors(result.getIntParameterValue(ChartsEnginePreferences.RENDERING_COLORS_MODE),  1);
+			this.getChartsEngine().setColors(result.getRenderingColorsMode(),  1);
 			// FIXME: one color by part
 			//this.getChartsEngine().setColors(TXMPreferences.getInt(preferencesNode, resultData, ChartsEnginePreferences.RENDERING_COLORS_MODE),  parts.size());
 			
Index: tmp/org.txm.partition.core/src/org/txm/partition/core/functions/PartitionDimensions.java
===================================================================
--- tmp/org.txm.partition.core/src/org/txm/partition/core/functions/PartitionDimensions.java	(revision 573)
+++ tmp/org.txm.partition.core/src/org/txm/partition/core/functions/PartitionDimensions.java	(revision 574)
@@ -40,10 +40,10 @@
 	
 	
 	
-	@Parameter(type=Parameter.RENDERING)
+	@Parameter(key=PartitionDimensionsPreferences.CHART_DIMENSIONS_DISPLAY_PARTS_COUNT_IN_TITLE, type=Parameter.RENDERING)
 	protected boolean displayPartCountInTitle;
 
-	@Parameter(type=Parameter.RENDERING)
+	@Parameter(key=PartitionDimensionsPreferences.CHART_DIMENSIONS_SORT_BY_SIZE, type=Parameter.RENDERING)
 	protected boolean sortBySize;
 
 	
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 573)
+++ tmp/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java	(revision 574)
@@ -406,22 +406,26 @@
 			int previousposition = -99999;
 			int distmin = 999999;
 			for (int m : starts) {
-				if (property != null)
+				if (property != null) {
 					currentname = refValues.get(property).get(i);
-				else
+				}
+				else {
 					currentname = structuralUnit.getName() + i;
+				}
 
 				if (repeatValues) {
 					structureNames[i] = currentname;
 					structurePositions[i] = m;
-				} else {
+				}
+				else {
 					if (!previousname.equals(currentname)) {
 						structureNames[i] = currentname;
 						structurePositions[i] = m;
 					}
 				}
-				if (i == 0)
-					structurePositions[i] += 1; 
+				if (i == 0) {
+					structurePositions[i] += 1;
+				}
 
 				if (m - previousposition < distmin) {
 					distmin = m - previousposition;
@@ -431,6 +435,8 @@
 				previousposition = m;
 
 				i++;
+				
+				this.worked(1);
 			}
 			this.bande = distmin * this.bandeMultiplier;
 		}
@@ -452,16 +458,18 @@
 			
 			XminCorpus = matches.get(0).getStart();
 			XmaxCorpus = matches.get(matches.size()-1).getEnd();		
-		} else {
+		}
+		else {
 			XminCorpus = 0;
 			XmaxCorpus = corpus.getSize();
 		}
 		//System.out.println("min: "+XminCorpus+ "max: "+XmaxCorpus);
 
 		if (bande <= 0) {
-			bande = ((XmaxCorpus - XminCorpus)/100)*bandeMultiplier;
-			if (bande == 0)
+			bande = ((XmaxCorpus - XminCorpus) / 100) * bandeMultiplier;
+			if (bande == 0) {
 				bande = 1.0f;
+			}
 		}
 		return true;
 	}
Index: tmp/org.txm.progression.core/src/org/txm/progression/core/chartsengine/r/RProgressionChartCreator.java
===================================================================
--- tmp/org.txm.progression.core/src/org/txm/progression/core/chartsengine/r/RProgressionChartCreator.java	(revision 573)
+++ tmp/org.txm.progression.core/src/org/txm/progression/core/chartsengine/r/RProgressionChartCreator.java	(revision 574)
@@ -33,7 +33,7 @@
 			Progression progression = (Progression) result;
 			
 			// parameters
-			int renderingColorMode = result.getIntParameterValue(ChartsEnginePreferences.RENDERING_COLORS_MODE);
+			int renderingColorMode = result.getRenderingColorsMode();
 			
 			boolean monostyle = result.getBooleanParameterValue(ProgressionPreferences.CHART_MONO_STYLE);
 			boolean cumulative = result.getBooleanParameterValue(ProgressionPreferences.CHART_CUMULATIVE);
