From 7480eecef72de710b8468ae04d2d2ef3e919b3c6 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 28 Nov 2018 11:12:08 +0100 Subject: [client] fix NPE on missing L&F config --- .../org/openslx/dozmod/gui/window/ConfigWindow.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'dozentenmodul') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java index 4637b839..c8c0d9d0 100755 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java @@ -7,6 +7,7 @@ import java.util.Enumeration; import javax.swing.AbstractButton; import javax.swing.JRadioButton; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -29,7 +30,7 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti private final static Logger LOGGER = Logger.getLogger(ConfigWindow.class); private SatelliteUserConfig userConfig = null; - private JRadioButton selectedLookAndFeel; + private JRadioButton selectedLookAndFeel = null; public ConfigWindow(Window modalParent) { super(modalParent); @@ -80,11 +81,17 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti // set font scaling as saved in config sldFontSize.setValue(Config.getFontScaling()); sldFontSize.addChangeListener(changeListener); - // -- Look And Feel -- for (Enumeration btn = btnGroupLookAndFeel.getElements(); btn.hasMoreElements();) { final JRadioButton b = (JRadioButton) btn.nextElement(); - if (b.getToolTipText().equals(Config.getLookAndFeel())) { + if (Config.getLookAndFeel() != null && !Config.getLookAndFeel().isEmpty()) { + if (b.getToolTipText().equals(Config.getLookAndFeel())) { + selectedLookAndFeel = b; + b.setSelected(true); + } + } + // check if we set from the config, if not fall back to system look and feel + if (selectedLookAndFeel == null && b.getToolTipText().equals(UIManager.getSystemLookAndFeelClassName())) { selectedLookAndFeel = b; b.setSelected(true); } @@ -96,6 +103,10 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti } }); } + if (selectedLookAndFeel == null) { + // non-critical but log it anyways + LOGGER.error("Failed to detect the current look & feel theme."); + } // Transfer connection count sldConnections.setValue(Config.getTransferConnectionCount()); -- cgit v1.2.3-55-g7522