This is an automated email from the ASF dual-hosted git repository.

ebakke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit 3fa8212e327c9ad425107d1827c7937d7c103001
Author: Eirik Bakke <[email protected]>
AuthorDate: Sun Jan 5 20:04:45 2025 +0100

    Replace most uses of Toolkit.getDefaultToolkit().getImage(URL) with 
ImageUtilities.loadImage(URI), to make SVG icons work in these cases.
---
 .../apisupport.project/nbproject/project.xml       |  2 +-
 .../apisupport/project/layers/BadgingSupport.java  |  4 +-
 ide/editor.lib/nbproject/project.xml               |  2 +-
 .../src/org/netbeans/editor/AnnotationType.java    |  9 ++++-
 ide/editor/nbproject/project.xml                   |  2 +-
 .../editor/options/AnnotationTypesNode.java        | 18 ++++-----
 ide/options.editor/nbproject/project.xml           |  2 +-
 .../modules/options/colors/ColorModel.java         | 18 ++++-----
 java/form/nbproject/project.xml                    |  2 +-
 .../form/palette/PaletteItemDataObject.java        | 12 +++---
 .../org/netbeans/actions/simple/Interpreter.java   | 16 ++++----
 java/performance/nbproject/project.xml             |  2 +-
 .../src/org/openide/filesystems/data/JavaSrc.java  | 21 -----------
 .../projects/sfs-attr-test/sfs_attr_test/Util.java |  1 +
 platform/openide.awt/nbproject/project.xml         |  2 +-
 .../src/org/openide/awt/AlwaysEnabledAction.java   |  7 +++-
 .../nbproject/project.xml                          |  2 +-
 .../org/openide/filesystems/FileSystemCompat.java  |  9 ++++-
 .../openide.filesystems.nb/nbproject/project.xml   |  2 +-
 .../openide/filesystems/FileSystemStatus.java      |  8 +++-
 platform/openide.filesystems/nbproject/project.xml |  8 ++++
 .../src/org/openide/filesystems/FileSystem.java    | 44 ----------------------
 22 files changed, 79 insertions(+), 114 deletions(-)

diff --git a/apisupport/apisupport.project/nbproject/project.xml 
b/apisupport/apisupport.project/nbproject/project.xml
index ab1b49c8736..51236ea8107 100644
--- a/apisupport/apisupport.project/nbproject/project.xml
+++ b/apisupport/apisupport.project/nbproject/project.xml
@@ -260,7 +260,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git 
a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/layers/BadgingSupport.java
 
b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/layers/BadgingSupport.java
index 01ed998180c..0c953d5b363 100644
--- 
a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/layers/BadgingSupport.java
+++ 
b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/layers/BadgingSupport.java
@@ -20,7 +20,6 @@
 package org.netbeans.modules.apisupport.project.layers;
 
 import java.awt.Image;
-import java.awt.Toolkit;
 import java.beans.BeanInfo;
 import java.io.IOException;
 import java.io.InputStream;
@@ -64,6 +63,7 @@ import org.openide.filesystems.URLMapper;
 import org.openide.loaders.DataObject;
 import org.openide.loaders.InstanceDataObject;
 import org.openide.util.Exceptions;
+import org.openide.util.ImageUtilities;
 import org.openide.util.Mutex;
 import org.openide.util.NbBundle;
 import org.openide.util.NbCollections;
@@ -373,7 +373,7 @@ final class BadgingSupport implements SynchronousStatus, 
FileChangeListener {
                         ufo.removeFileChangeListener(fileChangeListener);
                         ufo.addFileChangeListener(fileChangeListener);
                     }
-                    return Toolkit.getDefaultToolkit().getImage(u[0]);
+                    return ImageUtilities.loadImage(u[0].toURI());
                 } catch (Exception e) {
                     LOG.log(Level.INFO, "For " + value + " on " + 
fo.getPath(), e);
                 }
diff --git a/ide/editor.lib/nbproject/project.xml 
b/ide/editor.lib/nbproject/project.xml
index 51d39f4d369..12270518ce8 100644
--- a/ide/editor.lib/nbproject/project.xml
+++ b/ide/editor.lib/nbproject/project.xml
@@ -184,7 +184,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
             </module-dependencies>
diff --git a/ide/editor.lib/src/org/netbeans/editor/AnnotationType.java 
b/ide/editor.lib/src/org/netbeans/editor/AnnotationType.java
index c49c9ffcf79..a9571e755e0 100644
--- a/ide/editor.lib/src/org/netbeans/editor/AnnotationType.java
+++ b/ide/editor.lib/src/org/netbeans/editor/AnnotationType.java
@@ -26,10 +26,12 @@ import java.beans.PropertyChangeSupport;
 import java.awt.Image;
 import java.awt.Toolkit;
 import java.awt.image.ImageObserver;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ResourceBundle;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import org.openide.util.ImageUtilities;
 
 /** Definition of the annotation type. Annotation type is defined by 
attributes like
  * highlight color, foreground color, glyph icon, etc. Each annotation added 
to document
@@ -156,7 +158,12 @@ public class AnnotationType {
      */
     public Image getGlyphImage() {
         if (img == null) {
-            img = Toolkit.getDefaultToolkit().createImage(getGlyph());
+            try {
+                img = ImageUtilities.loadImage(getGlyph().toURI());
+            } catch (URISyntaxException e) {
+                LOG.log(Level.WARNING, "getGlyph() returned invalid URI", e);
+                return null;
+            }
             final boolean waiting[] = new boolean [1];
             waiting[0] = true;
             if (!Toolkit.getDefaultToolkit().prepareImage(img, -1, -1, new 
ImageObserver() {
diff --git a/ide/editor/nbproject/project.xml b/ide/editor/nbproject/project.xml
index dcde4e54908..e6d84100af8 100644
--- a/ide/editor/nbproject/project.xml
+++ b/ide/editor/nbproject/project.xml
@@ -239,7 +239,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.31</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git 
a/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypesNode.java 
b/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypesNode.java
index 1579cde1eb8..cf5ae45c2eb 100644
--- 
a/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypesNode.java
+++ 
b/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypesNode.java
@@ -20,14 +20,12 @@
 package org.netbeans.modules.editor.options;
 
 import java.awt.Image;
-import java.awt.Toolkit;
 import org.openide.util.Exceptions;
 import org.openide.util.HelpCtx;
 import org.openide.util.ImageUtilities;
 import org.openide.util.actions.SystemAction;
 import org.openide.actions.PropertiesAction;
 import org.openide.nodes.Children;
-import org.netbeans.modules.editor.options.AnnotationTypesFolder;
 import org.netbeans.editor.AnnotationType;
 import org.openide.nodes.AbstractNode;
 import org.openide.nodes.BeanNode;
@@ -40,7 +38,10 @@ import org.netbeans.editor.AnnotationTypes;
 import java.lang.Boolean;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeEvent;
+import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /** Node representing the Annotation Types in Options window.
  *
@@ -48,7 +49,7 @@ import java.net.URL;
  * @since 07/2001
  */
 public class AnnotationTypesNode extends AbstractNode {
-
+    private static final Logger LOGGER = 
Logger.getLogger(AnnotationTypesNode.class.getName());
     private static final String HELP_ID = "editing.configuring.annotations"; 
// !!! NOI18N
     private static final String ICON_BASE = 
"org/netbeans/modules/editor/resources/annotationtypes"; // NOI18N
     
@@ -196,12 +197,11 @@ public class AnnotationTypesNode extends AbstractNode {
             }
             
             public Image getIcon(int type) {
-                // Utilities.loadImage does not handle URLs.
-                // Toolkit.getImage would work, but U.lI does nicer caching.
-                if (iconURL.getProtocol().equals("nbresloc")) { // NOI18N
-                    return 
ImageUtilities.loadImage(iconURL.getPath().substring(1));
-                } else {
-                    return Toolkit.getDefaultToolkit().getImage(iconURL);
+                try {
+                    return ImageUtilities.loadImage(iconURL.toURI());
+                } catch (URISyntaxException e) {
+                    LOGGER.log(Level.WARNING, "AnnotationType.getGlyph() 
returned invalid URI", e);
+                    return super.getIcon(type);
                 }
             }
             
diff --git a/ide/options.editor/nbproject/project.xml 
b/ide/options.editor/nbproject/project.xml
index 917da4fb135..4f97c52683e 100644
--- a/ide/options.editor/nbproject/project.xml
+++ b/ide/options.editor/nbproject/project.xml
@@ -215,7 +215,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git 
a/ide/options.editor/src/org/netbeans/modules/options/colors/ColorModel.java 
b/ide/options.editor/src/org/netbeans/modules/options/colors/ColorModel.java
index dc983032708..c439bf4e1a5 100644
--- a/ide/options.editor/src/org/netbeans/modules/options/colors/ColorModel.java
+++ b/ide/options.editor/src/org/netbeans/modules/options/colors/ColorModel.java
@@ -25,9 +25,9 @@ import java.awt.Component;
 import java.awt.Cursor;
 import java.awt.Image;
 import java.awt.Rectangle;
-import java.awt.Toolkit;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -38,7 +38,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javax.swing.ImageIcon;
 import javax.swing.JEditorPane;
 import javax.swing.JPanel;
 import javax.swing.SwingUtilities;
@@ -134,14 +133,13 @@ public final class ColorModel {
             category.addAttribute(StyleConstants.NameAttribute, 
annotationType.getName());
             
             URL iconURL = annotationType.getGlyph ();
-            Image image = null;
-            if (iconURL.getProtocol ().equals ("nbresloc")) { // NOI18N
-                image = 
ImageUtilities.loadImage(iconURL.getPath().substring(1));
-            } else {
-                image = Toolkit.getDefaultToolkit ().getImage (iconURL);
-            }
-            if (image != null) {
-                category.addAttribute("icon", new ImageIcon(image)); //NOI18N
+            try {
+                Image image = ImageUtilities.loadImage(iconURL.toURI());
+                if (image != null) {
+                    category.addAttribute("icon", 
ImageUtilities.image2Icon(image)); //NOI18N
+                }
+            } catch (URISyntaxException e) {
+                LOG.log(Level.WARNING, "AnnotationType.getGlyph() returned 
invalid URI", e);
             }
             
             Color bgColor = annotationType.getHighlight();
diff --git a/java/form/nbproject/project.xml b/java/form/nbproject/project.xml
index b3196b2c5b8..36910d8db32 100644
--- a/java/form/nbproject/project.xml
+++ b/java/form/nbproject/project.xml
@@ -189,7 +189,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git 
a/java/form/src/org/netbeans/modules/form/palette/PaletteItemDataObject.java 
b/java/form/src/org/netbeans/modules/form/palette/PaletteItemDataObject.java
index 207dda60ffd..208a0a04235 100644
--- a/java/form/src/org/netbeans/modules/form/palette/PaletteItemDataObject.java
+++ b/java/form/src/org/netbeans/modules/form/palette/PaletteItemDataObject.java
@@ -22,6 +22,8 @@ package org.netbeans.modules.form.palette;
 import java.util.*;
 import java.io.*;
 import java.beans.*;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
 
 import org.openide.util.ImageUtilities;
@@ -423,10 +425,9 @@ public class PaletteItemDataObject extends MultiDataObject 
implements CookieSet.
             {
                 if (icon32URL != null) { // explicit icon specified in file
                     try {
-                        return java.awt.Toolkit.getDefaultToolkit().getImage(
-                                                 new java.net.URL(icon32URL));
+                        return ImageUtilities.loadImage(new URI(icon32URL));
                     }
-                    catch (java.net.MalformedURLException ex) {} // ignore
+                    catch (URISyntaxException ex) {} // ignore
                 }
                 else if 
(getPrimaryFile().getAttribute("SystemFileSystem.icon32") != null) // NOI18N
                     return super.getIcon(type);
@@ -434,10 +435,9 @@ public class PaletteItemDataObject extends MultiDataObject 
implements CookieSet.
             else { // get small icon in other cases
                 if (icon16URL != null) { // explicit icon specified in file
                     try {
-                        return java.awt.Toolkit.getDefaultToolkit().getImage(
-                                                 new java.net.URL(icon16URL));
+                        return ImageUtilities.loadImage(new URI(icon16URL));
                     }
-                    catch (java.net.MalformedURLException ex) {} // ignore
+                    catch (URISyntaxException ex) {} // ignore
                 }
                 else if 
(getPrimaryFile().getAttribute("SystemFileSystem.icon") != null) // NOI18N
                     return super.getIcon(type);
diff --git 
a/java/performance/actionsframework/src/org/netbeans/actions/simple/Interpreter.java
 
b/java/performance/actionsframework/src/org/netbeans/actions/simple/Interpreter.java
index 3c1c32c8dc8..786cd6cd01c 100644
--- 
a/java/performance/actionsframework/src/org/netbeans/actions/simple/Interpreter.java
+++ 
b/java/performance/actionsframework/src/org/netbeans/actions/simple/Interpreter.java
@@ -19,9 +19,12 @@
 
 package org.netbeans.actions.simple;
 
+import jakarta.websocket.ContainerProvider;
+import java.awt.Image;
 import java.awt.Toolkit;
 import java.awt.event.KeyEvent;
-import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -31,13 +34,12 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.Stack;
 import java.util.StringTokenizer;
 import javax.swing.Icon;
 import javax.swing.ImageIcon;
 import javax.swing.KeyStroke;
-import org.netbeans.actions.spi.ActionProvider;
-import org.netbeans.actions.spi.ContainerProvider;
+import org.netbeans.spi.project.ActionProvider;
+import org.openide.util.ImageUtilities;
 import org.openide.xml.XMLUtil;
 import org.xml.sax.*;
 import org.xml.sax.helpers.XMLReaderAdapter;
@@ -253,9 +255,9 @@ public class Interpreter implements 
org.xml.sax.DocumentHandler {
             int idx = s.lastIndexOf("/");
             String urlString = s.substring(0, idx) + "/" + partialPath;
             try {
-                URL url = new URL (urlString);
-                return new 
ImageIcon(Toolkit.getDefaultToolkit().getImage(url));
-            } catch (Exception e) {
+                Image image = ImageUtilities.loadImage(new URI(urlString));
+                return image == null ? new ImageIcon() : 
ImageUtilities.image2Icon(image);
+            } catch (URISyntaxException e) {
                 e.printStackTrace();
             }
         }
diff --git a/java/performance/nbproject/project.xml 
b/java/performance/nbproject/project.xml
index 20f1d1007d2..0126e5db6ea 100644
--- a/java/performance/nbproject/project.xml
+++ b/java/performance/nbproject/project.xml
@@ -99,7 +99,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git 
a/platform/core.kit/test/perf/src/org/openide/filesystems/data/JavaSrc.java 
b/platform/core.kit/test/perf/src/org/openide/filesystems/data/JavaSrc.java
index ba857ef36a9..f26975dd057 100644
--- a/platform/core.kit/test/perf/src/org/openide/filesystems/data/JavaSrc.java
+++ b/platform/core.kit/test/perf/src/org/openide/filesystems/data/JavaSrc.java
@@ -136,27 +136,6 @@ public final class JavaSrc {
             super(filter, Children.LEAF);
         }
 
-        /*
-        public Image getIcon (int type) {
-            if ((type == java.beans.BeanInfo.ICON_COLOR_16x16) ||
-                    (type == java.beans.BeanInfo.ICON_MONO_16x16)) {
-                if (itemIcon == null)
-                    itemIcon = Toolkit.getDefaultToolkit ().getImage (
-                                   getClass ().getResource 
("/org/netbeans/core/resources/action.gif")); // NOI18N
-                return itemIcon;
-            } else {
-                if (itemIcon32 == null)
-                    itemIcon32 = Toolkit.getDefaultToolkit ().getImage (
-                                     getClass ().getResource 
("/org/netbeans/core/resources/action32.gif")); // NOI18N
-                return itemIcon32;
-            }
-        }
-
-        public Image getOpenedIcon (int type) {
-            return getIcon (type);
-        }
-        */
-
         /** Actions.
         * @return array of actions for this node
         */
diff --git 
a/platform/o.n.core/test/unit/data/projects/sfs-attr-test/sfs_attr_test/Util.java
 
b/platform/o.n.core/test/unit/data/projects/sfs-attr-test/sfs_attr_test/Util.java
index 752eb1aad9d..5a265601488 100644
--- 
a/platform/o.n.core/test/unit/data/projects/sfs-attr-test/sfs_attr_test/Util.java
+++ 
b/platform/o.n.core/test/unit/data/projects/sfs-attr-test/sfs_attr_test/Util.java
@@ -29,6 +29,7 @@ import org.openide.util.Utilities;
 public abstract class Util {
     private Util() {}
 
+    // Called by reflection via registration in 
platform/o.n.core/test/unit/data/projects/sfs-attr-test/sfs_attr_test/layer.xml
     private static Image mergeIcons(FileObject fo) throws IOException {
         int count = ((Integer)fo.getAttribute("iconCount")).intValue();
         if (count < 2) throw new IOException();
diff --git a/platform/openide.awt/nbproject/project.xml 
b/platform/openide.awt/nbproject/project.xml
index 0398c101d6c..5f274abf29a 100644
--- a/platform/openide.awt/nbproject/project.xml
+++ b/platform/openide.awt/nbproject/project.xml
@@ -47,7 +47,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.12</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/platform/openide.awt/src/org/openide/awt/AlwaysEnabledAction.java 
b/platform/openide.awt/src/org/openide/awt/AlwaysEnabledAction.java
index f9c23926d7f..fc5084895f2 100644
--- a/platform/openide.awt/src/org/openide/awt/AlwaysEnabledAction.java
+++ b/platform/openide.awt/src/org/openide/awt/AlwaysEnabledAction.java
@@ -26,6 +26,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Collection;
 import java.util.Map;
@@ -227,7 +228,11 @@ implements PropertyChangeListener, ContextAwareAction {
                 return (Icon) icon;
             }
             if (icon instanceof URL) {
-                icon = Toolkit.getDefaultToolkit().getImage((URL)icon);
+                try {
+                    icon = ImageUtilities.loadImage(((URL)icon).toURI());
+                } catch (URISyntaxException e) {
+                    LOG.log(Level.WARNING, "SMALL_ICON attribute had invalid 
URI", e);
+                }
             }
             if (icon instanceof Image) {
                 return ImageUtilities.image2Icon((Image)icon);
diff --git a/platform/openide.filesystems.compat8/nbproject/project.xml 
b/platform/openide.filesystems.compat8/nbproject/project.xml
index 10309267869..1040bc33d9a 100644
--- a/platform/openide.filesystems.compat8/nbproject/project.xml
+++ b/platform/openide.filesystems.compat8/nbproject/project.xml
@@ -62,7 +62,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
             </module-dependencies>
diff --git 
a/platform/openide.filesystems.compat8/src/org/openide/filesystems/FileSystemCompat.java
 
b/platform/openide.filesystems.compat8/src/org/openide/filesystems/FileSystemCompat.java
index fdc9c7f2087..97542672f64 100644
--- 
a/platform/openide.filesystems.compat8/src/org/openide/filesystems/FileSystemCompat.java
+++ 
b/platform/openide.filesystems.compat8/src/org/openide/filesystems/FileSystemCompat.java
@@ -20,15 +20,16 @@
 package org.openide.filesystems;
 
 import java.awt.Image;
-import java.awt.Toolkit;
 import java.beans.BeanInfo;
 import java.beans.PropertyChangeListener;
 import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Set;
+import java.util.logging.Level;
 import static org.openide.filesystems.FileSystem.LOG;
 import org.openide.modules.PatchFor;
 import org.openide.util.Exceptions;
@@ -284,7 +285,11 @@ public abstract class FileSystemCompat {
                 Object value = fo.getAttribute(attr);
                 if (value != null) {
                     if (value instanceof URL) {
-                        return Toolkit.getDefaultToolkit().getImage((URL) 
value);
+                        try {
+                            return ImageUtilities.loadImage(((URL) 
value).toURI());
+                        } catch (URISyntaxException e) {
+                            LOG.log(Level.WARNING, "Annotation has invalid 
icon URI", e);
+                        }
                     } else if (value instanceof Image) {
                         // #18832
                         return (Image) value;
diff --git a/platform/openide.filesystems.nb/nbproject/project.xml 
b/platform/openide.filesystems.nb/nbproject/project.xml
index 92387bec960..a7b79f34a33 100644
--- a/platform/openide.filesystems.nb/nbproject/project.xml
+++ b/platform/openide.filesystems.nb/nbproject/project.xml
@@ -54,7 +54,7 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>9.3</specification-version>
+                        <specification-version>9.36</specification-version>
                     </run-dependency>
                 </dependency>
             </module-dependencies>
diff --git 
a/platform/openide.filesystems.nb/src/org/netbeans/modules/openide/filesystems/FileSystemStatus.java
 
b/platform/openide.filesystems.nb/src/org/netbeans/modules/openide/filesystems/FileSystemStatus.java
index 9d5b2da312d..b38ff684150 100644
--- 
a/platform/openide.filesystems.nb/src/org/netbeans/modules/openide/filesystems/FileSystemStatus.java
+++ 
b/platform/openide.filesystems.nb/src/org/netbeans/modules/openide/filesystems/FileSystemStatus.java
@@ -20,8 +20,8 @@
 package org.netbeans.modules.openide.filesystems;
 
 import java.awt.Image;
-import java.awt.Toolkit;
 import java.beans.BeanInfo;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Arrays;
 import java.util.MissingResourceException;
@@ -117,7 +117,11 @@ public final class FileSystemStatus implements 
StatusDecorator, ImageDecorator {
             Object value = fo.getAttribute(attr);
             if (value != null) {
                 if (value instanceof URL) {
-                    return Toolkit.getDefaultToolkit().getImage((URL) value);
+                    try {
+                        return ImageUtilities.loadImage(((URL) value).toURI());
+                    } catch (URISyntaxException e) {
+                        LOG.log(Level.WARNING, "Annotation has invalid icon 
URI", e);
+                    }
                 } else if (value instanceof Image) {
                     // #18832
                     return (Image) value;
diff --git a/platform/openide.filesystems/nbproject/project.xml 
b/platform/openide.filesystems/nbproject/project.xml
index 3b8b4cc6aed..4e8e4b639ea 100644
--- a/platform/openide.filesystems/nbproject/project.xml
+++ b/platform/openide.filesystems/nbproject/project.xml
@@ -41,6 +41,14 @@
                         <specification-version>8.17</specification-version>
                     </run-dependency>
                 </dependency>
+                <dependency>
+                    <code-name-base>org.openide.util.ui</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>9.36</specification-version>
+                    </run-dependency>
+                </dependency>
             </module-dependencies>
             <test-dependencies>
                 <test-type>
diff --git 
a/platform/openide.filesystems/src/org/openide/filesystems/FileSystem.java 
b/platform/openide.filesystems/src/org/openide/filesystems/FileSystem.java
index bb9bd0ec159..cf298713c85 100644
--- a/platform/openide.filesystems/src/org/openide/filesystems/FileSystem.java
+++ b/platform/openide.filesystems/src/org/openide/filesystems/FileSystem.java
@@ -854,49 +854,5 @@ public abstract class FileSystem implements Serializable {
             }
             return "Cannot load " + name + " for " + fo + " defined by " + by; 
// NOI18N
         }
-
-        /*
-        public Image annotateIcon(Image im, int type, Set<? extends 
FileObject> files) {
-            for (FileObject fo : files) {
-                Image img = annotateIcon(fo, type);
-                if (img != null) {
-                    return img;
-                }
-            }
-            return im;
-        }
-
-        private Image annotateIcon(FileObject fo, int type) {
-            String attr = null;
-            if (type == BeanInfo.ICON_COLOR_16x16) {
-                attr = "SystemFileSystem.icon"; // NOI18N
-            } else if (type == BeanInfo.ICON_COLOR_32x32) {
-                attr = "SystemFileSystem.icon32"; // NOI18N
-            }
-            if (attr != null) {
-                Object value = fo.getAttribute(attr);
-                if (value != null) {
-                    if (value instanceof URL) {
-                        return Toolkit.getDefaultToolkit().getImage((URL) 
value);
-                    } else if (value instanceof Image) {
-                        // #18832
-                        return (Image) value;
-                    } else {
-                        LOG.warning("Attribute " + attr + " on " + fo + " 
expected to be a URL or Image; was: " + value);
-                    }
-                }
-            }
-            String base = (String) fo.getAttribute("iconBase"); // NOI18N
-            if (base != null) {
-                if (type == BeanInfo.ICON_COLOR_16x16) {
-                    return ImageUtilities.loadImage(base, true);
-                } else if (type == BeanInfo.ICON_COLOR_32x32) {
-                    return ImageUtilities.loadImage(insertBeforeSuffix(base, 
"_32"), true); // NOI18N
-                }
-            }
-            return null;
-        }
-            */
-
     };
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to