From 6c5dd2f95466891f8a5555966d155a860bc85666 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Sun, 26 Dec 2021 13:56:41 +0000 Subject: [PATCH] Implement suggestions in GitHub issue #112 * Fix Aluminium LnF * Add Nimbus, Metal, Motif and some system LnFs by name * Sort list of LnFs * Check if an LnF is available on the classpath on startup --- .../main/groovy/com/muwire/gui/LNFs.groovy | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/gui/src/main/groovy/com/muwire/gui/LNFs.groovy b/gui/src/main/groovy/com/muwire/gui/LNFs.groovy index 3c631925..529fc28c 100644 --- a/gui/src/main/groovy/com/muwire/gui/LNFs.groovy +++ b/gui/src/main/groovy/com/muwire/gui/LNFs.groovy @@ -13,8 +13,11 @@ class LNFs { static final String[] availableLNFs private static register(String name, String clazz) { - nameToClass.put(name, clazz) - classToName.put(clazz, name) + try { + Class cls = Class.forName(clazz) + nameToClass.put(name, cls.getCanonicalName()) + classToName.put(cls.getCanonicalName(), name) + } catch (Exception notThere) {} // just not available } private static String camel(String s) { @@ -31,12 +34,17 @@ class LNFs { SYSTEM_ALIASES.add("Aqua") // Mac SYSTEM_ALIASES.add("Windows") // Windows - register("System", "system") - register("Metal","metal") + register("System", UIManager.getSystemLookAndFeelClassName()) + register("Metal","javax.swing.plaf.metal.MetalLookAndFeel") + register("Motif", "com.sun.java.swing.plaf.motif.MotifLookAndFeel") + register("GTK", "com.sun.java.swing.plaf.gtk.GTKLookAndFeel") + register("Windows", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel") + register("Aqua", "com.apple.laf.AquaLookAndFeel") + register("Nimbus", "javax.swing.plaf.nimbus.NimbusLookAndFeel") register("Darcula","com.bulenkov.darcula.DarculaLaf") ["acryl", "aero", - "aluminum", + "aluminium", "bernstein", "fast", "graphite", @@ -48,6 +56,7 @@ class LNFs { register("HiFi","com.jtattoo.plaf.hifi.HiFiLookAndFeel") register("McWin","com.jtattoo.plaf.mcwin.McWinLookAndFeel") availableLNFs = nameToClass.keySet().toArray(new String[0]) + Arrays.sort(availableLNFs) } public static String getLNFClassName(String alias) {