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)));
 	}
