From 2ad2498bfbfc9b2e5a37ab1493e557db1d04ed91 Mon Sep 17 00:00:00 2001 From: Hannes Wellmann Date: Fri, 11 Apr 2025 19:19:54 +0200 Subject: [PATCH] Avoid implementations of ImageDescriptor.getImageData() ImageDescriptor.getImageData() is deprecated and sub-classes are advised to stop re-implementing it and instead implement getImageData(int). The still existing implementations just replicate the default implementation and therefore can just be removed. Additionally implementation of ImageDescriptor.getMissingImageDescriptor() is simplified and ImageDescriptor implementations are cleaned-up. --- .../org.eclipse.jface/META-INF/MANIFEST.MF | 2 +- .../resource/CompositeImageDescriptor.java | 9 ---- .../jface/resource/ImageDescriptor.java | 7 ++- .../resource/MissingImageDescriptor.java | 52 ------------------- .../jface/resource/URLImageDescriptor.java | 6 --- .../ui/internal/forms/widgets/FormImages.java | 6 +-- .../misc/ExternalProgramImageDescriptor.java | 15 +----- 7 files changed, 11 insertions(+), 86 deletions(-) delete mode 100644 bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java diff --git a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF index c66e4951512..fccd11d6b32 100644 --- a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jface;singleton:=true -Bundle-Version: 3.36.100.qualifier +Bundle-Version: 3.37.0.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Export-Package: org.eclipse.jface, diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java index 45f0676b3ee..a0738ef23e1 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java @@ -347,15 +347,6 @@ final protected void drawImage(ImageDataProvider srcProvider, int ox, int oy) { } } - /** - * @deprecated Use {@link #getImageData(int)} instead. - */ - @Deprecated - @Override - public ImageData getImageData() { - return getImageData(100); - } - @Override public ImageData getImageData(int zoom) { if (!supportsZoomLevel(zoom)) { diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java index 23071678e1f..e9714d53a8f 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2024 IBM Corporation and others. + * Copyright (c) 2000, 2025 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -434,12 +434,15 @@ public ImageData getImageData() { return getImageData(100); } + private static final ImageDescriptor MISSING_IMAGE = createFromImageDataProvider( + z -> z == 100 ? DEFAULT_IMAGE_DATA : null); + /** * Returns the shared image descriptor for a missing image. * * @return the missing image descriptor */ public static ImageDescriptor getMissingImageDescriptor() { - return MissingImageDescriptor.getInstance(); + return MISSING_IMAGE; } } diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java deleted file mode 100644 index ad97e48000d..00000000000 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jface.resource; - -import org.eclipse.swt.graphics.ImageData; - -/** - * The image descriptor for a missing image. - *

- * Use MissingImageDescriptor.getInstance to - * access the singleton instance maintained in an - * internal state variable. - *

- */ -class MissingImageDescriptor extends ImageDescriptor { - private static MissingImageDescriptor instance; - - /** - * Constructs a new missing image descriptor. - */ - private MissingImageDescriptor() { - super(); - } - - @Override - public ImageData getImageData() { - return DEFAULT_IMAGE_DATA; - } - - /** - * Returns the shared missing image descriptor instance. - * - * @return the image descriptor for a missing image - */ - static MissingImageDescriptor getInstance() { - if (instance == null) { - instance = new MissingImageDescriptor(); - } - return instance; - } -} diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java index e9cb13bd676..ec2bd5c33b5 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java @@ -130,12 +130,6 @@ public boolean equals(Object o) { return ((URLImageDescriptor) o).url.equals(this.url); } - @Deprecated - @Override - public ImageData getImageData() { - return getImageData(getURL(url), 100, 100); - } - @Override public ImageData getImageData(int zoom) { return getImageData(url, zoom); diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java index 7f8a02d5eb6..b67e1f0d7bf 100644 --- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java +++ b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java @@ -108,7 +108,7 @@ public int hashCode() { } @Override - public ImageData getImageData() { + public ImageData getImageData(int zoom) { return null; } @@ -177,7 +177,7 @@ public int hashCode() { } @Override - public ImageData getImageData() { + public ImageData getImageData(int zoom) { return null; } @@ -273,7 +273,7 @@ public int hashCode() { } @Override - public ImageData getImageData() { + public ImageData getImageData(int zoom) { return null; } diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/misc/ExternalProgramImageDescriptor.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/misc/ExternalProgramImageDescriptor.java index bef0b2e3595..ad1e0a2edd8 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/misc/ExternalProgramImageDescriptor.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/misc/ExternalProgramImageDescriptor.java @@ -14,7 +14,6 @@ package org.eclipse.ui.internal.misc; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.program.Program; import org.eclipse.ui.ISharedImages; @@ -26,7 +25,7 @@ */ public class ExternalProgramImageDescriptor extends ImageDescriptor { - public Program program; + private Program program; /** * Creates a new ImageDescriptor. The image is loaded from a file with the given @@ -41,11 +40,9 @@ public ExternalProgramImageDescriptor(Program program) { */ @Override public boolean equals(Object o) { - if (!(o instanceof ExternalProgramImageDescriptor)) { + if (!(o instanceof ExternalProgramImageDescriptor other)) { return false; } - ExternalProgramImageDescriptor other = (ExternalProgramImageDescriptor) o; - // See if there is a name - compare it if so and compare the programs if not String otherName = other.program.getName(); if (otherName == null) { @@ -54,14 +51,6 @@ public boolean equals(Object o) { return otherName.equals(program.getName()); } - /** - * Returns an SWT Image that is described by the information in this descriptor. - * Each call returns a new Image. - */ - public Image getImage() { - return createImage(); - } - @Override public ImageData getImageData(int zoom) { if (program != null) {