Skip to content

Commit 3fa8212

Browse files
committed
Replace most uses of Toolkit.getDefaultToolkit().getImage(URL) with ImageUtilities.loadImage(URI), to make SVG icons work in these cases.
1 parent 55d123f commit 3fa8212

File tree

22 files changed

+79
-114
lines changed

22 files changed

+79
-114
lines changed

apisupport/apisupport.project/nbproject/project.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@
260260
<build-prerequisite/>
261261
<compile-dependency/>
262262
<run-dependency>
263-
<specification-version>9.3</specification-version>
263+
<specification-version>9.36</specification-version>
264264
</run-dependency>
265265
</dependency>
266266
<dependency>

apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/layers/BadgingSupport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.netbeans.modules.apisupport.project.layers;
2121

2222
import java.awt.Image;
23-
import java.awt.Toolkit;
2423
import java.beans.BeanInfo;
2524
import java.io.IOException;
2625
import java.io.InputStream;
@@ -64,6 +63,7 @@
6463
import org.openide.loaders.DataObject;
6564
import org.openide.loaders.InstanceDataObject;
6665
import org.openide.util.Exceptions;
66+
import org.openide.util.ImageUtilities;
6767
import org.openide.util.Mutex;
6868
import org.openide.util.NbBundle;
6969
import org.openide.util.NbCollections;
@@ -373,7 +373,7 @@ private Image annotateIconGeneral(Image icon, boolean big, Set<? extends FileObj
373373
ufo.removeFileChangeListener(fileChangeListener);
374374
ufo.addFileChangeListener(fileChangeListener);
375375
}
376-
return Toolkit.getDefaultToolkit().getImage(u[0]);
376+
return ImageUtilities.loadImage(u[0].toURI());
377377
} catch (Exception e) {
378378
LOG.log(Level.INFO, "For " + value + " on " + fo.getPath(), e);
379379
}

ide/editor.lib/nbproject/project.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184
<build-prerequisite/>
185185
<compile-dependency/>
186186
<run-dependency>
187-
<specification-version>9.3</specification-version>
187+
<specification-version>9.36</specification-version>
188188
</run-dependency>
189189
</dependency>
190190
</module-dependencies>

ide/editor.lib/src/org/netbeans/editor/AnnotationType.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@
2626
import java.awt.Image;
2727
import java.awt.Toolkit;
2828
import java.awt.image.ImageObserver;
29+
import java.net.URISyntaxException;
2930
import java.net.URL;
3031
import java.util.ResourceBundle;
3132
import java.util.logging.Level;
3233
import java.util.logging.Logger;
34+
import org.openide.util.ImageUtilities;
3335

3436
/** Definition of the annotation type. Annotation type is defined by attributes like
3537
* highlight color, foreground color, glyph icon, etc. Each annotation added to document
@@ -156,7 +158,12 @@ public void setGlyph(java.net.URL glyph) {
156158
*/
157159
public Image getGlyphImage() {
158160
if (img == null) {
159-
img = Toolkit.getDefaultToolkit().createImage(getGlyph());
161+
try {
162+
img = ImageUtilities.loadImage(getGlyph().toURI());
163+
} catch (URISyntaxException e) {
164+
LOG.log(Level.WARNING, "getGlyph() returned invalid URI", e);
165+
return null;
166+
}
160167
final boolean waiting[] = new boolean [1];
161168
waiting[0] = true;
162169
if (!Toolkit.getDefaultToolkit().prepareImage(img, -1, -1, new ImageObserver() {

ide/editor/nbproject/project.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@
239239
<build-prerequisite/>
240240
<compile-dependency/>
241241
<run-dependency>
242-
<specification-version>9.31</specification-version>
242+
<specification-version>9.36</specification-version>
243243
</run-dependency>
244244
</dependency>
245245
<dependency>

ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypesNode.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020
package org.netbeans.modules.editor.options;
2121

2222
import java.awt.Image;
23-
import java.awt.Toolkit;
2423
import org.openide.util.Exceptions;
2524
import org.openide.util.HelpCtx;
2625
import org.openide.util.ImageUtilities;
2726
import org.openide.util.actions.SystemAction;
2827
import org.openide.actions.PropertiesAction;
2928
import org.openide.nodes.Children;
30-
import org.netbeans.modules.editor.options.AnnotationTypesFolder;
3129
import org.netbeans.editor.AnnotationType;
3230
import org.openide.nodes.AbstractNode;
3331
import org.openide.nodes.BeanNode;
@@ -40,15 +38,18 @@
4038
import java.lang.Boolean;
4139
import java.beans.PropertyChangeListener;
4240
import java.beans.PropertyChangeEvent;
41+
import java.net.URISyntaxException;
4342
import java.net.URL;
43+
import java.util.logging.Level;
44+
import java.util.logging.Logger;
4445

4546
/** Node representing the Annotation Types in Options window.
4647
*
4748
* @author David Konecny
4849
* @since 07/2001
4950
*/
5051
public class AnnotationTypesNode extends AbstractNode {
51-
52+
private static final Logger LOGGER = Logger.getLogger(AnnotationTypesNode.class.getName());
5253
private static final String HELP_ID = "editing.configuring.annotations"; // !!! NOI18N
5354
private static final String ICON_BASE = "org/netbeans/modules/editor/resources/annotationtypes"; // NOI18N
5455

@@ -196,12 +197,11 @@ public AnnotationTypesSubnode(AnnotationType type) throws IntrospectionException
196197
}
197198

198199
public Image getIcon(int type) {
199-
// Utilities.loadImage does not handle URLs.
200-
// Toolkit.getImage would work, but U.lI does nicer caching.
201-
if (iconURL.getProtocol().equals("nbresloc")) { // NOI18N
202-
return ImageUtilities.loadImage(iconURL.getPath().substring(1));
203-
} else {
204-
return Toolkit.getDefaultToolkit().getImage(iconURL);
200+
try {
201+
return ImageUtilities.loadImage(iconURL.toURI());
202+
} catch (URISyntaxException e) {
203+
LOGGER.log(Level.WARNING, "AnnotationType.getGlyph() returned invalid URI", e);
204+
return super.getIcon(type);
205205
}
206206
}
207207

ide/options.editor/nbproject/project.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@
215215
<build-prerequisite/>
216216
<compile-dependency/>
217217
<run-dependency>
218-
<specification-version>9.3</specification-version>
218+
<specification-version>9.36</specification-version>
219219
</run-dependency>
220220
</dependency>
221221
<dependency>

ide/options.editor/src/org/netbeans/modules/options/colors/ColorModel.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
import java.awt.Cursor;
2626
import java.awt.Image;
2727
import java.awt.Rectangle;
28-
import java.awt.Toolkit;
2928
import java.io.IOException;
3029
import java.io.InputStreamReader;
30+
import java.net.URISyntaxException;
3131
import java.net.URL;
3232
import java.util.ArrayList;
3333
import java.util.Collection;
@@ -38,7 +38,6 @@
3838
import java.util.Set;
3939
import java.util.logging.Level;
4040
import java.util.logging.Logger;
41-
import javax.swing.ImageIcon;
4241
import javax.swing.JEditorPane;
4342
import javax.swing.JPanel;
4443
import javax.swing.SwingUtilities;
@@ -134,14 +133,13 @@ private List<AttributeSet> processAnnotations(Map<String, AttributeSet> annos, b
134133
category.addAttribute(StyleConstants.NameAttribute, annotationType.getName());
135134

136135
URL iconURL = annotationType.getGlyph ();
137-
Image image = null;
138-
if (iconURL.getProtocol ().equals ("nbresloc")) { // NOI18N
139-
image = ImageUtilities.loadImage(iconURL.getPath().substring(1));
140-
} else {
141-
image = Toolkit.getDefaultToolkit ().getImage (iconURL);
142-
}
143-
if (image != null) {
144-
category.addAttribute("icon", new ImageIcon(image)); //NOI18N
136+
try {
137+
Image image = ImageUtilities.loadImage(iconURL.toURI());
138+
if (image != null) {
139+
category.addAttribute("icon", ImageUtilities.image2Icon(image)); //NOI18N
140+
}
141+
} catch (URISyntaxException e) {
142+
LOG.log(Level.WARNING, "AnnotationType.getGlyph() returned invalid URI", e);
145143
}
146144

147145
Color bgColor = annotationType.getHighlight();

java/form/nbproject/project.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
<build-prerequisite/>
190190
<compile-dependency/>
191191
<run-dependency>
192-
<specification-version>9.3</specification-version>
192+
<specification-version>9.36</specification-version>
193193
</run-dependency>
194194
</dependency>
195195
<dependency>

java/form/src/org/netbeans/modules/form/palette/PaletteItemDataObject.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import java.util.*;
2323
import java.io.*;
2424
import java.beans.*;
25+
import java.net.URI;
26+
import java.net.URISyntaxException;
2527
import java.nio.charset.StandardCharsets;
2628

2729
import org.openide.util.ImageUtilities;
@@ -423,21 +425,19 @@ private java.awt.Image getExplicitIcon(int type) {
423425
{
424426
if (icon32URL != null) { // explicit icon specified in file
425427
try {
426-
return java.awt.Toolkit.getDefaultToolkit().getImage(
427-
new java.net.URL(icon32URL));
428+
return ImageUtilities.loadImage(new URI(icon32URL));
428429
}
429-
catch (java.net.MalformedURLException ex) {} // ignore
430+
catch (URISyntaxException ex) {} // ignore
430431
}
431432
else if (getPrimaryFile().getAttribute("SystemFileSystem.icon32") != null) // NOI18N
432433
return super.getIcon(type);
433434
}
434435
else { // get small icon in other cases
435436
if (icon16URL != null) { // explicit icon specified in file
436437
try {
437-
return java.awt.Toolkit.getDefaultToolkit().getImage(
438-
new java.net.URL(icon16URL));
438+
return ImageUtilities.loadImage(new URI(icon16URL));
439439
}
440-
catch (java.net.MalformedURLException ex) {} // ignore
440+
catch (URISyntaxException ex) {} // ignore
441441
}
442442
else if (getPrimaryFile().getAttribute("SystemFileSystem.icon") != null) // NOI18N
443443
return super.getIcon(type);

0 commit comments

Comments
 (0)