Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java	(revision 647)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java	(revision 648)
@@ -209,7 +209,7 @@
 		// check that the charts engine used for the result matches the SWT components provider otherwise fin a suitable components provider
 		if(this.getResult().getChartsEngine() != this.getSWTChartsComponentsProvider().getChartsEngine())	{
 			this.getEditorInput().setSWTChartsComponentsProvider(SWTChartsComponentsProvider.getComponentsProvider(this.getResult().getChartsEngine()));
-			//this.getSWTChartsComponentsProvider().setChartsEngine(this.getResult().getChartsEngine());
+			this.getSWTChartsComponentsProvider().setChartsEngine(this.getResult().getChartsEngine());
 			System.err.println("ChartEditor.__updateEditorFromResult(): charts engine used to create the chart is not the current one. The SWT components provider has been changed to match it: " + this.getSWTChartsComponentsProvider() + ".");
 			
 			// recreating the chart composite
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 647)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/highcharts/defaulttheme/HighchartsDefaultTheme.java	(revision 648)
@@ -152,7 +152,7 @@
 
 
     	
-    	int itemsColorsRenderingMode = result.getRenderingColorsMode();
+    	//int itemsColorsRenderingMode = result.getRenderingColorsMode();
     	
     	// FIXME : UI settings
 //		UIManager.put("ToolTip.background", Color.gray);
@@ -203,14 +203,14 @@
 
 
         	// Series lines width and style
-	    	if(result.isMultipleLineStrokes())	{
-	    		this.applySeriesStrokes(plot);
-	    	}
-	    	else	{
+//	    	if(result.isMultipleLineStrokes())	{
+//	    		this.applySeriesStrokes(result);
+//	    	}
+//	    	else	{
 		    	for(int i = 0; i < plot.getSeriesCount(); i++) {
 			         renderer.setSeriesStroke(i, new BasicStroke(seriesLineWidth));
 				}
-	    	}
+//	    	}
 
 
 	        // Used for item selection mouse over
@@ -220,7 +220,7 @@
 
 
         	// Items colors
-        	ArrayList<Color> palette = this.applySeriesPaint(plot, itemsColorsRenderingMode);
+        	//ArrayList<Color> palette = this.applySeriesPaint(result);
 
         	renderer.setBaseOutlinePaint(Color.WHITE);
 
@@ -356,7 +356,7 @@
 
 
 	    	// Items colors
-	    	ArrayList<Color> palette = this.applySeriesPaint(plot, itemsColorsRenderingMode);
+	    	//ArrayList<Color> palette = this.applySeriesPaint(plot, itemsColorsRenderingMode);
 
 
 	    	// Category bar chart
@@ -416,14 +416,14 @@
 	    	else	{
 
 	        	// Series lines width and style
-	    		if(result.isMultipleLineStrokes())	{
-	    			this.applySeriesStrokes(plot);
-	    		}
-	    		else	{
+//	    		if(result.isMultipleLineStrokes())	{
+//	    			this.applySeriesStrokes(result);
+//	    		}
+//	    		else	{
 		    		for(int i = 0; i < ((CategoryPlot)plot).getDataset().getRowCount(); i++) {
 				         renderer.setSeriesStroke(i, new BasicStroke(seriesLineWidth));
 					}
-	    		}
+//	    		}
 
 
 	    		plot.setRangeZeroBaselineVisible(true);
@@ -499,12 +499,12 @@
 	    	Plot plot = chart.getPlot();
 	    	
 	    	// Items colors
-        	ArrayList<Color> palette = this.applySeriesPaint(plot, itemsColorsRenderingMode);
+        	//ArrayList<Color> palette = this.applySeriesPaint(plot, itemsColorsRenderingMode);
 
 	    	
         	// Series lines width and style
 	    	if(result.isMultipleLineStrokes())	{
-	    		this.applySeriesStrokes(plot);
+	    		this.applySeriesStrokes(result);
 	    	}
 	    	
 	    	this.applySeriesShapes(plot);
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 647)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/base/JFCTheme.java	(revision 648)
@@ -1,5 +1,6 @@
 package org.txm.chartsengine.jfreechart.core.themes.base;
 
+import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.Paint;
@@ -355,17 +356,19 @@
      * @param plot
      * @param itemsColorsRenderingMode
      */
-    public ArrayList<Color> applySeriesPaint(Plot plot, int itemsColorsRenderingMode)	{
+    public ArrayList<Color> applySeriesPaint(ChartResult result)	{
 
     	ArrayList<Color> palette = null;
     	
+    	Plot plot = ((JFreeChart) result.getChart()).getPlot();
+    	
     	// XYPlot
     	if(plot instanceof XYPlot)	 {
 
     		XYPlot typedPlot = (XYPlot)plot;
  	    	XYItemRenderer renderer = typedPlot.getRenderer();
  	    	
- 	    	palette = this.chartsEngine.getTheme().getPaletteFor(itemsColorsRenderingMode, typedPlot.getSeriesCount());
+ 	    	palette = this.chartsEngine.getTheme().getPaletteFor(result.getRenderingColorsMode(), typedPlot.getSeriesCount());
         	for(int i = 0; i < palette.size(); i++) {
         		renderer.setSeriesPaint(i, palette.get(i));
 			}
@@ -376,7 +379,7 @@
 	    	CategoryPlot typedPlot = (CategoryPlot)plot;
 	    	CategoryItemRenderer renderer = (CategoryItemRenderer)typedPlot.getRenderer();
 
- 	    	palette = this.chartsEngine.getTheme().getPaletteFor(itemsColorsRenderingMode, typedPlot.getDataset().getRowCount());
+ 	    	palette = this.chartsEngine.getTheme().getPaletteFor(result.getRenderingColorsMode(), typedPlot.getDataset().getRowCount());
         	for(int i = 0; i < palette.size(); i++) {
         		renderer.setSeriesPaint(i, palette.get(i));
 			}
@@ -384,7 +387,7 @@
     	// SpiderPlot
     	else if(plot instanceof SpiderWebPlot)	{
     		SpiderWebPlot typedPlot = (SpiderWebPlot)plot;
-    		palette = this.chartsEngine.getTheme().getPaletteFor(itemsColorsRenderingMode, typedPlot.getDataset().getRowCount());
+    		palette = this.chartsEngine.getTheme().getPaletteFor(result.getRenderingColorsMode(), typedPlot.getDataset().getRowCount());
         	for(int i = 0; i < palette.size(); i++) {
         		typedPlot.setSeriesPaint(i, palette.get(i));
 			}
@@ -392,7 +395,7 @@
     	// PiePlot
     	else if(plot instanceof PiePlot)	{
     		PiePlot typedPlot = (PiePlot)plot;
-    		palette = this.chartsEngine.getTheme().getPaletteFor(itemsColorsRenderingMode, typedPlot.getDataset().getItemCount());
+    		palette = this.chartsEngine.getTheme().getPaletteFor(result.getRenderingColorsMode(), typedPlot.getDataset().getItemCount());
     		for(int i = 0; i < palette.size(); i++) {
     			typedPlot.setSectionPaint(i, palette.get(i));
     		}
@@ -446,8 +449,8 @@
      * Sets the series strokes in the plot renderer according to user defined strokes in a cyclic way.
      * @param plot
      */
-    public void applySeriesStrokes(Plot plot)	{
-    	this.applySeriesStrokes(plot, true);
+    public void applySeriesStrokes(ChartResult result)	{
+    	this.applySeriesStrokes(result, true);
     }
 
 
@@ -455,46 +458,64 @@
      * Sets the series strokes in the plot renderer according to user defined strokes.
      * @param plot
      */
-    public void applySeriesStrokes(Plot plot, boolean cyclic)	{
+    public void applySeriesStrokes(ChartResult result, boolean cyclic)	{
 
-    	if(plot instanceof XYPlot)	 {
+		Plot plot = ((JFreeChart) result.getChart()).getPlot();
 
-	    	 XYPlot typedPlot = (XYPlot)plot;
-	         AbstractRenderer renderer = (AbstractRenderer) typedPlot.getRenderer();
+		// XYPlot
+		if (plot instanceof XYPlot) {
 
-	     	for(int i = 0, j = 0; i < typedPlot.getSeriesCount(); i++, j++) {
-	        	 if(j == this.seriesStrokes.size())	{
-	        		 if(cyclic)	{
-		        		 j = 0;
-	        		 }
-	        		 else	{
-	        			 break;
-	        		 }
-	        	 }
-		         renderer.setSeriesStroke(i, this.seriesStrokes.get(j));
-	     	}
+			XYPlot typedPlot = (XYPlot) plot;
+			AbstractRenderer renderer = (AbstractRenderer) typedPlot.getRenderer();
 
-    	}
-    	else if(plot instanceof CategoryPlot)	 {
+			for (int i = 0, j = 0; i < typedPlot.getSeriesCount(); i++, j++) {
 
-	    	CategoryPlot typedPlot = (CategoryPlot)plot;
-	    	CategoryItemRenderer renderer = (CategoryItemRenderer)typedPlot.getRenderer();
+				// Multiple styles
+				if(result.isMultipleLineStrokes())	{
+					if (j == this.seriesStrokes.size()) {
+						if (cyclic) {
+							j = 0;
+						}
+						else {
+							break;
+						}
+					}
+					renderer.setSeriesStroke(i, this.seriesStrokes.get(j));
+				}
+				// Unique style
+				else	{
+					renderer.setSeriesStroke(i, new BasicStroke(seriesLineWidth));
+				}
+			}
 
-	         // Series line width
-	         for(int i = 0, j = 0; i < typedPlot.getDataset().getRowCount(); i++, j++) {
+		}
+		// CategoryPlot
+		else if (plot instanceof CategoryPlot) {
 
-	        	 if(j == this.seriesStrokes.size())	{
-	        		 if(cyclic)	{
-		        		 j = 0;
-	        		 }
-	        		 else	{
-	        			 break;
-	        		 }
-	        	 }
-		         renderer.setSeriesStroke(i, this.seriesStrokes.get(j));
+			CategoryPlot typedPlot = (CategoryPlot) plot;
+			CategoryItemRenderer renderer = (CategoryItemRenderer) typedPlot.getRenderer();
+
+			for (int i = 0, j = 0; i < typedPlot.getDataset().getRowCount(); i++, j++) {
+
+				// Multiple styles
+				if(result.isMultipleLineStrokes())	{
+					if (j == this.seriesStrokes.size()) {
+						if (cyclic) {
+							j = 0;
+						}
+						else {
+							break;
+						}
+					}
+					renderer.setSeriesStroke(i, this.seriesStrokes.get(j));
+					}
+				// Unique style
+				else	{
+					renderer.setSeriesStroke(i, new BasicStroke(seriesLineWidth));
+				}
 			}
 
-    	}
+		}
     }
 
 
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 647)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartCreator.java	(revision 648)
@@ -45,6 +45,18 @@
 			chart.setNotify(false);
 
 			
+			// applying full theme 
+			if(applyTheme)	{
+				this.getChartsEngine().getJFCTheme().applyThemeToChart(result);
+			}
+
+			
+			// rendering color mode
+			this.getChartsEngine().getJFCTheme().applySeriesPaint(result);
+
+			// multiple line strokes
+			this.getChartsEngine().getJFCTheme().applySeriesStrokes(result);
+
 			// title visibility
 			if(chart.getTitle() != null && result.hasParameterChanged(ChartsEnginePreferences.SHOW_TITLE))	{
 				chart.getTitle().setVisible(result.isTitleVisible());
@@ -53,28 +65,20 @@
 			if(chart.getLegend() != null && result.hasParameterChanged(ChartsEnginePreferences.SHOW_LEGEND))	{
 				chart.getLegend().setVisible(result.isLegendVisible());
 			}
-			
 			// grid visibility
-			if(result.hasParameterChanged(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());
-				}
+			// 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());
+			}
 			
-			
-			if(applyTheme)	{
-				this.getChartsEngine().getJFCTheme().applyThemeToChart(result);
-			}
-
 			chart.setNotify(true);
 		}
 		// File
