From 6feac8fd8839f54c1f91176cc0412c397de2b19e Mon Sep 17 00:00:00 2001 From: Juuxel Date: Sat, 20 Mar 2021 14:19:41 +0200 Subject: Add a check for missing SVG icon files Improves debugging if the icon is missing as FlatLaf's own error is thrown at render time. --- enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'enigma-swing/src/main/java/cuchaz') diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java index 60414f9..cfa02cb 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java @@ -16,6 +16,7 @@ import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; +import java.util.NoSuchElementException; public class GuiUtil { public static final Icon CLASS_ICON = loadIcon("class"); @@ -79,9 +80,16 @@ public class GuiUtil { } public static Icon loadIcon(String name) { + String path = "icons/" + name + ".svg"; + + // Do an eager check for a missing icon since FlatSVGIcon does it later at render time + if (GuiUtil.class.getResource(path) == null) { + throw new NoSuchElementException("Missing icon: '" + name + "' at " + path); + } + // Note: the width and height are scaled automatically because the FlatLaf UI scale // is set in LookAndFeel.setGlobalLAF() - return new FlatSVGIcon("icons/" + name + ".svg", 16, 16, GuiUtil.class.getClassLoader()); + return new FlatSVGIcon(path, 16, 16, GuiUtil.class.getClassLoader()); } public static Icon getClassIcon(Gui gui, ClassEntry entry) { -- cgit v1.2.3