refs bug 285397 - modified to make Draw2d/GEF work out of the box with new compatibility bundle org.eclipse.draw2d.rap
diff --git a/bundles/org.eclipse.draw2d/META-INF/MANIFEST.MF b/bundles/org.eclipse.draw2d/META-INF/MANIFEST.MF
index 4e4dc45..55c4e33 100644
--- a/bundles/org.eclipse.draw2d/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.draw2d/META-INF/MANIFEST.MF
@@ -17,7 +17,8 @@
 Require-Bundle: org.eclipse.core.jobs;bundle-version="3.5.100",
  org.eclipse.core.runtime;bundle-version="3.6.100",
  org.eclipse.rap.rwt;bundle-version="1.4.0",
- org.eclipse.rap.ui;bundle-version="1.4.0"
+ org.eclipse.rap.ui;bundle-version="1.4.0",
+ org.eclipse.draw2d.rap;bundle-version="1.0.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
 
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java
index ecc7408..ec3d098 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java
@@ -10,12 +10,12 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Control;
 
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 class BufferedGraphicsSource implements GraphicsSource {
 
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ColorConstants.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ColorConstants.java
index b064763..5ddb002 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ColorConstants.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ColorConstants.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Display;
 
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ConnectionLayer.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ConnectionLayer.java
index dc153b1..9894f68 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ConnectionLayer.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ConnectionLayer.java
@@ -12,7 +12,7 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * Layer designed specifically to handle the presence of connections. This is
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Cursors.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Cursors.java
index 56f9d38..a7dd2a5 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Cursors.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Cursors.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.graphics.Cursor;
 
 /**
@@ -192,8 +192,11 @@
 		IBEAM = new Cursor(null, SWT.CURSOR_IBEAM);
 		NO = new Cursor(null, SWT.CURSOR_NO);
 		SIZEALL = new Cursor(null, SWT.CURSOR_SIZEALL);
-		SIZENESW = new Cursor(null, SWT.CURSOR_SIZENESW);
-		SIZENWSE = new Cursor(null, SWT.CURSOR_SIZENWSE);
+		//UNSUPPORTED - these constants are not implemented yet in RAP
+//		SIZENESW = new Cursor(null, SWT.CURSOR_SIZENESW);
+//		SIZENWSE = new Cursor(null, SWT.CURSOR_SIZENWSE);
+		SIZENESW = new Cursor(null, SWT.CURSOR_SIZEALL);
+        SIZENWSE = new Cursor(null, SWT.CURSOR_SIZEALL);
 		UPARROW = new Cursor(null, SWT.CURSOR_UPARROW);
 		WAIT = new Cursor(null, SWT.CURSOR_WAIT);
 	}
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/DeferredUpdateManager.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/DeferredUpdateManager.java
index 2d495ea..f2dd442 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/DeferredUpdateManager.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/DeferredUpdateManager.java
@@ -16,12 +16,12 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.widgets.Display;
 
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * An UpdateManager that asynchronously updates the affected figures.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Figure.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Figure.java
index 71dc88e..589dc9b 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Figure.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Figure.java
@@ -18,7 +18,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Cursor;
@@ -30,6 +29,7 @@
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.draw2d.geometry.Translatable;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * The base implementation for graphical figures.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java
index 995938f..837023c 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java
@@ -14,7 +14,6 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Font;
@@ -27,6 +26,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A scrolling Canvas that contains {@link Figure Figures} viewed through a
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Graphics.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Graphics.java
index 41cce77..2f38b8e 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Graphics.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Graphics.java
@@ -10,21 +10,20 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
+import org.eclipse.draw2d.rap.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontMetrics;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Path;
 import org.eclipse.swt.graphics.Pattern;
 import org.eclipse.swt.graphics.TextLayout;
 
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-
 /**
  * The Graphics class allows you to draw to a surface. The drawXxx() methods
  * that pertain to shapes draw an outline of the shape, whereas the fillXxx()
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridData.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridData.java
index acdf061..f2666f4 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridData.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridData.java
@@ -11,9 +11,9 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * <code>GridData</code> is the layout data object associated with
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridLayout.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridLayout.java
index 22dac61..e7d0b41 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridLayout.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/GridLayout.java
@@ -15,10 +15,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
 
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * Lays out children into a Grid arrangement in which overall aligment and
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ImageUtilities.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ImageUtilities.java
index 990fd6e..979e2f3 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ImageUtilities.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ImageUtilities.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontMetrics;
@@ -22,6 +21,7 @@
 import org.eclipse.swt.widgets.Display;
 
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * @author Pratik Shah
@@ -54,7 +54,9 @@
 
 		FontMetrics metrics = FigureUtilities.getFontMetrics(font);
 		Dimension strSize = FigureUtilities.getStringExtents(string, font);
-		Image srcImage = new Image(display, strSize.width, metrics.getAscent());
+	    // UNSUPPORTED - getAscent() not implemented in RAP
+//		Image srcImage = new Image(display, strSize.width, metrics.getAscent());
+		Image srcImage = new Image(display, strSize.width, metrics.getHeight());
 		// UNSUPPORTED - image constructor not implemented in RAP
 		// GC gc = new GC(srcImage);
 		GC gc = new GC(srcImage.getDevice());
@@ -62,7 +64,9 @@
 		gc.setForeground(foreground);
 		gc.setBackground(background);
 		gc.fillRectangle(srcImage.getBounds());
-		gc.drawString(string, 0, 0 - metrics.getLeading());
+		// UNSUPPORTED - getLeading() not implemented in RAP
+//		gc.drawString(string, 0, 0 - metrics.getLeading());
+		gc.drawString(string, 0, 0);
 		Image result = createRotatedImage(srcImage);
 		gc.dispose();
 		srcImage.dispose();
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/InputEvent.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/InputEvent.java
index b0f3eac..51ada7d 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/InputEvent.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/InputEvent.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * The base class for Draw2d events.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/LightweightSystem.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/LightweightSystem.java
index 1137763..c51d513 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/LightweightSystem.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/LightweightSystem.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.accessibility.AccessibleControlEvent;
 import org.eclipse.swt.accessibility.AccessibleControlListener;
 import org.eclipse.swt.accessibility.AccessibleEvent;
@@ -52,6 +51,7 @@
 import org.eclipse.ui.presentations.PresentationUtil;
 
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * The LightweightSystem is the link between SWT and Draw2d. It is the component
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java
index c71b5e4..28450f2 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java
@@ -11,9 +11,9 @@
 
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.widgets.Control;
 
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.widgets.Control;
 
 /**
  * A graphics source that posts a paint request to the control rather than
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PopUpHelper.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PopUpHelper.java
index acb2bfa..52a1b21 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PopUpHelper.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PopUpHelper.java
@@ -10,13 +10,13 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * Provides abstract support for classes that manage popups. Popups in Draw2d
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintFigureOperation.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintFigureOperation.java
index eddeb7c..f959758 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintFigureOperation.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintFigureOperation.java
@@ -11,12 +11,12 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.printing.Printer;
 import org.eclipse.swt.widgets.Display;
 
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * Class responsible for printing Figures.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintOperation.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintOperation.java
index 6b27580..a7032b6 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintOperation.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrintOperation.java
@@ -10,12 +10,12 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.printing.Printer;
 
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * Implementation of draw2d's printing capabilities.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrinterGraphics.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrinterGraphics.java
index 028139d..e952067 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrinterGraphics.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/PrinterGraphics.java
@@ -14,11 +14,11 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
+import org.eclipse.draw2d.rap.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.LineAttributes;
 import org.eclipse.swt.printing.Printer;
 import org.eclipse.swt.widgets.Display;
 
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTEventDispatcher.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTEventDispatcher.java
index d3e9c9e..2bc3f49 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTEventDispatcher.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTEventDispatcher.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.accessibility.AccessibleControlEvent;
 import org.eclipse.swt.accessibility.AccessibleControlListener;
 import org.eclipse.swt.accessibility.AccessibleEvent;
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java
index b518e4c..f5809dc 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java
@@ -13,13 +13,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
+import org.eclipse.draw2d.rap.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontMetrics;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Path;
 import org.eclipse.swt.graphics.Pattern;
 import org.eclipse.swt.graphics.Region;
@@ -27,9 +29,6 @@
 import org.eclipse.swt.graphics.Transform;
 import org.eclipse.swt.widgets.Display;
 
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-
 /**
  * A concrete implementation of <code>Graphics</code> using an SWT
  * <code>GC</code>. There are 2 states contained in this graphics class -- the
@@ -794,7 +793,8 @@
 		currentState.bgColor = appliedState.bgColor = gc.getBackground();
 		currentState.fgColor = appliedState.fgColor = gc.getForeground();
 		currentState.font = appliedState.font = gc.getFont();
-		currentState.lineAttributes = gc.getLineAttributes();
+		org.eclipse.swt.graphics.LineAttributes lineAttributes = gc.getLineAttributes();
+        currentState.lineAttributes = new LineAttributes(lineAttributes.width,lineAttributes.cap,lineAttributes.join);
 		appliedState.lineAttributes = clone(currentState.lineAttributes);
 		// UNSUPPORTED - api is not implemented in RAP
 		// currentState.graphicHints |= gc.getLineStyle();
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScalableLayeredPane.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScalableLayeredPane.java
index 595f418..7648659 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScalableLayeredPane.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScalableLayeredPane.java
@@ -10,11 +10,11 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.SWT;
 
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.draw2d.geometry.Translatable;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A non-freeform, scalable layered pane.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScaledGraphics.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScaledGraphics.java
index 8769513..3b6b432 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScaledGraphics.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ScaledGraphics.java
@@ -15,13 +15,16 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
+import org.eclipse.draw2d.rap.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.graphics.FontMetrics;
 import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.LineAttributes;
 import org.eclipse.swt.graphics.Path;
 import org.eclipse.swt.graphics.PathData;
 import org.eclipse.swt.graphics.Pattern;
@@ -29,10 +32,6 @@
 import org.eclipse.swt.graphics.TextStyle;
 import org.eclipse.swt.widgets.Display;
 
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-
 /**
  * A Graphics object able to scale all operations based on the current scale
  * factor.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Shape.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Shape.java
index 5faf6bf..94ca55d 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Shape.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/Shape.java
@@ -10,7 +10,8 @@
  *******************************************************************************/
 package org.eclipse.draw2d;
 
-import org.eclipse.swt.graphics.LineAttributes;
+import org.eclipse.draw2d.rap.swt.graphics.LineAttributes;
+
 
 /**
  * Provides abstract support for a variety of shapes.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/TextUtilities.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/TextUtilities.java
index d3d2a0e..b60085e 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/TextUtilities.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/TextUtilities.java
@@ -65,7 +65,9 @@
 	 */
 	public int getAscent(Font font) {
 		FontMetrics fm = FigureUtilities.getFontMetrics(font);
-		return fm.getHeight() - fm.getDescent();
+	    // UNSUPPORTED - getDescent() not implemented in RAP
+//		return fm.getHeight() - fm.getDescent();
+		return fm.getHeight();
 	}
 
 	/**
@@ -75,7 +77,9 @@
 	 * @return the font's descent
 	 */
 	public int getDescent(Font font) {
-		return FigureUtilities.getFontMetrics(font).getDescent();
+	     // UNSUPPORTED - getDescent() not implemented in RAP
+//		return FigureUtilities.getFontMetrics(font).getDescent();
+		return 0;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java
index aadffa5..7ab8582 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java
@@ -13,11 +13,11 @@
 import java.util.Timer;
 import java.util.TimerTask;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.widgets.Display;
 
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * This class is used by SWTEventDispatcher as support to display Figure
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/ScrollableThumbnail.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/ScrollableThumbnail.java
index 0bb7ac1..c2a3672 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/ScrollableThumbnail.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/ScrollableThumbnail.java
@@ -13,7 +13,6 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.graphics.PaletteData;
@@ -34,6 +33,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A scaled image representation of a Figure. If the source Figure is not
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/Thumbnail.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/Thumbnail.java
index c27d98b..cfb1b64 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/Thumbnail.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/parts/Thumbnail.java
@@ -13,7 +13,6 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Image;
@@ -29,6 +28,7 @@
 import org.eclipse.draw2d.UpdateListener;
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A Thumbnail is a Figure that displays an image of its source Figure at a
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BidiProcessor.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BidiProcessor.java
index 4ed8030..cd43241 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BidiProcessor.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BidiProcessor.java
@@ -15,7 +15,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.graphics.TextLayout;
 
 /**
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlow.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlow.java
index cebf820..0c2fc2d 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlow.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlow.java
@@ -12,14 +12,13 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
-
 import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.Graphics;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A <code>FlowFigure</code> represented by a single {@link BlockBox} containing
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlowLayout.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlowLayout.java
index 640a14c..200d649 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlowLayout.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/BlockFlowLayout.java
@@ -12,11 +12,11 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 
 import org.eclipse.draw2d.Figure;
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * The layout for {@link BlockFlow} figures.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowBorder.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowBorder.java
index 46384de..b253b8a 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowBorder.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowBorder.java
@@ -71,9 +71,9 @@
 	 * is used to indicate whether the left and right sides should be rendered.
 	 * This parameter will contain the following bit flags:
 	 * <UL>
-	 * <LI>{@link org.eclipse.swt.SWT#LEAD}
-	 * <LI>{@link org.eclipse.swt.SWT#TRAIL}
-	 * <LI>{@link org.eclipse.swt.SWT#RIGHT_TO_LEFT}
+	 * <LI>{@link org.eclipse.draw2d.rap.swt.SWT#LEAD}
+	 * <LI>{@link org.eclipse.draw2d.rap.swt.SWT#TRAIL}
+	 * <LI>{@link org.eclipse.draw2d.rap.swt.SWT#RIGHT_TO_LEFT}
 	 * </UL>
 	 * 
 	 * @param figure
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowUtilities.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowUtilities.java
index 6508f2d..54fec44 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowUtilities.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/FlowUtilities.java
@@ -12,7 +12,6 @@
 
 import com.ibm.icu.text.BreakIterator;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.graphics.TextLayout;
@@ -20,6 +19,7 @@
 
 import org.eclipse.draw2d.FigureUtilities;
 import org.eclipse.draw2d.TextUtilities;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * Utility class for FlowFigures.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/InlineFlow.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/InlineFlow.java
index 85705da..e6b3385 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/InlineFlow.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/InlineFlow.java
@@ -14,12 +14,12 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 
 import org.eclipse.draw2d.Border;
 import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.Graphics;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A <code>FlowFigure</code> represented by multiple <code>LineBox</code>
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/TextFlow.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/TextFlow.java
index a0415fd..a42acb8 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/TextFlow.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/text/TextFlow.java
@@ -12,7 +12,6 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.TextLayout;
 
@@ -22,6 +21,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * An inline flow figure that renders a string of text across one or more lines.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/widgets/MultiLineLabel.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/widgets/MultiLineLabel.java
index ec17384..739ab51 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/widgets/MultiLineLabel.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/widgets/MultiLineLabel.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.widgets;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.accessibility.ACC;
 import org.eclipse.swt.accessibility.AccessibleAdapter;
 import org.eclipse.swt.accessibility.AccessibleControlAdapter;
@@ -30,6 +29,7 @@
 import org.eclipse.draw2d.MarginBorder;
 import org.eclipse.draw2d.Viewport;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.text.FlowPage;
 import org.eclipse.draw2d.text.TextFlow;
 
diff --git a/bundles/org.eclipse.gef/META-INF/MANIFEST.MF b/bundles/org.eclipse.gef/META-INF/MANIFEST.MF
index 2c7d359..32af397 100644
--- a/bundles/org.eclipse.gef/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.gef/META-INF/MANIFEST.MF
@@ -37,6 +37,7 @@
  org.eclipse.gef.ui.views.palette,
  org.eclipse.gef.util
 Require-Bundle: org.eclipse.draw2d;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
+ org.eclipse.draw2d.rap;bundle-version="1.0.0",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.rap.jface;bundle-version="1.4.0",
  org.eclipse.rap.ui.workbench;bundle-version="1.4.0",
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/MouseWheelHandler.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/MouseWheelHandler.java
index fb32d54..b17a1ec 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/MouseWheelHandler.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/MouseWheelHandler.java
@@ -10,9 +10,10 @@
  *******************************************************************************/
 package org.eclipse.gef;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Event;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 /**
  * MouseWheelHandlers can be
  * {@link org.eclipse.gef.EditPartViewer#setProperty(String, Object) registered}
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/SelectionManager.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/SelectionManager.java
index 12f4770..3734452 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/SelectionManager.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/SelectionManager.java
@@ -18,10 +18,12 @@
 
 import org.eclipse.swt.widgets.Control;
 
+
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 
+
 /**
  * Manages a viewer's selection model. Selection management includes
  * representing a form of selection which is available to clients of a viewer as
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/editparts/ViewportMouseWheelHelper.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/editparts/ViewportMouseWheelHelper.java
index e38e16c..f5b1b66 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/editparts/ViewportMouseWheelHelper.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/editparts/ViewportMouseWheelHelper.java
@@ -10,12 +10,12 @@
  *******************************************************************************/
 package org.eclipse.gef.editparts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Event;
 
 import org.eclipse.draw2d.RangeModel;
 import org.eclipse.draw2d.Viewport;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.GraphicalEditPart;
 import org.eclipse.gef.MouseWheelHelper;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/PaletteSelectionTool.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/PaletteSelectionTool.java
index 8ab9d94..17bb540 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/PaletteSelectionTool.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/PaletteSelectionTool.java
@@ -10,9 +10,10 @@
  *******************************************************************************/
 package org.eclipse.gef.internal.ui.palette;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.tools.SelectionTool;
 import org.eclipse.gef.ui.palette.PaletteViewer;
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/ToolbarDropdownContributionItem.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/ToolbarDropdownContributionItem.java
index 307a34d..5975998 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/ToolbarDropdownContributionItem.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/ToolbarDropdownContributionItem.java
@@ -14,7 +14,6 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
@@ -39,6 +38,8 @@
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 /**
  * A contribution item which delegates to an action.
  * <p>
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DetailedLabelFigure.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DetailedLabelFigure.java
index 40ff6c2..f308cbd 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DetailedLabelFigure.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DetailedLabelFigure.java
@@ -15,7 +15,6 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.graphics.Image;
@@ -31,6 +30,7 @@
 import org.eclipse.draw2d.ImageUtilities;
 import org.eclipse.draw2d.MarginBorder;
 import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.text.FlowPage;
 import org.eclipse.draw2d.text.ParagraphTextLayout;
 import org.eclipse.draw2d.text.TextFlow;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DropShadowButtonBorder.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DropShadowButtonBorder.java
index 69bef29..abd815f 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DropShadowButtonBorder.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DropShadowButtonBorder.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.internal.ui.palette.editparts;
 
-import org.eclipse.swt.custom.ViewForm;
 import org.eclipse.swt.graphics.Color;
 
 import org.eclipse.draw2d.AbstractBorder;
@@ -21,6 +20,7 @@
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.custom.ViewForm;
 
 class DropShadowButtonBorder extends AbstractBorder {
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/EditPartTipHelper.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/EditPartTipHelper.java
index f8f2a9c..e9d3e5d 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/EditPartTipHelper.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/EditPartTipHelper.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.internal.ui.palette.editparts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.PaintEvent;
 import org.eclipse.swt.events.PaintListener;
 import org.eclipse.swt.events.ShellAdapter;
@@ -23,6 +22,7 @@
 
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 class EditPartTipHelper extends org.eclipse.draw2d.PopUpHelper {
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java
index 53741b4..596e05a 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.internal.ui.palette.editparts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.graphics.PaletteData;
@@ -31,6 +30,7 @@
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.PointList;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.internal.ui.palette.PaletteColorUtil;
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java
index f19bd54..a40f92f 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.internal.ui.palette.editparts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.accessibility.ACC;
 import org.eclipse.swt.accessibility.AccessibleControlEvent;
 import org.eclipse.swt.accessibility.AccessibleEvent;
@@ -33,6 +32,7 @@
 import org.eclipse.draw2d.Toggle;
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AccessibleEditPart;
 import org.eclipse.gef.DragTracker;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/rulers/RulerFigure.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/rulers/RulerFigure.java
index 181fd8f..e703ac5 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/rulers/RulerFigure.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/internal/ui/rulers/RulerFigure.java
@@ -96,11 +96,15 @@
 	public Dimension getPreferredSize(int wHint, int hHint) {
 		Dimension prefSize = new Dimension();
 		if (isHorizontal()) {
+			// UNSUPPORTED - getAscent() not implemented in RAP
 			prefSize.height = (textMargin * 2) + BORDER_WIDTH
-					+ FigureUtilities.getFontMetrics(getFont()).getAscent();
+			// + FigureUtilities.getFontMetrics(getFont()).getAscent();
+					+ FigureUtilities.getFontMetrics(getFont()).getHeight();
 		} else {
+			// UNSUPPORTED - getLeading() not implemented in RAP
 			prefSize.width = (textMargin * 2) + BORDER_WIDTH
-					+ FigureUtilities.getFontMetrics(getFont()).getAscent();
+			// + FigureUtilities.getFontMetrics(getFont()).getAscent();
+					+ FigureUtilities.getFontMetrics(getFont()).getHeight();
 		}
 		return prefSize;
 	}
@@ -293,7 +297,9 @@
 		// mark) that is
 		// beyond the end of the clip region
 		int endMark = (int) (((clippedBounds.y + clippedBounds.height) / dotsPerDivision)) + 1;
-		int leading = FigureUtilities.getFontMetrics(getFont()).getLeading();
+		// UNSUPPORTED - getLeading() not implemented in RAP
+		// int leading = FigureUtilities.getFontMetrics(getFont()).getLeading();
+		int leading = 0;
 		Rectangle forbiddenZone = new Rectangle();
 		for (int div = startMark; div <= endMark; div++) {
 			// y is the vertical position of the mark
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/AbstractTool.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/AbstractTool.java
index 290c614..3e8be00 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/AbstractTool.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/AbstractTool.java
@@ -22,7 +22,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DragSourceEvent;
 import org.eclipse.swt.events.FocusEvent;
 import org.eclipse.swt.events.KeyEvent;
@@ -40,6 +39,7 @@
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.DragTracker;
 import org.eclipse.gef.EditDomain;
@@ -1442,7 +1442,7 @@
 	}
 
 	void setMouseCapture(boolean value) {
-	  // UNSUPPORTED - capture api not implemented in RAP
+		// UNSUPPORTED - capture api not implemented in RAP
 		// if (getCurrentViewer() != null
 		// && getCurrentViewer().getControl() != null
 		// && !getCurrentViewer().getControl().isDisposed())
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionCreationTool.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionCreationTool.java
index ed543e4..565a5ff 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionCreationTool.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionCreationTool.java
@@ -12,12 +12,12 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.widgets.Event;
 
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AccessibleAnchorProvider;
 import org.eclipse.gef.EditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionEndpointTracker.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionEndpointTracker.java
index 13669b3..6ea1e36 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionEndpointTracker.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ConnectionEndpointTracker.java
@@ -14,13 +14,13 @@
 import java.util.Collection;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.graphics.Cursor;
 
 import org.eclipse.draw2d.Connection;
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AccessibleAnchorProvider;
 import org.eclipse.gef.ConnectionEditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DelayedDirectEditHelper.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DelayedDirectEditHelper.java
index b600d8c..19d98f4 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DelayedDirectEditHelper.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DelayedDirectEditHelper.java
@@ -21,6 +21,7 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 
+
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPartViewer;
 import org.eclipse.gef.Request;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DragEditPartsTracker.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DragEditPartsTracker.java
index 63066d9..60684a4 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DragEditPartsTracker.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/DragEditPartsTracker.java
@@ -15,7 +15,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.graphics.Cursor;
 
@@ -27,6 +26,7 @@
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.PrecisionPoint;
 import org.eclipse.draw2d.geometry.PrecisionRectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AutoexposeHelper;
 import org.eclipse.gef.EditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/MarqueeSelectionTool.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/MarqueeSelectionTool.java
index b3738b5..8720421 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/MarqueeSelectionTool.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/MarqueeSelectionTool.java
@@ -17,7 +17,6 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.widgets.Display;
 
@@ -31,6 +30,7 @@
 import org.eclipse.draw2d.Graphics;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.ConnectionEditPart;
 import org.eclipse.gef.EditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/PanningSelectionTool.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/PanningSelectionTool.java
index 4c4d39b..22e16df 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/PanningSelectionTool.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/PanningSelectionTool.java
@@ -10,12 +10,12 @@
  *******************************************************************************/
 package org.eclipse.gef.tools;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.graphics.Cursor;
 
 import org.eclipse.draw2d.FigureCanvas;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.SharedCursors;
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ResizeTracker.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ResizeTracker.java
index b500f2c..083622e 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ResizeTracker.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/ResizeTracker.java
@@ -12,7 +12,6 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Cursor;
 
 import org.eclipse.draw2d.IFigure;
@@ -22,6 +21,7 @@
 import org.eclipse.draw2d.geometry.PrecisionDimension;
 import org.eclipse.draw2d.geometry.PrecisionPoint;
 import org.eclipse.draw2d.geometry.PrecisionRectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.GraphicalEditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectEditPartTracker.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectEditPartTracker.java
index ef2b6ba..1fc6fb9 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectEditPartTracker.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectEditPartTracker.java
@@ -12,9 +12,10 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Cursor;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.DragTracker;
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPartViewer;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectionTool.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectionTool.java
index 9d4e3d0..95ab644 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectionTool.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SelectionTool.java
@@ -13,7 +13,6 @@
 import java.lang.ref.WeakReference;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DragSourceEvent;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.MouseEvent;
@@ -21,6 +20,7 @@
 import org.eclipse.swt.widgets.Event;
 
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AccessibleHandleProvider;
 import org.eclipse.gef.DragTracker;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SimpleDragTracker.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SimpleDragTracker.java
index 78dc61f..6c18763 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SimpleDragTracker.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/tools/SimpleDragTracker.java
@@ -12,10 +12,11 @@
 
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.graphics.Cursor;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.DragTracker;
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.Request;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/PrintAction.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/PrintAction.java
index 1f74321..b50f14d 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/PrintAction.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/PrintAction.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.ui.actions;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.printing.PrintDialog;
 import org.eclipse.swt.printing.Printer;
 import org.eclipse.swt.printing.PrinterData;
@@ -18,6 +17,8 @@
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.actions.ActionFactory;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.GraphicalViewer;
 import org.eclipse.gef.internal.GEFMessages;
 import org.eclipse.gef.print.PrintGraphicalViewerOperation;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/ZoomComboContributionItem.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/ZoomComboContributionItem.java
index 074cd02..eec3912 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/ZoomComboContributionItem.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/actions/ZoomComboContributionItem.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.ui.actions;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.events.FocusEvent;
 import org.eclipse.swt.events.FocusListener;
@@ -29,6 +28,8 @@
 import org.eclipse.ui.IPartService;
 import org.eclipse.ui.IWorkbenchPart;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.editparts.ZoomListener;
 import org.eclipse.gef.editparts.ZoomManager;
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/console/DebugGEF.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/console/DebugGEF.java
index 372f0cf..773df51 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/console/DebugGEF.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/console/DebugGEF.java
@@ -13,7 +13,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 
@@ -22,6 +21,8 @@
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.part.ViewPart;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.GEF;
 
 /**
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java
index 13f8819..d674e45 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java
@@ -17,7 +17,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.accessibility.ACC;
 import org.eclipse.swt.accessibility.AccessibleAdapter;
 import org.eclipse.swt.accessibility.AccessibleControlAdapter;
@@ -40,6 +39,7 @@
 import org.eclipse.swt.widgets.Canvas;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ControlPaintHandler;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
@@ -87,6 +87,7 @@
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.Triangle;
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.GraphicalViewer;
 import org.eclipse.gef.SharedCursors;
@@ -736,9 +737,11 @@
 
 	private class Sash extends Composite {
 		private Control button;
+		private ControlPaintHandler helper;
 
 		public Sash(Composite parent, int style) {
 			super(parent, style);
+			helper = new ControlPaintHandler(this);
 			button = createFlyoutControlButton(this);
 			new SashDragManager();
 			// UNSUPPORTED - api not implemented in RAP
@@ -751,7 +754,7 @@
 			// }
 			// });
 
-			addPaintListener(new PaintListener() {
+			helper.addPaintListener(new PaintListener() {
 				public void paintControl(org.eclipse.swt.events.PaintEvent event) {
 					paintSash(event.gc);
 				};
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/LayoutAction.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/LayoutAction.java
index 50e5634..56f03a1 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/LayoutAction.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/LayoutAction.java
@@ -23,6 +23,7 @@
 import org.eclipse.jface.action.IMenuCreator;
 import org.eclipse.jface.resource.ImageDescriptor;
 
+
 import org.eclipse.gef.internal.Internal;
 
 /**
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DefaultEntryPage.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DefaultEntryPage.java
index 1616b12..8ef9e50 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DefaultEntryPage.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DefaultEntryPage.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.ui.palette.customize;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -24,6 +23,7 @@
 import org.eclipse.swt.widgets.Text;
 
 import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.palette.PaletteEntry;
 import org.eclipse.gef.palette.PaletteSeparator;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DrawerEntryPage.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DrawerEntryPage.java
index a162308..43ed8d9 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DrawerEntryPage.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/DrawerEntryPage.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.ui.palette.customize;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
@@ -18,6 +17,8 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.palette.PaletteDrawer;
 import org.eclipse.gef.palette.PaletteEntry;
 import org.eclipse.gef.ui.palette.PaletteMessages;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/EntryPage.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/EntryPage.java
index aa3da98..5b9e2be 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/EntryPage.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/EntryPage.java
@@ -13,6 +13,7 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+
 import org.eclipse.gef.palette.PaletteEntry;
 
 /**
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteCustomizerDialog.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteCustomizerDialog.java
index 5656233..e202dbc 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteCustomizerDialog.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteCustomizerDialog.java
@@ -17,7 +17,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.DisposeEvent;
@@ -37,6 +36,7 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ControlPaintHandler;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
@@ -74,6 +74,7 @@
 import org.eclipse.ui.part.PageBook;
 
 import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.widgets.MultiLineLabel;
 
 import org.eclipse.gef.internal.Internal;
@@ -528,7 +529,8 @@
 		composite.setLayout(new FillLayout());
 
 		// A paint listener that draws an etched border around the toolbar
-		composite.addPaintListener(new PaintListener() {
+		ControlPaintHandler helper = new ControlPaintHandler(composite);
+		helper.addPaintListener(new PaintListener() {
 			public void paintControl(PaintEvent e) {
 				Rectangle area = composite.getBounds();
 				GC gc = e.gc;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteSettingsDialog.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteSettingsDialog.java
index d03b3de..04bcb0e 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteSettingsDialog.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/palette/customize/PaletteSettingsDialog.java
@@ -12,7 +12,6 @@
 
 import java.util.HashMap;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -38,6 +37,8 @@
 import org.eclipse.jface.resource.StringConverter;
 import org.eclipse.ui.part.PageBook;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.ui.palette.PaletteMessages;
 import org.eclipse.gef.ui.palette.PaletteViewerPreferences;
 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/ContentOutlinePage.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/ContentOutlinePage.java
index 301ee45..69f36bd 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/ContentOutlinePage.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/ContentOutlinePage.java
@@ -18,6 +18,7 @@
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 
+
 import org.eclipse.gef.EditPartViewer;
 
 /**
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java
index e45f7d6..23b6920 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java
@@ -10,10 +10,11 @@
  *******************************************************************************/
 package org.eclipse.gef.ui.parts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.DefaultEditDomain;
 import org.eclipse.gef.internal.InternalGEFPlugin;
 import org.eclipse.gef.palette.PaletteRoot;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithPalette.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithPalette.java
index f8ba62d..75c5b8a 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithPalette.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithPalette.java
@@ -13,9 +13,10 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 import org.eclipse.gef.DefaultEditDomain;
 import org.eclipse.gef.palette.PaletteRoot;
 import org.eclipse.gef.ui.palette.PaletteViewer;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerImpl.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerImpl.java
index 5b68c27..017cba8 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerImpl.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerImpl.java
@@ -14,7 +14,6 @@
 import java.util.Collection;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DragSource;
 import org.eclipse.swt.dnd.DragSourceAdapter;
 import org.eclipse.swt.dnd.DragSourceEvent;
@@ -38,6 +37,7 @@
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.LightweightSystem;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AccessibleEditPart;
 import org.eclipse.gef.EditDomain;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerKeyHandler.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerKeyHandler.java
index f6f0159..1ae25d8 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerKeyHandler.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalViewerKeyHandler.java
@@ -15,7 +15,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 
 import org.eclipse.draw2d.FigureCanvas;
@@ -23,6 +22,7 @@
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.ConnectionEditPart;
 import org.eclipse.gef.EditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/PaletteViewerKeyHandler.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/PaletteViewerKeyHandler.java
index 7ecb952..b02df01 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/PaletteViewerKeyHandler.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/PaletteViewerKeyHandler.java
@@ -13,11 +13,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/Splitter.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/Splitter.java
index 3c7c982..670ca33 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/Splitter.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/Splitter.java
@@ -13,7 +13,6 @@
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.PaintEvent;
 import org.eclipse.swt.events.PaintListener;
 import org.eclipse.swt.graphics.GC;
@@ -21,12 +20,14 @@
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ControlPaintHandler;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 
 import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 class Splitter extends Composite {
 
@@ -203,7 +204,9 @@
 			for (int i = sashes.length; i < newSashes.length; i++) {
 				newSashes[i] = new Sash(this, sashOrientation);
 				newSashes[i].setBackground(ColorConstants.button);
-				newSashes[i].addPaintListener(new PaintListener() {
+				ControlPaintHandler helper = new ControlPaintHandler(
+						newSashes[i]);
+				helper.addPaintListener(new PaintListener() {
 					public void paintControl(PaintEvent e) {
 						paint((Sash) e.widget, e.gc);
 					}
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewer.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewer.java
index f2220e3..fe3b2f8 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewer.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/parts/TreeViewer.java
@@ -14,7 +14,6 @@
 import java.util.Collection;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.FocusEvent;
 import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.events.KeyEvent;
@@ -35,6 +34,7 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 
 import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPartViewer;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/rulers/RulerComposite.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/rulers/RulerComposite.java
index ba1f2ca..03a668f 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/rulers/RulerComposite.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/rulers/RulerComposite.java
@@ -14,7 +14,6 @@
 import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.KeyEvent;
@@ -40,6 +39,7 @@
 import org.eclipse.draw2d.RangeModel;
 import org.eclipse.draw2d.Viewport;
 import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.DragTracker;
 import org.eclipse.gef.EditDomain;
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspector.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspector.java
index 09a633e..1caaedc 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspector.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspector.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.ui.stackview;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Canvas;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -23,6 +22,8 @@
 import org.eclipse.ui.part.PageBook;
 import org.eclipse.ui.part.PageBookView;
 
+import org.eclipse.draw2d.rap.swt.SWT;
+
 /**
  * Internal class used for a debug view.
  * 
diff --git a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspectorPage.java b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspectorPage.java
index d6e0fe6..3129db7 100644
--- a/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspectorPage.java
+++ b/bundles/org.eclipse.gef/src/org/eclipse/gef/ui/stackview/CommandStackInspectorPage.java
@@ -18,6 +18,7 @@
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.viewers.TreeViewer;
 
+
 import org.eclipse.gef.commands.CommandStack;
 
 /**
diff --git a/bundles/org.eclipse.rap.gef.demo/META-INF/MANIFEST.MF b/bundles/org.eclipse.rap.gef.demo/META-INF/MANIFEST.MF
index d708225..eeeb580 100644
--- a/bundles/org.eclipse.rap.gef.demo/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.rap.gef.demo/META-INF/MANIFEST.MF
@@ -5,6 +5,7 @@
 Bundle-Version: 1.0.0.qualifier
 Require-Bundle: org.eclipse.rap.ui,
  org.eclipse.draw2d,
+ org.eclipse.draw2d.rap;bundle-version="1.0.0",
  org.eclipse.gef,
  org.eclipse.rap.ui.views;bundle-version="1.4.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.rap.gef.demo/RAP GEF Demo.launch b/bundles/org.eclipse.rap.gef.demo/RAP GEF Demo.launch
index 64aac25..7f8a757 100644
--- a/bundles/org.eclipse.rap.gef.demo/RAP GEF Demo.launch
+++ b/bundles/org.eclipse.rap.gef.demo/RAP GEF Demo.launch
@@ -12,6 +12,7 @@
 <intAttribute key="default_start_level" value="4"/>
 <booleanAttribute key="includeOptional" value="false"/>
 <booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/eclipse"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -consolelog"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true"/>
@@ -28,9 +29,9 @@
 <booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
 <stringAttribute key="pde.version" value="3.3"/>
 <booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.help@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.rap.rwt.excanvas@default:default,org.eclipse.rap.rwt.q07@default:false,javax.servlet@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.preferences@default:default,org.mortbay.jetty.server@default:default,com.ibm.icu.base@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.equinox.common@2:true,org.eclipse.osgi@-1:true,org.eclipse.rap.rwt@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.rap.ui.forms@default:default,org.apache.commons.fileupload@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.core.expressions@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.rap.jface@default:default,org.apache.commons.io@default:default,org.eclipse.core.databinding@default:default,org.eclipse.rap.ui.views@default:default,org.mortbay.jetty.util@default:default,org.eclipse.rap.ui.cheatsheets@default:default,org.eclipse.core.commands@default:default,org.eclipse.rap.ui@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.core.jobs@default:default"/>
+<stringAttribute key="target_bundles" value="javax.servlet@default:default,org.eclipse.rap.rwt.q07@default:false,org.eclipse.core.databinding.property@default:default,com.ibm.icu.base@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.core.runtime@default:true,org.eclipse.rap.ui@default:default,org.eclipse.equinox.common@2:true,org.eclipse.core.commands@default:default,org.eclipse.equinox.app@default:default,org.eclipse.rap.ui.cheatsheets@default:default,org.apache.commons.io@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.osgi@-1:true,org.eclipse.core.contenttype@default:default,org.mortbay.jetty.server@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.core.jobs@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.databinding.observable@default:default,org.mortbay.jetty.util@default:default,org.apache.commons.fileupload@default:default,org.eclipse.rap.jface@default:default,org.eclipse.help@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.rwt.excanvas@default:default,org.eclipse.core.expressions@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services@default:default"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
 <booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.rap.jface@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.ui@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.draw2d@default:default,org.eclipse.rap.gef.demo@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.cheatsheets@default:default,org.eclipse.gef@default:default,org.eclipse.rap.jettycustomizer@default:false,org.eclipse.rap.equinox.registry@default:false"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.equinox.registry@default:false,org.eclipse.draw2d@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui@default:default,org.eclipse.rap.jettycustomizer@default:false,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.cheatsheets@default:default,org.eclipse.rap.rwt.q07@default:false,org.eclipse.rap.jface@default:default,org.eclipse.rap.gef.demo@default:default,org.eclipse.gef@default:default,org.eclipse.draw2d.rap@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.ui.workbench@default:default"/>
 </launchConfiguration>
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/AbstractExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/AbstractExample.java
index 219704b..5ebdcf5 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/AbstractExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/AbstractExample.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -20,6 +19,7 @@
 
 import org.eclipse.draw2d.FigureCanvas;
 import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A baseclass for draw2d examples.
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/ExampleUtil.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/ExampleUtil.java
index 51d0edc..72445b2 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/ExampleUtil.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/ExampleUtil.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 
 import org.eclipse.draw2d.Figure;
@@ -19,6 +18,7 @@
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.Label;
 import org.eclipse.draw2d.ToolbarLayout;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * A factory for figures.
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/graph/AbstractGraphDemo.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/graph/AbstractGraphDemo.java
index f8c2998..9dafab8 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/graph/AbstractGraphDemo.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/graph/AbstractGraphDemo.java
@@ -29,7 +29,7 @@
 import org.eclipse.draw2d.graph.Edge;
 import org.eclipse.draw2d.graph.Node;
 import org.eclipse.draw2d.graph.NodeList;
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/FlowLayoutExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/FlowLayoutExample.java
index 48bd698..609af16 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/FlowLayoutExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/FlowLayoutExample.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples.layouts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.FillLayout;
@@ -33,6 +32,7 @@
 import org.eclipse.draw2d.Shape;
 import org.eclipse.draw2d.Triangle;
 import org.eclipse.draw2d.examples.AbstractExample;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * @author hudsonr
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/GridLayoutExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/GridLayoutExample.java
index b43de5c..c9d83d6 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/GridLayoutExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/GridLayoutExample.java
@@ -24,7 +24,7 @@
 import org.eclipse.draw2d.Shape;
 import org.eclipse.draw2d.Triangle;
 import org.eclipse.draw2d.examples.AbstractExample;
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Color;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/ToolbarLayoutExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/ToolbarLayoutExample.java
index 04ce1b2..725fa03 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/ToolbarLayoutExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/layouts/ToolbarLayoutExample.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples.layouts;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.FillLayout;
@@ -33,6 +32,7 @@
 import org.eclipse.draw2d.Shape;
 import org.eclipse.draw2d.ToolbarLayout;
 import org.eclipse.draw2d.examples.AbstractExample;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * @author hudsonr
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathExample.java
index 7b06f32..7456736 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathExample.java
@@ -23,7 +23,7 @@
 import org.eclipse.draw2d.ScrollBar;
 import org.eclipse.draw2d.ToolbarLayout;
 import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathFigure.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathFigure.java
index d22a79b..2375a87 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathFigure.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/path/PathFigure.java
@@ -16,7 +16,7 @@
 import org.eclipse.draw2d.geometry.PointList;
 import org.eclipse.draw2d.geometry.PrecisionPoint;
 import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.graphics.Path;
 import org.eclipse.swt.widgets.Display;
 
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/swt/ShapeStylesExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/swt/ShapeStylesExample.java
index 71e67fb..705c2ea 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/swt/ShapeStylesExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/swt/ShapeStylesExample.java
@@ -20,7 +20,7 @@
 import org.eclipse.draw2d.Triangle;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/BidiBlockExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/BidiBlockExample.java
index 697405d..77eaf3a 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/BidiBlockExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/BidiBlockExample.java
@@ -9,19 +9,18 @@
 
 package org.eclipse.draw2d.examples.text;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
 import org.eclipse.draw2d.FigureCanvas;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.examples.AbstractExample;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.text.BlockFlow;
 import org.eclipse.draw2d.text.FlowPage;
 import org.eclipse.draw2d.text.TextFlow;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
 
 public class BidiBlockExample extends AbstractExample {
 
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/MultiLineLabelExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/MultiLineLabelExample.java
index aebdd5a..6b0f927 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/MultiLineLabelExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/MultiLineLabelExample.java
@@ -10,13 +10,13 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples.text;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.widgets.MultiLineLabel;
 
 /**
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TestBorder.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TestBorder.java
index ce85516..9315bd5 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TestBorder.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TestBorder.java
@@ -11,7 +11,6 @@
 
 package org.eclipse.draw2d.examples.text;
 
-import org.eclipse.swt.SWT;
 
 import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.FigureUtilities;
@@ -21,6 +20,7 @@
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.PointList;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.text.AbstractFlowBorder;
 import org.eclipse.draw2d.text.FlowFigure;
 
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowFactory.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowFactory.java
index 32fd1fe..71c14fd 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowFactory.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowFactory.java
@@ -27,7 +27,7 @@
 		TextFlow tf = new TextFlow(Integer.toString(i) + " pt. Font ");
 //		tf.setBackgroundColor(ColorConstants.lightGray);
 //		tf.setForegroundColor(ColorConstants.yellow);
-		tf.setFont(new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getDefault(), "Helvetica", i, org.eclipse.swt.SWT.NORMAL));
+		tf.setFont(new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getDefault(), "Helvetica", i, org.eclipse.draw2d.rap.swt.SWT.NORMAL));
 		parent.add(tf);
 	}
 }
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowLargeExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowLargeExample.java
index cd8998c..5d999a7 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowLargeExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextFlowLargeExample.java
@@ -11,6 +11,7 @@
 package org.eclipse.draw2d.examples.text;
 
 import org.eclipse.draw2d.*;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.text.*;
 
 import org.eclipse.swt.graphics.Font;
@@ -20,7 +21,6 @@
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.SWT;
 
 /**
  * The example is used to build large draw2d.text flow documents to benchmark the layout
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextSurroundingFigureExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextSurroundingFigureExample.java
index e5403a5..845b7d0 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextSurroundingFigureExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/text/TextSurroundingFigureExample.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples.text;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
@@ -24,6 +23,7 @@
 import org.eclipse.draw2d.ToolbarLayout;
 import org.eclipse.draw2d.Triangle;
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.draw2d.text.FlowAdapter;
 import org.eclipse.draw2d.text.FlowPage;
 import org.eclipse.draw2d.text.TextFlow;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/thumbnail/ThumbnailExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/thumbnail/ThumbnailExample.java
index a9942b4..7ae59a7 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/thumbnail/ThumbnailExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/thumbnail/ThumbnailExample.java
@@ -24,7 +24,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.draw2d.parts.Thumbnail;
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/tree/TreeExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/tree/TreeExample.java
index c0a7c89..51b4fbf 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/tree/TreeExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/tree/TreeExample.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.draw2d.examples.tree;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.FontData;
@@ -28,6 +27,7 @@
 import org.eclipse.draw2d.MouseListener;
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.examples.AbstractExample;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * @author hudsonr
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/uml/UMLClassFigure.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/uml/UMLClassFigure.java
index ceb1354..d158a20 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/uml/UMLClassFigure.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/uml/UMLClassFigure.java
@@ -11,14 +11,12 @@
 
 package org.eclipse.draw2d.examples.uml;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
 
 import org.eclipse.draw2d.*;
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 public class UMLClassFigure extends Figure {
 
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/zoom/ZoomExample.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/zoom/ZoomExample.java
index f40fb38..88d2a35 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/zoom/ZoomExample.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/draw2d/examples/zoom/ZoomExample.java
@@ -13,7 +13,6 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Display;
@@ -31,6 +30,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.draw2d.parts.Thumbnail;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 /**
  * This class demonstrates Draw2d's zoom capabilities.
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/parts/ActivityDirectEditManager.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/parts/ActivityDirectEditManager.java
index 9ec7f65..1c68ea5 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/parts/ActivityDirectEditManager.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/parts/ActivityDirectEditManager.java
@@ -13,10 +13,10 @@
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.Label;
 import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.gef.GraphicalEditPart;
 import org.eclipse.gef.tools.CellEditorLocator;
 import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.VerifyEvent;
 import org.eclipse.swt.events.VerifyListener;
 import org.eclipse.swt.graphics.Font;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditor.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditor.java
index 5763bec..53f3fd8 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditor.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditor.java
@@ -16,6 +16,7 @@
 import java.util.EventObject;
 
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.gef.ContextMenuProvider;
 import org.eclipse.gef.DefaultEditDomain;
 import org.eclipse.gef.KeyHandler;
@@ -34,7 +35,6 @@
 import org.eclipse.gef.ui.parts.GraphicalEditorWithPalette;
 import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
 import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.SWT;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPart;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditorView.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditorView.java
index c024ce1..92eb2f0 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditorView.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/flow/ui/FlowEditorView.java
@@ -16,10 +16,10 @@
 package org.eclipse.gef.examples.flow.ui;
 
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.gef.examples.flow.model.ActivityDiagram;
 import org.eclipse.rap.gef.demo.EditorView;
 import org.eclipse.rap.gef.demo.DirectEditorInput;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditor.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditor.java
index 7f08c01..9061cbf 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditor.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditor.java
@@ -28,6 +28,7 @@
 import org.eclipse.draw2d.ViewportAwareConnectionLayerClippingStrategy;
 import org.eclipse.draw2d.parts.ScrollableThumbnail;
 import org.eclipse.draw2d.parts.Thumbnail;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.gef.ContextMenuProvider;
 import org.eclipse.gef.DefaultEditDomain;
 import org.eclipse.gef.EditPartViewer;
@@ -81,7 +82,6 @@
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.util.TransferDropTargetListener;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.TextTransfer;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditorView.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditorView.java
index b46e520..4e34def 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditorView.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/LogicEditorView.java
@@ -15,9 +15,9 @@
  *****************************************************************************/
 package org.eclipse.gef.examples.logicdesigner;
 
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.rap.gef.demo.DirectEditorInput;
 import org.eclipse.rap.gef.demo.EditorView;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IWorkbench;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/actions/PrintModeDialog.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/actions/PrintModeDialog.java
index d5dc38b..40c1beb 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/actions/PrintModeDialog.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/actions/PrintModeDialog.java
@@ -10,18 +10,15 @@
  *******************************************************************************/
 package org.eclipse.gef.examples.logicdesigner.actions;
 
-import org.eclipse.swt.SWT;
+import org.eclipse.draw2d.PrintFigureOperation;
+import org.eclipse.draw2d.rap.swt.SWT;
+import org.eclipse.gef.examples.logicdesigner.LogicMessages;
+import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
-import org.eclipse.jface.dialogs.Dialog;
-
-import org.eclipse.draw2d.PrintFigureOperation;
-
-import org.eclipse.gef.examples.logicdesigner.LogicMessages;
-
 /**
  * @author Eric Bordeau
  */
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicDiagramEditPart.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicDiagramEditPart.java
index d74fbf3..fb777ec 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicDiagramEditPart.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicDiagramEditPart.java
@@ -14,7 +14,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.accessibility.AccessibleEvent;
 
 import org.eclipse.draw2d.Animation;
@@ -31,6 +30,7 @@
 import org.eclipse.draw2d.MarginBorder;
 import org.eclipse.draw2d.ShortestPathConnectionRouter;
 import org.eclipse.draw2d.XYLayout;
+import org.eclipse.draw2d.rap.swt.SWT;
 
 import org.eclipse.gef.AccessibleEditPart;
 import org.eclipse.gef.CompoundSnapToHelper;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicLabelEditManager.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicLabelEditManager.java
index 5f37b33..68021e2 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicLabelEditManager.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/gef/examples/logicdesigner/edit/LogicLabelEditManager.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.gef.examples.logicdesigner.edit;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.widgets.Composite;
@@ -24,6 +23,7 @@
 import org.eclipse.ui.actions.ActionFactory;
 import org.eclipse.ui.part.CellEditorActionHandler;
 
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.gef.GraphicalEditPart;
 import org.eclipse.gef.editparts.ZoomListener;
 import org.eclipse.gef.editparts.ZoomManager;
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/Application.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/Application.java
index ddcf7f6..1e4d102 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/Application.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/Application.java
@@ -29,6 +29,7 @@
 import org.eclipse.draw2d.examples.scrollpane.ScrollPaneExample;
 import org.eclipse.draw2d.examples.tree.SimpleTreeExample;
 import org.eclipse.draw2d.examples.tree.TreeExample;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.gef.examples.flow.ui.FlowEditorView;
 import org.eclipse.gef.examples.logicdesigner.LogicEditorView;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -38,7 +39,7 @@
 import org.eclipse.jface.viewers.ListViewer;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.rwt.lifecycle.IEntryPoint;
-import org.eclipse.swt.SWT;
+import org.eclipse.rwt.lifecycle.UICallBack;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -70,6 +71,7 @@
     
     public void createPartControl (final Composite parent) 
     {
+      UICallBack.activate(getSite().getId()+getViewSite().getSecondaryId());
       SashForm form = new SashForm(parent, SWT.HORIZONTAL);
       final ListViewer exampleList = new ListViewer(form, SWT.V_SCROLL | SWT.BORDER);
       exampleList.setContentProvider(new ArrayContentProvider());
@@ -124,6 +126,10 @@
     {
     }
     
+    public void dispose() {
+      UICallBack.deactivate(getSite().getId()+getViewSite().getSecondaryId());
+      super.dispose();
+    }
   }
   
   public static class FlowExampleView extends FlowEditorView 
diff --git a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/EditorView.java b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/EditorView.java
index 93c0e55..24d5426 100644
--- a/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/EditorView.java
+++ b/bundles/org.eclipse.rap.gef.demo/src/org/eclipse/rap/gef/demo/EditorView.java
@@ -22,6 +22,7 @@
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.rwt.lifecycle.UICallBack;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IActionBars;
@@ -77,6 +78,7 @@
   }
   
   public void createPartControl(Composite parent) {
+    UICallBack.activate(getSite().getId()+getViewSite().getSecondaryId());
     if (editor != null) 
       editor.createPartControl(parent); 
   }
@@ -90,6 +92,7 @@
   
   public void dispose() {
     if (editor != null) deactivateOutlineHooks();
+    UICallBack.deactivate(getSite().getId()+getViewSite().getSecondaryId());
     super.dispose();
   }
   
diff --git a/bundles/org.eclipse.zest.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.zest.core/META-INF/MANIFEST.MF
index cb1e726..9b57b77 100644
--- a/bundles/org.eclipse.zest.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.zest.core/META-INF/MANIFEST.MF
@@ -7,7 +7,8 @@
 Bundle-Version: 1.2.0.qualifier
 Require-Bundle: org.eclipse.zest.layouts,
  org.eclipse.rap.ui;bundle-version="1.4.0",
- org.eclipse.draw2d;visibility:=reexport
+ org.eclipse.draw2d;visibility:=reexport,
+ org.eclipse.draw2d.rap;bundle-version="1.0.0"
 Eclipse-LazyStart: false
 Export-Package: org.eclipse.zest.core.viewers,
  org.eclipse.zest.core.viewers.internal;x-internal:=true,
diff --git a/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/viewers/internal/GraphItemStyler.java b/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/viewers/internal/GraphItemStyler.java
index 3161481..cb2cb3d 100644
--- a/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/viewers/internal/GraphItemStyler.java
+++ b/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/viewers/internal/GraphItemStyler.java
@@ -10,11 +10,11 @@
 package org.eclipse.zest.core.viewers.internal;
 
 import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.rap.swt.SWT;
 import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.IColorProvider;
 import org.eclipse.jface.viewers.IFontProvider;
 import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTError;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.zest.core.viewers.IConnectionStyleProvider;
diff --git a/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/Graph.java b/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/Graph.java
index 42651d7..66a686b 100644
--- a/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/Graph.java
+++ b/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/Graph.java
@@ -42,6 +42,7 @@
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ControlPaintHandler;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Item;
@@ -181,7 +182,8 @@
 		this.figure2ItemMap = new HashMap();
 
 		revealListeners = new ArrayList(1);
-		this.addPaintListener(new PaintListener() {
+		ControlPaintHandler helper = new ControlPaintHandler(this);
+		helper.addPaintListener(new PaintListener() {
 			public void paintControl(PaintEvent e) {
 				if (!revealListeners.isEmpty()) {
 					// Go through the reveal list and let everyone know that the
diff --git a/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/internal/XYScaledGraphics.java b/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/internal/XYScaledGraphics.java
index 1871eef..f1229aa 100644
--- a/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/internal/XYScaledGraphics.java
+++ b/bundles/org.eclipse.zest.core/src/org/eclipse/zest/core/widgets/internal/XYScaledGraphics.java
@@ -1,12 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University of Victoria - Adapted for XY Scaled Graphics
+ * Copyright (c) 2000, 2007 IBM Corporation and others. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: University of Victoria - Adapted for XY Scaled Graphics
  *******************************************************************************/
 package org.eclipse.zest.core.widgets.internal;
 
@@ -819,13 +817,17 @@
 		if (localCache.font != localFont) {
 			//Font is different, re-calculate its height
 			FontMetrics metric = FigureUtilities.getFontMetrics(localFont);
-			localCache.height = metric.getHeight() - metric.getDescent();
+			// UNSUPPORTED - getDescent() not implemented in RAP
+//			localCache.height = metric.getHeight() - metric.getDescent();
+			localCache.height = metric.getHeight();
 			localCache.font = localFont;
 		}
 		if (targetCache.font != graphics.getFont()) {
 			FontMetrics metric = graphics.getFontMetrics();
 			targetCache.font = graphics.getFont();
-			targetCache.height = metric.getHeight() - metric.getDescent();
+			// UNSUPPORTED - getDescent() not implemented in RAP
+//			targetCache.height = metric.getHeight() - metric.getDescent();
+			targetCache.height = metric.getHeight();
 		}
 		return new Point(((int) (Math.floor((x * xZoom) + fractionalX))), (int) (Math.floor((y + localCache.height - 1) * yZoom - targetCache.height + 1 + fractionalY)));
 	}