workaround gef diagram paint issue since partial redrawing
diff --git a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java
index b53d64b..68fb19e 100644
--- a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java
+++ b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/BufferedGraphicsSource.java
@@ -121,7 +121,7 @@
graphics = new SWTGraphics(controlGC);
}
- //graphics.setClip(inUse);
+ graphics.setClip(inUse);
return graphics;
}
diff --git a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java
index c71b5e4..c5f76f0 100644
--- a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java
+++ b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/NativeGraphicsSource.java
@@ -44,7 +44,14 @@
* @see GraphicsSource#getGraphics(Rectangle)
*/
public Graphics getGraphics(Rectangle r) {
- canvas.redraw(r.x, r.y, r.width, r.height, false);
+ //RAP [am]
+ // since 423952 fix, partial redraw is implemented in RAP
+ // it breaks GEF port as now for some reasons some part
+ // of canvas disappear during redraw event
+
+ //canvas.redraw(r.x, r.y, r.width, r.height, false);
+ canvas.redraw();
+ //ENDRAP
canvas.update();
return null;
}
diff --git a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/SWTGraphics.java b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/SWTGraphics.java
index 5bdc454..3abd845 100644
--- a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/SWTGraphics.java
+++ b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/SWTGraphics.java
@@ -887,10 +887,10 @@
// - FILL_RULE_WHOLE_NUMBER);
// }
- // if ((changes & AA_MASK) != 0) {
- // gc.setAntialias(((hints & AA_MASK) >> AA_SHIFT)
- // - AA_WHOLE_NUMBER);
- // }
+ if ((changes & AA_MASK) != 0) {
+ gc.setAntialias(((hints & AA_MASK) >> AA_SHIFT)
+ - AA_WHOLE_NUMBER);
+ }
if ((changes & AA_MASK) != 0) {
gc.setAntialias(((hints & AA_MASK) >> AA_SHIFT)
@@ -1106,7 +1106,7 @@
// it works.
appliedState.graphicHints ^= FILL_RULE_MASK;
}
-// gc.setClipping(path);
+ gc.setClipping(path);
appliedState.relativeClip = currentState.relativeClip = null;
}
@@ -1135,14 +1135,16 @@
if (!clipping.isEmpty()) {
// UNSUPPORTED - api is not implemented in RAP
// Path flatPath = new Path(path.getDevice(), path, 0.01f);
- // PathData pathData = flatPath.getPathData();
- // flatPath.dispose();
+ Path flatPath = new Path(path.getDevice(), path.getPathData());
+
+ PathData pathData = flatPath.getPathData();
+ flatPath.dispose();
Region region = new Region(path.getDevice());
- // UNSUPPORTED - api is not implemented in RAP
- // loadPath(region, pathData.points, pathData.types);
+
+ loadPath(region, pathData.points, pathData.types);
region.intersect(new org.eclipse.swt.graphics.Rectangle(clipping.x,
clipping.y, clipping.width, clipping.height));
-// gc.setClipping(region.getBounds());
+ gc.setClipping(region.getBounds());
appliedState.relativeClip = currentState.relativeClip = null;
region.dispose();
}
diff --git a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java
index ab6ae8b..72b2cfe 100644
--- a/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java
+++ b/bundles/org.eclipse.rap.draw2d/src/org/eclipse/draw2d/ToolTipHelper.java
@@ -116,7 +116,8 @@
timer = new Timer(true);
timer.schedule(new TimerTask() {
public void run() {
- Display.getDefault().asyncExec(new Runnable() {
+ //[ariddle] - changed for RAP compatibility
+ control.getDisplay().asyncExec(new Runnable() {
public void run() {
hide();
}
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 268dbb7..7b7a243 100644
--- a/bundles/org.eclipse.rap.gef.demo/RAP GEF Demo.launch
+++ b/bundles/org.eclipse.rap.gef.demo/RAP GEF Demo.launch
@@ -14,7 +14,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/java-8-oracle"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/java-8-openjdk-amd64"/>
<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"/>
diff --git a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AbstractFixtureTestCase.java b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AbstractFixtureTestCase.java
index db22409..25f6fc5 100644
--- a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AbstractFixtureTestCase.java
+++ b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AbstractFixtureTestCase.java
@@ -1,10 +1,10 @@
package org.eclipse.draw2d.test;
-import junit.framework.TestCase;
-
import org.eclipse.rap.rwt.testfixture.internal.Fixture;
import org.eclipse.swt.widgets.Display;
+import junit.framework.TestCase;
+
public abstract class AbstractFixtureTestCase extends TestCase {
protected Display display;
@@ -21,7 +21,7 @@
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
- Fixture.setUp();
+ Fixture.setUp(true);
display = new Display();
}
diff --git a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AdvancedGraphicsTests.java b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AdvancedGraphicsTests.java
index 91333c1..f5f4974 100644
--- a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AdvancedGraphicsTests.java
+++ b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/AdvancedGraphicsTests.java
@@ -297,25 +297,29 @@
float[] dash = new float[] { 2.5f, 3, 8 };
Runnable[] tests = new Runnable[] {
- new LineSettings(new LineAttributes(0.0f, SWT.CAP_FLAT,
- SWT.JOIN_MITER,
- org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null, 0, 10)),
- new LineSettings(new LineAttributes(1.0f, SWT.CAP_FLAT,
- SWT.JOIN_MITER,
- org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null, 0, 10)),
- new LineSettings(new LineAttributes(2.5f, SWT.CAP_FLAT,
- SWT.JOIN_MITER,
- org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null, 0, 10)),
+ new LineSettings(
+ new LineAttributes(0.0f, SWT.CAP_FLAT, SWT.JOIN_MITER,
+ org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null,
+ 0, 10)),
+ new LineSettings(
+ new LineAttributes(1.0f, SWT.CAP_FLAT, SWT.JOIN_MITER,
+ org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null,
+ 0, 10)),
+ new LineSettings(
+ new LineAttributes(2.5f, SWT.CAP_FLAT, SWT.JOIN_MITER,
+ org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null,
+ 0, 10)),
new LineSettings(new LineAttributes(5.0f, SWT.CAP_FLAT,
SWT.JOIN_MITER,
org.eclipse.draw2d.rap.swt.SWT.LINE_DASH, null, 0, 10)),
- new LineSettings(new LineAttributes(5.0f, SWT.CAP_FLAT,
- SWT.JOIN_ROUND,
- org.eclipse.draw2d.rap.swt.SWT.LINE_DASHDOTDOT, null,
- 0, 10)),
- new LineSettings(new LineAttributes(4.5f, SWT.CAP_FLAT,
- SWT.JOIN_MITER,
- org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null, 0, 10)),
+ new LineSettings(
+ new LineAttributes(5.0f, SWT.CAP_FLAT, SWT.JOIN_ROUND,
+ org.eclipse.draw2d.rap.swt.SWT.LINE_DASHDOTDOT,
+ null, 0, 10)),
+ new LineSettings(
+ new LineAttributes(4.5f, SWT.CAP_FLAT, SWT.JOIN_MITER,
+ org.eclipse.draw2d.rap.swt.SWT.LINE_SOLID, null,
+ 0, 10)),
new LineSettings(
new LineAttributes(9.0f, SWT.CAP_FLAT, SWT.JOIN_ROUND,
org.eclipse.draw2d.rap.swt.SWT.LINE_CUSTOM,
diff --git a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/ImageUtilitiesTest.java b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/ImageUtilitiesTest.java
index 12ea427..dc508e9 100644
--- a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/ImageUtilitiesTest.java
+++ b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/ImageUtilitiesTest.java
@@ -38,6 +38,7 @@
result2 = ImageUtilities.createRotatedImage(img2);
result3 = ImageUtilities.createRotatedImage(img3);
} catch (Throwable error) {
+ error.printStackTrace();
fail(error.getMessage() + "\n" + error.getStackTrace()); //$NON-NLS-1$
} finally {
img1.dispose();
@@ -54,14 +55,14 @@
public void testRotatingImagesWithDifferentDepths() {
Image result1 = null, result2 = null, result3 = null, result4 = null;
- Image img1 = ImageDescriptor.createFromFile(getClass(),
- "icons/bits1.bmp").createImage(); //$NON-NLS-1$
- Image img2 = ImageDescriptor.createFromFile(getClass(),
- "icons/bits4.bmp").createImage(); //$NON-NLS-1$;
- Image img3 = ImageDescriptor.createFromFile(getClass(),
- "icons/bits8.gif").createImage(); //$NON-NLS-1$;
- Image img4 = ImageDescriptor.createFromFile(getClass(),
- "icons/bits24.jpg").createImage(); //$NON-NLS-1$;
+ Image img1 = ImageDescriptor
+ .createFromFile(getClass(), "icons/bits1.bmp").createImage(); //$NON-NLS-1$
+ Image img2 = ImageDescriptor
+ .createFromFile(getClass(), "icons/bits4.bmp").createImage(); //$NON-NLS-1$ ;
+ Image img3 = ImageDescriptor
+ .createFromFile(getClass(), "icons/bits8.gif").createImage(); //$NON-NLS-1$ ;
+ Image img4 = ImageDescriptor
+ .createFromFile(getClass(), "icons/bits24.jpg").createImage(); //$NON-NLS-1$ ;
try {
result1 = ImageUtilities.createRotatedImage(img1);
diff --git a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/TextualTests.java b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/TextualTests.java
index 83d2c5a..915aa1f 100644
--- a/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/TextualTests.java
+++ b/tests/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/TextualTests.java
@@ -48,7 +48,7 @@
// TODO enhance verification
List boldFragments = bold.getFragments();
- assertTrue(boldFragments.size() == 3);
+ assertEquals(3, boldFragments.size());
List italicFragments = italics.getFragments();
assertTrue(italicFragments.size() == 2);
}