Bug 579230 - replace deprecated SWT/UI ussage

Change-Id: Ic2d2eb32fcf0e1581004d0a34a7527efe8aceaa5
Signed-off-by: Hannes Wellmann <wellmann.hannes1@gmx.net>
Reviewed-on: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/191976
Tested-by: PDE Bot <pde-bot@eclipse.org>
Reviewed-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/ApiImageDescriptor.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/ApiImageDescriptor.java
index e6a9d1c..5ad61bb 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/ApiImageDescriptor.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/ApiImageDescriptor.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.jface.resource.CompositeImageDescriptor;
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageDataProvider;
 import org.eclipse.swt.graphics.Point;
 
 /**
@@ -51,8 +51,8 @@
 	@Override
 	protected Point getSize() {
 		if (fSize == null) {
-			ImageData data = getBaseImage().getImageData();
-			setSize(new Point(data.width, data.height));
+			CachedImageDataProvider data = createCachedImageDataProvider(getBaseImage());
+			setSize(new Point(data.getWidth(), data.getHeight()));
 		}
 		return fSize;
 	}
@@ -83,39 +83,27 @@
 	 */
 	@Override
 	protected void drawCompositeImage(int width, int height) {
-		ImageData bg = getBaseImage().getImageData();
-		if (bg == null) {
-			bg = DEFAULT_IMAGE_DATA;
-		}
+		ImageDataProvider bg = createCachedImageDataProvider(getBaseImage());
 		drawImage(bg, 0, 0);
 		drawOverlays();
 	}
 
-	private ImageData getImageData(String imageDescriptorKey) {
-		return ApiUIPlugin.getImageDescriptor(imageDescriptorKey).getImageData();
-	}
-
 	/**
 	 * Add any overlays to the image as specified in the flags.
 	 */
 	protected void drawOverlays() {
 		int flags = getFlags();
-		int x = 0;
-		int y = 0;
-		ImageData data = null;
+		String imageDescriptorKey;
 		if ((flags & ERROR) != 0) {
-			x = 0;
-			y = getSize().y;
-			data = getImageData(IApiToolsConstants.IMG_OVR_ERROR);
-			y -= data.height;
-			drawImage(data, x, y);
+			imageDescriptorKey = IApiToolsConstants.IMG_OVR_ERROR;
 		} else if ((flags & SUCCESS) != 0) {
-			x = 0;
-			y = getSize().y;
-			data = getImageData(IApiToolsConstants.IMG_OVR_SUCCESS);
-			y -= data.height;
-			drawImage(data, x, y);
+			imageDescriptorKey = IApiToolsConstants.IMG_OVR_SUCCESS;
+		} else {
+			return;
 		}
+		ImageDescriptor imageDescriptor = ApiUIPlugin.getImageDescriptor(imageDescriptorKey);
+		CachedImageDataProvider data = createCachedImageDataProvider(imageDescriptor);
+		drawImage(data, 0, getSize().y - data.getHeight());
 	}
 
 	protected ImageDescriptor getBaseImage() {
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/CompositeApiImageDescriptor.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/CompositeApiImageDescriptor.java
index a0ff268..09d304a 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/CompositeApiImageDescriptor.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/CompositeApiImageDescriptor.java
@@ -17,6 +17,7 @@
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageDataProvider;
 import org.eclipse.swt.graphics.Point;
 
 /**
@@ -46,10 +47,7 @@
 
 	@Override
 	protected void drawCompositeImage(int width, int height) {
-		ImageData bg = fOriginalImage.getImageData();
-		if (bg == null) {
-			bg = DEFAULT_IMAGE_DATA;
-		}
+		ImageDataProvider bg = createCachedImageDataProvider(fOriginalImage);
 		drawImage(bg, 0, 0);
 		drawOverlays();
 	}
@@ -81,30 +79,14 @@
 	 * @param pos
 	 */
 	private void addTopRightImage(ImageDescriptor desc, Point pos) {
-		ImageData data = getImageData(desc);
-		int x = pos.x - data.width;
+		CachedImageDataProvider data = createCachedImageDataProvider(desc);
+		int x = pos.x - data.getWidth();
 		if (x >= 0) {
 			drawImage(data, x, pos.y);
 			pos.x = x;
 		}
 	}
 
-	/**
-	 * Returns the {@link ImageData} from the given {@link ImageDescriptor} or
-	 * <code>null</code>
-	 *
-	 * @param descriptor
-	 * @return the {@link ImageData} from the given {@link ImageDescriptor} or
-	 *         <code>null</code>
-	 */
-	private ImageData getImageData(ImageDescriptor descriptor) {
-		ImageData data = descriptor.getImageData();
-		if (data == null) {
-			data = DEFAULT_IMAGE_DATA;
-		}
-		return data;
-	}
-
 	@Override
 	protected Point getSize() {
 		if (fSize == null) {
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/use/ApiUseScanJob.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/use/ApiUseScanJob.java
index ebe1460..5a1f8e5 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/use/ApiUseScanJob.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/use/ApiUseScanJob.java
@@ -387,7 +387,7 @@
 						public IStatus runInUIThread(IProgressMonitor monitor) {
 							IEditorDescriptor edesc = null;
 							try {
-								edesc = IDE.getEditorDescriptor(index.getName());
+								edesc = IDE.getEditorDescriptor(index.getName(), true, true);
 								IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
 								IDE.openEditor(window.getActivePage(), index.toURI(), edesc.getId(), true);
 							} catch (PartInitException e) {
diff --git a/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/OverlayIcon.java b/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/OverlayIcon.java
index c9a1fa41..b54a356 100644
--- a/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/OverlayIcon.java
+++ b/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/OverlayIcon.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.jface.resource.CompositeImageDescriptor;
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageDataProvider;
 import org.eclipse.swt.graphics.Point;
 
 public class OverlayIcon extends CompositeImageDescriptor {
@@ -26,7 +26,7 @@
 	private Point fSize = null;
 
 	private ImageDescriptor fBase;
-	private ImageDescriptor fOverlays[][];
+	private ImageDescriptor[][] fOverlays;
 
 	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays) {
 		fBase = base;
@@ -51,9 +51,9 @@
 		int x = 0;
 		for (int i = 0; i < 3; i++) {
 			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, getSize().y - id.height);
-				x += id.width;
+				CachedImageDataProvider id = createCachedImageDataProvider(overlays[i]);
+				drawImage(id, x, getSize().y - id.getHeight());
+				x += id.getWidth();
 			}
 		}
 	}
@@ -65,16 +65,16 @@
 		int x = getSize().x;
 		for (int i = 2; i >= 0; i--) {
 			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, getSize().y - id.height);
+				CachedImageDataProvider id = createCachedImageDataProvider(overlays[i]);
+				x -= id.getWidth();
+				drawImage(id, x, getSize().y - id.getHeight());
 			}
 		}
 	}
 
 	@Override
 	protected void drawCompositeImage(int width, int height) {
-		ImageData bg = fBase.getImageData();
+		ImageDataProvider bg = createCachedImageDataProvider(fBase);
 		drawImage(bg, 0, 0);
 
 		if (fOverlays != null) {
@@ -99,9 +99,9 @@
 		int x = 0;
 		for (int i = 0; i < 3; i++) {
 			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
+				CachedImageDataProvider id = createCachedImageDataProvider(overlays[i]);
 				drawImage(id, x, 0);
-				x += id.width;
+				x += id.getWidth();
 			}
 		}
 	}
@@ -113,8 +113,8 @@
 		int x = getSize().x;
 		for (int i = 2; i >= 0; i--) {
 			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
+				CachedImageDataProvider id = createCachedImageDataProvider(overlays[i]);
+				x -= id.getWidth();
 				drawImage(id, x, 0);
 			}
 		}
diff --git a/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/registry/RegistryFilteredTree.java b/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/registry/RegistryFilteredTree.java
index 9fea3a5..001e196 100644
--- a/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/registry/RegistryFilteredTree.java
+++ b/ui/org.eclipse.pde.runtime/src/org/eclipse/pde/internal/runtime/registry/RegistryFilteredTree.java
@@ -23,7 +23,7 @@
 	private RegistryBrowser browser;
 
 	public RegistryFilteredTree(RegistryBrowser browser, Composite parent, int treeStyle, PatternFilter filter) {
-		super(parent, treeStyle, filter, true);
+		super(parent, treeStyle, filter, true, true);
 		this.browser = browser;
 	}