Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/SwingChartComposite.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/SwingChartComposite.java	(revision 1826)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/SwingChartComposite.java	(revision 1827)
@@ -23,6 +23,7 @@
 import java.lang.reflect.Method;
 import java.util.Stack;
 
+import javax.swing.JApplet;
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 import javax.swing.border.LineBorder;
@@ -68,7 +69,10 @@
 	//FIXME: tests
 	//protected Panel rootPanel;
 	//protected JRootPane rootPanel;
-	protected JPanel rootPanel;
+	//protected JPanel rootPanel;
+	protected JComponent rootPanel;
+	
+    
 
 	
 
@@ -81,12 +85,15 @@
 		super(chartEditor, parent, style);
 		
 		this.frame = SWT_AWT.new_Frame(this);
-		
 	
-		// Need to add an AWT/Swing Panel to fix mouse events and mouse cursors changes on AWT/Swing chart component panel
-		this.rootPanel = new JPanel(new BorderLayout());
+		// Need to add an AWT/Swing Panel to fix mouse events and mouse cursors changes on AWT/Swing chart component panel (see: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4982522)
+		//this.rootPanel = new JPanel(new BorderLayout());
+
+		// FIXME: tests with Applet, see: https://www.eclipse.org/articles/article.php?file=Article-Swing-SWT-Integration/index.html
+		JApplet applet = new JApplet(); 
+		this.rootPanel = (JComponent) applet.getRootPane().getContentPane();
 		
-		this.frame.add(this.rootPanel);
+		this.frame.add(applet);
 		
 		//this.frame.pack();
 
@@ -101,64 +108,64 @@
 		// SJ: Workaround to fix a bug with some Java version and some OS where the focus of an embedded Swing component does not delegate to SWT, eg. the Part is not activated.
 		// see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=377104
 		// see: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8203855
-		this.frame.addWindowListener(new java.awt.event.WindowAdapter() {
-			@Override
-			public void windowActivated(java.awt.event.WindowEvent e) {
-				SwingChartComposite.this.getDisplay().asyncExec(new Runnable() {
-					@Override
-					public void run() {
-						if (Display.getCurrent().getFocusControl() == SwingChartComposite.this) {
-							Stack<Control> stack = new Stack<Control>();
-							Control starter = SwingChartComposite.this;
-							Shell shell = SwingChartComposite.this.getShell();
-							while (starter != null && !(starter instanceof Shell)) {
-								stack.push(starter.getParent());
-								starter = starter.getParent();
-							}
-
-							Method m = null;
-							try {
-								// instead of calling the originally proposed
-								// workaround solution (below),
-								//
-								// Event event = new Event();
-								// event.display = Display.getCurrent();
-								// event.type = SWT.Activate;
-								// event.widget = stack.pop();
-								// event.widget.notifyListeners(SWT.Activate, event);
-								//
-								// which should but does NOT set the active
-								// widget/control on the shell, we had
-								// to call the setActiveControl method directly.
-								// Updating the active control on the shell is
-								// important so that the last active
-								// control, when selected again, get the proper
-								// activation events fired.
-
-								m = shell.getClass().getDeclaredMethod("setActiveControl", Control.class);// $NON-NLS-1$
-								m.setAccessible(true);
-								while (!stack.isEmpty()) {
-									m.invoke(shell, stack.pop());
-								}
-								
-								// force the Swing component focus
-								//setFocus();
-								
-							}
-							catch (Exception e) {
-								Log.severe("** Embedded part was not able to set active control on Shell. This will result in other workbench parts not getting activated."); //$NON-NLS-1$
-								Log.printStackTrace(e);
-							}
-							finally {
-								if (m != null) {
-									m.setAccessible(false);
-								}
-							}
-						}
-					}
-				});
-			}
-		});
+//		this.frame.addWindowListener(new java.awt.event.WindowAdapter() {
+//			@Override
+//			public void windowActivated(java.awt.event.WindowEvent e) {
+//				SwingChartComposite.this.getDisplay().asyncExec(new Runnable() {
+//					@Override
+//					public void run() {
+//						if (Display.getCurrent().getFocusControl() == SwingChartComposite.this) {
+//							Stack<Control> stack = new Stack<Control>();
+//							Control starter = SwingChartComposite.this;
+//							Shell shell = SwingChartComposite.this.getShell();
+//							while (starter != null && !(starter instanceof Shell)) {
+//								stack.push(starter.getParent());
+//								starter = starter.getParent();
+//							}
+//
+//							Method m = null;
+//							try {
+//								// instead of calling the originally proposed
+//								// workaround solution (below),
+//								//
+//								// Event event = new Event();
+//								// event.display = Display.getCurrent();
+//								// event.type = SWT.Activate;
+//								// event.widget = stack.pop();
+//								// event.widget.notifyListeners(SWT.Activate, event);
+//								//
+//								// which should but does NOT set the active
+//								// widget/control on the shell, we had
+//								// to call the setActiveControl method directly.
+//								// Updating the active control on the shell is
+//								// important so that the last active
+//								// control, when selected again, get the proper
+//								// activation events fired.
+//
+//								m = shell.getClass().getDeclaredMethod("setActiveControl", Control.class);// $NON-NLS-1$
+//								m.setAccessible(true);
+//								while (!stack.isEmpty()) {
+//									m.invoke(shell, stack.pop());
+//								}
+//								
+//								// force the Swing component focus
+//								//setFocus();
+//								
+//							}
+//							catch (Exception e) {
+//								Log.severe("** Embedded part was not able to set active control on Shell. This will result in other workbench parts not getting activated."); //$NON-NLS-1$
+//								Log.printStackTrace(e);
+//							}
+//							finally {
+//								if (m != null) {
+//									m.setAccessible(false);
+//								}
+//							}
+//						}
+//					}
+//				});
+//			}
+//		});
 		
 		this.frame.addWindowListener(new WindowListener() {
 			
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 1826)
+++ tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/swt/JFCComposite.java	(revision 1827)
@@ -28,8 +28,8 @@
 	 * @param panel
 	 */
 	public JFCComposite(ChartEditor chartEditor, Composite parent) {
-		//super(chartEditor, parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
-		super(chartEditor, parent, SWT.EMBEDDED);
+		super(chartEditor, parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
+		//super(chartEditor, parent, SWT.EMBEDDED);
 		//super(parent, SWT.EMBEDDED | SWT.NO_MERGE_PAINTS | SWT.NO_BACKGROUND); // do not fix the tooltips transparency problem
 	}
 	
